ÍNDICE
FUNDAMENTO TEORICO DEL CONTROLADOR RUBUSTO .............................2
1. CREAR UN MODELO INCIERTO DE P (S) : .......................................................4
2. DISEÑAR UN CONTROLADOR C INTEGRAL PARA LA PLANTA. .............4
3. GENERAR 20 MUESTRAS ALEATORIAS DE LOS PARÁMETROS : ..........5
4. DC MOTOR CON INCERTIDUMBRE DE PARÁMETROS ................................5
5. ECUACIONES ELÉCTRICAS Y MECÁNICAS DEL MOTOR DC ....................6
7. ANÁLISIS DE LAZO ABIERTO DEL MOTOR DC ..............................................8
10. RECHAZO A UNA PERTURBACIÓN: .............................................................. 10
11. COMPARACIÓN DE LAS RESPUESTAS AMPLITUD: ................................ 11
12. COMPARACIÓN DE LAS RESPUESTAS CON MAGNITUD DE BODE: . 13
CONCLUSION ....................................................................................................................... 14
BIBLIOGRAFIA: .................................................................................................................... 15
ROBUSTEZ DEL CONTROLADOR PARA EL SERVO MOTOR DC
FUNDAMENTO TEORICO DEL CONTROLADOR RUBUSTO
El primer paso en el diseño de un sistema de control es la obtención de un
modelo matemático de una planta física. En ciertos casos el modelo puede ser
no lineal (mayormente), de para ‘metros distribuidos y/o además de alto orden.
Un modelo de orden elevado y complejo desde el punto de vista de la dinámica
no resulta del todo útil, ya que complica demasiado el proceso de diseño, dando
además como resultado controladores de alto orden. Por estos motivos, se busca
obtener un modelo lo más simple posible, pero que al mismo tiempo refleje todas
las características intrínsecas del sistema físico que son importantes para el
problema que se está tratando, y dejar el modelo más completo para verificación
del controlador obtenido. Está claro, que este modelo incurrirá en un error de
modelado. Así, surge la pregunta de si el controlador diseñado para el modelo
obtenido funcionara´ satisfactoriamente para la planta real. Para responder esta
pregunta, se ha desarrollado una teoría de control conocida como control robusto
desde el año 1980.
En control robusto, en particular, se busca aproximar el modelo por uno lineal de
coeficientes constantes, asumiendo que se incurrirá en un error de modelado.
Este error es considerado como incertidumbre del modelo frente a la planta física
real, y utiliza esta incertidumbre, que se modela y acota para cada problema, en
el proceso de diseño del controlador.
¿Por qué realimentar?
La idea de realimentación esta´ tan asociada con la teoría de control que resulta
casi imposible pensar en control sin realimentación. Un ejercicio muy interesante
es preguntarse ¿por qué motivo no se podría controlar un sistema con un
controlador a lazo abierto? Hasta ahora hemos considerado que disponemos de
un modelo matemático del sistema (sin decir mucho respeto de la exactitud del
mismo) y si bien hemos trabajado con perturbaciones externas no hicimos un
tratamiento o modelado de las mismas, es decir la supusimos conocidas. Bajo
estas hipótesis no parecería necesaria la realimentación. Un resultado muy
2
interesante surge de hacer un poco de algebra de bloques con un lazo de control
típico como se muestra en Figura 1. En este lazo P representa el sistema físico
a ser controlado, K(s) es el modelo matemático del controlador a utilizar y d(s)
es una perturbación externa a la salida de la planta.
d
r- - - - ? -y
f K (s) P f
6
Figura 1: Lazo de realimentación.
Sumando y restando el modelo matemático G(s) de la planta dentro del lazo,
manteniendo la realimentación intacta obtenemos el diagrama que se muestra
en la Figura 2.
Figura 2: Sistema físico y modelo matemático.
Si además reemplazamos la conexión entre el modelo de la planta y el
controlador por
C(s) , K(s)[I + G(s)K(s)]−1, (1)
Obtenemos el diagrama de la Figura 3.
Figura 3: Realimentación e incertidumbre.
Así la señal de realimentación f(s) es
f(s) = d(s) + [P − G(s)]u(s)
3
1. CREAR UN MODELO INCIERTO DE P (S) :
>> gamma = ureal('gamma',4,'range',[3 5]);
tau = ureal('tau',.5,'Percentage',30);
P = tf(gamma,[tau 1])
P=
Uncertain continuous-time state-space model with 1 outputs, 1 inputs, states.
The model uncertainty consists of the following blocks:
gamma: Uncertain real, nominal = 4, range = [3,5], 1 occurrences
tau: Uncertain real, nominal = 0.5, variability = [-30,30]%, 1occurrences
Type "[Link]" to see the nominal value, "get(P)" to see all properties,
and "[Link]" to interact with the uncertain elements.
2. DISEÑAR UN CONTROLADOR C INTEGRAL PARA LA PLANTA
(GAMMA = 4 Y TAU = 0,5).
Variaciones de gamma y tau que afectan a la planta y el
rendimiento de circuito cerrado, formamos el sistema de circuito
cerrado CLP de C y P.
>> KI = 1/(2*[Link]*[Link]);
C = tf(KI,[1 0]);
CLP = feedback(P*C,1)
CLP =
Uncertain continuous-time state-space model with 1 outputs, 1 inputs, 2
states.
The model uncertainty consists of the following blocks:
gamma: Uncertain real, nominal = 4, range = [3,5], 1 occurrences
tau: Uncertain real, nominal = 0.5, variability = [-30,30]%, 1 occurrences
Type "[Link]" to see the nominal value, "get(CLP)" to see all
properties, and "[Link]" to interact with the uncertain elements.
4
3. GENERAR 20 MUESTRAS ALEATORIAS DE LOS PARÁMETROS
INCIERTOS GAMMA Y TAU Y TRAZAR LAS RESPUESTAS A UN
ESCALÓN CORRESPONDIENTES DE LOS MODELOS DE CICLO
CERRADO PLANTAS :
>> subplot(2,1,1); step(usample(P,20)), title('Plant response (20 samples)')
subplot(2,1,2); step(usample(CLP,20)), title('Closed-loop response (20 samples)')
>>
RESPUESTA A ESCALÓN de la planta y los modelos de circuito cerrado.
• La trama inferior muestra que el sistema de circuito cerrado es
razonablemente robusto a pesar de las fluctuaciones significativas en la
ganancia DC planta.
• Es una característica deseable, y común de un sistema de realimentación
diseñado adecuadamente.
4. DC MOTOR CON INCERTIDUMBRE DE PARÁMETROS Y LAS
DINÁMICAS NO MODELADO
Motor DC con incertidumbre de parámetros y dinámicas no modeladas,
investigar la robustez del controlador del servo con incertidumbre.
El modelo del motor DC está definida por R, L, las constantes Kb, emf, Km
constante del inducido, la aproximación lineal de fricción viscosa Kf y la carga
de inercia J.
Cada uno de estos componentes varía dentro de un rango específico de
valores.
La resistencia y la inductancia rango de constantes dentro de + / - 40% de sus
valores nominales.
5
• ureal construye estos parámetros inciertos:
• Por razones físicas, los valores de Kf y Kb son la misma, incluso si no
están seguros.
• En este ejemplo, el valor nominal es de 0.015 con un rango entre 0,012
y 0,019.
• Fricción viscosa, Kf, tiene un valor nominal de 0,2 con una variación del
50% en su valor.
R = ureal('R',2,'Percentage',40);
L = ureal('L',0.5,'Percentage',40);
>> K = ureal('K',0.015,'Range',[0.012 0.019]);
Km = K;
Kb = K;
>> Kf = ureal('Kf',0.2,'Percentage',50);
5. ECUACIONES ELÉCTRICAS Y MECÁNICAS DEL MOTOR DC
• La corriente en el circuito eléctrico, y el par de torsión aplicado al rotor se
puede expresar en términos de la tensión aplicada y la velocidad
angular.
• Crear la función de transferencia H sobre estas variables, y Angular
Speed depende de H para su uso posterior:
Km = K;
Kb = K;
>> Kf = ureal('Kf',0.2,'Percentage',50);
>> H = [1;0;Km] * tf(1,[L R]) * [1 -Kb] + [0 0;0 1;0 -Kf];
[Link] = {'AppliedVoltage';'AngularSpeed'};
[Link] = {'Current';'AngularSpeed';'RotorTorque'};
>> J = 0.02*(1 + ultidyn('Jlti',[1 1],'Type','GainBounded','Bound',0.15,
'SampleStateDim',4));
El motor impulsa una inercia, cuyas características dinámicas relaciona el
par de torsión aplicado a la velocidad de cambio de la velocidad angular.
Para un cuerpo rígido, esto es una constante.
El modelo puede contener resonancias amortiguadas desconocidos.
Utilice la ultidyn objeto a modelar la dinámica de invariantes en el
tiempo lineales inciertos.
El valor nominal de la inercia del cuerpo rígido se establece en 0,02 y
añadimos 15% de incertidumbre dinámica en forma multiplicativa:
>> J = 0.02*(1 + ultidyn('Jlti',[1 1],'Type','GainBounded','Bound',0.15,
'SampleStateDim',4));
6
6. MODELO DE MOTOR DE CC CON INCERTIDUMBREMODELO DE
MOTOR DE CC CON INCERTIDUMBRE
Relaciona la Angular Speed de entrada al Rotor Torque de salida a través de
la inercia incierta, J , utilizando el comando LFT.
La entrada Angular Speed es igual a ( Rotor Torque) / (J * s), por lo tanto,
la realimentación "positiva" de la tercera salida a la segunda entrada de H se
utiliza para hacer la conexión.
Esto da como resultado un sistema con 1 entrada ( AppliedVoltage ) y 2
salidas, ( corriente y Angular Speed ).
>> Pall = lft(H, tf(1,[1 0])/J);
>> P = Pall(2,:)
P=
Uncertain continuous-time state-space model with 1 outputs, 1 inputs, 2 states.
The model uncertainty consists of the following blocks:
Jlti: Uncertain 1x1 LTI, peak gain = 0.15, 1 occurrences
K: Uncertain real, nominal = 0.015, range = [0.012,0.019], 2 occurrences
Kf: Uncertain real, nominal = 0.2, variability = [-50,50]%, 1 occurrences
L: Uncertain real, nominal = 0.5, variability = [-40,40]%, 1 occurrences
R: Uncertain real, nominal = 2, variability = [-40,40]%, 1 occurrences
Type "[Link]" to see the nominal value, "get(P)" to see all properties, and
"[Link]" to interact with the uncertain elements.
>> Cont = tf(84*[.233 1],[.0357 1 0]);
7
7. ANÁLISIS DE LAZO ABIERTO DEL MOTOR DC
Comparar la respuesta al escalón del motor DC con 20 muestras, del modelo
incierto para el motor DC:
>> clf
step([Link],'r-+',usample(P,20),'b',3)
legend('Nominal','Samples')
Análisis de la respuesta al escalón a lazo abierto
comparamos los (azul) modelos inciertos diagrama de Bode del lazo
abierto (rojo) y la muestra del motor.
om = logspace(-1,2,80);
Pg = ufrd(P,om);
bode(usample(Pg,25),'b',[Link],'r-+');
legend('Samples','Nominal')
8
Análisis de diagrama de Bode a lazo abierto
8. ANÁLISIS DE ROBUSTEZ DE LAZO CERRADO DEL MOTOR DC
• Se analiza la estabilidad y robustez de funcionamiento del sistema de
motor DC de bucle cerrado. En el análisis inicial del sistema de lazo
cerrado indica que el sistema de bucle cerrado es muy robusto con 10,5
margen de ganancia y 54,3 grados de margen de fase.
>> margin([Link]*Cont)
>>
9
9. CARACTERÍSTICAS DE LA ROBUSTEZ EN EL RECHAZO DE LAS
PERTURBACIONES.
• La función de sensibilidad es una medida estándar de rendimiento de
bucle cerrado para el sistema de retroalimentación.
• Sensibilidad incierta S y compare la magnitud de Bode para la
sensibilidad incierta nominal y se tomaron muestras.
[SM,DM,MM] = loopmargin([Link]*Cont);
>> S = feedback(1,P*Cont);
bodemag(usample(S,20),'b',[Link],'r-+');
legend('Samples','Nominal')
La magnitud de la función de sensibilidad de S
10. RECHAZO A UNA PERTURBACIÓN:
En el dominio del tiempo, la función de sensibilidad indica lo bien que una
perturbación escalón puede ser rechazada.
La sensibilidad incierta y su respuesta para ver la variabilidad en las
características de rechazo de perturbaciones (nominal en rojo).
step(usample(S,20),'b',[Link],'r-+',3);
title('Disturbance Rejection')
legend('Samples','Nominal')
10
Rechazo de una perturbación escalón
11. COMPARACIÓN DE LAS RESPUESTAS AMPLITUD:
Comparar las respuestas a un escalón de la sensibilidad nominal y el
peor de los casos.
>> Sg = ufrd(S,om);
[maxgain,worstuncertainty] = wcgain(Sg);
Maxgain
maxgain =
struct with fields:
LowerBound: 7.4366
UpperBound: 7.4431
CriticalFrequency: 5.1152
Undefined function or variable 'Maxgain'.
Did you mean:
>> maxgain
maxgain =
LowerBound: 7.4236
UpperBound: 7.4385
CriticalFrequency: 5.1152
11
>> Sworst = usubs(S,worstuncertainty);
Sgworst = frd(Sworst,[Link]);
norm(Sgworst,inf)
[Link]
ans =
7.4366
ans =
7.4366
ans =
7.4236
ans =
7.4236
ans =
Error: Expression or statement is incomplete or incorrect.
>> step(Sworst,'b',[Link],'r-+',6);
title('Disturbance Rejection')
legend('Worst-case','Nominal')
Rechazo nominal y el peor caso de una perturbación escalón
12
12. COMPARACIÓN DE LAS RESPUESTAS CON MAGNITUD DE BODE:
Con magnitud de Bode los valores nominales y del peor caso de la
función de sensibilidad.
Observe que el valor máximo de pico ocurre en la frecuencia de máxima
ganancia, a la frecuencia crítica.
step(Sworst,'b',[Link],'r-+',6);
title('Disturbance Rejection')
legend('Worst-case','Nominal')
>> bodemag([Link],'r-+',Sgworst,'b');
legend('Worst-case','Nominal')
hold on
semilogx([Link],20*log10([Link]),'g*')
hold off
……………………………………………………………………………………………………………………
Magnitud de la sensibilidad nominal y el peor de los casos
13
CONCLUSION
En los últimos años, la Teoría de Control Robusto ha demostrado su eficacia en
el estudio y control de sistemas sometidos a incertidumbre en sus parámetros..
Es posible hallar el error relativo entre un modelo nominal y una variedad de
modelos inciertos de un proceso. La ventana de diálogo “Perturbaciones”,
determina ese error relativo máximo, indispensable para la determinación de
incertidumbre en el proceso. El peso de incertidumbre se representa como una
función de transferencia, que se obtiene con la ventana de dialogo “Peso de
Incertidumbre”. Este módulo se puede utilizar incluso para otros problemas que
no estén relacionados propiamente con el diseño de controladores. Con el
módulo “Peso de Desempeño”, se obtiene una función que cumple con unas
características que garantizan el desempeño de un sistema de control, y tienen
que ver con el rechazo a perturbaciones, el rechazo al ruido y la determinación
de un valor máximo de error de estado estacionario entre lo que se desea y lo
que se obtiene. La configuración general de control involucra una función de
incertidumbre paramétrica, el controlador y la planta generalizada.
BIBLIOGRAFIA:
[1] Inthamoussou, F. A. (2011). NOCIONES DE CONTROL ROBUSTO. La Plata,
Buenos Aires, Argentina: ISBN 0-471-17627-3.
[2] S., S. P. (1998). Robust Systems: Theory and Applications. Wiley: 0-471-
17627-3.
[3] Zhou, Kemin. Essentials of Robust Control. 1999, Prentice Hall. ISBN 0-13-
525833-2.
[4] Ogata, Katsuhiko. Modern Control Engineering. 2010, Prentice Hall.