Está en la página 1de 8

ESCUELA POLITECNICA NACIONAL

PRACTICA No.8

TEMA: IMPLEMENTACIÓN DE UN CONTROLADO PID DISCRETO (Control de Posición)

Sistemas de Control Discreto

Daniela Nicolalde

GR-2

s=tf('s');
f1=((396100)/(s^2+160.3*s+3439))*(1.3917/s)

f1 =

5.513e05
------------------------
s^3 + 160.3 s^2 + 3439 s

Continuous-time transfer function.

flc=feedback(f1,1)

flc =

5.513e05
-----------------------------------
s^3 + 160.3 s^2 + 3439 s + 5.513e05

Continuous-time transfer function.

figure
step( flc, 2)

Figura 1
Se requiere que el controlador sea capaz de posicionar al motor en π/3 rad, como se tiene un
motor DC cuya señal de control es el voltaje se presentará en gráficas, el voltaje de control, la
posición que tiene el motor y la velocidad que ha mantenido.

figure
stairs(out.c1.time,out.c1.signals.values)

title('Voltaje vs Tiempo')
legend('Señal de control','Location','northeast')
ylabel('Voltaje [V]')
xlabel('Tiempo[s]')
grid on

Para posicionar el motor se ha enviado 0.8V de voltaje continuo en un tiempo reducido debido que
esta señal es suficiente para posicionarlo, tras este breve instante el voltaje decrece hasta llegar a
un valor negativo de forma que evite que se pase de la posición deseada, una vez que se ha
posicionado se deja de mandar voltaje. (Figura 2)

El motor alcanza la posición deseada en un tiempo menor a los dos segundos y tiene un sobrepico
que llega a los 1.23 rad para luego estabilizarse en π/3. (Figura 3)
Figura 2

figure
plot(out.r1.time,out.r1.signals.values)
hold on
plot(out.st.time,out.st.signals.values)
title('Posicion vs Tiempo')
legend('Respuesta','Referencia','Location','southeast')
ylabel('Posicion [rad]')
xlabel('Tiempo[s]')
grid on

Figura 3
figure
plot(out.v1.time,out.v1.signals.values)
title('Velocidad vs Tiempo')
legend('Velocidad de motor','Location','northeast')
ylabel('Velocidad [rad/s]')
xlabel('Tiempo[s]')
grid on

La velocidad cambia por unps instantes de forma que el motor pueda dirigisrse a la posición
establecida en el comando step.

Figura 4

INCLUSION DE UNA PERTUBACIÓN NEGATIVA

figure
plot(out.r1.time,out.r1.signals.values)
hold on
plot(out.st.time,out.st.signals.values)
title('Posicion vs Tiempo')
legend('Respuesta','Referencia','Location','southeast')
ylabel('Posicion [rad]')
xlabel('Tiempo[s]')
grid on

figure
stairs(out.c1.time,out.c1.signals.values)

title('Voltaje vs Tiempo')
legend('Señal de control','Location','northeast')
ylabel('Voltaje [V]')
xlabel('Tiempo[s]')
grid on
figure
plot(out.v1.time,out.v1.signals.values)
title('Velocidad vs Tiempo')
legend('Velocidad de motor','Location','northeast')
ylabel('Velocidad [rad/s]')
xlabel('Tiempo[s]')
grid on

Una perturbación negativa implica que se desea hacer retroceder al motor por lo que para
restituir la posición requerida se debe inyectar más voltaje, un voltaje positivo para que
vuelva a su lugar.

El voltaje requerido es positivo, así como la velocidad del motor.

INCLUSION DE UNA PERTUBACIÓN POSITIVA


figure
plot(out.r1.time,out.r1.signals.values)
hold on
plot(out.st.time,out.st.signals.values)
title('Posicion vs Tiempo')
legend('Respuesta','Referencia','Location','southeast')
ylabel('Posicion [rad]')
xlabel('Tiempo[s]')
grid on

figure
stairs(out.c1.time,out.c1.signals.values)
title('Voltaje vs Tiempo')
legend('Señal de control','Location','northeast')
ylabel('Voltaje [V]')
xlabel('Tiempo[s]')
grid on
figure
plot(out.v1.time,out.v1.signals.values)
title('Velocidad vs Tiempo')
legend('Velocidad de motor','Location','northeast')
ylabel('Velocidad [rad/s]')
xlabel('Tiempo[s]')
grid on

Una perturbación POSITIVA implica que se desea hacer avanzar al motor de forma que
para restituir la posición requerida se debe colocar un voltaje negativo para que vuelva a
su lugar, es decir, para que retroceda.

El voltaje requerido es negativo, así como la velocidad del motor.

También podría gustarte