Sistemas de control con Matlab y Scilab · IE-431 Sistemas de control con Matlab y Scilab 1 1....
Transcript of Sistemas de control con Matlab y Scilab · IE-431 Sistemas de control con Matlab y Scilab 1 1....
Departamento de Automática
IE – 431Sistemas de Control
Sistemas de control conMatlab® y ScilabTM
Prof. Víctor M. Alfaro
Julio de 2004Rev. Diciembre de 2005
IE-431 Sistemas de control con Matlab y Scilab
TABLA DE CONTENIDO
1. Introducción........................................................................................11.1 Matlab........................................................................................................ 11.2 Scilab.......................................................................................................... 1
2. Planteamiento de los problemas........................................................22.1 Ejemplo 1 - Controladores PID............................................................... 22.2 Ejemplo 2 – Herramientas para el análisis de un sistema de control.. 3
3. Programas y respuestas..................................................................... 43.1 Ejemplo 1 - Listados de instrucciones.....................................................43.2 Ejemplo 1 - Salida gráfica........................................................................ 7
3.2.1 Gráficos en Matlab 73.2.2 Gráficos en Scilab 7
3.3 Ejemplo 2 - Listados de instrucciones.....................................................83.4 Ejemplo 2 - Salida gráfica........................................................................ 9
3.4.1 Gráficos en Matlab 93.4.2 Gráficos en Scilab 10
Vma.ucr.ie431.matlab&scilab.odt V.M. Alfaro
IE-431 Sistemas de control con Matlab y Scilab 1
1. IntroducciónEn la actualidad, la utilización en los cursos de control automático de algún programa de diseño de sistemas de control asistido por computadora (CACSD), se ha hecho indispensable. No solamente por permitir estos el uso de herramientas cuya utilización en forma manual puede ser muy tediosa, si no principalmente porque agilizan el proceso de diseño al permitir realizar cambios en el sistema y analizar las consecuencias de los mismos. Por ejemplo, se puede variar un parámetro del controlador o de la planta y visualizar su efecto en diferentes características del sistema en forma inmediata, facilitando así el análisis y el diseño de los sistemas de control realimentados. Además, con ellos se puede analizar el comportamiento del sistema de control con múltiples técnicas como por ejemplo: en el dominio del tiempo (respuesta al escalón y al impulso), el plano completo (localización de polos y ceros, el lugar geométrico de las raíces de Evans) o la respuesta de frecuencia (Bode, Nyquist, Black).
En la red de computadoras de la Escuela están a disposición de los estudiantes, el Matlab®
7.0 con sus herramientas de control y otras más, y el ScilabTM 3.1.
Con los ejemplos que se presentan a continuación, se pretende que el estudiante pueda apreciar las similitudes entre los dos “lenguajes”, así como sus diferencias y que esto le permita desarrollar sus programas para análisis y diseño de los sistemas de control con, cualquiera de los dos programas. Los estudiantes matriculados en el curso pueden obtener los ejemplos programados tanto en Matlab® como ScilabTM, entrando a las páginas Web del curso en el sistema de administración de cursos de la Escuela (http://www.eie.ucr.ac.cr/cursos/).
1.1 MatlabEl Matlab de The MathWorks, Inc., EUA. (http://www.mathworks.com/) es sin duda el programa de cálculo numérico técnico y CACSD más conocido. Este, junto con su programa compañero de simulación digital Simulink®, son ampliamente utilizados en los ejemplos presentados en las ediciones recientes de los libros de texto de control más utilizados.
Los manuales de la Versión 6.5 en formato .pdf pueden obtener en la página de Recursos del sitio Web de la Escuela (http://www.eie.ucr.ac.cr/recursos.html).
Lamentablemente el alto costo del Matlab les hace imposible a casi todos los estudiantes el tener una copia personal, aun de la versión para estudiantes, la cual es bastante limitada.
1.2 ScilabEl programa Scilab (http://www.scilab.org/) es desarrollado por un consocio encabezado por el Institut National de Recherche en Informatique et en Automatique (INRIA), Francia, el cual es distribuido en forma gratuita por Internet. Este es entonces una alternativa muy atractiva para los estudiantes.
En la página de Recursos de la Escuela (http://www.eie.ucr.ac.cr/recursos.html) se pueden obtener las versiones para Windows y Linux del Scilab 3.1.1.
Vma.ucr.ie431.matlab&scilab.odt V.M. Alfaro
IE-431 Sistemas de control con Matlab y Scilab 2
2. Planteamiento de los problemasA continuación se dan los enunciados de dos problemas de control hipotéticos. No se pretende con ellos explotar las capacidades de estos dos programas, más bien por el contrario, se tratará de utilizar solo las instrucciones básicas., de manera que sirvan estos de comparación.
2.1 Ejemplo 1 - Controladores PIDPara el sistema de control mostrado en la Figura Nº 1, en donde G ps es la función de transferencia de la planta y Gc s la del controlador, se desea obtener la respuesta del sistema de control a un cambio escalón unitario en el valor deseado rt (servomecanismo) y en la perturbación zt (regulador).
Para el ejemplo se empleará una planta cuya función de transferencia es
G ps=1
5s12s1s1
y los controladores serán:
• Proporcional (P)GcPs=K c
• Proporcional-Integral (PI)
GcPI s=K c1 1T i s
• Proporcional-Derivativo (PD)GcPDs=K c 1T d s
• Proporcional-Integral-Derivativo (PID)
GcPI s=K c1 1T i sT d s
Vma.ucr.ie431.matlab&scilab.odt V.M. Alfaro
Gp(s)Gc(s)r(s)
z(s)
y(s)e(s) u(s)+
+ +
-
Lazo de control realimentado
Controlador Proceso
IE-431 Sistemas de control con Matlab y Scilab 3
con los parámetros: K c=2.75, T i=5.0, T d=1.5 (los mismos para todos los controladores, según se aplique)
Se deberá mostrar en una misma “ventana”, pero en gráficas separadas, la respuesta del servomecanismo y del regulador con los cuatro controladores.
2.2 Ejemplo 2 – Herramientas para el análisis de un sistema de controlEn este otro caso, para el sistema de control de la figura anterior, se empleará una planta cuya función de transferencia es
Gps=1.5
s12s14s1y el controlador uno puramente proporcional
GcPs=K c=2.5
Se debe de obtener:
• la respuesta del sistema de control a un cambio escalón unitario en el valor deseado
• el lugar geométrico de las raíces (LGR) para 0≤K c≤∞
• el diagrama de Nyquist
• el diagrama de Bode
y mostrarlos todos estos gráficos en una sola ventana.
Vma.ucr.ie431.matlab&scilab.odt V.M. Alfaro
IE-431 Sistemas de control con Matlab y Scilab 4
3. Programas y respuestasEn el punto 3.1 siguiente se muestra el listado de instrucciones (“scripts”), tanto para Matlab como para Scilab, necesarias para resolver los problemas planteados en 2.0 arriba, los cuales se han colocado de manera que se pueda hacer una comparación, casi línea a línea, de los dos programas. En el punto 3.2 se muestran las gráficas de las respuestas obtenidas con cada uno de los programas.
En forma similar al anterior, en el punto 3.3 se muestran los listados de instrucciones para el Ejemplo 2 y en el punto 3.4 las salidas gráficas correspondientes.
3.1 Ejemplo 1 - Listados de instrucciones
Programa en Matlab Programa en Scilab%Sistemas de Control con Matlab%(control_pid.m)%V.M. Alfaro, 2004%clears=tf('s');%vector de tiempost=0:0.05:50;%%función de transferencia de la%planta (3er orden)gp=1/((5*s+1)*(2*s+1)*(s+1));%%parámetros de los controladoresKc=2.75;Ti=5;Td=1.5;%%ventanafigure(1)set(1,'Name','Sistemas de control con controladores PID')%----------------------------------
//Sistemas de Control con Scilab//(control_pid.sce)//V.M. Alfaro, 2004, 2005//clears=poly(0,'s');//vector de tiempost=0:0.05:50;////función de transferencia de la //planta (3er orden)gp=1/((5*s+1)*(2*s+1)*(s+1));////parámetros de los controladoresKc=2.75;Ti=5;Td=1.5;////ventanaxset('window',1)xname('Sistemas de control con controladores PID')//---------------------------------
%servomecanismos%control Pgc=Kc;Mr=gc*gp/(1+gc*gp);yp=step(Mr,t);%%%control PIgc=Kc*(1+1/(Ti*s));Mr=gc*gp/(1+gc*gp);
//servomecanismos//control Pgc=Kc;Mr=gc*gp/(1+gc*gp);Mrs=syslin('c',Mr);yp=csim('step',t,Mrs);////control PIgc=Kc*(1+1/(Ti*s));Mr=gc*gp/(1+gc*gp);
Vma.ucr.ie431.matlab&scilab.odt V.M. Alfaro
IE-431 Sistemas de control con Matlab y Scilab 5
Programa en Matlab Programa en Scilabypi=step(Mr,t);%%%control PDgc=Kc*(1+Td*s);Mr=gc*gp/(1+gc*gp);ypd=step(Mr,t);%%%control PIDgc=Kc*(1+1/(Ti*s)+Td*s);Mr=gc*gp/(1+gc*gp);ypid=step(Mr,t);%%%respuesta de los servomecanismos%gráficosubplot(1,2,1)plot(t,[yp ypi ypd ypid])grid on%títulos y otras leyendastitle('Respuesta al escalón - servomecanismo')xlabel('tiempo'),ylabel('y(t)')legend('control P','control PI','control PD', 'control PID',0);text(22,0.6,'Kc= 8, Ti= 8, Td= 1.5')%----------------------------------
Mrs=syslin('c',Mr);ypi=csim('step',t,Mrs);////control PDgc=Kc*(1+Td*s);Mr=gc*gp/(1+gc*gp);Mrs=syslin('c',Mr);ypd=csim('step',t,Mrs);////control PIDgc=Kc*(1+1/(Ti*s)+Td*s);Mr=gc*gp/(1+gc*gp);Mrs=syslin('c',Mr);ypid=csim('step',t,Mrs);////respuesta de los servomecanismos//gráficosubplot(1,2,1);xset('font',2,3)plot2d(t',[yp; ypi; ypd; ypid]',style=[2,3,5,6]),xgrid(4)//títulos y otras leyendasxtitle('Respuesta al escalón – servomecanismo','tiempo','y(t)');legends(['control P';'control PI';'control PD';'control PID'],[2,3,5,6],opt=1)xstring(22,0.6,'Kc= 8, Ti= 8, Td= 1.5')//---------------------------------
%reguladores%control Pgc=Kc;Mz=gp/(1+gc*gp);yp=step(Mz,t);%%%control PIgc=Kc*(1+1/(Ti*s));Mz=gp/(1+gc*gp);ypi=step(Mz,t);%%%control PDgc=Kc*(1+Td*s);Mz=gp/(1+gc*gp);ypd=step(Mz,t);%%
//reguladores//control Pgc=Kc;Mz=gp/(1+gc*gp);Mzs=syslin('c',Mz);yp=csim('step',t,Mzs);////control PIgc=Kc*(1+1/(Ti*s));Mz=gp/(1+gc*gp);Mzs=syslin('c',Mz);ypi=csim('step',t,Mzs);////control PDgc=Kc*(1+Td*s);Mz=gp/(1+gc*gp);Mzs=syslin('c',Mz);ypd=csim('step',t,Mzs);//
Vma.ucr.ie431.matlab&scilab.odt V.M. Alfaro
IE-431 Sistemas de control con Matlab y Scilab 6
Programa en Matlab Programa en Scilab%control PIDgc=Kc*(1+1/(Ti*s)+Td*s);Mz=gp/(1+gc*gp);ypid=step(Mz,t);%%%respuesta de los reguladores%gráficosubplot(1,2,2)plot(t,[yp ypi ypd ypid])grid on%títulos y otras leyendastitle('Respuesta al escalón - regulador')xlabel('tiempo'),ylabel('y(t)')legend('control P','control PI','control PD', 'control PID',0);text(22,0.12,'Kc= 8, Ti= 8, Td= 1.5')
//control PIDgc=Kc*(1+1/(Ti*s)+Td*s);Mz=gp/(1+gc*gp);Mzs=syslin('c',Mz);ypid=csim('step',t,Mzs);////respuesta de los reguladores//gráficosubplot(1,2,2),xset('font',2,3)plot2d(t',[yp; ypi; ypd; ypid]',style=[2,3,5,6]),xgrid(4)//títulos y otras leyendasxtitle('Respuesta al escalón - regulador','tiempo','y(t)')legends(['control P','control PI','control PD','control PID'],[2,3,5,6],opt=1)xstring(22,0.12,'Kc= 8, Ti= 8, Td= 1.5')
Vma.ucr.ie431.matlab&scilab.odt V.M. Alfaro
IE-431 Sistemas de control con Matlab y Scilab 7
3.2 Ejemplo 1 - Salida gráficaEn las siguientes curvas de respuesta se puede apreciar el efecto que tiene la adición del modo integral o derivativo sobre el comportamiento dinámico del sistema.
3.2.1 Gráficos en Matlab
3.2.2 Gráficos en Scilab
Vma.ucr.ie431.matlab&scilab.odt V.M. Alfaro
Kc= 8, Ti= 8, Td= 1.5
Respuesta al escalón - servomecanismo
tiempo
y(t)
0 5 10 15 20 25 30 35 40 45 500.0
0.5
1.0
1.5
control P
control PI
control PD
control PID
Kc= 8, Ti= 8, Td= 1.5
Respuesta al escalón - regulador
tiempo
y(t)
0 5 10 15 20 25 30 35 40 45 50-0.10
-0.05
0.00
0.05
0.10
0.15
0.20
0.25
0.30
0.35
control P
control PI
control PD
control PID
IE-431 Sistemas de control con Matlab y Scilab 8
3.3 Ejemplo 2 - Listados de instrucciones
Programa en Matlab Programa en Scilab%%Sistemas de Control con Matlab%(control_herramientas.m)%V.M. Alfaro, 2004%clears=tf('s');%vector de tiempost=0:0.1:30;%%función de transferencia, plantagp=1.5/((s+1)*(2*s+1)*(4*s+1));%%función de trans., controlador (P)gc=2.5;%%función de trans. de lazo abiertogla=gc*gp;%%función de trans. de lazo cerradoglc=feedback(gla,1);%%uso de las herramientas de controlfigure(1)set(1,'Name','Análisis de un sistema de control con varias herramientas')%%respuesta a un escalón unitario%lazo cerradosubplot(2,2,1)step(glc,t),grid ontitle('Respuesta a un scalón unitario')xlabel('tiempo'),ylabel('y(t)')%%lugar de las raíces (LGR)subplot(2,2,2)rlocus(gla);sgrid([0.75 0.4],[1 1.5])%%diagrama de Nyquistsubplot(2,2,3)nyquist(gla)%%diagrama de Bodesubplot(2,2,4)bode(gla),grid on
//Sistemas de Control con Scilab//(control_herramientas.sce)//V.M. Alfaro, 2004//clears=poly(0,'s');//vector de tiempost=0:0.1:32;////función de transferencia, plantagp=1.5/((s+1)*(2*s+1)*(4*s+1));////función de trans., controlador (P)gc=2.5;////función de trans., lazo abiertogla=gc*gp;glas=syslin('c',gla);////función de trans. lazo cerradogu=1;glc=gla/.gu;glcs=syslin('c',glc);//uso de las herramientasxset('window',1)xname('Análisis de un sistema de control con varias herramientas')////respuesta a un escalón unitario//lazo cerradosubplot(2,2,1),xgrid(4)plot2d(t,csim('step',t,glcs),style=2)xtitle('Respuesta a un scalón unitario','tiempo','y(t)')////lugar de las raíces (LGR)subplot(2,2,2),xgrid(4)evans(glas,2.5)sgrid([0.75 0.4],[0.5 0.75],2)////diagrama de Nyquistsubplot(2,2,3)nyquist(glas)////diagrama de Bodesubplot(2,2,4)bode(glas,0.001,10)
Vma.ucr.ie431.matlab&scilab.odt V.M. Alfaro
IE-431 Sistemas de control con Matlab y Scilab 9
3.4 Ejemplo 2 - Salida gráficaLas siguientes figuras permiten estudiar el comportamiento dinámico, la estabilidad y otras características del sistema de control.
3.4.1 Gráficos en Matlab
Vma.ucr.ie431.matlab&scilab.odt V.M. Alfaro
IE-431 Sistemas de control con Matlab y Scilab 10
3.4.2 Gráficos en Scilab
Vma.ucr.ie431.matlab&scilab.odt V.M. Alfaro
0 4 8 12 16 20 24 28 320.0
0.2
0.4
0.6
0.8
1.0
1.2Respuesta a un scalón unitario
tiempo
y(t)
-1.9 -1.7 -1.5 -1.3 -1.1 -0.9 -0.7 -0.5 -0.3 -0.1 0.1-1.0-0.8-0.6-0.4-0.20.00.20.40.60.81.0
×××
× open loop poles
asymptotic directions
Evans root locus
Real axis
Imag. axis
0.5
0.75
0.75
0.4
-1 0 1 2 3 4-3
-2
-1
0
1
2
3
-1 0 1 2 3 4-3
-2
-1
0
1
2
3
-1000
-0.052
-0.036 -0.025-0.017
-0.002
0.0130.0210.029
0.041
0.061
Nyquist plot
Re(h(2i*pi*f))
Im(h(2i*pi*f))
-310
-210
-110
010
110
-120-100
-80-60-40-20
020 Magnitude
Hz
db
-310
-210
-110
010
110
-300-260-220-180-140-100
-60-2020 Phase
Hz
degrees