Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Matlab Tutorial Control2
Matlab Tutorial Control2
Guía 3 1
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 General
Objetivos específicos
Materiales y equipo
• 1 Computadora con sistema operativo Windows 98 o superior con el Programa MATLAB 5.2 o
superior.
Introducción teórica
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.
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.
2 Sistemas de Control Automático. Guía 3
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.
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.
Procedimiento
Parte I. Tutorial.
Funciones de transferencia:
>> 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
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
Sistemas de Control Automático. Guía 3 3
3s2
3
s 2s5
H s= 3
3s 5s 22s1
>> H=tf({[3,2];[1,0,2,5]},{[3,5,2,1];[3,5,2,1]})
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
>> Z=[-8];
>> P=[-4 -5];
>> K=3;
>> H2=zpk(Z,P,K)
Zero/pole/gain:
3 (s+8)
-----------
(s+4) (s+5)
Zero/pole/gain:
3 (s+8)
-----------
(s+4) (s+5)
Por ejemplo se desea representar el siguiente sistema de dos salidas y una entrada:
−5 ( s − 2)( s − 3)
H1 = , H2 =
s −1 s ( 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”:
− 3.4 s + 1.5
H (s) =
s − 1.6 s + 0.8
2
R =
-1.7000 + 1.5250i
-1.7000 - 1.5250i
P =
0.8000 + 0.4000i
0.8000 - 0.4000i
K =
[]
Sistemas de Control Automático. Guía 3 5
La solución es:
>> [n,d]=residue(R,P,K)
n =
-3.4000 1.5000
d =
1.0000 -1.6000 0.8000
Conversión de modelos
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.
>> 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:
6 Sistemas de Control Automático. Guía 3
>> [Yi,T]=impulse(H1,15);
>> [Ye,T]=step(H1,15);
>> plot(T,Yi,'r',T,Ye,'b')
Encuentre los factores de amortiguamiento y frecuencias naturales del siguiente sistema ante una entrada
escalón unitario (1/S):
5
H (s) =
s + 0.4 s + 1000
2
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)
Ya que el amortiguamiento de este sistema es muy pequeño, la respuesta en el tiempo será muy
oscilatoria.
Solución:
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
>> 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 caja de herramientas de matemática simbólica de MATLAB posee la función laplace e ilaplace para
8 Sistemas de Control Automático. Guía 3
5s 3 + 35s 2 + 73s + 47
G(s) =
s 4 + 9 s 3 + 29 s 2 + 41s + 20
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
>> ezplot(g,[0,15])
Ejemplo:
Encuentre la transformada de Laplace de la siguiente función:
g (t ) = (t ⋅ sin( at ) + e − at )u (t )
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 )
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 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
C s 2n
=
R s s22 n s2n
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
10 Sistemas de Control Automático. Guía 3
Ya que las variables utilizadas en los archivos de comando quedan almacenadas en el entorno de
trabajo, borrelas con el siguiente comando:
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:
• 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.
solución:
%*************************************************************************
%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 digitos
tiempo_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)
*Tiempo de crecimiento:___________________
*Tiempo pico:___________________
*Sobreimpulso máximo:___________________
*Tiempo de establecimiento:___________________
Análisis de Resultados
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.
10( s + 2) e−2s
a) G ( s ) = b) G s=
s ( s 2 + 2 s + 2) 10s s1 s2
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.
9
G s= 2
s 1.8s9
Investigación Complementaria
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
C (s)
y luego encuentre con este programa T ( s ) = para el sistema representado por el gráfico de flujo
R( s)
siguiente:
Bibliografía
Hoja de cotejo: 3
EVALUACION