Sie sind auf Seite 1von 63

Practicas de Laboratorio de Control Automatico

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

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


1.2. Ejemplo de construccion de matrices . . . . . . . . .
1.3. Ejemplo de Operaciones Basicas de Matrices . . . .
1.4. Ejemplos de Lectura de Valores en Matrices . . . . .
1.5. Ejemplos de Escritura de Valores en Matrices . . . .
1.6. Ejemplos de Eliminacion de Valores en Matrices . .
1.7. Ejemplos de uso de la funcion plot . . . . . . . . . .
1.8. Ejemplos de funciones para polinomios . . . . . . .
1.9. Ejemplos de uso de instrucciones en MatLab . . . . .
1.10. Interconexiones de Bloques . . . . . . . . . . . . . .
1.11. Ejemplo de funciones del Toolbox de Control . . . .
1.12. Ejemplo de algunas funciones del Toolbox Simbolico

.
.
.
.
.
.
.
.
.
.
.
.

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.

Cuadro de configuracion del bloque Math Function . . . . .


Cuadro de configuracion del bloque Sqrt . . . . . . . . . . .
Cuadro de configuracion del bloque Trigonometric Function
Cuadro de configuracion del bloque Constant . . . . . . . .
Cuadro de configuracion del bloque Step . . . . . . . . . . .
Cuadro de configuracion del bloque Ramp . . . . . . . . . .
Cuadros de configuracion del bloque Scope . . . . . . . . .

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

51
52
53
54
55
56
58

III

I NDICE DE TABLAS

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


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

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

Familiarizar al estudiante con el escritorio de MatLab.


Aprender a utilizar las operaciones matematicas basicas de MatLab.
Conocer las funciones basicas del Toolbox 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.


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.

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.


LABORATORIO DE CONTROL AUTOMATICO
break
continue
for
otherwise
spmd

case
else
function
parfor
switch

catch
elseif
global
persistent
try

classdef
end
if
return
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

Tabla 1.3: Operadores basicos en MatLab


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];
D = [3;4];
>>A+B
ans =
3
2
5
5
>>B-3
ans =
-1
-2
0
-1
>>2-A
ans =
1
1
0
-1
>>C/B
ans =
1
0

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

Figura 1.3: Ejemplo de Operaciones Basicas de Matrices


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.

La variable A debe tener una


sola fila o columna. La posicion pos debe existir en 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.

La posicion ( f ila, col ) debe


existir en la variable A.

Copia en b la fila fila de la


variable A.

La fila fila debe existir en la variable A.

b = A(:,col)
b = A(fila,:)

La columna col debe existir en


la variable A.

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 variable A.
pos, col, col1,col2, fila, fila1,fila2 pueden ser variables o constantes.

b = A( f ila1: f ila2,col1:col2)

Tabla 1.4: Instrucciones Basicas para Leer Valores en Matrices


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];
>>fila = 1; col = 2; pos = 2;
>>D(pos) = 5
D=
3
5
>>B(fila,col) = pos
B=
2
2
3
2
>>A(2,2) = 10
A=
1
1
2 10

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

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


de la variable A el valor
de b.

Si la posicion pos no existe en la variable A completa las posiciones no


existentes con ceros. Ademas, b debe
ser un escalar.

A(fila,col) = b

Copia en la posicion
( f ila, col ) de la variable
A el valor de b.

Si la posicion ( f ila, col ) no existe en


la variable A completa las posiciones
no existentes con ceros. Ademas, b
debe ser un escalar.

A(:,col) = b

Copia en la columna col


de la variable A los valores de b.

Si la columna col no existe en la variable A completa las posiciones no


existentes con ceros. Ademas, b debe
tener la misma longitud de las columnas de A.

A(fila,:) = b

Copia en la fila fila de la


variable A los valores de
b.

Si la fila fila no existe en la variable


A completa las posiciones no existentes con ceros. Ademas, b debe tener la
misma longitud de las filas de A.

Copia en el bloque Si la posicion ( f ila2, col2) no existe


delimitado por las po- en la variable A completa las posiciosiciones: ( 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.

A(fila1:fila2,col1:col2) = b

Tabla 1.5: Instrucciones Basicas para Escribir Valores en Matrices

10


LABORATORIO DE CONTROL AUTOMATICO

Ejemplo
A= []

A(pos) = []

Descripcion

Observaciones

Crea una matriz vaca o elimina


todos los valores de una matriz
existente.
Elimina la posicion pos de la variable A el valor de b.

No elimina la variable u nicamente su contenido.


La variable A debe tener una sola fila o columna. La posicion
pos debe existir en la variable A.

A(:,col) = []

Elimina la columna col de la variable A.

La columna col debe existir en la


variable A.

A(fila,:) = []

Elimina la fila fila de la variable


A.

La fila fila debe existir en la variable 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 =
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 obtendra 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)

plot(x,y,opciones)

plot(x,Y,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 marcadores de punto.
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.
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
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)

Tabla 1.8: Opciones de la funcion plot


caracteres es: primero color, segundo marcador y tercero estilo de lnea, aunque puede omitirse cualquiera 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 revisadas 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()
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,...)

Crea una figura nueva


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.
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.
Muestra la cuadrcula en el grafico.
Oculta la cuadrcula en el grafico.
Muestra Titulo del Grafico como ttulo del grafico.
Muestra Titulo de las X como ttulo del eje de las X
Muestra Titulo de las Y como ttulo del eje de las Y
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 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.

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

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

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 estados.
2A

la representacion en espacio de estados tambien se la conoce como variables de estado


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

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

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 argumentos 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 cantidad 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 para 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:
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.

(a) Sistema original

(c) Respuesta a una entrada escalon unitario

(b) Solucion y resultados numericos

(d) Respuesta a una entrada impulso

Figura 1.11: Ejemplo de funciones del Toolbox de Control

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.

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

expresion debe tener variables simbolicas.

La variable var1 debe estar en


expresion.
expresion debe ser una funcion simbolica. Si expresion
tiene mas de una variable diff
calcula la derivada parcial.

Entre otros casos expresion


puede ser una ecuacion de dos
variables, una funcion de una
variable o una funcion parametrica.

Tabla 1.14: Principales funciones del Toolbox Simbolico

24


LABORATORIO DE CONTROL AUTOMATICO

Figura 1.12: Ejemplo de algunas funciones del Toolbox Simbolico

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

Familiarizar al estudiante con la elaboracion y simulacion de modelos en Simulink para verificar


los resultados obtenidos teoricamente.

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

Figura 2.1: Biblioteca de Simulink


Luego de la accion anterior, se abre una ventana de la biblioteca de toolboxes y bloques disponibles en Simulink como la que se muestra en la Figura 2.1, donde se pueden apreciar algunas de las
27


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.

Figura 2.2: Modelo Nuevo en Simulink

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

Figura 2.3: Circuito RLC

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.

Figura 2.4: Bloques para la simulacion del circuito RLC

A continuacion se configuraran e interconectaran los bloques. Para configurar un bloque se debe


hacer doble click en e ste y as abrir su cuadro de dialogo de configuracion. En desarrollo de este
ejemplo se incluiran solamente los cuadros de dialogo y una referencia de que bloque representan de
acuerdo al nombre que lo identifica en la figura 2.4. Una vez realizado el cambio en la configuracion
del bloque se debe hacer click en en boton
del cuadro de dialogo del bloque que se
este configurando para que los cambios sean realizados y se cierre el cuadro de dialogo.
Step: En este bloque se configurara el tamano del paso cambiando el valor final del Step, lo que
representa el encendido de la fuente.
30


LABORATORIO DE CONTROL AUTOMATICO

Gain: Este bloque se lo configurara con una ganancia de 1/20.

Gain1: Este bloque se lo configurara con una ganancia de 10000.


31


LABORATORIO DE CONTROL AUTOMATICO

Gain2: Este bloque se lo configurara con una ganancia de 1,25.

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

Figura 2.5: Modelo construido para la simulacion del circuito RLC

Luego hay que hacer click sobre el boton


para iniciar la simulacion y cuando e sta termine
se puede hacer doble click sobre el bloque Scope para ver el comportamiento de iL y se abre una
ventana similar a la mostrada en la figura 2.6a, donde es difcil apreciar el comportamiento de la
corriente en el inductor debido a la escala usada. Para mejorar la escala del grafico hay que hacer
click en el boton
para que ajuste automaticamente la escala de los ejes y se obtiene el grafico
mostrado en la figura 2.6b.
Adicionalmente, en la figura 2.6b se puede observar que el cambio de la corriente se estabiliza en
menos de 1 segundo, por lo cual cambiaremos el tiempo de duracion de la simulacion a 1,5 segundos
y se ejecuta nuevamente la simulacion, obteniendose el resultado mostrado en la figura 2.6c.
La simulacion del sistema tambien puede realizarse usando variables de estado para lo cual se
necesita determinar las matrices: A, B,C, D del sistema. Para obtener estas matrices primero se deben
expresar las ecuaciones diferenciales del sistema en forma matricial, que no es u nica. En las ecuaciones 2.5 y 2.6 se muestra una de las representaciones posibles.

34


LABORATORIO DE CONTROL AUTOMATICO

(a) Simulacion del circuito RLC

(b) Simulacion del circuito RLC con la escala


ajustada

(c) Simulacion del circuito RLC con la escala


ajustada

Figura 2.6: Resultado de las simulaciones al cambiar escalas y duracion.

35


LABORATORIO DE CONTROL AUTOMATICO

(a) Modelo en variables de estado para simular el circuito RLC

(b) Configuracion del bloque State-Space para el circuito RLC

Figura 2.7: Modelo y configuracion de parametros del circuito RLC usando variables de estado
36


LABORATORIO DE CONTROL AUTOMATICO

Figura 2.8: Simulacion del circuito RLC usando variables de estado

 

   
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

(a) Modelo en funcion de transferencia para simular el circuito RLC

(b) Configuracion del bloque Transfer-fcn para el circuito RLC

Figura 2.9: Modelo y configuracion de parametros del circuito RLC usando funcion de transferencia

39


LABORATORIO DE CONTROL AUTOMATICO

Figura 2.10: Simulacion del circuito RLC usando funcion de transferencia

2.2.2.

Biblioteca de Bloques de Simulink

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

Figura 2.11: Cuadro de configuracion del bloque Zero-Pole

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

Figura 2.12: Cuadro de configuracion del bloque Integrator

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.

Figura 2.13: Cuadro de configuracion del bloque Transport Delay

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:

Figura 2.14: Cuadro de configuracion del bloque Saturation


Upper limitLmite superior:
Es un escalar o un vector con los valores maximos que pueden tomar las senales que
entran al bloque.

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.

Categora Simulink/Math Operations


Aqu se encuentran bloques que permiten aplicar funciones matematicas sobre las senales que
entran a un bloque o realizar operaciones matematicas con las senales.

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:

Figura 2.15: Cuadro de configuracion del bloque Gain


GainGanancia: Es el escalar, vector o matriz que se multiplicara por la entrada.

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

Figura 2.16: Cuadro de configuracion del bloque Sum

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

Figura 2.17: Cuadro de configuracion del bloque Product

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

Matrix(*): Sirve para realizar la multiplicacion de matrices o multiplicacion por la


inversa de una matriz dependiendo de los signos en el campo Number of inputs.

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.

Figura 2.18: Cuadro de configuracion del bloque Math Function

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.

Figura 2.19: Cuadro de configuracion del bloque Sqrt

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

Figura 2.20: Cuadro de configuracion del bloque Trigonometric Function


Categora Simulink/Sources
En esta categora estan los bloque que u nicamente tienen salidas y as poder construir las senales
de prueba para nuestros sistemas. Los principales bloques que se revisaran de esta categora son:
Constant, Step, Ramp.

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

Figura 2.21: Cuadro de configuracion del bloque Constant

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.

Figura 2.22: Cuadro de configuracion del bloque Step

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.

Figura 2.23: Cuadro de configuracion del bloque Ramp

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:

Limit data points to last Limite puntos de datos a los ultimos:


Esta propiedad consta de dos elementos: un cuadro de verificacion que habilita o deshabilita esta caracterstica y un cuadro de texto donde se indican cuantos datos son los que
se van a usar.
Save data to workspaceGrabe datos en el workspace:
Esta propiedad habilita la capacidad que tiene este bloque de grabar los datos en una
variable en el workspace.
Variable nameNombre de la variable:
Cuando esta habilitada la opcion Save data to workspace en este cuadro de texto se
ingresa el nombre de la variable donde se desea grabar los datos.
FormatFormato:
Esta es una lista desplegable con los formatos que se pueden usar para grabar los datos
en el workspace. Por simplicidad en el manejo se recomienda usar el tipo Array.

57


LABORATORIO DE CONTROL AUTOMATICO

(a) Cuadro de configuracion del bloque Scope, pestana General

(b) Cuadro de configuracion del bloque Scope, pestana History

Figura 2.24: Cuadros de configuracion del bloque Scope

58

Das könnte Ihnen auch gefallen