Claves Importantes de Matlab Control

13
1 Introducción al control automático con MATLAB Utilizar MATLAB para la resolución de problemas de control automático Familiarizarse con el entorno de trabajo de MATLAB Comprender el funcionamiento de los comandos de MATLAB relacionados al control automático Crear programas que resuelvan problemas de control automático con MATLAB 1 Computadora con sistema operativo Windows 98 o superior con el Programa MATLAB 5.2 o superior. En años recientes, el análisis y diseño de sistemas de control han sido afectados dramáticamente por la proliferación del uso de las computadoras, especialmente de las computadoras personales. Estas se han hecho tan poderosas y avanzadas que pueden resolver problemas de sistemas de control con facilidad. Uno de los programas útiles en el campo del control automático es MATLAB. Algunas de las características más notables de MATLAB son: La programación es mucho más sencilla Hay continuidad entre valores enteros, reales y complejos La amplitud de intervalo y la exactitud de los números son mayores Cuenta con una biblioteca matemática amplia Abundantes herramientas gráficas, incluidas funciones de interfaz gráfica con el usuario Capacidad de vincularse con los lenguajes de programación tradicionales Transportabilidad de los programas MATLAB Que en MATLAB no exista distinción entre valores reales, complejos, enteros, de precisión sencilla y de doble precisión, permite que cualquier variable pueda contener números de cualquier tipo sin una declaración especial durante la programación, con lo cual esta última se hace más rápida y productiva. Facultad: Ingeniería. Escuela: Electrónica. Asignatura: Sistemas de Control Automático. Lugar de ejecución: Instrumentación y Control (Edificio 3, 2da planta) Objetivos específicos Materiales y equipo Introducción teórica Sistemas de Control Automático. Guía 3 Objetivos General

description

MATLAB TRICKS

Transcript of Claves Importantes de Matlab Control

Page 1: Claves Importantes de Matlab Control

1

Introducción al control automático con MATLAB

• Utilizar MATLAB para la resolución de problemas de control automático

• Familiarizarse con el entorno de trabajo de MATLAB• Comprender el funcionamiento de los comandos de MATLAB relacionados al control automático• Crear programas que resuelvan problemas de control automático con MATLAB

• 1 Computadora con sistema operativo Windows 98 o superior con el Programa MATLAB 5.2 o superior.

En años recientes, el análisis y diseño de sistemas de control han sido afectados dramáticamente por la proliferación del uso de las computadoras, especialmente de las computadoras personales. Estas se han hecho tan poderosas y avanzadas que pueden resolver problemas de sistemas de control con facilidad. Uno de los programas útiles en el campo del control automático es MATLAB.

Algunas de las características más notables de MATLAB son:

➢ La programación es mucho más sencilla➢ Hay continuidad entre valores enteros, reales y complejos➢ La amplitud de intervalo y la exactitud de los números son mayores➢ Cuenta con una biblioteca matemática amplia➢ Abundantes herramientas gráficas, incluidas funciones de interfaz gráfica con el usuario➢ Capacidad de vincularse con los lenguajes de programación tradicionales➢ Transportabilidad de los programas MATLAB

Que en MATLAB no exista distinción entre valores reales, complejos, enteros, de precisión sencilla y de doble precisión, permite que cualquier variable pueda contener números de cualquier tipo sin una declaración especial durante la programación, con lo cual esta última se hace más rápida y productiva.

Facultad: Ingeniería.Escuela: Electrónica.Asignatura: Sistemas de Control Automático.Lugar de ejecución: Instrumentación y Control (Edificio 3, 2da planta)

Objetivos específicos

Materiales y equipo

Introducción teórica

Sistemas de Control Automático. Guía 3

Objetivos General

Page 2: Claves Importantes de Matlab Control

2

La biblioteca matemática de MATLAB facilita los análisis matemáticos. Además, el usuario puede crear rutinas matemáticas adicionales con mucha mayor facilidad que en otros lenguajes de programación, gracias a la continuidad entre las variables reales y complejas.

IMPORTANCIA DE LAS GRÁFICAS

El análisis visual de los problemas matemáticos ayuda a comprender las matemáticas y a hacerlas más asequibles. Aunque esta ventaja es bien conocida, la presentación de resultados calculados con gráficos de computadora solía requerir un esfuerzo adicional considerable. Con MATLAB, en cambio, bastan unos cuantos comandos para producir presentaciones gráficas del material matemático. Es posible crear objetos gráficos científicos e incluso artísticos en la pantalla mediante expresiones matemáticas. Se le recomienda al estudiante leer el capítulo 1 del libro “Análisis numérico y visualización gráfica con MATLAB” de Shoichiro Nakamura, disponible en la biblioteca de la UDB con la clasificación: Libro 511.7 N163 1998 o el libro “MATLAB, Fundamentos y Aplicaciones al Cálculo Diferencial e Integral” de la Universidad Don Bosco Departamento de Ciencias Básicas, Unidad de Matemática.

Parte I. Tutorial.

Funciones de transferencia:

La sintaxis es: SYS = TF(NUM,DEN)

Se desea crear la siguiente función de transferencia de un sistema SISO en MATLAB:

8.06.1

5.14.3)(

2 +−+−=ss

ssH

Para crearla se tiene que escribir lo siguiente:

>> H1=tf([0,-3.4,1.5],[1,-1.6,0.8])

Transfer function: -3.4 s + 1.5-----------------s^2 - 1.6 s + 0.8

Otra forma de lograr lo mismo es:

s=tf('s'); H1 = (-3.4*s+1.5)/(s^2-1.6*s+0.8)

Transfer function: -3.4 s + 1.5-----------------s^2 - 1.6 s + 0.8

Para escribir la función de transferencia de sistemas MIMO con NY salidas y NU entradas como el

Procedimiento

Sistemas de Control Automático. Guía 3

Page 3: Claves Importantes de Matlab Control

3

siguiente de dos salidas y una entrada (SIMO):

H s=

3s2s32s5

3s35s22s1

Se puede hacer de la siguiente manera:

>> H=tf({[3,2];[1,0,2,5]},{[3,5,2,1];[3,5,2,1]})

Transfer function from input to output...

3 s + 2#1: -----------------------

3 s^3 + 5 s^2 + 2 s + 1

s^3 + 2 s + 5#2: -----------------------

3 s^3 + 5 s^2 + 2 s + 1

Ganancia-Polos-Ceros

La sintaxis es: SYS = ZPK(Z,P,K), si no hay ceros se puede poner Z=[ ].

Se desea crear la siguiente función de transferencia de un sistema SISO en MATLAB:

)5)(4(

)8(3)(

+++=ss

ssH

Para crearla se tiene que escribir lo siguiente:

>> Z=[-8];>> P=[-4 -5];>> K=3;>> H2=zpk(Z,P,K)

Zero/pole/gain: 3 (s+8) -----------(s+4) (s+5)

Otra forma de realizar lo mismo es:

>> s=zpk('s'); H2=3*(s+8)/((s+4)*(s+5))

Sistemas de Control Automático. Guía 3

Page 4: Claves Importantes de Matlab Control

4

Zero/pole/gain: 3 (s+8)-----------(s+4) (s+5)

También se pueden representar sistemas MIMO con NY salidas y NU entradas.

Por ejemplo se desea representar el siguiente sistema de dos salidas y una entrada:

)1(

)3)(2(,

1

521 +

−−=−

−=ss

ssH

sH

>> H = ZPK({[];[2 3]},{1;[0 -1]},[-5;1])

Zero/pole/gain from input to output...-5

#1: ----- (s-1)

(s-2) (s-3)#2: -----------

s (s+1)

Fracciones Parciales

Para encontrar la expansión en fracciones parciales o viceversa se puede utilizar el comando “residue”:

Encuentre la expansión en fracciones parciales de la siguiente función de transferencia:

8.06.1

5.14.3)(

2 +−+−=ss

ssH

>> num=[-3.4 1.5];>> den=[1 -1.6 0.8];>> [R,P,K]=residue(num,den)

R =-1.7000 + 1.5250i-1.7000 - 1.5250i

P =0.8000 + 0.4000i0.8000 - 0.4000i

K =[]

Sistemas de Control Automático. Guía 3

Page 5: Claves Importantes de Matlab Control

5

La solución es:

js

j

js

j

ps

r

ps

rsH

4000.08000.0

5250.17000.1

4000.08000.0

5250.17000.1

)2(

)2(

)1(

)1()(

+−−−+

−−+−=

−+

−=

Se vuelve a obtener la función original de la siguiente forma:

>> [n,d]=residue(R,P,K)n = -3.4000 1.5000

d = 1.0000 -1.6000 0.8000

Conversión de modelos

Los comandos para la conversión de modelos son:

residue: Expansión en fracciones parciales.

tf(SYS): Convierte el modelo SYS al formato de función de transferencia.

zpk(SYS): Convierte el modelo SYS al formato de ceros, polos y ganancia.

Funciones de Análisis:

Respuesta en el tiempo.impulse: Respuesta al impulso unitario.step: Respuesta al escalón unitario.lsim: Simula la respuesta en el tiempo de modelos LTI ante entradas arbitrarias.

Encuentre la respuesta en el tiempo ante un impulso de entrada de la siguiente función de transferencia:

8.06.1

5.14.3)(

2 +−+−=ss

ssH

En MATLAB se escribiría lo siguiente:

>> H1=tf([0,-3.4,1.5],[1,-1.6,0.8]);>> impulse(H1)

Encuentre la respuesta en el tiempo del sistema anterior ante una entrada impulso unitario en el intervalo de 0 a 15 segundos.

>> impulse(H1,15)

Encuentre la respuesta del sistema anterior ante una entrada escalón unitario y añádala en la misma gráfica de la respuesta al impulso en el intervalo de 0 a 15 segundos:

Sistemas de Control Automático. Guía 3

Page 6: Claves Importantes de Matlab Control

6

>> [Yi,T]=impulse(H1,15);>> [Ye,T]=step(H1,15);>> plot(T,Yi,'r',T,Ye,'b')

La respuesta al impulso aparecerá de color rojo y la respuesta al escalón de color azul.

Propiedades del modelo:damp: Factores de amortiguamiento y frecuencias naturalesdcgain: Ganancia de estado estable (D.C.) de sistemas continuos.

Encuentre los factores de amortiguamiento y frecuencias naturales del siguiente sistema ante una entrada escalón unitario (1/S):

10004.0

5)(

2 ++=

sssH

La solución sería:

s=tf('s'); H=5/(s^2+0.4*s+1000)*1/s

Transfer function: 5----------------------s^3 + 0.4 s^2 + 1000 s

>> damp(H) Eigenvalue Damping Freq. (rad/s) 0.00e+000 -1.00e+000 0.00e+000-2.00e-001 + 3.16e+001i 6.32e-003 3.16e+001-2.00e-001 - 3.16e+001i 6.32e-003 3.16e+001

Ya que el amortiguamiento de este sistema es muy pequeño, la respuesta en el tiempo será muy oscilatoria.

Modelado de sistemas de lazo abierto y de lazo cerrado.parallel: Conexión en paralelo de sistemas.series: Conexión en cascada de sistemas.feedback: Conexión de sistemas en retroalimentación.

Encuentre la función de transferencia simplificada del siguiente sistema usando MATLAB:

Solución:

>> s=zpk('s'); G1=(s+3)/((s+1)*(s+4)); G2=4*(s+2)/(s^2+4*s+5);>> G=series(G1,G2)

Sistemas de Control Automático. Guía 3

Page 7: Claves Importantes de Matlab Control

7

Zero/pole/gain: 4 (s+2) (s+3)--------------------------(s+4) (s+1) (s^2 + 4s + 5)

>> tf(G)

Transfer function: 4 s^2 + 20 s + 24--------------------------------s^4 + 9 s^3 + 29 s^2 + 41 s + 20

Si la función de respuesta anterior se retroalimenta negativamente con una función H(s) = 1. Encuentre la función de transferencia de lazo cerrado GCL.

Solución:

>> H=1;>> Gcl=feedback(G,H,-1)

Zero/pole/gain: 4 (s+3) (s+2)-----------------------------------------(s+3.59) (s+1.673) (s^2 + 3.737s + 7.326)

>> tf(Gcl)

Transfer function: 4 s^2 + 20 s + 24--------------------------------s^4 + 9 s^3 + 33 s^2 + 61 s + 44

Encuentre la función de transferencia Gsum si G1 y G2 se colocan en paralelo.

>> Gsum=parallel(G1,G2)

Zero/pole/gain:5 (s+3.826) (s+1.834) (s+1.339)-------------------------------(s+1) (s+4) (s^2 + 4s + 5)

>> tf(Gsum)

Transfer function: 5 s^3 + 35 s^2 + 73 s + 47--------------------------------s^4 + 9 s^3 + 29 s^2 + 41 s + 20

La Transformada y Antitransformada de Laplace

La caja de herramientas de matemática simbólica de MATLAB posee la función laplace e ilaplace para

Sistemas de Control Automático. Guía 3

Page 8: Claves Importantes de Matlab Control

8

transformar una función en el tiempo al dominio de la frecuencia compleja y viceversa.

Ejemplo: Encontrar la respuesta en el tiempo de la siguiente función de transferencia cuando a la entrada se presenta una señal rampa unitaria.

2041299

4773355)(

234

23

+++++++=ssss

ssssG

Solución:

>> syms s t>> G=(5*s^3+35*s^2+73*s+47)/(s^4+9*s^3+29*s^2+41*s+20);>> g=ilaplace(G*1/s^2);>> pretty(g)

467 47 - --- + 1/48 exp(-4 t) + 2/3 exp(-t) + -- t 400 20

+ 4/25 exp(-2 t) (3 cos(t) - 4 sin(t))

>> ezplot(g,[0,15])

Ejemplo:Encuentre la transformada de Laplace de la siguiente función:

)())sin(()( tueatttg at−+⋅=

Donde a es una constante real positiva.Solución:

>> syms a t s>> g=t*sin(a*t)+exp(-a*t);>> G=laplace(g);>> pretty(G) s a 1 2 ---------- + ----- 2 2 2 s + a (s + a )

Creación de archivos de programa y funciones con MATLAB

El usuario puede crear aplicaciones propias en MATLAB utilizando los comandos que este ya posee, esto se realiza a través de M-Files o archivos M, llamados de esa forma porque deben guardarse con la extensión ".m"; pueden crearse desde cualquier editor de texto como por ejemplo bloc de notas, pero es mas cómodo para el programador utilizar el editor de MATLAB pues señala errores de sintaxis e identifica sentencias con colores facilitando así la creación del programa.

Los programas creados en MATLAB pueden dividirse en: archivos de comandos y funciones

Sistemas de Control Automático. Guía 3

Page 9: Claves Importantes de Matlab Control

9

Archivos de Comando: Como su nombre lo indican son archivos M que contienen una serie de comandos de MATLAB que se van a ejecutar en conjunto cuando el usuario corra el programa, estos deben guardarse en la carpeta de trabajo de MATLAB, que en versiones antiguas se llama WORK y se aloja en la carpeta de MATLAB en el disco duro, mientras que en las versiones mas recientes el directorio de trabajo es una carpeta llamada MATLAB que se aloja en Mis Documentos, esto lo puede verificar en la ventana de comandos de MATLAB en la parte donde dice Current directory o directorio actual.Para ejecutar el programa basta con colocar en la ventana de comandos de MATLAB el nombre del programa sin extensión y los comandos del programa se ejecutarán si no hay errores, o se le notificará donde radica el error, las variables declaradas en un archivo de comando quedarán también almacenadas en el entorno de trabajo.

Ejemplo: Obtenga una sola gráfica de respuesta escalón unitario para un sistema de segundo orden con nω = 2 y los siguientes valores de =0,0.2,0.4,0.6,0.8 y 1.0ζ

solución:

En la ventana de comandos de MATLAB de clic en File, New y M-File para accesar al editor de MATLAB y digite el código que se muestra a continuación.%*******************************************************************%Obtiene la curva de respuesta escalón unitario de un sistema %de segundo orden %************************************************************************* t=0:0.2:10;z=[0 0.2 0.4 0.6 0.8 1.0];wn=2; for n=1:6; wn2=wn^2; v= 2*z(n)*wn; num= [0 0 wn2]; den= [1 v wn2]; [y(1:51,n),x,t] = step(num,den,t); end plot (t,y) grid title ('Respuesta a un escalón unitario para un sistema de segundo orden') xlabel ('t (seg)') ylabel ('Respuesta') a=cellstr(num2str(z.'));%pasa a string los valores de z legend (a {:}) %para luego verlos como leyenda en el gráfico

Archivo de comandos de MATLAB “prog1.m”

Guarde el programa con el nombre “prog1.m”, regrese a la ventana de comandos de MATLAB y corra el programa de la siguiente forma:

>> prog1

Sistemas de Control Automático. Guía 3

C sR s

=n

2

s22n sn2

Page 10: Claves Importantes de Matlab Control

10

Se debió obtener la gráfica de la respuesta al escalón unitario de la función de transferencia con nω = 2 y los diferentes valores de , sino es asi notifique a su docente de laboratorio.ζ

Ya que las variables utilizadas en los archivos de comando quedan almacenadas en el entorno de trabajo, borrelas con el siguiente comando:

>> Clear all

Funciones Las funciones al igual que los archivos de comando se realizan en un archivo M, pero las funciones deben iniciar con la siguiente estructura:

function “argumentos de salida” = nombre de la función (“argumentos de entrada”)

• Nombre de la función: Este es elegido por el usuario, pero se debe tener el cuidado de que al guardar la función como archivo .m en el directorio de trabajo de MATLAB tenga el mismo nombre que se le puso aquí a la función, de lo contrario al llamarlo no lo reconocerá.

• Argumentos de salida: Variable o variables donde quedará almacenado un valor final que se ha modificado a lo largo del programa.

• Argumentos de entrada: son parámetros que recibe la función para poder procesarlos.

Las variables declaradas dentro de una función contrario a como ocurre con los archivos de comando no quedan almacenadas en el entorno de trabajo.

Ejemplo: al obtener la curva de respuesta de un sistema de control de segundo orden a una entrada de escalón unitario, es común especificar los parámetros que se muestran en la Figura 1.

1. Tiempo de retardo, td.

2. Tiempo de crecimiento, tr.

3. Tiempo pico, tp.

4. Sobreimpulso máximo, Mp.

5. Tiempo de establecimiento, ts

Figura 1. Respuesta en el tiempo al escalón unitario de un sistema de segundo orden.

Para ello cree una función que solicite al usuario el valor de ωn y ζ de la función de transferencia del sistema y luego le indique el valor de los parámetros de la gráfica.

solución:

Digite el siguiente programa:

Sistemas de Control Automático. Guía 3

Page 11: Claves Importantes de Matlab Control

11

%************************************************************************* %Encuentra el tiempo de crecimiento, tiempo pico, sobreimpulso máximo%y tiempo de establecimiento de sistemas de segundo orden %************************************************************************* function f = param(wn,z) wn2=wn^2; num = [0 0 wn2]; v=2*z*wn; den = [1 v wn2]; t=0:0.005:5; [y,x,t]=step (num,den,t); r=1; while y(r)<1.0001; r=r+1; end format short %formato de precisión 5 digitostiempo_crecimiento = (r-1)*0.005 [ymax,tp]= max(y); tiempo_pico=(tp-1)*0.005 sobreimpulso_max= ymax-1 s=1001; while y(s)> 0.98 & y(s)<1.02; s= s-1; end; tiempo_establecimiento = (s-1)*0.005

Función de MATLAB “param.m”

No olvide guardarla con el nombre de la función en este caso con el nombre “param.m”Pruebe el programa para una función de transferencia con ωn = 5 y ζ =0.6, para ello regrese a la ventana de comandos de MATLAB y llame a la función de la siguiente forma:

>> param(5,0.6)

anote los valores obtenidos

*Tiempo de crecimiento:___________________*Tiempo pico:___________________*Sobreimpulso máximo:___________________*Tiempo de establecimiento:___________________

Al resolver los problemas que siguen, siempre prepare sus respuestas con MATLAB, deje constancia de los comandos utilizados para llegar a la respuesta, así como las modificaciones a los programas si fueron necesarias.

1. Encuentre la transformada de Laplace de las siguientes funciones:a) )()2cos()2sin()( tutttg = b) )()2sin()( 2 tuetttg t−+⋅=

2. Encuentre la antitransformada de Laplace de las siguientes funciones:

Sistemas de Control Automático. Guía 3

Análisis de Resultados

Page 12: Claves Importantes de Matlab Control

12

a) )22(

)2(10)(

2 +++=sss

ssG b) G s =

e−2s

10ss1s2

3. Obtenga una sola gráfica de respuesta escalón unitario para un sistema de segundo orden con nω = 3 y los siguientes valores de =0,0.5,1.0,1.5ζ

4. Modifique el archivo de comando prog1.m para que ahora las gráfica se obtengan de 0 a 16 segundos en lugar de 0 a 10 como estaba inicialmente.

5. Obtenga los parámetros de tiempo de crecimiento, tiempo pico, sobreimpulso máximo y tiempo de establecimiento de un sistema con la siguiente función de transferencia, obtenga tambien la respuesta al escalón unitario y compruebe que estos valores son correctos.

Investigue sobre la funcuión creada para resolver diagramas de flujo de señales utilizando la regla de Mason, llamado mason.m y disponible en: http://www.mathworks.com/MATLABcentral/fileexchange/22

y luego encuentre con este programa )(

)()(

sR

sCsT = para el sistema representado por el gráfico de flujo

siguiente:

• INGENIERÍA DE CONTROL MODERNA. Tercera Edición. Prentice Hall. Katsuhiko Ogata, Biblioteca UDB, Clasificación: Libro interno 629.8 O34 1998.

• ANÁLISIS NUMÉRICO Y VISUALIZACIÓN GRÁFICA CON MATLAB. Séptima Edición. Prentice Hall. Shoichiro Nakamura, Biblioteca UDB, Clasificación: Libro 511.7 N163 1998.

Sistemas de Control Automático. Guía 3

Bibliografía

Investigación Complementaria

G s = 9s21.8s9

Page 13: Claves Importantes de Matlab Control

13

EVALUACION

% 1-4 5-7 8-10 Nota

CONOCIMIENTO 25 Conocimiento deficiente de los siguientes procedimientos:-Introducción de una ecuación en MATLAB.-Como graficar con MATLAB.-Como ejecutar un programa en MATLAB.

Conocimiento y explicación incompleta de los procedimientos.

Conocimiento completo y explicación clara de los procedimientos.

APLICACIÓN DEL CONOCIMIENTO

70 Cumple con uno o ninguno de los siguientes criterios:-Obtiene la ganancia de polos y ceros de un sistema con MATLAB.-Obtiene la expansión en fracciones parciales de una expresión con MATLAB.-Obtiene la transformada y la antitransformada de Laplace con MATLAB.-Obtiene la respuesta y los parámetros a un escalón unitario de cualquier sistema de segundo orden mediante programas creados en MATLAB

Cumple con dos o tres de los criterios.

Cumple con los cuatro criterios.

ACTITUD 5 Es ordenado pero no hace un uso adecuado de los recursos.

Hace un uso adecuado de lo recursos, respeta las pautas de seguridad, pero es desordenado.

Hace un manejo responsable y adecuado de los recursos conforme a pautas de seguridad e higiene.

TOTAL

Guía 3: Introducción al control automático con MATLAB

Alumno:

Hoja de cotejo: 3

Docente: Fecha:GL:

Puesto No:

Sistemas de Control Automático. Guía 3