Sei sulla pagina 1di 9

Prácticas de

Sistemas
de
Control de Procesos
usando MATLAB
UPSLP

Dr. Marco Gallegos


Profesor – Investigador

2016
El control automático es un tópico de extrema relevancia pero poco comprendido en los
estudiantes de pregrado de cualquier ingeniería. La importancia que implica la
conjunción de prácticamente todos los conocimientos previos debidamente estudiados
en el transcurso de su carrera es expuesta en el curso de Sistemas de Control de
Procesos.

Debido a las múltiples aplicaciones del Control en ingeniería es importante que el


estudiante conozca las herramientas de simulación y resolución de sistemas lineales que
existen en la actualidad, y sea capaz de manejarlas con el objetivo de facilitar y acelerar
su proceso de aprendizaje.

Este manual busca introducir a los estudiantes a los Sistemas de Control. Comienza con
una introducción a la solución y gráficas de sistemas lineales, utilizando primeramente
el editor de MATLAB. Posteriormente, utilizando MATLAB/SIMULINK, se podrá
revisar los sistemas de control en bloques, obtener su repuesta ante las variaciones de
entrada, perturbaciones, retroalimentación, y distintos controladores.

Las prácticas sugeridas se diseñaron para realizarse en simulación.

Dr. Marco Gallegos Prácticas de Sistemas de Control en Matlab 2


Práctica 1: Introducción a Matlab

Objetivo: Introducir al estudiante al uso de MATLAB como una herramienta para rea-
lizar cálculos matemáticos y desplegar resultados por medio de gráficas. Además definir
el concepto de un programa en MATLAB, por medio de un archivo-m para ejecutar una
serie de comandos de manera conjunta.

Material:
 Computadora Personal
 Software Matlab/Simulink

Contenido: Matlab es un software cuyo editor basa su sintaxis en notación vectorial y/o
matricial. Asimismo este software es capaz de realizar operaciones matemáticas de
análisis complejo, así como manejar tablas y graficar resultados. El comienzo de estas
prácticas será el de manejar los comandos básicos y funciones predefinidas para el
análisis de los sistemas de control.

Desarrollo:
Ejemplo 1.- Realizar operaciones aritméticas entre dos matrices

>> A=[1,4,3; 3,2,2; 3,3,1]


>> B=[2 1 1; 1 1 1; 3 1 2]
>> C=A+B
>> D=A*B
>> Ainversa=inv(A)
>> Atranspuesta=A’

Ejemplo 2.- Representación en función de transferencia, obtener las raíces de un


𝑠+3
polinomio y obtener el polinomio a partir de sus raíces ( 𝑠2 +5𝑠+6 )

>> num=[1 3]
>> den=[1 5 6]
>> G1=tf(num,den)
>> H=printsys(num,den)
>> roots(den)
>> poly(-3 -2)

𝑠+3
Ejemplo 3.- Multiplicación de polinomios ( (𝑠+4)(3𝑠−2)(2𝑠2 +5𝑠+2) )

>> a=[1 4]
>> b=[3 -2]
>> c= [2 5 2]
>> d=conv(a,b)
>> den=conv(d.c)

Dr. Marco Gallegos Prácticas de Sistemas de Control en Matlab 3


Ejemplo 4.- Descomposición en fracciones parciales
5𝑠 2 − 15𝑠 − 11 1⁄ 4 −7 −1⁄
= 3 + + + 3
𝑠 4 − 5𝑠 3 + 6𝑠 2 + 4𝑠 − 8 (𝑠 − 2) (𝑠 − 2)2 (𝑠 − 2)3 (𝑠 + 1)

>> num=[5 -15 -11]


>> den=[1 -5 6 4 -8]
>> [r,p,k]=residue(num,den)

Ejemplo 5.- Transformada de Laplace y Anti transformada de Laplace


16 40𝑠
ℒ{8𝑒 −4𝑡 𝑠𝑒𝑛(2𝑡)} = ℒ −1 { } = 40cos(5𝑡)
(𝑠+4)2 +4 𝑠 2 +25

>> syms t s
>> Y=8*exp(-4*t)*sin(2*t)
>> laplace(Y)
>> G=(40*s)/(s^2+25)
>> ilaplace(G)

Ejemplo 6.- Solución de ecuaciones diferenciales


𝑥 ′′ + 5𝑥 ′ + 6𝑥 = 2𝑒 −𝑡 𝑥(0) = 1; 𝑥 ′ (0) = 0 Sol. 𝑥(𝑡) = 𝑒 −𝑡 + 𝑒 −2𝑡 − 𝑒 −3𝑡
>> y=dsolve(‘D2x+5*Dx+6*x=2*exp(-t)’,’Dx(0)=0’,’x(0)=1’)

Ejemplo 7.- Evaluación de un polinomio en un punto

>> num=[10 5 8];


>> den=[1 4 16 4 0];
>> a=polyval(num,0)
>> b=polyval(num,inf)
>> c=polyval(num,5)

Ejercicios:
1. Resuelva el 1er examen parcial ayudándose con los comandos de MATLAB
revisados en esta práctica

Dr. Marco Gallegos Prácticas de Sistemas de Control en Matlab 4


Práctica 2: Gráficas en Matlab

Objetivo: Aprender a utilizar MATLAB analizar las respuestas de los sistemas ante
distintas entradas y graficar los resultados de manera personalizada
Material:
 Computadora Personal con Software Matlab/Simulink

Desarrollo:
 Abrir Matlab
6𝑠+4
 Definir la función de transferencia: 𝐺 = 𝑠2 +4𝑠+3
 Graficar la respuesta natural del sistema a lazo abierto, mediante el comando:
>> impulseplot(G)

 Cambiar el color de línea de la gráfica, para este ejemplo a color rojo (‘r’)
>> impulseplot(G, ‘r’)

 Graficar la respuesta, en color azul, a una entrada escalón unitario, con el


comando
>> stepplot(G,’b’)

 Graficar ambas respuestas en una sola figura, modificar el escalamiento y


etiquetas de los ejes
>> impulseplot(G,’k’)
>> hold on
>> stepplot(G,’g’)
>> axis([0 10 -6 6])
>> xlabel('Tiempo')
>> ylabel('Amplitud [Unidades]')
>> title('Gráfica las respuestas dinámicas de la función G=(6s+4)/(s^2+4s+3)')

 Graficar ambas respuestas por separado pero en una misma figura


>> figure
>> subplot(2,1,1)
>> impulseplot(G,’y’)
>> subplot(2,1,2)
>> stepplot(G,’c’)

 Determine la función de transferencia del sistema en lazo cerrado, usando el


siguiente comando:

Dr. Marco Gallegos Prácticas de Sistemas de Control en Matlab 5


Para determinar la función de transferencia del sistema con retroalimentación
negativa unitaria y almacenarla en una nueva variable utilizamos:

>> C=feedback(G1,1)

Lo que da como resultado:


6𝑠 + 4
𝐶=
𝑠2 + 10𝑠 + 7

1. Genere una función .m llamada retro.m, la cual realice la gráfica de las


respuestas impulso y escalón, para cualquier sistema de hasta segundo orden en
lazo abierto y en lazo cerrado, de la siguiente manera:
a. En el menú archivo abra una nueva función
b. Introduzca el siguiente código:
function [ output_args ] = retro(
a,b,c,d,e,f )
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
num=[a b c];
den=[d e f];
LA=tf(num,den)
LC=feedback(LA,1)

figure

subplot(2,2,1)
impulseplot(LA,'r')
axis([0 5 -2 4])
xlabel('Tiempo')
ylabel('')
title('Respuesta impulso de lazo abierto')

subplot(2,2,2)
stepplot(LA,'k')
axis([0 5 0 2])
xlabel('Tiempo')
ylabel('')
title('Respuesta escalón de lazo abierto')

subplot(2,2,3)
impulseplot(LC,'r')
axis([0 5 -2 4])
xlabel('Tiempo')
ylabel('')
title('Respuesta impulso de lazo cerrado')

subplot(2,2,4)
stepplot(LC,'k')
axis([0 5 0 2])
xlabel('Tiempo')
ylabel('')
a. title('Respuesta escalón
Guarde el programa de defunción
la nueva lazo cerrado')
en la carpeta
con la ruta actual
que se esté trabajando (Ej: C:\Program Files\MATLAB\R2011a) y
end
regrese al editor de Matlab.

Dr. Marco Gallegos Prácticas de Sistemas de Control en Matlab 6


b. Para la función de transferencia trabajada, definir: a=0, b=6, c=4, d=1,
e=4, f=3 y ejecute el nuevo comando que programó.
>> a=0;b=6;c=4;d=1;e=4;f=3;
>> retro(a,b,c,d,e,f)

Aparecerá la figura con los cuatro gráficos programados.

c. Modifique el programa de tal manera que su nombre, fecha y hora


aparezcan como etiqueta en el eje Y.

Respuesta impulso de lazo abierto Respuesta escalón de lazo abierto


4 2

1.5
2
1
0
0.5
NOMBRE, FECHA Y HORA

-2 0
0 1 2 3 4 5 0 1 2 3 4 5
Tiempo (seconds) Tiempo (seconds)

Respuesta impulso de lazo cerrado Respuesta escalón de lazo cerrado


4 2

1.5
2
1
0
0.5

-2 0
0 1 2 3 4 5 0 1 2 3 4 5
Tiempo (seconds) Tiempo (seconds)

d. Observe como fue que se hizo una nueva función .m para utilizarla a su
conveniencia en Matlab
e. La gráfica obtenida edítela para personalizarla con sus datos desde el
propio editor de la figura (Modifique colores, tipos de línea, grosor de
línea, incluya leyendas en cada figura, etc…)
Ejercicios:
1. Grafique (personalizando sus figuras con su nombre, fecha y hora de
realización) las respuestas impulso y escalón unitarios, para los siguientes
sistemas tanto en lazo abierto como en lazo cerrado.
3𝑠+2 4
i. 𝐺1 = 4𝑠2 +12𝑠+9 ii. 𝐺2 = 𝑠2 +3𝑠

7 𝑠
iii. 𝐺3 = 𝑠2 +2𝑠+8 iv. 𝐺4 = 𝑠2 +7𝑠+12

8𝑠 3𝑠
v. 𝐺5 = 𝑠2 +2𝑠 vi. 𝐺6 = 𝑠2 −2𝑠

𝑠−2 (𝑠+2)(𝑠+3)
vii. 𝐺7 = 4𝑠2 +12𝑠+9 viii. 𝐺8 = 𝑠3 +6𝑠2 +4𝑠+6

Dr. Marco Gallegos Prácticas de Sistemas de Control en Matlab 7


Práctica 3: Reducción de diagrama de bloques
Objetivo: Utilizar MATLAB como herramienta de cálculo matemático para realizar la
minimización de diagramas de bloque, utilizando los comandos: series, parallel,
feedback.

Material:
 Computadora Personal con Software Matlab/Simulink

Desarrollo:
Partiendo del siguiente diagrama de bloques
R(s) + E(s) C(s)
G1 G2
-

H1

𝑠+1 4𝑠 3
𝑑𝑜𝑛𝑑𝑒: 𝐺1 = ; 𝐺2 = ; 𝐻1 =
𝑠+6 𝑠2 + 5𝑠 + 4 𝑠2 + 2𝑠
Se utilizarán los siguientes comandos:

Num1=[1 1];
Den1=[1 6];
G1 G2 Num2=[4 0]; 4𝑠 2 + 4𝑠
Den2=[1 5 4]: 𝑇1 =
[N1,D1]=series(Num1,Den1,Num2,Den2);
𝑠3 + 11𝑠 2 + 34𝑠 + 24
T1=tf(N1,D1)

Num1=[1 1];
+ Den1=[1 6];
G1
+ Num2=[4 0]; 𝑠 3 + 10𝑠 2 + 33𝑠 + 4
Den2=[1 5 4]: 𝑇2 =
G2 𝑠 3 + 11𝑠 2 + 34𝑠 + 24
[N2,D2]=parallel(Num1,Den1,Num2,Den2);
T2=tf(N2,D2)

+ Num1=[1 1];
G1
Den1=[1 6];
-
Hnum1=[3]; 𝑠 3 + 3𝑠 2 + 2𝑠
𝑇3 =
H1
Hden1=[1 2 0]: 𝑠 3 + 8𝑠 2 + 15𝑠 + 3
[N3,D3]=feedback(Num1,Den1,Hnum1,Hden1,-1);
T3=tf(N3,D3)

𝐶(𝑠)
Por lo tanto, utilizando la tabla anterior para encontrar la función de transferencia 𝑅(𝑠)
del sistema del ejemplo, se encuentra que:

𝐶(𝑠) 4𝑠 4 + 12𝑠 3 + 8𝑠 2
= 5
𝑅(𝑠) 𝑠 + 13𝑠 4 + 56𝑠 3 + 104𝑠 2 + 60𝑠

Dr. Marco Gallegos Prácticas de Sistemas de Control en Matlab 8


Ejercicios:
1. Construya una función .m que solucione todos los diagramas de bloques del tipo
que se trabajó en el ejemplo anterior, es decir que contenga a las funciones G1 y
G2 conectadas en serie y retroalimentadas mediante la función H1. Las tres
funciones G1, G2 y G3 pueden ser con numeradores y denominadores
cuadráticos.
𝐶(𝑠)
2. Ayúdese de Matlab para encontrar la función de transferencia 𝑅(𝑠) de los
siguientes diagramas
R(s) C(s)
a) R(s) + 𝑠
C(s) b) + 𝑠+1
𝑠+4
𝑠2 + 4 𝑠 2 + 2𝑠 + 4
- 𝑠+8 -

𝑠−1
4

c) R(s) C(s)
+ 16 1
𝑠 + 0.8
+ - 𝑠
-
4

d)

-
R(s) C(s)
+ 1
𝑠 𝑠
+ 𝑠
- +
1
𝑠

e)
+ C(s)
R(s) + 5 𝑠+3
+
4 𝑠 2 + 4𝑠 + 3 + 𝑠 2 + 7𝑠 + 1
- -
-
1
𝑠+2 𝑠

Dr. Marco Gallegos Prácticas de Sistemas de Control en Matlab 9

Potrebbero piacerti anche