sistemas de control con matlab y scilab · ie-431 sistemas de control con matlab y scilab 1 1....

14
Departamento de Automática IE – 431 Sistemas de Control Sistemas de control con Matlab ® y Scilab TM Prof. Víctor M. Alfaro Julio de 2004 Rev. Diciembre de 2005

Upload: ledat

Post on 18-Aug-2018

292 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas de control con Matlab y Scilab · IE-431 Sistemas de control con Matlab y Scilab 1 1. Introducción En la actualidad, la utilización en los cursos de control automático

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

Page 2: Sistemas de control con Matlab y Scilab · IE-431 Sistemas de control con Matlab y Scilab 1 1. Introducción En la actualidad, la utilización en los cursos de control automático
Page 3: Sistemas de control con Matlab y Scilab · IE-431 Sistemas de control con Matlab y Scilab 1 1. Introducción En la actualidad, la utilización en los cursos de control automático

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

Page 4: Sistemas de control con Matlab y Scilab · IE-431 Sistemas de control con Matlab y Scilab 1 1. Introducción En la actualidad, la utilización en los cursos de control automático
Page 5: Sistemas de control con Matlab y Scilab · IE-431 Sistemas de control con Matlab y Scilab 1 1. Introducción En la actualidad, la utilización en los cursos de control automático

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 di­señ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 lu­gar 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 apre­ciar 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 ejem­plos 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 pro­grama 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

Page 6: Sistemas de control con Matlab y Scilab · IE-431 Sistemas de control con Matlab y Scilab 1 1. Introducción En la actualidad, la utilización en los cursos de control automático

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 pre­tende 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 compara­ció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 sis­tema 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

Page 7: Sistemas de control con Matlab y Scilab · IE-431 Sistemas de control con Matlab y Scilab 1 1. Introducción En la actualidad, la utilización en los cursos de control automático

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 controlado­res, según se aplique)

Se deberá mostrar en una misma “ventana”, pero en gráficas separadas, la respuesta del ser­vomecanismo 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

Page 8: Sistemas de control con Matlab y Scilab · IE-431 Sistemas de control con Matlab y Scilab 1 1. Introducción En la actualidad, la utilización en los cursos de control automático

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 Mat­lab 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

Page 9: Sistemas de control con Matlab y Scilab · IE-431 Sistemas de control con Matlab y Scilab 1 1. Introducción En la actualidad, la utilización en los cursos de control automático

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

Page 10: Sistemas de control con Matlab y Scilab · IE-431 Sistemas de control con Matlab y Scilab 1 1. Introducción En la actualidad, la utilización en los cursos de control automático

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

Page 11: Sistemas de control con Matlab y Scilab · IE-431 Sistemas de control con Matlab y Scilab 1 1. Introducción En la actualidad, la utilización en los cursos de control automático

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

Page 12: Sistemas de control con Matlab y Scilab · IE-431 Sistemas de control con Matlab y Scilab 1 1. Introducción En la actualidad, la utilización en los cursos de control automático

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

Page 13: Sistemas de control con Matlab y Scilab · IE-431 Sistemas de control con Matlab y Scilab 1 1. Introducción En la actualidad, la utilización en los cursos de control automático

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

Page 14: Sistemas de control con Matlab y Scilab · IE-431 Sistemas de control con Matlab y Scilab 1 1. Introducción En la actualidad, la utilización en los cursos de control automático

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