You are on page 1of 29

Practicas de Laboratorio de Control Automatico

Adriana Aguirre Alonso


Franklin Kuonqu Ganza
Alexis Lema Ordon ez

2017
I NDICE GENERAL

1. MatLab 1
1.1. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1. Objetivo General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.2. Objetivos Especficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Prepractica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.1. Escritorio de MatLab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.2. Operaciones Matematicas Basicas . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.3. Manipulacion de Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.4. Algebra Lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2.5. Graficos en 2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.2.6. Instrucciones de Control de Flujo de programa . . . . . . . . . . . . . . . . 16
1.2.7. Funciones Complementarias . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.2.8. Toolbox de Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.2.9. Toolbox Simbolico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.2.10. Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

I
I NDICE DE FIGURAS

1.1. Workspace y escritorio de MatLab . . . . . . . . . . . . . . . . . . . . . . . . . . . 2


1.2. Ejemplo de construccion de matrices . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3. Ejemplo de Operaciones Basicas de Matrices . . . . . . . . . . . . . . . . . . . . . 7
1.4. Ejemplos de Lectura de Valores en Matrices . . . . . . . . . . . . . . . . . . . . . . 9
1.5. Ejemplos de Escritura de Valores en Matrices . . . . . . . . . . . . . . . . . . . . . 9
1.6. Ejemplos de Eliminacion de Valores en Matrices . . . . . . . . . . . . . . . . . . . 11
1.7. Ejemplos de uso de la funcion plot . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.8. Ejemplos de funciones para polinomios . . . . . . . . . . . . . . . . . . . . . . . . 18
1.9. Ejemplos de uso de instrucciones en MatLab . . . . . . . . . . . . . . . . . . . . . . 19
1.10. Interconexiones de Bloques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.11. Ejemplo de funciones del Toolbox de Control . . . . . . . . . . . . . . . . . . . . . 22
1.12. Ejemplo de algunas funciones del Toolbox Simbolico . . . . . . . . . . . . . . . . . 25
1.13. Construccion de modelos en Simulink . . . . . . . . . . . . . . . . . . . . . . . . . 27

II
I NDICE DE TABLAS

1.1. Palabras reservadas del MatLab . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5


1.2. Funciones para crear matrices especiales. . . . . . . . . . . . . . . . . . . . . . . . 5
1.3. Operadores basicos en MatLab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4. Instrucciones Basicas para Leer Valores en Matrices . . . . . . . . . . . . . . . . . . 8
1.5. Instrucciones Basicas para Escribir Valores en Matrices . . . . . . . . . . . . . . . . 10
1.6. Instrucciones Basicas para Elminar Valores de Matrices . . . . . . . . . . . . . . . . 11
1.7. Sintaxis de las Formas Basicas de la funcion plot . . . . . . . . . . . . . . . . . . . 13
1.8. Opciones de la funcion plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.9. Funciones basicas complementarias para realizar graficas . . . . . . . . . . . . . . . 16
1.10. Lista de comparadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.11. Operadores logicos en los condicionales . . . . . . . . . . . . . . . . . . . . . . . . 17
1.12. Sintaxis de funciones y operadores para interconexion de bloques . . . . . . . . . . 20
1.13. Funciones para obtener informacion de sistemas . . . . . . . . . . . . . . . . . . . . 23
1.14. Principales funciones del Toolbox Simbolico . . . . . . . . . . . . . . . . . . . . . 24

III
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 fa-
miliaricen 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 sis-
temas 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


Familiarizar al estudiante con las operaciones, funciones y bloques basicos de MatLab-Simulink
asociados a la Ingienera de Control.

1.1.2. Objetivos Especficos


Familiarizar al estudiante con el escritorio de MatLab.

Aprender a utilizar las operaciones matematicas basicas de MatLab.

Introducir al uso bloques y funciones basicos del Toolbox de Control.

Inducir el uso de funciones basicas del Toolbox Symbolic.

1

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


En la Figura 1.1 se pueden distinguir principalmente los siguientes elementos:

Figura 1.1: Workspace y escritorio de MatLab

Es la barra en la parte superior de la ventana donde estan los menus de comandos


Barra de Menu:
asociados por categora.

Barra de Herramientas: Es la barra inmediatamente debajo de la Barra de Menu que contiene


botones de atajos a comandos de MatLab.

2

LABORATORIO DE CONTROL AUTOMATICO

Ventana de Comandos: Es el panel con el ttulo Command Window en esta a rea se pueden es-
cribir 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 agrupa-
do 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 carac-
tersticas.

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. Operaciones Matematicas Basicas


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]

Figura 1.2: Ejemplo de construccion de matrices

Cuando una matriz es de dimension nx1 o 1xn con n > 1 es denominada vector pero al usarla en
una operacion basica se le aplican las mismas reglas de operacion de matrices.

ADVERTENCIA:
MatLab es sensible al uso de mayusculas y minusculas en el nombre de las variables.

ADVERTENCIA:
MatLab asume que los operandos siempre son matrices excepto por las matrices de 1x1 que las
asume como escalares.
Los nombres de las variables pueden contener letras, numeros y el subguion pero deben empezar
con una letra y no puede ser una palabra reservada de MatLab (Ver Tabla 1.1).

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.

4

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 Sintaxis Observaciones


ones ones(n) 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.

5

LABORATORIO DE CONTROL AUTOMATICO

Operador Operacion Uso Observaciones


+ Suma A+B Si uno de los operandos es un escalar, lo opera
con todos los elementos del otro operando.
- Resta A-B Si uno de los operandos es un escalar, lo opera
con todos los elementos del otro operando.
* Producto A*B Si uno de los operandos es un escalar, reali-
za producto escalar por matriz caso contrario
producto de matrices.
.* Producto A.*B Multiplica los elementos en las posiciones de
A y B que son matrices de igual dimension.
Potencia AB Eleva A a la potencia B (AB ).
. Potencia A.B Eleva cada uno de los elementos de A a la po-
tencia B ([aBij ]).
/ Division A/B A/B = A B1
./ Division A./B A./B = A. B.1
\ Division A\B A\B = A1 B
.\ Division A.\B A.\B = A.1 . B

Tabla 1.3: Operadores basicos en MatLab

6

LABORATORIO DE CONTROL AUTOMATICO

Crear en MatLab las matrices:


     
1 1 2 1   3
A= B= C= 2 1 D=
2 3 3 2 4
Luego calcular A + B, B 3, 2 A,C/B, A D, A. B, A\D, B./A
>>A = [1 1;2 3];B = [2 1;3 2];C = [2 1];
>>A*D
D = [3;4];
ans =
>>A+B
7
ans =
18
3 2
>>A.*B
5 5
ans =
>>B-3
2 1
ans =
6 6
-1 -2
>>A\D
0 -1
ans =
>>2-A
5
ans =
-2
1 1
>>B./A
0 -1
ans =
>>C/B
2.0000 1.0000
ans =
1.5000 0.6667
1 0

Figura 1.3: Ejemplo de Operaciones Basicas de Matrices

7

LABORATORIO DE CONTROL AUTOMATICO

1.2.3. Manipulacion de Matrices


Despues de crear una matriz pueden darse diferentes circunstancias en las cuales se necesite ac-
cesar 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 La variable A debe tener una
posicion pos de la varia- sola fila o columna. La posi-
ble A. cion pos debe existir en la va-
riable A.
b = A(fila,col) Copia en b el valor en la La posicion ( f ila, col ) debe
posicion ( f ila, col ) de la existir en la variable A.
variable A.
b = A(:,col) Copia en b la columna col La columna col debe existir en
de la variable A. la variable A.
b = A(fila,:) Copia en b la fila fila de la La fila fila debe existir en la va-
variable A. riable A.
b = A( f ila1: f ila2,col1:col2) Copia en b el bloque Las posiciones ( f ila1, col1) y
delimitado por las po- ( f ila2, col2) deben existir en la
siciones: ( f ila1, col1), variable A.
( f ila2, col2) de la varia-
ble A.
pos, col, col1,col2, fila, fila1,fila2 pueden ser variables o constantes.

Tabla 1.4: Instrucciones Basicas para Leer Valores en Matrices

8

LABORATORIO DE CONTROL AUTOMATICO

>>A = [1 1;2 3];B = [2 1;3 2];C = [2 1]; D


= [3;4];
>>fila = 1; col = 2; pos = 2;
>>a = D(pos)
a =
4
>>a = C(2)
a =
1
>>a = B(fila,col)
a =
1
>>a = A(2,1)
a =
2
>>b = B(fila,:)
b =
2 1
>>b = A(:,1)
b =
1
2

Figura 1.4: Ejemplos de Lectura de Valores en Matrices

>>A = [1 1;2 3];B = [2 1;3 2];C = [2 1]; D = [3;4];


>>A(fila,:) = C
>>fila = 1; col = 2; pos = 2;
A=
>>D(pos) = 5
2 1
D=
2 10
3
>>B(:,col) = D
5
B=
>>B(fila,col) = pos
2 3
B=
3 5
2 2
>>D(:,col+2) = A(:,col)
3 2
D=
>>A(2,2) = 10
3 0 0 1
A=
5 0 0 10
1 1
2 10

Figura 1.5: Ejemplos de Escritura de Valores en Matrices

9

LABORATORIO DE CONTROL AUTOMATICO

Instruccion Descripcion Observaciones


A(pos) = b Copia en la posicion pos Si la posicion pos no existe en la va-
de la variable A el valor riable A completa las posiciones no
de b. existentes con ceros. Ademas, b debe
ser un escalar.
A(fila,col) = b Copia en la posicion Si la posicion ( f ila, col ) no existe en
( f ila, col ) de la variable la variable A completa las posiciones
A el valor de b. no existentes con ceros. Ademas, b
debe ser un escalar.
A(:,col) = b Copia en la columna col Si la columna col no existe en la va-
de la variable A los valo- riable A completa las posiciones no
res de b. existentes con ceros. Ademas, b debe
tener la misma longitud de las colum-
nas de A.
A(fila,:) = b Copia en la fila fila de la Si la fila fila no existe en la variable
variable A los valores de A completa las posiciones no existen-
b. tes con ceros. Ademas, b debe tener la
misma longitud de las filas de A.
A(fila1:fila2,col1:col2) = b Copia en el bloque Si la posicion ( f ila2, col2) no existe
delimitado por las po- en la variable A completa las posicio-
siciones: ( f ila1, col1), nes no existentes con ceros. Ademas,
( f ila2, col2) de la va- b debe tener las mismas dimensiones
riable A los valores de del bloque de A.
b.
pos, col, col1,col2, fila, fila1,fila2 pueden ser variables o constantes.

Tabla 1.5: Instrucciones Basicas para Escribir Valores en Matrices

10

LABORATORIO DE CONTROL AUTOMATICO

Ejemplo Descripcion Observaciones


A= [] Crea una matriz vaca o elimina No elimina la variable u nica-
todos los valores de una matriz mente su contenido.
existente.
A(pos) = [] Elimina la posicion pos de la va- La variable A debe tener una so-
riable A el valor de b. la fila o columna. La posicion
pos debe existir en la variable A.
A(:,col) = [] Elimina la columna col de la va- La columna col debe existir en la
riable A. variable A.
A(fila,:) = [] Elimina la fila fila de la variable La fila fila debe existir en la va-
A. riable A.
pos, col, fila pueden ser variables o constantes.

Tabla 1.6: Instrucciones Basicas para Elminar Valores de Matrices

>>A = [1 1;2 3];B = [2 1;3 2];C = [2 1];


D = [3;4];
>>fila = 1; col = 2; pos = 2;
>>C = [ ]
C =
[ ]
>>D(pos) = [ ]
D =
3
>>A(fila,:) = [ ]
>>A(fila,:) = [ ]
>>A(fila,:) = [ ]
A =
2 3
>>B(:,1) = [ ]
B =
1
2

Figura 1.6: Ejemplos de Eliminacion de Valores en Matrices

11

LABORATORIO DE CONTROL AUTOMATICO

1.2.4. Algebra Lineal


Entre las preincipales operaciones de algebra lineal estan:
Transponer matrices,
Calcular determinante y rango de matrices,
Determinar nucleo, recorrido, valores y vectores propios de matrices.
Para transponer matrices se usa el apostrofe despues de la matriz. Por ejemplo:

A
B = A
En el ejemplo anterior, A puede ser una variable o una constante y el apostrofe indica que se ob-
tendra la transpuesta de la matriz y B siempre es una variable. Aunque, hay que tener presente que la
transpocision incluye que se obtengan los conjugados de los elementos originales de la matriz.

El determinante de una matriz puede ser obtenido usando la funcion det en cualquiera de las dos
formas que se muestran a continuaon:

det(A )
b = det(A)
Donde:
A es una matriz cuadrada y puede ser una constante o una variable.
b es una variable donde se almacena el determinate de A.

Si se desea obtener el rango de una matriz, se usa la funcion rank como se muestra a continuacion:

rank(A )
b = rank(A)
Donde:
A es una matriz y puede ser una constante o una variable.
b es una variable donde se almacena el rango de A.

La primera forma del uso de las funciones det, rank simplemente muestra el resultado de cada
funcion, mientras que la segunda lo almacena en otra variable.

Para encontrar una base para el recorrido de una matriz se puede usar la funcion orth y para una
base del nucleo se usa la funcion null. Ademas, es importante recordar que los vectores de las bases
obtenidas con estas funciones son ortonormales. El resultado de estas funciones puede ser asignado
a una variable en la cual se creara una matriz donde las columnas seran los vectores de la base
ortonormal. A continuacion, algunos ejemplos de su uso:

12

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) Si A es un vector entonces grafica los valores de A versus


sus ndices. Si A es una matriz mxn asume cada columna
como un vector y grafica los valores de cada vector versus
su posicion en la columna. Las opciones son caracteres que
determinan el color, estilo de la lnea y la forma de los mar-
cadores de punto.
plot(x,y,opciones) x y y son vectores de igual cantidad de elementos y grafica
los elementos de y versus x. Es preferible que x y y sean
vectores columna.
plot(x,Y,opciones) x es un vector columna y Y es una matriz pero ambos deben
tener la misma cantidad de filas. Grafica las columnas de Y
versus x. Las 6 primeras curvas tienen un color distinto cada
una, si entre las opciones se omite el color.

Tabla 1.7: Sintaxis de las Formas Basicas de la funcion plot

Los caracteres que se pueden usar como opciones se muestran en la Tabla 1.8 y deben ir entre
comillas simples uno a continuacion del otro y sin espacios. El orden en que debe ser usados estos

13

LABORATORIO DE CONTROL AUTOMATICO

Caracter Color Caracter Marcador


k negro (blacK) d rombo (Diamond)
y amarillo (Yellow) . punto
m Magenta o crculo
c celeste (Cyan) x equis
r rojo (Red) + mas
g verde (Green) * asteriscos
b azul (Blue) s cuadrado (Square)
w blanco (White) triangulo hacia arriba
Caracter Estilo v triangulo hacia abajo
- lnea continua > triangulo hacia la derecha
: lnea punteada < triangulo haca la izquierda
-. lnea barra-punto p estrella de 5 puntas (Pentagram)
-- lnea discontinua h estrella de 6 puntas (Hexagram)

Tabla 1.8: Opciones de la funcion plot

caracteres es: primero color, segundo marcador y tercero estilo de lnea, aunque puede omitirse cual-
quiera de ellos.

En la Figura 1.7 se muestra el uso de la funcion plot y otras funciones para dar formato a los
graficos generados.

Ademas de la funcion plot, hay otras funciones basicas que la complementan y pueden ser revi-
sadas en la Tabla 1.9. Adicionalmente a las funciones mostradas en la Tabla 1.9, hay varias opciones
que pueden ser manipuladas directamente con la interfaz grafica de la ventana de una figura.

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)

Figura 1.7: Ejemplos de uso de la funcion plot

15

LABORATORIO DE CONTROL AUTOMATICO

figure() Crea una figura nueva


figure(b) Direcciona las funciones de graficos a la figura b. b puede ser una
constante o una variable de tipo entero. Si la figura no existe se
crea una nueva.
subplot(i,j,k) Subdivide el a rea de la figura en i filas por j columnas y selecciona
la posicion k contando por filas de izquierda a derecha y de arriba
hacia abajo. i, j, k son constantes o variables de tipo entero.
grid on Muestra la cuadrcula en el grafico.
grid off Oculta la cuadrcula en el grafico.
title(Titulo del Grafico) Muestra Titulo del Grafico como ttulo del grafico.
xlabel(Titulo de las X) Muestra Titulo de las X como ttulo del eje de las X
ylabel(Titulo de las Y) Muestra Titulo de las Y como ttulo del eje de las Y
legend(curva1,curva2,...) Muestra un cuadro de legenda con los nombres de las curvas:
curva1, curva2, etc. Se debe incluir un nombre por cada curva
graficada.

Tabla 1.9: Funciones basicas complementarias para realizar graficas

1.2.6. Instrucciones de Control de Flujo de programa


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 obligato-
rio. 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 com-
paraciones 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.

Tabla 1.10: Lista de comparadores

Smbolo Significado
&& Y,
|| O,
No.

Tabla 1.11: Operadores logicos en los condicionales

La siguiente instruccion de control de flujo es el conjunto de clausulas for/end y sirven para


repetir un conjunto de instrucciones una cantidad de veces fija. La sintaxis usada es:

for indice = inicio:paso:fin


intrucciones
end
En la sintaxis mostrada, indice es la variable que va cambiando de valor en cada ejecucion de las
instrucciones. Mientras que inicio es el valor inicial que toma el indice, paso es el incremento que
va a recibir el indice al final de cada ejecucion, si se omite se asume como 1, y fin es el u ltimo valor
que puede tomar el indice. Ademas, hay que destacar que inicio, paso y fin pueden ser constantes o
variables.

Adicionalmente a estas instrucciones existen otras como: while/end, try/catch/end, break.

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 = >>x = roots(p1)
1 2 -8 x =
>>p2 = [2 4 5 1] -4
p2 = 2
2 4 5 1 >>y =polyval(p3,2)
>>conv(p1,p2) y =
ans = 0
2 8 -3 -21 -38 -8 >>y =polyval(p3,4)
>>p3=conv(p1,p2) y =
p3 = 3408
2 8 -3 -21 -38 -8

Figura 1.8: Ejemplos de funciones para polinomios

ADVERTENCIA:
Cuando se desee realizar la suma o resta de polinomios usando vectores con sus coeficientes hay que
determinar el polinomio de mayor orden y en los vectores que representan los polinomios de menor
orden completar con cero los terminos no presentes, luego se puede usar la operacion de suma o
resta de matrices.
Otra funcion para trabajar con fracciones de polinomios es residue que calcula los coeficientes
y polos obtenidos al separar una fraccion polinomica en fracciones parciales o los coeficientes de
los polinomios del numerador y del denominador a partir de los coeficientes y polos de una fraccion
parcial.

Muchas veces es importante saber las dimensiones de una matriz y para este fin se pueden usar las
funciones size o length. La funcion size obtiene las dimensiones de una matriz, es decir el numero
de filas y el numero de comunas, mientras que la funcion length obtiene la dimension mas grande de
una matriz. La funcion length se acostumbra a usarla con vectores.

Tambien es muy comun, cuando se crean scripts, tener que interactuar con el usuario para que
imgrese datos o mostrarle resultados. La funcion input se utiliza para pedir al usuario que ingrese un
dato (matriz numerica o cadena de caracteres) y la funcion display muestra resultados.

Cuando se desea eliminar variables de la memoria se usa el comando clear con la siguiente sinta-
xis:
clear var1 var2 . . .
clear all
La primera forma mostrada del comando clear es usada para eliminar de la memoria las variables

18

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 Resultado
%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 numero
a = input(Ingrese un numero entero mayor que 1: );
%Inicializa el acumulador Primera corrida:
s = 0; Ingrese un n
umero entero mayor que 1: 20
if a>1 El n
umero NO es perfecto
%Si a es mayor que 1, suma sus divisores
for i = 1:a-1 Segunda corrida:
if mod(a,i) == 0 Ingrese un n
umero entero mayor que 1: 6
s = s+i; El n
umero es perfecto
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

Figura 1.9: Ejemplos de uso de instrucciones en MatLab

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


dos.
2A la representacion en espacio de estados tambien se la conoce como variables de estado
3 Sistemas LTI son sistemas Lineales e Invariantes en el Tiempo (Linear Time Invariant)
4 Siistemas SISO son aquellos que tienen una entrada y una salida (Single Input Single Output)

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)
Retroalimentacion positiva feedback(sys1,sys2,+1)

Tabla 1.12: Sintaxis de funciones y operadores para interconexion de bloques

Reduccion de modelos interconectados usando a lgebra de bloques.


Determinacion de caractersticas del sistema.
Simulacion de respuesta en el tiempo de los sistemas usando diferentes tipos de entradas.
Las funciones de transferencia de sistemas SISO pueden ser creadas usando: tf o zpk. La primera
crea la funcion construye la funcion de transferencia a partir de los coeficientes del numerador y del
denominador; mientras que la segunda requiere un listado de ceros, otro de polos y la ganancia del
sistema. En ambos casos los argumentos son vectores fila excepto la ganancia que es un escalar.

Las representaciones en espacio de estados se realizan usando la funcion ss y requiere como ar-
gumentos para un sistema SISO:

Matriz de Estados: Primer argumento de la funcion y tiene que ser una matriz cuadrada.
Matriz de Entradas: Segundo argumento de la funcion y es un vector columna con la misma can-
tidad de filas que la Matriz de Estados.
Matriz de Salidas: Tercer argumento de la funcion y es un vector fila con igual cantdad de columnas
que la Matriz de estados.
Matriz de Transmision Directa: Cuarto argumento de la funcion y es un escalar, generalmente 0.
La interconexion de dos bloques5 puede ser: serial, paralelo, retroalimentacion. Las funciones pa-
ra obtener los bloques equivalentes se muestran en la Tabla 1.12 y en la Figura 1.10 se ilustran las
interconexiones.

Ademas, despues de realizar una reduccion de bloques es conveniente usar la funcion minreal
para simplificar el resultado obtenido.

5 Cada 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

Figura 1.10: Interconexiones de Bloques

Se puede obtener informacion de los sistemas usando las funciones mostradas en la Tabla 1.13.
Esta informacion puede ser:

polos,

ceros,

coeficientes del numerador y del denominador de la funcion de transferencia,

matrices del espacio de estados

Por u ltimo, las funciones mas usadas para graficar la respuesta en el tiempo de los sistemas son:
step e impulse. Ambas funciones toman como argumento un sistema lineal, y generan los graficos
de respuesta a una entrada escalon o impulso, respectivamente.

21

LABORATORIO DE CONTROL AUTOMATICO

Reduzca el sistema mostrado usando algebra de bloques sabiendo que:

3s + 6 s+4 4 2(s + 5)
G1 = G2 = G3 = 2 G4 =
s2 + 5s + 4 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.

(a) Sistema original

(c) Respuesta a una entrada escalon unitario

(d) Respuesta a una entrada impulso


(b) Solucion y resultados numericos
22
Figura 1.11: Ejemplo de funciones del Toolbox de Control

LABORATORIO DE CONTROL AUTOMATICO

Sintaxis Comentario
Calcula los polos de un sistema. El argumento sys puede ser
pole(sys) una funcion de transferencia o un espacio de estados.
p = pole(sys) 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
zero(sys) una funcion de transferencia o un espacio de estados.
z = zero(sys) 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.
pzmap(sys)
El argumento sys puede ser una variable o una funcion cons-
tructora de sistemas lineales (tf, zpk, ss).
[num,den] = tfdata(sys,v) Obtiene los coeficientes de los polinomios del numerador y del
denominador y los escribe en las variables num y den.
[A,B, C, D] = ssdata(sys) Obtiene las matrices que definen el espacio de estado sys y los
escribe en las variables A, B, C, D.

Tabla 1.13: Funciones para obtener informacion de sistemas

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 simboli-
cas, 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 Descripcion Comentario


syms var1 var2 . . . Construye las variables
simbolicas var1 var2 y as
sucesivamente todas las
variables listadas.
solve(expresion) Si expresion es una funcion expresion debe tener varia-
calcula los ceros, pero si es bles simbolicas.
una ecuacion calcula sus so-
luciones.
solve(expresion,var1) Despeja la variable var1 en la La variable var1 debe estar en
ecuacion ingresada en expre- expresion.
sion.
diff(expresion,var1) Calcula la derivada de expre- expresion debe ser una fun-
sion respecto de la variable cion simbolica. Si expresion
var1. tiene mas de una variable diff
calcula la derivada parcial.
int(expresion,var1) Calcula la integral de expre-
sion respecto de la variable
var1.
subs(expresion,viejo,nuevo) Reemplaza viejo con nuevo
en expresion
ezplot(expresion) Grafica expresion en el plano Entre otros casos expresion
cartesiano. puede ser una ecuacion de dos
variables, una funcion de una
variable o una funcion pa-
rametrica.

Tabla 1.14: Principales funciones del Toolbox Simbolico

24

LABORATORIO DE CONTROL AUTOMATICO

Figura 1.12: Ejemplo de algunas funciones del Toolbox Simbolico

25

You might also like