Beruflich Dokumente
Kultur Dokumente
Equipo LabCon
2014
I NDICE GENERAL
1. MatLab
1.1. Antecedentes . . . . . . . . . . . . . . . . . . . . . .
1.1.1. Objetivo General . . . . . . . . . . . . . . . .
1.1.2. Objetivos Especficos . . . . . . . . . . . . . .
1.2. Prepractica . . . . . . . . . . . . . . . . . . . . . . .
1.2.1. Escritorio de MatLab . . . . . . . . . . . . . .
1.2.2. Operaciones Matematicas Basicas . . . . . . .
1.2.3. Manipulacion de Matrices . . . . . . . . . . .
1.2.4. Algebra Lineal . . . . . . . . . . . . . . . . .
1.2.5. Graficos en 2D . . . . . . . . . . . . . . . . .
1.2.6. Instrucciones de Control de Flujo de programa
1.2.7. Funciones Complementarias . . . . . . . . . .
1.2.8. Toolbox de Control . . . . . . . . . . . . . . .
1.2.9. Toolbox Simbolico . . . . . . . . . . . . . . .
2. Simulink
2.1. Antecedentes . . . . . . . . . . . . . . .
2.1.1. Objetivo General . . . . . . . . .
2.1.2. Objetivos Especficos . . . . . . .
2.2. Prepractica . . . . . . . . . . . . . . . .
2.2.1. Ejemplo Basico . . . . . . . . . .
2.2.2. Biblioteca de Bloques de Simulink
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
1
1
2
2
4
8
12
13
16
17
19
23
.
.
.
.
.
.
26
26
26
26
27
29
40
I NDICE DE FIGURAS
.
.
.
.
.
.
.
.
.
.
.
.
2
4
7
9
9
11
15
18
19
21
22
25
Biblioteca de Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modelo Nuevo en Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Circuito RLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bloques para la simulacion del circuito RLC . . . . . . . . . . . . . . . . . . . . . .
Modelo construido para la simulacion del circuito RLC . . . . . . . . . . . . . . . .
Resultado de las simulaciones al cambiar escalas y duracion. . . . . . . . . . . . . .
Modelo y configuracion de parametros del circuito RLC usando variables de estado .
Simulacion del circuito RLC usando variables de estado . . . . . . . . . . . . . . . .
Modelo y configuracion de parametros del circuito RLC usando funcion de transferencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.10. Simulacion del circuito RLC usando funcion de transferencia . . . . . . . . . . . . .
2.11. Cuadro de configuracion del bloque Zero-Pole . . . . . . . . . . . . . . . . . . . . .
2.12. Cuadro de configuracion del bloque Integrator . . . . . . . . . . . . . . . . . . . . .
2.13. Cuadro de configuracion del bloque Transport Delay . . . . . . . . . . . . . . . . .
2.14. Cuadro de configuracion del bloque Saturation . . . . . . . . . . . . . . . . . . . . .
2.15. Cuadro de configuracion del bloque Gain . . . . . . . . . . . . . . . . . . . . . . .
2.16. Cuadro de configuracion del bloque Sum . . . . . . . . . . . . . . . . . . . . . . . .
2.17. Cuadro de configuracion del bloque Product . . . . . . . . . . . . . . . . . . . . . .
27
28
29
30
34
35
36
37
2.1.
2.2.
2.3.
2.4.
2.5.
2.6.
2.7.
2.8.
2.9.
II
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
39
40
42
44
45
46
47
49
50
LABORATORIO DE CONTROL AUTOMATICO
2.18.
2.19.
2.20.
2.21.
2.22.
2.23.
2.24.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
51
52
53
54
55
56
58
III
I NDICE DE TABLAS
IV
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
5
6
8
10
11
13
14
16
17
17
20
23
24
MatLab
1.1.
Antecedentes
MatLab (Matrix Laboratory) es un programa altamente usado tanto a nivel academico, cientfico
y profesional por la facilidad que ofrece para resolver diferentes tipos de problemas matematicos
aplicados a las diferentes ramas de las ciencias e ingieneras; es decir, permite realizar simulaciones
del funcionamiento de sistemas de diferentes tipo. De ah la importancia que los estudiantes se familiaricen con esta poderosa herramienta que les facilitara la realizacion de calculos y simulaciones a
lo largo de su vida estudiantil.
La versatilidad de MatLab se debe a la gran cantidad de toolboxes que posee y de los cuales en
este curso se hara e nfasis en: Control Toolbox(Toolbox de Control) y Symbolic Toolbox(Toolbox
Simbolico). El Toolbox de Control proporciona herramientas para analizar y disenar sistemas de
control automatico representados a traves de funciones de transferencia o de espacio de estados.
Adicionalmente, el Toolbox Simbolico permite obtener la respuesta algebraica(literal) de problemas
matematicos.
1.1.1.
Objetivo General
Familiarizar al estudiante con las operaciones, funciones basicas de MatLab asociadas a la Ingienera de Control.
1.1.2.
Objetivos Especficos
LABORATORIO DE CONTROL AUTOMATICO
1.2.
Prepractica
Cuando se ejecuta MatLab se abre una ventana como la que se muestra en la Figura 1.1 que es el
escritorio de MatLab y es el punto de partida para usar las distintas caractersticas de la aplicacion
como la creacion y edicion de funciones, scripts y modelos.
1.2.1.
Escritorio de MatLab
LABORATORIO DE CONTROL AUTOMATICO
Ventana de Comandos: Es el panel con el ttulo Command Window en esta a rea se pueden escribir las funciones o comandos que se desean ejecutar y se muestran sus resultados de ser el
caso.
Directorio Actual: Es el panel con el ttulo Current Directory y muestra los archivos y directorios
(carpetas) del directorio en el que se esta trabajando.
Espacio de Trabajo: Es el panel con el ttulo Workspace y es donde se muestran las variables
existentes en memoria e informacion sobre e stas.
Historial de Comandos: Es el panel con el ttulo Command History y contiene un listado agrupado por sesion de trabajo de los comandos y funciones ejecutados, pero no incluye las acciones
ejecutadas con los botones y menus del escritorio.
Desde la barra de herramientas se puede abrir el editor de programas de MatLab y la biblioteca de
bloques de Simulink. El uso basico del editor de programas es escribir scripts o funciones, mientras
que desde la biblioteca de bloques se puede abrir el editor de modelos de Simulink para costruir los
sistemas que se van a simular en un ambiente grafico donde los bloques representan las funciones a
ejecutarse.
Los tres elementos mencionados anteriormente: scripts, funciones y modelos, permiten al usuario
de MatLab-Simulink resolver problemas de analisis y simulacion de diferentes problemas. Aunque,
estos elementos pueden ser usados individualmente o en conjunto, es necesario distinguir sus caractersticas.
Script: Es un archivo con un listado de instrucciones de MatLab y cuya extension es .m. El archivo
puede ser ejecutado pero se debe tener presente que trabajara con el Workspace global del
MatLab tal como si se estuvieran ejecuntando las instrucciones desde la Ventana de Comandos
del MatLab.
Funcion: Es un archivo similar al script pero tiene un encabezado que debe cumplir ciertas normas
para que MatLab reconozca la funcion. Otra diferencia muy importante es que cuando se llama
a una funcion para su ejecucion, MatLab crea un Workspace privado para la funcion donde se
crean las variables que la funcion utilizara, pero este Workspace se elimina cuando se termina
la ejecucion de la funcion.
Modelo: Es un archivo con uno o varios bloques, generalmente interconectados, creado en Simulink
y con extencion .mdl. Usualmente, estos modelos se los ejecuta desde Simulink, aunque
existen funciones para ejecutarlos desde MatLab.
ADVERTENCIA:
Cuando en un mismo directorio existen archivos con el mismo nombre pero con extensiones .m y
.mdl, al tratar de ejecutar uno de ellos MatLab dara prioridad al archivo .mdl
3
LABORATORIO DE CONTROL AUTOMATICO
1.2.2.
El primer paso para realizar las operaciones basicas en MatLab es definir matrices y escalares.
Para definir una matriz se debe abrir un corchete, luego escribir los valores por fila de izquierda a
derecha separados por una coma o espacios indicando el cambio de fila con el smbolo ; y despues
del u ltimo valor cerrar corchete.
Construir
en MatLab
la matriz:
2 5 3
4 0 1
6 8 7
Se puede escribir:[2,5,3; 4,0,1;6,8,7]
o reemplazando las comas por espacios [2 5 3; 4 0 1; 6 8 7]
pero si se desea asignar1 la matriz a una variable se podra que escribir:
A = [2,5,3; 4,0,1;6,8,7]
ADVERTENCIA:
Las variables pueden tomar los nombres de constantes o funciones del MatLab pero en ese caso estas
constantes o funciones ya no pueden ser usadas hasta que las variables creadas sean eliminadas.
1 El
smbolo = se usa para asignar algo (valores, objetos, etc.) a una variable.
LABORATORIO DE CONTROL AUTOMATICO
break
continue
for
otherwise
spmd
case
else
function
parfor
switch
catch
elseif
global
persistent
try
classdef
end
if
return
while
Sintaxis
ones(n)
Observaciones
Crea una matriz de n filas por n columnas donde todos sus
elementos son 1.
ones
ones(m,n) Crea una matriz de m filas por n columnas donde todos sus
elementos son 1
zeros
zeros(n)
Crea una matriz de n filas por n columnas donde todos sus
elementos son 0.
zeros
zeros(m,n) Crea una matriz de m filas por n columnas donde todos sus
elementos son 0.
eye
eye(n)
Crea una matriz identidad de n filas por n columnas.
Los resultados de estas funciones tambien pueden ser asignados a variables.
Tabla 1.2: Funciones para crear matrices especiales.
Ademas, se pueden construir matrices usando las funciones: ones, zeros, eye usando la sintaxis
mostrada de estas funciones en la Tabla 1.2
En la Tabla 1.3 se muestran los operadores basicos de MatLab y las versiones punto que permiten
operar sobre los elementos de las matrices y en la Figura 1.3 algunos ejemplos de su uso mostrando
los resultados.
LABORATORIO DE CONTROL AUTOMATICO
Operador
+
Operacion
Suma
Uso
A+B
Resta
A-B
Producto
A*B
.*
Producto
A.*B
Potencia
Potencia
AB
A.B
/
./
\
.\
Division
Division
Division
Division
A/B
A./B
A\B
A.\B
Observaciones
Si uno de los operandos es un escalar, lo opera
con todos los elementos del otro operando.
Si uno de los operandos es un escalar, lo opera
con todos los elementos del otro operando.
Si uno de los operandos es un escalar, realiza producto escalar por matriz caso contrario
producto de matrices.
Multiplica los elementos en las posiciones de
A y B que son matrices de igual dimension.
Eleva A a la potencia B (AB ).
Eleva cada uno de los elementos de A a la potencia B ([aBij ]).
A/B = A B1
A./B = A. B.1
A\B = A1 B
A.\B = A.1 . B
LABORATORIO DE CONTROL AUTOMATICO
>>A*D
ans =
7
18
>>A.*B
ans =
2
1
6
6
>>A\D
ans =
5
-2
>>B./A
ans =
2.0000
1.5000
1.0000
0.6667
LABORATORIO DE CONTROL AUTOMATICO
1.2.3.
Manipulacion de Matrices
Despues de crear una matriz pueden darse diferentes circunstancias en las cuales se necesite accesar a una posicion, fila, columna o bloque especficos de una matriz para leer, escribir o eliminar
valores; y esto se lo puede realizar con las instrucciones mostradas en las Tablas 1.4, 1.5, 1.6.
Adicionalmente, se muestran varios ejemplos del uso de las instrucciones de lectura, escritura o
eliminacion de valores en las matrices en las Figuras 1.4, 1.5, 1.6.
Instruccion
Descripcion
Observaciones
b = A(pos)
Copia en b el valor en la
posicion pos de la variable A.
b = A(fila,col)
Copia en b el valor en la
posicion ( f ila, col ) de la
variable A.
Copia en b la columna col
de la variable A.
b = A(:,col)
b = A(fila,:)
b = A( f ila1: f ila2,col1:col2)
LABORATORIO DE CONTROL AUTOMATICO
>>A(fila,:) = C
A=
2
1
2 10
>>B(:,col) = D
B=
2 3
3 5
>>D(:,col+2) = A(:,col)
D=
3 0 0
1
5 0 0 10
LABORATORIO DE CONTROL AUTOMATICO
Instruccion
Descripcion
Observaciones
A(pos) = b
A(fila,col) = b
Copia en la posicion
( f ila, col ) de la variable
A el valor de b.
A(:,col) = b
A(fila,:) = b
A(fila1:fila2,col1:col2) = b
10
LABORATORIO DE CONTROL AUTOMATICO
Ejemplo
A= []
A(pos) = []
Descripcion
Observaciones
A(:,col) = []
A(fila,:) = []
11
LABORATORIO DE CONTROL AUTOMATICO
1.2.4.
Algebra Lineal
LABORATORIO DE CONTROL AUTOMATICO
null(A)
orth(A)
N= null(A)
O= orth(A)
Los vectores y valores propios de una matriz cuadrada se pueden obtener usando la funcion eig.
La sintaxis es:
eig(A)
r = eig(A)
[r,V] = eig(A)
Adicionalmente, para obtener los coeficientes del polinomio caracterstico de una matriz cuadrada
se puede usar la funcion poly.
1.2.5.
Graficos en 2D
Las funciones mas usadas para realizar graficos en 2D son: plot y stem. La funcion plot sirve para
trazar curvas en el plano cartesiano a partir de la union, con segmentos, de una serie de puntos (x, y)
y sus formas mas basica pueden verse en la Tabla 1.7 . En cambio, para graficar los puntos (x, y) en
el plano cartesiano se usa la funcion stem.
plot(A,opciones)
plot(x,y,opciones)
plot(x,Y,opciones)
LABORATORIO DE CONTROL AUTOMATICO
Caracter
k
y
m
c
r
g
b
w
Caracter
:
-.
--
Color
negro (blacK)
amarillo (Yellow)
Magenta
celeste (Cyan)
rojo (Red)
verde (Green)
azul (Blue)
blanco (White)
Estilo
lnea continua
lnea punteada
lnea barra-punto
lnea discontinua
Caracter
d
.
o
x
+
*
s
v
>
<
p
h
Marcador
rombo (Diamond)
punto
crculo
equis
mas
asteriscos
cuadrado (Square)
triangulo hacia arriba
triangulo hacia abajo
triangulo hacia la derecha
triangulo haca la izquierda
estrella de 5 puntas (Pentagram)
estrella de 6 puntas (Hexagram)
14
LABORATORIO DE CONTROL AUTOMATICO
x = [-2:0.1:2];
y = x.^2-1;
Y = [y 2*y y-x];
figure(1)
subplot(2,2,1)
plot(y,ko-) %k =>color negro
%o =>marcador circular
%- =>linea continua
grid on
title(Ejemplo 1)
xlabel(Indice)
ylabel(Valor)
subplot(2,2,2)
plot(Y,--) %-- =>linea entrecortada
grid on
title(Ejemplo 2)
xlabel(Fila)
ylabel(Valor)
legend(Columna1,Columna2,Columna3)
subplot(2,2,3)
plot(x,y,rv-) %r =>color rojo
%v =>marcador triangular
inferior
%- =>linea continua
grid on
title(Ejemplo 3)
xlabel(x)
ylabel(y)
subplot(2,2,4)
plot(x,Y) %opciones asumidas por
omisi
on
grid on
title(Ejemplo 4)
xlabel(x)
ylabel(Y)
legend(Columna1,Columna2,Columna3)
15
LABORATORIO DE CONTROL AUTOMATICO
figure()
figure(b)
subplot(i,j,k)
grid on
grid off
title(Titulo del Grafico)
xlabel(Titulo de las X)
ylabel(Titulo de las Y)
legend(curva1,curva2,...)
1.2.6.
Las instrucciones de control de flujo de programa son aquellas que permiten decidir que parte del
programa se va a ejecutar dependiendo del cumplimiento de ciertas condiciones. Estas instrucciones
permiten crear condicionales y lazos.
La primera instruccion de control de flujo que se analizara es if/elseif/else/end que permite tomar
la decision de que parte del codigo del programa se ejecutara y tiene la siguiente sintaxis:
if expresion
instrucciones
elseif expresion
instrucciones
else
instrucciones
end
En la sintaxis de la clausula if/elseif/else/end usar elseif/else es opcional pero if/end es obligatorio. La idea tras esta clausula es: si la expreson es verdadera entonces se ejecutan las instrucciones
siguientes caso contrario se salta hasta la siguiente clausula y se repite el proceso hasta llegar a la
clausula end. Sin embargo, si llega a la clausula else se ejecutan sus instrucciones directamente ya
que en esta clausula no hay expresion que evaluar. Frecuentemente, expresion esta formada de comparaciones y/u operaciones logicas, de las cuales las principales se muestran las Tablas 1.10 y 1.11.
16
LABORATORIO DE CONTROL AUTOMATICO
Smbo
>
<
>=
<=
==
=
Significado
Mayor que,
Menor que,
Mayor o igual que,
Menor o igual que,
Igual,
Diferente.
Significado
Y,
O,
No.
1.2.7.
Funciones Complementarias
En matlab existen algunas funciones muy u tiles para trabajar con polinomios en los que la parte
literal tiene una sola variable. Para este fin, los coeficientes de un polinomio deben ser listados en un
vector fila de izquierda a derecha empezando con el coeficiente de la parte literal de mayor orden y
finalizando con el termino independiente. Entre estas funciones estan: root, conv, polyval y en la
Figura 1.8 se puede ver ejemplos del uso de ellas .
17
LABORATORIO DE CONTROL AUTOMATICO
>>p1 = [1 2 -8]
p1 =
1 2 -8
>>p2 = [2 4 5 1]
p2 =
2 4 5 1
>>conv(p1,p2)
ans =
2 8 -3 -21
>>p3=conv(p1,p2)
p3 =
2 8 -3 -21
-38
-8
-38
-8
>>x = roots(p1)
x =
-4
2
>>y =polyval(p3,2)
y =
0
>>y =polyval(p3,4)
y =
3408
LABORATORIO DE CONTROL AUTOMATICO
var1, var2 y as todas las listadas. En cambio la segunda forma del comando clear elimina todas las
variables de la memoria.
En la Figura 1.9 se muestran dos ejemplos de script usando instrucciones de MatLab.
Script
%script para verificar si un n
umero es perfecto
%===============================================
%Limpia variables del Workspace
clear all
%Limpia la Ventana de Comandos
clc
%Pide que se ingrese el n
umero
a = input(Ingrese un n
umero entero mayor que 1: );
%Inicializa el acumulador
s = 0;
if a>1
%Si a es mayor que 1, suma sus divisores
for i = 1:a-1
if mod(a,i) == 0
s = s+i;
end
end
end
%Si la suma de los divisores es igual al n
umero ingresado
if s==a
display(El n
umero es perfecto);
else
display(El n
umero NO es perfecto);
end
Resultado
Primera corrida:
Ingrese un n
umero entero mayor que 1: 20
El n
umero NO es perfecto
Segunda corrida:
Ingrese un n
umero entero mayor que 1: 6
El n
umero es perfecto
1.2.8.
Toolbox de Control
El Toolbox de Control nos permite trabajar basicamente con sistemas representados en espacio de
estados 2 o funcion de transferencia. Ademas, el toolbox provee herramientas para disenar sistemas
de control aplicando las diferentes tecnicas que se estudian en el curso de Control Automatico y se
analizaran en otros captulos.
En este captulo se revisaran funciones para realizar los siguientes grupos de acciones:
Representacion de sistemas LTI 3 SISO 4 usando funciones de transferencia o espacio de estados.
2A
19
LABORATORIO DE CONTROL AUTOMATICO
Interconexion
Serie
Paralelo
Paralelo
Retroalimentacion negativa
Retroalimentacion positiva
Sintaxis Funcion
series(sys1,sys2)
parallel(sys1,sys2)
parallel(sys1,-sys2)
feedback(sys1,sys2)
feedback(sys1,sys2,+1)
Sintaxis Operador
sys1 * sys2
sys1 + sys2
sys1 - sys2
bloque es la representacion grafica de un sistema y puede tener asociado una funcion de transferencia o una
representacion en espacio de estados.
20
LABORATORIO DE CONTROL AUTOMATICO
(a) Serie
(b) Paralelo
(c) Retroalimentacion
21
LABORATORIO DE CONTROL AUTOMATICO
Reduzca el sistema mostrado usando algebra de bloques sabiendo que:
G1 =
3s + 6
s2 + 5s + 4
G2 =
s+4
4
2(s + 5)
G3 = 2
G4 =
s+3
s + 3s + 2
(s + 3)(s + 6)
Luego, obtenga sus polos y ceros y grafique la respuesta a una entrada escalon y a una entrada
impulso.
22
LABORATORIO DE CONTROL AUTOMATICO
Sintaxis
pole(sys)
p = pole(sys)
zero(sys)
z = zero(sys)
pzmap(sys)
[num,den] = tfdata(sys,v)
[A,B, C, D] = ssdata(sys)
Comentario
Calcula los polos de un sistema. El argumento sys puede ser
una funcion de transferencia o un espacio de estados.
Ademas, sys puede ser una variable o una funcion constructora
de sistemas lineales (tf, zpk, ss).
Calcula los ceros de un sistema. El argumento sys puede ser
una funcion de transferencia o un espacio de estados.
Ademas, sys puede ser una variable o una funcion constructora
de sistemas lineales (tf, zpk, ss).
Grafica los polos y ceros de u sisema en el plano complejo.
El argumento sys puede ser una variable o una funcion constructora de sistemas lineales (tf, zpk, ss).
Obtiene los coeficientes de los polinomios del numerador y del
denominador y los escribe en las variables num y den.
Obtiene las matrices que definen el espacio de estado sys y los
escribe en las variables A, B, C, D.
1.2.9.
Toolbox Simbolico
Este toolbox permite obtener respuestas algebraicas de problemas. Para alcanzar este objetivo es
necesario primero crear una variable simbolica, luego se construyen expresiones y funciones simbolicas, y finalmente se utilizan las funciones para resolver los problemas. La sintaxis de las funciones
se muestran en la Tabla 1.14 y algunos ejemplos de uso en la Figura 1.12.
23
LABORATORIO DE CONTROL AUTOMATICO
Sintaxis
syms var1 var2 . . .
solve(expresion)
solve(expresion,var1)
diff(expresion,var1)
int(expresion,var1)
subs(expresion,viejo,nuevo)
ezplot(expresion)
Descripcion
Construye
las
variables
simbolicas var1 var2 y
as sucesivamente todas las
variables listadas.
Si expresion es una funcion
calcula los ceros, pero si es
una ecuacion calcula sus soluciones.
Despeja la variable var1 en la
ecuacion ingresada en expresion.
Calcula la derivada de expresion respecto de la variable
var1.
Calcula la integral de expresion respecto de la variable
var1.
Reemplaza viejo con nuevo
en expresion
Grafica expresion en el plano
cartesiano.
Comentario
24
LABORATORIO DE CONTROL AUTOMATICO
25
Simulink
2.1.
Antecedentes
Simulink es una interfaz grafica que esta incluida dentro del programa MatLab para realizar simulaciones de manera muy sencilla porque se pueden expresar las ecuaciones que modelan un sistema
mediante la interconexion de bloques configurables.
Otra caracterstica importante del Simulink, es que puede realizar simulaciones aplicando distintos metodos numericos para sistemas continuos o discretos, e incluso se puede interactuar con
hardware en tiempo real.
Como resultado de las caractersticas mencionadas del Simulink, los estudiantes pueden realizar,
con relativa facilidad, simulaciones de los controladores disenados y de los sistemas estudiados, para
confirmar los resultados predichos en sus analisis.
2.1.1.
Objetivo General
2.1.2.
Objetivos Especficos
Introducir al estudiante en el manejo de las bibliotecas y bloques mas utilizados en los modelos
de Simulink.
Entender las formas de transferir datos entre el workspace de Matlab y Simulink.
Conocer los principales parametros de configuracion de una simmulacion.
26
LABORATORIO DE CONTROL AUTOMATICO
2.2.
Prepractica
Estando dentro de MatLab, para trabajar con Simulink, lo mas comun es que primero se abra la
biblioteca de Simulink, lo que se puede realizar de varias formas:
En el Command Window, ejecutar el comando simulink.
Hacer click en el boton
LABORATORIO DE CONTROL AUTOMATICO
categoras y subcategoras que agrupan los bloques de Sinulink. De estas categoras, para el curso de
control automatico, nos vamos a enfocar en:
Simulink:
Continuous.
Math Operation.
Signal Routing.
Sinks.
Sources.
Control System Toolbox.
A continuacion, para abrir un modelo en blanco hay que hacer click en el boton
, con lo cual
se abrira una nueva ventana con un a rea de trabajo que parece un lienzo en blanco como se nuestra
28
LABORATORIO DE CONTROL AUTOMATICO
en la Figura 2.2. En esta a rea de trabajo se construira el modelo del sistema que se desea simular
agregando elementos desde la biblioteca de Simulink u otros modelos, e interconectandolos.
20
+
5V
vC
100 F
800 mH
iL
2.2.1.
Ejemplo Basico
A continuacion se modelara y simulara el sistema mostrado en la Figura 2.3. Para este fin, se
plantean las ecuaciones 2.1 y 2.2 que rigen del sistema.
v vC
20
= 0,0001
vC = 0,8
dvC
+ iL
dt
diL
dt
(2.1)
(2.2)
A continuacion, para facilitar la construccion del modelo en Simulink, se despejaran las derivadas
en las ecuaciones 2.1 y 2.2.
v vC
iL
10000
20
1,25vC
dvC
dt
diL
=
dt
(2.3)
(2.4)
El siguiente paso es construir las ecuaciones 2.3 y 2.4 usando los siguientes bloques de Simulink:
Step: Se encuentra en Simulink/Sources. Se lo usara para representar la fuente de voltaje.
Gain: Localizado en Simulink/Math Operation. Servira para implementar las constantes que multiplican a las variables, por lo tanto se requerira de tres de estos bloques.
29
LABORATORIO DE CONTROL AUTOMATICO
Sum: Ubicado en Simulink/Math Operation. Se lo uitlizara para representar sumas o restas. Se
necesitaran dos de e stos.
Integrator: Esta en Simulink/Continuous. Con este bloque se podra obtener la variable a partir
de su derivada, por lo cual se usaran dos.
Scope: Ubicado en Simulink/Sinks. Se lo usara para visualzar el comportamiento de iL .
Con la definicion los bloques requeridos para construir el modelo en Simulink, es mas facil proceder a agregarlos en el modelo nuevo desde la biblioteca y se los puede organizar como se muestra
en la Figura 2.4.
LABORATORIO DE CONTROL AUTOMATICO
LABORATORIO DE CONTROL AUTOMATICO
Sumadores: Ambos bloques sum deben trabajar como diferencia, y para lograr e sto se edita la
lista de signos.
32
LABORATORIO DE CONTROL AUTOMATICO
En este bloque, cuando se desee dejar un espacio adicional entre los signos se usa el caracter |.
Ademas, se debe tener en cuenta que los bloques no mencionados son los que no requieren configuracion adicional para el desarrollo del ejemplo.
A continuacion se conectaran los bloques, para lo cual el procedimiento mas sencillo es presionar
el boton izquierdo del mouse en la entrada de un bloque y arrastrar hasta la salida de otro o hasta
algun hilo que transporte la senal deseada. Luego de realizar todas las conexiones el modelo debe
lucir como se muestra en la figura 2.5.
33
LABORATORIO DE CONTROL AUTOMATICO
34
LABORATORIO DE CONTROL AUTOMATICO
35
LABORATORIO DE CONTROL AUTOMATICO
Figura 2.7: Modelo y configuracion de parametros del circuito RLC usando variables de estado
36
LABORATORIO DE CONTROL AUTOMATICO
vC
500 10000 vC
500
=
+
v
iL
1,25
0
iL
0
vC
iL = 0 1
+ 0v
iL
(2.5)
(2.6)
A partir de las ecuaciones 2.5 y 2.6 se concluye que los valores de las matrices A, B,C, D son:
A =
B =
C =
D =
500 10000
1,25
0
500
0
0 1
[0]
(2.7)
(2.8)
(2.9)
(2.10)
Con los valores obtenidos de las matrices A, B,C, D se puede usar el bloque State-Space en la
categora Simulink/Continuous y el modelo en Simulink lucira como en la figura 2.7a. Ademas, la
configuracion de los parametros del bloque se pueden observar en la figura 2.7b y el resultado de la
37
LABORATORIO DE CONTROL AUTOMATICO
simulacion se lo puede ver en la figura 2.8.
Otra forma de realizar la simulacion del circuito RLC mostrado es obteniendo la funcion de transferencia aplicando la transformada de Laplace a las ecuaciones diferenciales y despejando la salida
deseada respecto de la entrada; en este caso la salida es iL y la entrada es v.
V VC
10000
IL
= sVC
20
1,25VC = sIL
500V 10000IL
1,25
= sIL
s + 500
625V = IL (s2 + 500s + 12500)
625
V (s)
IL (s) =
s2 + 500s + 12500
625
G(s) = 2
s + 500s + 12500
(2.11)
(2.12)
(2.13)
(2.14)
(2.15)
(2.16)
La ecuacion 2.16 sirve para simular el circuito RLC usando el bloque Transfer-Fcn. En la figura
2.9a se puede observar el modelo construido en Simulink, mientras, que en la figura 2.9b los parametros de configuracion del bloque Tranfer Fcn y en la figura 2.10 el resultado de la simulacion.
Se debe anadir, que al configurar los bloques se pueden usar variables presentes en el workspace
o funciones de MatLab en los cuadros de texto lo cual permite la interaccion entre scripts de MatLab
y modelos de Simulink.
Adicionalmente, en caso de que no se haya notado, cuando se abre el cuadro de dialogo para configurar un bloque se puede ver que el texto en la barra de ttulo incluye el nombre del bloque que se
esta configurando.
38
LABORATORIO DE CONTROL AUTOMATICO
Figura 2.9: Modelo y configuracion de parametros del circuito RLC usando funcion de transferencia
39
LABORATORIO DE CONTROL AUTOMATICO
2.2.2.
Ahora que ya se tiene una idea de como trabajar en Simulink, se revisaran los bloques mas usados
en este curso agrupados por categora.
Categora Simulink/Continuous
En esta categora estan los bloques que representan cambios continuos en el tiempo y que generalmente pueden ser expresados matematicamente como ecuaciones diferenciales. En esta categora
los bloques mas usados son:
Transfer fcn:
Sirve para implementar funciones de transferencia donde se conocen los coeficientes de los
polinomios del numerador y del denominador. Los parametros que generalmente se configuran
en este bloque son:
40
LABORATORIO DE CONTROL AUTOMATICO
Numerator coefficients Coeficientes del numerador:
Puede ser un vector o una matriz con los coeficientes de los polinomios del numerador.
La cantidad de elementos en la salida es igual al numero de filas en este parametro.
Denominator coefficients Coeficientes del denominador:
Es un vector con los coeficientes del polinomio del denominador.
Los polinomios del numerador y del denominador son polinomios de potencias de s ordenadas descendentemente. El cuadro de dialogo pude verse en la figura 2.9b.
Zero-Pole:
Se utiliza para implementar una funcion de transferencia cuando se conocen los polos y ceros
de e sta. Los parametros que usualmente se configuran son:
Zeros Ceros:
Puede ser un vector o una matriz con los ceros de la funcion de transferencia. La cantidad de elementos en la salida es igual al numero de columnas en este parametro pero si
solamente tiene una fila entonces tiene una salida.
Poles Polos:
Es un vector con los polos de la funcion de transferencia.
Gain Ganacia:
Es un vector con las ganancias de las funciones de transferencia.
En la figura 2.11 se puede observar el cuadro de configuracion de este bloque.
41
LABORATORIO DE CONTROL AUTOMATICO
State-Space:
Este bloque sirve para implementar un sistema en variables de estado y se debe conocer las matrices A, B, C, D que definen el sistema. Ademas, este bloque tiene la gran ventaja de permitir
la representacion de sistemas de multiples entradas y multiples salidas con un solo bloque. El
cuadro de configuracion se lo puede observar en la figura 2.7b y los parametros que generalmente se configuran son:
42
LABORATORIO DE CONTROL AUTOMATICO
A:
Matriz de estados.
B:
Matriz de entradas.
C:
Matriz de salidas.
D:
Matriz de transmision directa.
Integrator:
Con este bloque se puede calcular la integral de una se nal escalar o de un vector de se nales.
En la figura 2.12 se puede observar el cuadro de configuracion del bloque, pero los campos
que mas comunmente editados son:
Initial conditionCondicion inicial:
Es una constante o un vector con los valores de las condiciones iniciales de integracion
de las senales que entran al bloque. Solo es editable cuando en el campo Initial condition source esta seleccionado el elemento internal que es la opcion seleccionada por
omision.
Limit outputLimitar salida:
Es un cuadro de seleccion para habilitar la saturacion de la salida del integrador.
Upper saturation limitLmite superior de la saturacion:
Es un escalar o un vector que indican las salidas maximas del integrador.
Lower saturation limitLmite inferior de la saturacion:
Es un escalar o un vector que indican las salidas mnimas del integrador.
43
LABORATORIO DE CONTROL AUTOMATICO
Transport Delay:
Este bloque permite implementar retraso en el tiempo para una senal. El cuadro de configura44
LABORATORIO DE CONTROL AUTOMATICO
cion se lo muestra en la figura 2.13 y los campos que generalmente se editan son:
Time delayTiempo de retraso:
Es el tiempo que tiene que transcurrir para que en la salida del bloque se vean los valores
que fue tomando la entrada.
Initial outputSalida inicial:
Es el valor que tomara la salida del bloque mientras el tiempo de simulacion sea menor
al tiempo de retraso.
45
LABORATORIO DE CONTROL AUTOMATICO
Categora Simulink/Discontinuities
En esta categora estan algunos bloques que pueden generar saltos y otros que simplemente tienen
no linealidades, pero en este documento solo se analiza el bloque Saturation.
Saturation:
Este bloque sirve para limitar los valores que puede tomar una senal entre un maximo y un
nimo. El cuadro de configuracion de este bloque puede verse en la figura 2.14. Los parametros
que generalmente se configuran en este bloque son:
46
LABORATORIO DE CONTROL AUTOMATICO
Lower limitLmite inferior:
Es un escalar o un vector con los valores mnimos que pueden tomar las senales que entran al bloque.
Gain:
Este bloque sirve para implementar la multiplicacion de un escalar o una matriz por la senal
de entrada. Los parametros mas comunmente configurados son:
47
LABORATORIO DE CONTROL AUTOMATICO
MultiplicationMultiplicacion: Es una lista desplegable donde se escoge el tipo de multiplicacion que se usara:
Element-wise: Sirve para multiplicar la los elementos de la matriz ingresada en
Gain por los elementos de la entrada.
Matrix(K*u): Se lo utiliza para realizar la multiplicacion matricial de la matriz ingresada en el parametro Gain y la entrada del bloque, en ese orden.
Matrix(u*K): Se lo utiliza para realizar la multiplicacion matricial de la entrada del
bloque y la matriz ingresada en el parametro Gain, en ese orden.
Cuando el parametro Gain tiene un escalar no importa cual de los tres casos se
escoja siempre realizara la operacion escalar por matriz.
Sum:
Sirve para sumar las entradas del bloque, teniendo en cuenta que la cantidad de elementos de
cada senal de entrada debe ser la misma. El cuadro de configuracion de este bloque puede observarse en la figura 2.16.
El parametro que generalmente se configura en este bloque es List of signs cuyo valor es una
cadena de caracteres que pueden ser: +,,|, que sirven para indicar que la entrada se suma, se
resta o que no existe, respectivamente.
48
LABORATORIO DE CONTROL AUTOMATICO
Product:
Con este bloque se pueden implementar la multiplicacion o division de dos o mas senales en
las entradas. El cuadro de configuracion se muestra en la figura 2.17 y las propiedades que
generalmente se editan son:
49
LABORATORIO DE CONTROL AUTOMATICO
Number of imputsNumero
de entradas:
Cuando se ingresa un numero mayor que uno genera esa cantidad de entradas para
ser multiplicadas. Aunque, tambien se puede ingresar una cadena de caracteres con los
smbolos: ,/, que definen si la entrada es un multiplicando o un divisor.
MultiplicationMultiplicacion:
Es un campo con una lista desplegable donde se puede seleccionar entre:
Element-wise(.*): Sirve para realizar la operacion de MatLab . o ./ con las entradas del bloque dependiendo de los signos en el campo Number of inputs.
50
LABORATORIO DE CONTROL AUTOMATICO
Math Function:
Este bloque sirve para implementar algunas funciones matematicas entre las que se pueden
resaltar las potencias y los logaritmos. La propiedad que generalmente se configura en este
bloque es Function que consiste de una lista desplegable donde se selecciona la funcion que
se desea utilizar. En la figura 2.18 se puede ver el cuadro de configuracion de este bloque.
Sqrt:
Con este bloque se pueden calcular la raz cuadrada de las senales en la entrada del bloque.
El cuadro de configuracion del bloque se lo puede observar en la figura 2.19 y el parametro
51
LABORATORIO DE CONTROL AUTOMATICO
que generalmente se configura es Function que consiste de una lista desplegable en la que se
puede seleccionar la caracterstica de la raz que se va a obtener.
Trigonometric Function:
Este bloque es u til para implementar funciones trigonometricas e hiperbolicas. Su parametro
mas comunmente configurado es Function que consiste de una lista desplegable en la que se
puede elegir la funcion trigonometrica o hiperbolica que se desea implementar.
52
LABORATORIO DE CONTROL AUTOMATICO
Constant:
Sirve para generar una senal constante durante toda la simulacion. El parametro que generalmente se configura es Constant value y es el valor que tendra el bloque en la salida.
53
LABORATORIO DE CONTROL AUTOMATICO
Step:
Con este bloque se puede implementar senales de tipo escalon. En la figura 2.22 se muestra el
cuadro de propiedades. Las propiedades mas comunente configuradas son:
Step timeInstante del paso:
Indica en que tiempo de la simulacion se realizara el cambio entre el valor inicial y el
valor final de la salida. Este parametro puede tomar un vector de la misma dimension de
los vectores usados en los parametros Initial value y Final value
Initial valueValor inicial:
Configura el valor inicial de la salida. Puede ser un vector con tantos elementos como se
desea que tenga la salida.
Final valueValor final:
Configura el valor final de la salida. Debe tener la misma cantidad de elementos que el
54
LABORATORIO DE CONTROL AUTOMATICO
parametro anterior.
Ramp:
Este bloque sirve para implementar entradas del tipo rampa. En la figura 2.23 se muestra el
cuadro de propiedades de este bloque. Sus parametros principales son:
SlopePendiente:
En este parametro se configuran las pendientes de las salidas del bloque. Puede ser un
vector con tantas pendientes como rampas se desean en la salida del bloque.
55
LABORATORIO DE CONTROL AUTOMATICO
Start timeInstante de inicio:
Aqu se ingresan los instantes en que van a comenzar a cambiar las rampas. Puede ser un
vector con tantos elementos como rampas se desean en la salida.
Initial outputSalida inicial:
Son los valores iniciales de las rampas antes del inicio del cambio. Puede ser un vector
con tantos elementos como rampas se desean en la salida.
Categora Simulink/Sinks
Estos son bloques que reciben senales pero que no tienen senales de salida. Generalmente, permiten visualizar los valores de una senal o transferirlos al workspace o a un archivo. El bloque que se
revisara en este documento es el Scope.
56
LABORATORIO DE CONTROL AUTOMATICO
Scope:
Con este bloque se puede graficar los valores que va tomando las senales en la entrada. En la
figura 2.24 se muestran los cuadros de propiedades General y History.
En el cuadro de propiedades General que se muestra en la figura 2.24a se configuran generalmente:
Number of axesCantidad de ejes:
Es un cuadro de texto donde se configura la cantidad de entradas que tendra el bloque.
LegendsLeyendas:
Es un cuadro de verificacion para habilitar la presentacion de legendas con los nombres
de las curvas en la grafica.
En el cuadro de propiedades History que se muestra en la figura 2.24a se configuran generalmente:
57
LABORATORIO DE CONTROL AUTOMATICO
58