Académique Documents
Professionnel Documents
Culture Documents
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 . . . . . . . . . . . . . . .
1.2.10. Simulink . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
1
1
2
2
4
8
12
13
16
17
19
23
26
I NDICE DE FIGURAS
II
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
4
7
9
9
11
15
18
19
21
22
25
27
I NDICE DE TABLAS
III
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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 de 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). Primero, 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. Luego, el Toolbox Simbolico permite obtener la respuesta algebraica(literal) de problemas
matematicos.
1.1.1.
Objetivo General
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
case
catch
classdef
continue
else
elseif
end
for
function
global
if
otherwise parfor persistent return
spmd
switch
try
while
Tabla 1.1: Palabras reservadas del MatLab
Funcion
ones
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)
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
Sintaxis Funcion
Sintaxis Operador
Serie
series(sys1,sys2)
sys1 * sys2
Paralelo
parallel(sys1,sys2)
sys1 + sys2
Paralelo
parallel(sys1,-sys2)
sys1 - sys2
Retroalimentacion negativa
feedback(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)
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.
Comentario
int(expresion,var1)
24
LABORATORIO DE CONTROL AUTOMATICO
25
LABORATORIO DE CONTROL AUTOMATICO
1.2.10.
Simulink
26
LABORATORIO DE CONTROL AUTOMATICO
27