Está en la página 1de 13

Sistemas de Control Automático.

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)

Introducción al control automático con MATLAB

Objetivos General

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

Objetivos específicos

• 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

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.

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.
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.

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.

Procedimiento

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:


− 3.4 s + 1.5
H (s) =
s − 1.6 s + 0.8
2

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
Sistemas de Control Automático. Guía 3 3

siguiente de dos salidas y una entrada (SIMO):

3s2
3
s 2s5
H  s= 3
3s 5s 22s1

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:


3( s + 8)
H ( s) =
( s + 4)( s + 5)

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))


4 Sistemas de Control Automático. Guía 3

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:

−5 ( s − 2)( s − 3)
H1 = , H2 =
s −1 s ( s + 1)

>> 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:

− 3.4 s + 1.5
H (s) =
s − 1.6 s + 0.8
2

>> 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.4000i
0.8000 - 0.4000i

K =
[]
Sistemas de Control Automático. Guía 3 5

La solución es:

r (1) r ( 2) − 1.7000 + 1.5250 j − 1.7000 − 1.5250 j


H (s) = + = +
s − p (1) s − p (2) s − 0.8000 − 0.4000 j s − 0.8000 + 0.4000 j

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:


− 3.4 s + 1.5
H (s) =
s − 1.6 s + 0.8
2

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:
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')

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 naturales
dcgain: 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):

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)

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 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
8 Sistemas de Control Automático. Guía 3

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.

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

+ 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:

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 )

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 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 s22 n s2n
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

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 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 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)

anote los valores obtenidos

*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.

1. Encuentre la transformada de Laplace de las siguientes funciones:


a) g (t ) = sin( 2t ) cos( 2t )u (t ) b) g (t ) = (t ⋅ sin 2t + e −2t )u (t )

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


12 Sistemas de Control Automático. Guía 3

10( s + 2) e−2s
a) G ( s ) = b) G  s=
s ( s 2 + 2 s + 2) 10s s1 s2

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.8s9

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

• 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 13

Hoja de cotejo: 3

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

Alumno: Puesto No:

Docente: GL: Fecha:

EVALUACION

% 1-4 5-7 8-10 Nota


CONOCIMIENTO 25 Conocimiento Conocimiento y Conocimiento completo
deficiente de los explicación incompleta y explicación clara de
siguientes de los procedimientos. los procedimientos.
procedimientos:
-Introducción de una
ecuación en MATLAB.
-Como graficar con
MATLAB.
-Como ejecutar un
programa en MATLAB.
APLICACIÓN DEL 70 Cumple con uno o Cumple con dos o tres Cumple con los cuatro
ninguno de los de los criterios. criterios.
CONOCIMIENTO
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
ACTITUD 5 Es ordenado pero no Hace un uso adecuado Hace un manejo
hace un uso adecuado de lo recursos, respeta responsable y adecuado
de los recursos. las pautas de seguridad, de los recursos
pero es desordenado. conforme a pautas de
seguridad e higiene.
TOTAL

También podría gustarte