Вы находитесь на странице: 1из 98

Prácticas de Laboratorio de Sistemas de Control

Adriana Aguirre Alonso


Franklin Kuonquı́ Gaı́nza
Alexis Lema Ordóñez
Marı́a José Ramı́rez Prado

2017
Í NDICE GENERAL

1. MatLab 1
1.1. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1. Objetivo General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.2. Objetivos Especı́ficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Prepráctica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.1. Escritorio de MatLab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.2. Operaciones Matemáticas Básicas . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.3. Manipulación de Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.4. Algebra Lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2.5. Gráficos 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 Simbólico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2. Simulink 26
2.1. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.1.1. Objetivo General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.1.2. Objetivos Especı́ficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2. Prepráctica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2.1. Ejemplo Básico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2.2. Biblioteca de Bloques de Simulink . . . . . . . . . . . . . . . . . . . . . . . 40

3. Identificación de sistemas usando MatLab 54


3.1. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.1.1. Objetivo General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.1.2. Objetivos Especı́ficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.2. Prepráctica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.2.1. Teorı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.2.2. Procedimiento para la identificación . . . . . . . . . . . . . . . . . . . . . . 56
3.2.3. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

I
LABORATORIO DE SISTEMAS DE CONTROL

4. Diseño de Controladores PID usando Sisotool 78


4.1. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
4.1.1. Objetivo General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
4.1.2. Objetivos Especı́ficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
4.2. Prepráctica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
4.2.1. Estructura de Ventanas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
4.2.2. Arquitectura de los controladores . . . . . . . . . . . . . . . . . . . . . . . 80
4.2.3. Graphical Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.2.4. Analysis Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.2.5. Diseño del Controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.2.6. Otras Opciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

5. Respuesta de frecuencia 88
5.1. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.1.1. Objetivo General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.1.2. Objetivos Especı́ficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.2. Prepráctica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

II
MatLab

1.1. Antecedentes
MatLab (Matrix Laboratory) es un programa altamente usado tanto a nivel académico, cientı́fico
y profesional por la facilidad que ofrece para resolver diferentes tipos de problemas matemáticos
aplicados a las diferentes ramas de las ciencias e ingienerı́as; 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 facilitará la realización de cálculos 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 hará énfasis en: Control Toolbox(Toolbox de Control) y Symbolic Toolbox(Toolbox
Simbólico). Primero, el Toolbox de Control proporciona herramientas para analizar y diseñar sis-
temas de control automático representados a través de funciones de transferencia o de espacio de
estados. Luego, el Toolbox Simbólico permite obtener la respuesta algebraica(literal) de problemas
matemáticos.

1.1.1. Objetivo General


Familiarizar al estudiante con las operaciones, funciones y bloques básicos de MatLab-Simulink
asociados a la Ingienerı́a de Control.

1.1.2. Objetivos Especı́ficos


Familiarizar al estudiante con el escritorio de MatLab.

Aprender a utilizar las operaciones matemáticas básicas de MatLab.

Introducir al uso bloques y funciones básicos del Toolbox de Control.

Inducir el uso de funciones básicas del Toolbox Symbolic.

1
LABORATORIO DE SISTEMAS DE CONTROL

1.2. Prepráctica
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 caracterı́sticas de la aplicación
como la creación y edición 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

Barra de Menú: Es la barra en la parte superior de la ventana donde están los menús de comandos
asociados por categorı́a.

Barra de Herramientas: Es la barra inmediatamente debajo de la Barra de Menú que contiene


botones de atajos a comandos de MatLab.

2
LABORATORIO DE SISTEMAS DE CONTROL

Ventana de Comandos: Es el panel con el tı́tulo “Command Window” en esta á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 tı́tulo “Current Directory” y muestra los archivos y directorios
(carpetas) del directorio en el que se está trabajando.
Espacio de Trabajo: Es el panel con el tı́tulo “Workspace” y es donde se muestran las variables
existentes en memoria e información sobre éstas.
Historial de Comandos: Es el panel con el tı́tulo “Command History” y contiene un listado agrupa-
do por sesión de trabajo de los comandos y funciones ejecutados, pero no incluye las acciones
ejecutadas con los botones y menús 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 básico 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 gráfico 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 análisis y simulación de diferentes problemas. Aunque,
estos elementos pueden ser usados individualmente o en conjunto, es necesario distinguir sus carac-
terı́sticas.

Script: Es un archivo con un listado de instrucciones de MatLab y cuya extensión es “.m”. El archivo
puede ser ejecutado pero se debe tener presente que trabajará con el Workspace global del
MatLab tal como si se estuvieran ejecuntando las instrucciones desde la Ventana de Comandos
del MatLab.
Función: Es un archivo similar al script pero tiene un encabezado que debe cumplir ciertas normas
para que MatLab reconozca la función. Otra diferencia muy importante es que cuando se llama
a una función para su ejecución, MatLab crea un Workspace privado para la función donde se
crean las variables que la función utilizará, pero este Workspace se elimina cuando se termina
la ejecución de la función.
Modelo: Es un archivo con uno o varios bloques, generalmente interconectados, creado en Simulink
y con extención “.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 dará prioridad al archivo “.mdl”

3
LABORATORIO DE SISTEMAS DE CONTROL

1.2.2. Operaciones Matemáticas Básicas


El primer paso para realizar las operaciones básicas 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 sı́mbolo “;” y después
del ú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 podrı́a que escribir:
A = [2,5,3; 4,0,1;6,8,7]

Figura 1.2: Ejemplo de construcción de matrices

Cuando una matriz es de dimensión nx1 o 1xn con n > 1 es denominada vector pero al usarla en
una operación básica se le aplican las mismas reglas de operación de matrices.

ADVERTENCIA:
MatLab es sensible al uso de mayúsculas y minúsculas 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, números y el subguión 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 sı́mbolo = se usa para asignar algo (valores, objetos, etc.) a una variable.

4
LABORATORIO DE SISTEMAS DE CONTROL

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

Función 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 también pueden ser asignados a variables.

Tabla 1.2: Funciones para crear matrices especiales.

Además, 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 básicos 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 SISTEMAS DE CONTROL

Operador Operación 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 dimensión.
ˆ Potencia AˆB Eleva A a la potencia B (AB ).
.ˆ Potencia A.ˆB Eleva cada uno de los elementos de A a la po-
tencia B ([aBij ]).
/ “División” A/B A/B = A ∗ B−1
./ “División” A./B A./B = A. ∗ B.−1
\ “División” A\B A\B = A−1 ∗ B
.\ “División” A.\B A.\B = A.−1 . ∗ B

Tabla 1.3: Operadores básicos en MatLab

6
LABORATORIO DE SISTEMAS DE CONTROL

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 Básicas de Matrices

7
LABORATORIO DE SISTEMAS DE CONTROL

1.2.3. Manipulación de Matrices


Después de crear una matriz pueden darse diferentes circunstancias en las cuales se necesite ac-
cesar a una posición, fila, columna o bloque especı́ficos 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
eliminación de valores en las matrices en las Figuras 1.4, 1.5, 1.6.

Instrucción Descripción Observaciones


b = A(pos) Copia en b el valor en la La variable A debe tener una
posición pos de la varia- sola fila o columna. La posi-
ble A. ción pos debe existir en la va-
riable A.
b = A(fila,col) Copia en b el valor en la La posición ( f ila, col ) debe
posición ( 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 Básicas para Leer Valores en Matrices

8
LABORATORIO DE SISTEMAS DE CONTROL

>>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 SISTEMAS DE CONTROL

Instrucción Descripción Observaciones


A(pos) = b Copia en la posición pos Si la posición pos no existe en la va-
de la variable A el valor riable A completa las posiciones no
de b. existentes con ceros. Además, b debe
ser un escalar.
A(fila,col) = b Copia en la posición Si la posición ( 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. Además, 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. Además, 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. Además, b debe tener la
misma longitud de las filas de A.
A(fila1:fila2,col1:col2) = b Copia en el bloque Si la posición ( 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. Además,
( 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 Básicas para Escribir Valores en Matrices

10
LABORATORIO DE SISTEMAS DE CONTROL

Ejemplo Descripción Observaciones


A= [] Crea una matriz vacı́a o elimina No elimina la variable única-
todos los valores de una matriz mente su contenido.
existente.
A(pos) = [] Elimina la posición pos de la va- La variable A debe tener una so-
riable A el valor de b. la fila o columna. La posición
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 Básicas 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 Eliminación de Valores en Matrices

11
LABORATORIO DE SISTEMAS DE CONTROL

1.2.4. Algebra Lineal


Entre las preincipales operaciones de algebra lineal están:
Transponer matrices,
Calcular determinante y rango de matrices,
Determinar núcleo, recorrido, valores y vectores propios de matrices.
Para transponer matrices se usa el apóstrofe después de la matriz. Por ejemplo:

A’
B = A’
En el ejemplo anterior, A puede ser una variable o una constante y el apóstrofe indica que se ob-
tendrá la transpuesta de la matriz y B siempre es una variable. Aunque, hay que tener presente que la
transpocisión incluye que se obtengan los conjugados de los elementos originales de la matriz.

El determinante de una matriz puede ser obtenido usando la función det en cualquiera de las dos
formas que se muestran a continuaón:

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 función rank como se muestra a continuación:

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
función, mientras que la segunda lo almacena en otra variable.

Para encontrar una base para el recorrido de una matriz se puede usar la función orth y para una
base del núcleo se usa la función null. Además, 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 creará una matriz donde las columnas serán los vectores de la base
ortonormal. A continuación, algunos ejemplos de su uso:

12
LABORATORIO DE SISTEMAS DE CONTROL

null(A)
orth(A)
N= null(A)
O= orth(A)
Los vectores y valores propios de una matriz cuadrada se pueden obtener usando la función eig.
La sintaxis es:
eig(A)
r = eig(A)
[r,V] = eig(A)

Adicionalmente, para obtener los coeficientes del polinomio caracterı́stico de una matriz cuadrada
se puede usar la función poly.

1.2.5. Gráficos en 2D
Las funciones más usadas para realizar gráficos en 2D son: plot y stem. La función plot sirve para
trazar curvas en el plano cartesiano a partir de la unión, con segmentos, de una serie de puntos (x, y)
y sus formas más básica pueden verse en la Tabla 1.7 . En cambio, para graficar los puntos (x, y) en
el plano cartesiano se usa la función 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 posición en la columna. Las opciones son caracteres que
determinan el color, estilo de la lı́nea 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 Básicas de la función plot

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

13
LABORATORIO DE SISTEMAS DE CONTROL

Caracter Color Caracter Marcador


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

Tabla 1.8: Opciones de la función plot

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

En la Figura 1.7 se muestra el uso de la función plot y otras funciones para dar formato a los
gráficos generados.

Además de la función plot, hay otras funciones básicas 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 gráfica de la ventana de una figura.

14
LABORATORIO DE SISTEMAS DE CONTROL

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ón
grid on
title(’Ejemplo 4’)
xlabel(’x’)
ylabel(’Y’)
legend(’Columna1’,’Columna2’,’Columna3’)

Figura 1.7: Ejemplos de uso de la función plot

15
LABORATORIO DE SISTEMAS DE CONTROL

figure() Crea una figura nueva


figure(b) Direcciona las funciones de gráficos 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 área de la figura en i filas por j columnas y selecciona
la posición 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 cuadrı́cula en el gráfico.
grid off Oculta la cuadrı́cula en el gráfico.
title(’Titulo del Grafico’) Muestra ’Titulo del Grafico’ como tı́tulo del gráfico.
xlabel(’Titulo de las X’) Muestra ’Titulo de las X’ como tı́tulo del eje de las “X”
ylabel(’Titulo de las Y’) Muestra ’Titulo de las Y’ como tı́tulo 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 básicas complementarias para realizar gráficas

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 instrucción de control de flujo que se analizará es if/elseif/else/end que permite tomar
la decisión de que parte del código del programa se ejecutará y tiene la siguiente sintaxis:

if expresión
instrucciones
elseif expresión
instrucciones
else
instrucciones
end
En la sintaxis de la cláusula if/elseif/else/end usar elseif/else es opcional pero if/end es obligato-
rio. La idea tras esta cláusula es: si la expresón es verdadera entonces se ejecutan las instrucciones
siguientes caso contrario se salta hasta la siguiente cláusula y se repite el proceso hasta llegar a la
cláusula end. Sin embargo, si llega a la cláusula else se ejecutan sus instrucciones directamente ya
que en esta cláusula no hay expresión que evaluar. Frecuentemente, expresión está formada de com-
paraciones y/u operaciones lógicas, de las cuales las principales se muestran las Tablas 1.10 y 1.11.

16
LABORATORIO DE SISTEMAS DE CONTROL

Sı́mbo Significado
> Mayor que,
< Menor que,
>= Mayor o igual que,
<= Menor o igual que,
== Igual,
∼= Diferente.

Tabla 1.10: Lista de comparadores

Sı́mbolo Significado
&& Y,
|| O,
∼ No.

Tabla 1.11: Operadores lógicos en los condicionales

La siguiente instrucción de control de flujo es el conjunto de cláusulas 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 ejecución 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 ejecución, si se omite se asume como 1, y fin es el último valor
que puede tomar el indice. Además, 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 ú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 término independiente. Entre estas funciones están: root, conv, polyval y en la
Figura 1.8 se puede ver ejemplos del uso de ellas .

17
LABORATORIO DE SISTEMAS DE CONTROL

>>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 términos no presentes, luego se puede usar la operación de suma o
resta de matrices.
Otra función para trabajar con fracciones de polinomios es residue que calcula los coeficientes
y polos obtenidos al separar una fracción polinómica en fracciones parciales o los coeficientes de
los polinomios del numerador y del denominador a partir de los coeficientes y polos de una fracción
parcial.

Muchas veces es importante saber las dimensiones de una matriz y para este fin se pueden usar las
funciones size o length. La función size obtiene las dimensiones de una matriz, es decir el número
de filas y el número de comunas, mientras que la función length obtiene la dimensión más grande de
una matriz. La función length se acostumbra a usarla con vectores.

También es muy común, cuando se crean scripts, tener que interactuar con el usuario para que
imgrese datos o mostrarle resultados. La función input se utiliza para pedir al usuario que ingrese un
dato (matriz numérica o cadena de caracteres) y la función 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 SISTEMAS DE CONTROL

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úmero es perfecto
%===============================================
%Limpia variables del Workspace
clear all
%Limpia la Ventana de Comandos
clc
%Pide que se ingrese el número
a = input(’Ingrese un número entero mayor que 1: ’);
%Inicializa el acumulador Primera corrida:
s = 0; Ingrese un número entero mayor que 1: 20
if a>1 El número 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úmero entero mayor que 1: 6
s = s+i; El número es perfecto
end
end
end
%Si la suma de los divisores es igual al número ingresado
if s==a
display(’El número es perfecto’);
else
display(’El número 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 básicamente con sistemas representados en espacio de
estados 2 o función de transferencia. Además, el toolbox provee herramientas para diseñar sistemas
de control aplicando las diferentes técnicas que se estudian en el curso de Control Automático y se
analizarán en otros capı́tulos.

En este capı́tulo se revisarán funciones para realizar los siguientes grupos de acciones:

Representación de sistemas LTI 3 SISO 4 usando funciones de transferencia o espacio de esta-


dos.
2A la representación en espacio de estados también 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 SISTEMAS DE CONTROL

Interconexión Sintaxis Función Sintaxis Operador


Serie series(sys1,sys2) sys1 * sys2
Paralelo parallel(sys1,sys2) sys1 + sys2
Paralelo parallel(sys1,-sys2) sys1 - sys2
Retroalimentación negativa feedback(sys1,sys2) –
Retroalimentación positiva feedback(sys1,sys2,+1) –

Tabla 1.12: Sintaxis de funciones y operadores para interconexión de bloques

Reducción de modelos interconectados usando álgebra de bloques.


Determinación de caracterı́sticas del sistema.
Simulación 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 función construye la función 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 función ss y requiere como ar-
gumentos para un sistema SISO:

Matriz de Estados: Primer argumento de la función y tiene que ser una matriz cuadrada.
Matriz de Entradas: Segundo argumento de la función y es un vector columna con la misma can-
tidad de filas que la Matriz de Estados.
Matriz de Salidas: Tercer argumento de la función y es un vector fila con igual cantdad de columnas
que la Matriz de estados.
Matriz de Transmisión Directa: Cuarto argumento de la función y es un escalar, generalmente 0.
La interconexión de dos bloques5 puede ser: serial, paralelo, retroalimentación. 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.

Además, después de realizar una reducción de bloques es conveniente usar la función minreal
para simplificar el resultado obtenido.

5 Cada bloque es la representación gráfica de un sistema y puede tener asociado una función de transferencia o una
representación en espacio de estados.

20
LABORATORIO DE SISTEMAS DE CONTROL

(a) Serie

(b) Paralelo (c) Retroalimentación

Figura 1.10: Interconexiónes de Bloques

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

polos,

ceros,

coeficientes del numerador y del denominador de la función de transferencia,

matrices del espacio de estados

Por último, las funciones más 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 gráficos
de respuesta a una entrada escalón o impulso, respectivamente.

21
LABORATORIO DE SISTEMAS DE CONTROL

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 escalón y a una entrada
impulso.

(a) Sistema original

(c) Respuesta a una entrada escalón unitario

(d) Respuesta a una entrada impulso


(b) Solución y resultados numéricos
22
Figura 1.11: Ejemplo de funciones del Toolbox de Control
LABORATORIO DE SISTEMAS DE CONTROL

Sintaxis Comentario
Calcula los polos de un sistema. El argumento sys puede ser
pole(sys) una función de transferencia o un espacio de estados.
p = pole(sys) Además, sys puede ser una variable o una función constructora
de sistemas lineales (tf, zpk, ss).
Calcula los ceros de un sistema. El argumento sys puede ser
zero(sys) una función de transferencia o un espacio de estados.
z = zero(sys) Además, sys puede ser una variable o una función 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 función 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 información de sistemas

1.2.9. Toolbox Simbólico


Este toolbox permite obtener respuestas algebraicas de problemas. Para alcanzar este objetivo es
necesario primero crear una variable simbólica, luego se construyen expresiones y funciones simbóli-
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 SISTEMAS DE CONTROL

Sintaxis Descripción Comentario


syms var1 var2 . . . Construye las variables
simbólicas var1 var2 y ası́
sucesivamente todas las
variables listadas.
solve(expresion) Si expresion es una función expresion debe tener varia-
calcula los ceros, pero si es bles simbólicas.
una ecuación calcula sus so-
luciones.
solve(expresion,var1) Despeja la variable var1 en la La variable var1 debe estar en
ecuación ingresada en expre- expresion.
sion.
diff(expresion,var1) Calcula la derivada de expre- expresion debe ser una fun-
sion respecto de la variable ción simbólica. Si expresion
var1. tiene más 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 ecuación de dos
variables, una función de una
variable o una función pa-
ramétrica.

Tabla 1.14: Principales funciones del Toolbox Simbólico

24
LABORATORIO DE SISTEMAS DE CONTROL

Figura 1.12: Ejemplo de algunas funciones del Toolbox Simbolico

25
Simulink

2.1. Antecedentes
Simulink es una interfaz gráfica que está incluida dentro del programa MatLab para realizar simu-
laciones de manera muy sencilla porque se pueden expresar las ecuaciones que modelan un sistema
mediante la interconexión de bloques configurables.

Otra caracterı́stica importante del Simulink, es que puede realizar simulaciones aplicando dis-
tintos métodos numéricos para sistemas continuos o discretos, e incluso se puede interactuar con
hardware en tiempo real.

Como resultado de las caracterı́sticas mencionadas del Simulink, los estudiantes pueden realizar,
con relativa facilidad, simulaciones de los controladores diseñados y de los sistemas estudiados, para
confirmar los resultados predichos en sus análisis.

2.1.1. Objetivo General


Familiarizar al estudiante con la elaboración y simulación de modelos en Simulink para verificar
los resultados obtenidos teóricamente.

2.1.2. Objetivos Especı́ficos


Introducir al estudiante en el manejo de las bibliotecas y bloques más utilizados en los modelos
de Simulink.

Entender las formas de transferir datos entre el workspace de MatLab y Simulink.

Conocer los principales parámetros de configuración de una simmulación.

26
LABORATORIO DE SISTEMAS DE CONTROL

2.2. Prepráctica
Estando dentro de MatLab, para trabajar con Simulink, lo más común 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 botón .

Figura 2.1: Biblioteca de Simulink

Luego de la acción anterior, se abre una ventana de la biblioteca de toolboxes y bloques disponi-
bles en Simulink como la que se muestra en la Figura 2.1, donde se pueden apreciar algunas de las

27
LABORATORIO DE SISTEMAS DE CONTROL

categorı́as y subcategorı́as que agrupan los bloques de Sinulink. De estas categorı́as, para el curso de
control automático, nos vamos a enfocar en:

Simulink:
• Continuous.
• Math Operation.
• Signal Routing.
• Sinks.
• Sources.
Control System Toolbox.

Figura 2.2: Modelo Nuevo en Simulink

A continuación, para abrir un modelo en blanco hay que hacer click en el botón , con lo cual
se abrirá una nueva ventana con un área de trabajo que parece un lienzo en blanco como se nuestra

28
LABORATORIO DE SISTEMAS DE CONTROL

en la Figura 2.2. En esta área de trabajo se construirá el modelo del sistema que se desea simular
agregando elementos desde la biblioteca de Simulink u otros modelos, e interconectándolos.

20 Ω

+

v + 5V vC 100 µF 800 mH
− iL

Figura 2.3: Circuito RLC

2.2.1. Ejemplo Básico


A continuación se modelará y simulará 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 dvC
= 0,0001 + iL (2.1)
20 dt
diL
vC = 0,8 (2.2)
dt
A continuación, para facilitar la construcción del modelo en Simulink, se despejarán las derivadas
en las ecuaciones 2.1 y 2.2.

 
v − vC dvC
10000 − iL = (2.3)
20 dt
diL
1,25vC = (2.4)
dt

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 usará para representar la fuente de voltaje.

Gain: Localizado en “Simulink/Math Operation”. Servirá para implementar las constantes que mul-
tiplican a las variables, por lo tanto se requerirá de tres de estos bloques.

29
LABORATORIO DE SISTEMAS DE CONTROL

Sum: Ubicado en “Simulink/Math Operation”. Se lo uitlizará para representar sumas o restas. Se


necesitarán dos de éstos.
Integrator: Está en “Simulink/Continuous”. Con este bloque se podrá obtener la variable a partir
de su derivada, por lo cual se usarán dos.
Scope: Ubicado en “Simulink/Sinks”. Se lo usará para visualzar el comportamiento de iL .
Con la definición los bloques requeridos para construir el modelo en Simulink, es más fácil pro-
ceder 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 simulación del circuito RLC

A continuación se configurarán e interconectarán los bloques. Para configurar un bloque se debe


hacer doble click en éste y ası́ abrir su cuadro de diálogo de configuración. En desarrollo de este
ejemplo se incluirán solamente los cuadros de diálogo 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 configuración

del bloque se debe hacer click en en botón del cuadro de diálogo del bloque que se esté
configurando para que los cambios sean realizados y se cierre el cuadro de diálogo.

Step: En este bloque se configurará el tamaño del paso cambiando el valor final del “Step”, lo que
representa el encendido de la fuente.

30
LABORATORIO DE SISTEMAS DE CONTROL

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

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

31
LABORATORIO DE SISTEMAS DE CONTROL

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

Sumadores: Ambos bloques “sum ” deben trabajar como diferencia, y para lograr ésto se edita la
lista de signos.

32
LABORATORIO DE SISTEMAS DE CONTROL

En este bloque, cuando se desee dejar un espacio adicional entre los signos se usa el caracter |.

Además, se debe tener en cuenta que los bloques no mencionados son los que no requieren confi-
guración adicional para el desarrollo del ejemplo.

A continuación se conectarán los bloques, para lo cual el procedimiento más sencillo es presionar
el botón izquierdo del mouse en la entrada de un bloque y arrastrar hasta la salida de otro o hasta
algún hilo que transporte la señal deseada. Luego de realizar todas las conexiones el modelo debe
lucir como se muestra en la figura 2.5.

33
LABORATORIO DE SISTEMAS DE CONTROL

Figura 2.5: Modelo construido para la simulación del circuito RLC

Luego hay que hacer click sobre el botón para iniciar la simulación y cuando é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 difı́cil apreciar el comportamiento de la
corriente en el inductor debido a la escala usada. Para mejorar la escala del gráfico hay que hacer
click en el botón para que ajuste automáticamente la escala de los ejes y se obtiene el gráfico
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 duración de la simulación a 1,5 segundos
y se ejecuta nuevamente la simulación, obteniendose el resultado mostrado en la figura 2.6c.

La simulación del sistema también 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 única. En las ecua-
ciones 2.5 y 2.6 se muestra una de las representaciones posibles.

34
LABORATORIO DE SISTEMAS DE CONTROL

(a) Simulación del circuito RLC (b) Simulación del circuito RLC con la escala
ajustada

(c) Simulación del circuito RLC con la escala


ajustada

Figura 2.6: Resultado de las simulaciones al cambiar escalas y duración.

35
LABORATORIO DE SISTEMAS DE CONTROL

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

(b) Configuración del bloque “State-Space” para el circuito RLC

Figura 2.7: Modelo y configuración de parámetros del circuito RLC usando variables de estado

36
LABORATORIO DE SISTEMAS DE CONTROL

Figura 2.8: Simulación del circuito RLC usando variables de estado

      
v˙C −500 −10000 vC 500
˙iL = + v (2.5)
1,25 0 iL 0
 
  vC
iL = 0 1 + 0v (2.6)
iL

A partir de las ecuaciones 2.5 y 2.6 se concluye que los valores de las matrices A, B,C, D son:

 
−500 −10000
A = (2.7)
1,25 0
 
500
B = (2.8)
0
 
C = 0 1 (2.9)
D = [0] (2.10)

Con los valores obtenidos de las matrices A, B,C, D se puede usar el bloque “State-Space” en la
categorı́a “Simulink/Continuous” y el modelo en Simulink lucirá como en la figura 2.7a. Además, la
configuración de los parámetros del bloque se pueden observar en la figura 2.7b y el resultado de la

37
LABORATORIO DE SISTEMAS DE CONTROL

simulación se lo puede ver en la figura 2.8.

Otra forma de realizar la simulación del circuito RLC mostrado es obteniendo la función de trans-
ferencia 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 (2.11)
20
1,25VC = sIL (2.12)
 
500V − 10000IL
⇒ 1,25 = sIL (2.13)
s + 500
⇒ 625V = IL (s2 + 500s + 12500) (2.14)
 
625
⇒ IL (s) = V (s) (2.15)
s2 + 500s + 12500
625
⇒ G(s) = 2 (2.16)
s + 500s + 12500

La ecuación 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 paráme-
tros de configuración del bloque “Tranfer Fcn” y en la figura 2.10 el resultado de la simulación.

Se debe añadir, 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 interacción entre scripts de MatLab
y modelos de Simulink.

Adicionalmente, en caso de que no se haya notado, cuando se abre el cuadro de diálogo para con-
figurar un bloque se puede ver que el texto en la barra de tı́tulo incluye el nombre del bloque que se
está configurando.

38
LABORATORIO DE SISTEMAS DE CONTROL

(a) Modelo en función de transferencia para simular el circuito RLC

(b) Configuración del bloque “Transfer-fcn” para el circuito RLC

Figura 2.9: Modelo y configuración de parámetros del circuito RLC usando función de transferencia

39
LABORATORIO DE SISTEMAS DE CONTROL

Figura 2.10: Simulación del circuito RLC usando función de transferencia

2.2.2. Biblioteca de Bloques de Simulink


Ahora que ya se tiene una idea de como trabajar en Simulink, se revisarán los bloques más usados
en este curso agrupados por categorı́a.

Categorı́a Simulink/Continuous
En esta categorı́a están los bloques que representan cambios continuos en el tiempo y que gene-
ralmente pueden ser expresados matemáticamente como ecuaciones diferenciales. En esta categorı́a
los bloques más usados son:

Transfer fcn:
Sirve para implementar funciones de transferencia donde se conocen los coeficientes de los
polinomios del numerador y del denominador. Los parámetros que generalmente se configuran
en este bloque son:

40
LABORATORIO DE SISTEMAS DE CONTROL

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 número de filas en este parámetro.

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” ordena-
das descendentemente. El cuadro de diálogo pude verse en la figura 2.9b.

Zero-Pole:
Se utiliza para implementar una función de transferencia cuando se conocen los polos y ceros
de ésta. Los parámetros que usualmente se configuran son:

Zeros → Ceros:
Puede ser un vector o una matriz con los ceros de la función de transferencia. La canti-
dad de elementos en la salida es igual al número de columnas en este parámetro pero si
solamente tiene una fila entonces tiene una salida.

Poles → Polos:
Es un vector con los polos de la función 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 configuración de este bloque.

41
LABORATORIO DE SISTEMAS DE CONTROL

Figura 2.11: Cuadro de configuración del bloque Zero-Pole

State-Space:
Este bloque sirve para implementar un sistema en variables de estado y se debe conocer las ma-
trices A, B, C, D que definen el sistema. Además, este bloque tiene la gran ventaja de permitir
la representación de sistemas de múltiples entradas y múltiples salidas con un sólo bloque. El
cuadro de configuración se lo puede observar en la figura 2.7b y los parámetros que general-
mente se configuran son:

42
LABORATORIO DE SISTEMAS DE CONTROL

A:
Matriz de estados.

B:
Matriz de entradas.

C:
Matriz de salidas.

D:
Matriz de transmisión 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 configuración del bloque, pero los campos
que más comúnmente editados son:

Initial condition→Condición inicial:


Es una constante o un vector con los valores de las condiciones iniciales de integración
de las señales que entran al bloque. Sólo es editable cuando en el campo “Initial condi-
tion source” está seleccionado el elemento “internal” que es la opción seleccionada por
omisión.

Limit output→Limitar salida:


Es un cuadro de selección para habilitar la saturación de la salida del integrador.

Upper saturation limit→Lı́mite superior de la saturación:


Es un escalar o un vector que indican las salidas máximas del integrador.

Lower saturation limit→Lı́mite inferior de la saturación:


Es un escalar o un vector que indican las salidas mı́nimas del integrador.

43
LABORATORIO DE SISTEMAS DE CONTROL

Figura 2.12: Cuadro de configuración del bloque Integrator

Transport Delay:
Este bloque permite implementar retraso en el tiempo para una señal. El cuadro de configura-

44
LABORATORIO DE SISTEMAS DE CONTROL

ción se lo muestra en la figura 2.13 y los campos que generalmente se editan son:

Time delay→Tiempo 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 output→Salida inicial:


Es el valor que tomará la salida del bloque mientras el tiempo de simulación sea menor
al tiempo de retraso.

Figura 2.13: Cuadro de configuración del bloque Transport Delay

45
LABORATORIO DE SISTEMAS DE CONTROL

Categorı́a Simulink/Discontinuities
En esta categorı́a están algunos bloques que pueden generar saltos y otros que simplemente tienen
no linealidades, pero en este documento sólo se analiza el bloque “Saturation”.

Saturation:
Este bloque sirve para limitar los valores que puede tomar una señal entre un máximo y un
ı́nimo. El cuadro de configuración de este bloque puede verse en la figura 2.14. Los parámetros
que generalmente se configuran en este bloque son:

Figura 2.14: Cuadro de configuración del bloque Saturation

Upper limit→Lı́mite superior:


Es un escalar o un vector con los valores máximos que pueden tomar las señales que
entran al bloque.

46
LABORATORIO DE SISTEMAS DE CONTROL

Lower limit→Lı́mite inferior:


Es un escalar o un vector con los valores mı́nimos que pueden tomar las señales que en-
tran al bloque.

Categorı́a Simulink/Math Operations


Aquı́ se encuentran bloques que permiten aplicar funciones matemáticas sobre las señales que
entran a un bloque o realizar operaciones matemáticas con las señales.

Gain:
Este bloque sirve para implementar la multiplicación de un escalar o una matriz por la señal
de entrada. Los parámetros más comunmente configurados son:

Figura 2.15: Cuadro de configuración del bloque Gain

Gain→Ganancia: Es el escalar, vector o matriz que se multiplicará por la entrada.

47
LABORATORIO DE SISTEMAS DE CONTROL

Multiplication→Multiplicación: Es una lista desplegable donde se escoge el tipo de multi-


plicación que se usará:
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 multiplicación matricial de la matriz in-


gresada en el parámetro “Gain” y la entrada del bloque, en ese orden.

Matrix(u*K): Se lo utiliza para realizar la multiplicación matricial de la entrada del


bloque y la matriz ingresada en el parámetro “Gain”, en ese orden.

Cuando el parámetro “Gain” tiene un escalar no importa cual de los tres casos se
escoja siempre realizará la operación escalar por matriz.

Sum:
Sirve para sumar las entradas del bloque, teniendo en cuenta que la cantidad de elementos de
cada señal de entrada debe ser la misma. El cuadro de configuración de este bloque puede ob-
servarse en la figura 2.16.

El parámetro 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 SISTEMAS DE CONTROL

Figura 2.16: Cuadro de configuración del bloque Sum

Product:
Con este bloque se pueden implementar la multiplicación o división de dos o más señales en
las entradas. El cuadro de configuración se muestra en la figura 2.17 y las propiedades que
generalmente se editan son:

49
LABORATORIO DE SISTEMAS DE CONTROL

Figura 2.17: Cuadro de configuración del bloque Product

Number of imputs→Número de entradas:


Cuando se ingresa un número mayor que uno genera esa cantidad de entradas para
ser multiplicadas. Aunque, también se puede ingresar una cadena de caracteres con los
sı́mbolos: ∗,/, que definen si la entrada es un multiplicando o un divisor.

Multiplication→Multiplicación:
Es un campo con una lista desplegable donde se puede seleccionar entre:
Element-wise(.*): Sirve para realizar la operación de MatLab “.∗” o “./” con las en-
tradas del bloque dependiendo de los signos en el campo “Number of inputs”.

50
LABORATORIO DE SISTEMAS DE CONTROL

Matrix(*): Sirve para realizar la multiplicación de matrices o multiplicación por la


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

Math Function:
Con este bloque se pueden implementar varias operaciones matemáticas como exponenciales,
logaritmos y potencias. En la figura 2.18 y el parámetro que se suele configurar es “Function”
que consiste de una lista desplegable donde se seleciona la función que se desea ejecutar.

Figura 2.18: Cuadro de configuración del bloque Math Function

Sqrt:
Este bloque es útil para implementar la raı́z cuadrada de un número.

51
LABORATORIO DE SISTEMAS DE CONTROL

Trigonometric Function:
Este bloque permite implementar funciones trigonométricas, hiperbólicas o sus inversas. Es-
tas funciones se las pueden seleccionar de la lista desplegable en el parámetro “Function”.
Además, hay que tener en cuenta que para las funciones trigonométricas la entrada tiene que
estar en radianes.

Figura 2.19: Cuadro de configuración del bloque Trigonometric Function

Categorı́a Simulink/Signal Routing


En esta categorı́a se encuentran bloques que permiten simplificar la conexión de los bloques. Aquı́
se analizarán: mux y demux que sirven para concatenar o seleccionar señales.

52
LABORATORIO DE SISTEMAS DE CONTROL

Demux:
Este bloque extrae las componentes de una señal y las devuelve como variables separadas.

Mux:
La función de este bloque es combinar las entradas en un solo vector de salida.

53
Identificación de sistemas usando MatLab

3.1. Antecedentes
Debido a los avances en las tendencias tecnológicas a nivel industrial y comunicacional, y al constan-
te mejoramiento de las industrias locales es necesario familiarizar a los estudiantes con los ambientes
laborales actuales para de esta manera llegar a un nivel competitivo acorde con las exigencias del me-
dio.
En la actualidad la mayorı́a de las propuestas de sistemas de control están basadas en un modelo del
proceso considerado y sujeto a parámetros determinados, por lo que el modelado y la identificación
se convierten en etapas importantes en los diseños. Para satisfacer los requerimientos deseados en un
proceso, el sistema de control debe garantizar la operación de este con un buen desempeño sobre un
rango amplio de condiciones de operación.
Modelos matemáticos utilizados comúnmente en la representación de los sistemas fı́sicos se basan
en una representación teórica que describe los procesos en forma aproximada. Los modelos ma-
temáticos de plantas o procesos son obtenidos mediante dos técnicas fundamentales, modelamiento
e identificación. Debido a la mayor complejidad de los modelos matemáticos se recurre generalmente
al método de la identificación experimental del proceso.

3.1.1. Objetivo General


Familiarizar al estudiante con el procedimiento básico de identificación de sistemas a través de
MatLab.

3.1.2. Objetivos Especı́ficos


Describir en qué consiste la identificación de sistemas y explicar el procedimiento a seguir.

Guiar al estudiante en el diseño del experimento para la adquisición de datos para identifica-
ción.

Aprender a diseñar y probar diferentes filtros para el acondicionamiento de señales.

Comparar los resultados obtenidos y evaluar diferentes criterios de selección.

54
LABORATORIO DE SISTEMAS DE CONTROL

3.2. Prepráctica
3.2.1. Teorı́a
La Identificación de Sistemas es un proceso útil para el modelamiento de sistemas que no pueden
ser fácilmente representados en términos de su modelamiento matemático. El objetivo concreto que
se persigue mediante la identificación de un proceso determinado esla obtención de un modelo ma-
temático del sistema. El modelo matemático proporciona la información de los ceros y polos del
sistema en el plano de la variable compleja ”s”, información que permite conocer el comportamiento
dinámico en el dominio del tiempo del sistema. En todo sistema podemos distinguir dos tipos de
señales:
1. Señales de entrada: Las señales de entrada pueden ser:
Señales de Referencia: Son aquellas señales que pueden ser fijadas por el operador del siste-
ma para establecer el nivel de las señales de salida.
Señales de Perturbación: Son señales que afectan el comportamiento del sistema y general-
mente no están bajo el control del operador del proceso.
2. Señales de salida: Son señales que nos indican como se está comportando el sistema.

Figura 3.1: Señales de un sistema de control

Las señales del sistema están en el dominio del tiempo, pero pueden ser manipuladas matemática-
mente usando la transformada de Laplace, para llevarlas al dominio de la variable compleja ”s”. Para
efecto de identificación, las señales son muestreadas a tiempos discretos que usualmente están igual-
mente distanciados T unidades de tiempo.Para realizar la identificación de un sistema, MatLab ofrece
una herramienta llamada SYSTEM IDENTIFICATION que nos permite realizar este procedimiento
de manera sencilla.

55
LABORATORIO DE SISTEMAS DE CONTROL

3.2.2. Procedimiento para la identificación


1. Diseño del experimento.- Se especifican los parámetros a utilizar para la identificación, tales
como: tiempo de muestreo, tiempo de simulación, perı́odo del tren de pulsos,etc.
2. Adquisición de datos.- Se obtienen datos de la planta para su posterior procesamiento.
3. Acondicionamiento de señales .- Se diseña y aplica el filtro, y luego se determinan y restan los
puntos de operación a la entrada y salida del sistema.
4. Selección de grupos de datos para identificación y validación.
5. Identificación hasta obtener el 80 % de ajuste.

3.2.3. Ejemplo
Como ejemplo se realizará la simulación e identificación de un sistema de aire acondicionado
donde la entrada del sistema corresponde al voltaje y la salida del sistema corresponde a la tempera-
tura.
Diseño del experimento
Al realizar el diagrama de bloques para el experimento, debe obtener algo similar al de la figura
3.2.Como se observa en la imagen, se debe incluir un tren de pulsos sumado a un escalón para exci-
tar el sistema, el bloque de la planta o función de transferencia y un Scope para visualizar la salida
del sistema. De manera opcional, puede utilizar un Mux para multiplexar varias señales y poder
visualizar en un sólo Scope tanto la entrada como salida del sistema.

Figura 3.2: Diagrama de bloques

Para realizar la adquisición de datos de manera correcta, es necesario configurar ciertos paráme-
tros como tiempo de muestreo,tiempo de simulación,perı́odo de tren de pulsos,punto de operación a
utilizar y amplitud de la variación. Los tres primeros parámetros se calculan como indica el Anexo
A,mientras que los dos últimos son parámetros indicados durante la práctica y son escogidos a partir
de la curva caracterı́stica de cada sistema.

56
LABORATORIO DE SISTEMAS DE CONTROL

Tiempo de muestreo(tm ): Indica cada cuánto tiempo el programa toma una muestra del sistema.

Tiempo de simulación(tsimulacion ): Indica cuánto tiempo el programa se ejecuta.

Perı́odo de tren de pulsos(Pt p ): La mitad de este valor indica cada cuánto tiempo se produce una
variación al punto de operación del sistema.

Punto de operación: Niveles o estados donde normalmente opera el sistema y el mismo se encuen-
tra estable.

Amplitud de la variación: Indica cuánto se desvı́a o varı́a la señal de referencia con respecto al
punto de operación. Para la identificación, estas variaciones deben ser tanto positivas como
negativas y de igual amplitud.

En la figura 3.3 se muestra la confguración del bloque Step(Escalón) que representa el punto de
operación del sistema. Para el ejemplo el punto de operación es de 3 V por lo que el Initial value es
este mismo valor. Note que se utiliza un Step time de 30 segundos para permitir que el sistema llegue
estabilizarse en el punto de operación; este valor depende de la dinámica de cada sistema. Luego de
que transcurra el Step time, en la simulación , se realiza la primera variación al punto de operación.
Para este ejemplo, la variación escogido fue de 0.5 V por lo que el Final Value es 2.5 V.
La señal del Step se suma a un tren de pulsos cuyos parámetros para este ejemplo son los que se
muestran en la figura 3.4. La amplitud del tren de pulsos es igual a la amplitud total de las variaciones;
para este ejemplo este valor es 1 ya que las variaciones son de ±0,5 V. El perı́odo del tren de pulso
fue calculado usando el Anexo A; recuerde que este valor debe ser mayor o igual a dos veces el
tiempo de estabilización y a su vez tiene que ser múltiplo del tiempo de muestreo del sistema. Para
obtener pulsos cuadrados, es necesario que el Duty Cycle o Pulse Width sea del 50 % tal como se
observa en la figura 3.4. Por último el Phase Delay necesario para el tren de pulsos es igual al Step
time, ya que es el tiempo que debe transcurrir sin variaciones en la referencia para que el sistema se
estabilice en el punto de operación.
Para configurar el tiempo de muestreo debe acceder a la ventana de Model Configuration Para-
meters haciendo click en el ı́cono del engranaje que se muestra en la figura 3.5. Le aparecerá una
ventana como la mostrada en la figura 3.6. Dar click en Variable-Step y seleccionar Fixed-Step; la
ventana deberá parecerse a la mostrada en la figura 3.7. Escribir en el casillero alado de Fixed-step
size(fundamental sample time) el valor de tiempo de muestreo (tm ) calculado según el Anexo A. Para
este ejemplo, este valor fue de 0.1 segundos.

57
LABORATORIO DE SISTEMAS DE CONTROL

Figura 3.3: Parámetros de Referencia del Sistema

58
LABORATORIO DE SISTEMAS DE CONTROL

Figura 3.4: Parámetros de Variaciones de la Referencia

Figura 3.5: Menú

59
LABORATORIO DE SISTEMAS DE CONTROL

Figura 3.6: Model Configuration Parameters: Variable Step

Por último el tiempo de simuación debe ser fijado en el recuadro junto al ı́cono de grabar; para
este ejemplo se escogió un tiempo de simulación de 200 segundos, tal como se muestra en la figura
3.5.
Adquisición de datos
Para almacenar los datos de la simulación o de de la planta en el workspace se debe utilizar el bloque
To Workspace o configurar el Scope para que realice esta función. Para configurar el Scope dar doble
click sobre el mismo, luego dar click en el ı́cono del engrane como se muestra en la figura 3.8 y la
ventana mostrada en la figura 3.9 aparecerá.

60
LABORATORIO DE SISTEMAS DE CONTROL

Figura 3.7: Model Configuration Parameters: Fixed Step

Figura 3.8: Menú del Scope

61
LABORATORIO DE SISTEMAS DE CONTROL

Figura 3.9: Configuraciones

Luego debe dar click a la pestaña History y seleccionar el casillero Save data to worskpace;
en Variable name, escriba el nombre de la variable donde se almacenarán los datos, y en Format
seleccione la opción Array. Deseleccione el casillero Limit data points to last y presione Ok. La
pestaña History debe quedar similar a la mostrada en la figura 3.10.

Figura 3.10: Pestaña History

Presione el botón Start simulation para que empiece la simulación o empiece a correr la planta. Al
transcurrir el tiempo de simulación previamente seteado, la simulación se detendrá automáticamente
y en el Workspace de MatLab aparecerá la variable descrita en las configuraciones del Scope. Esta
variable será una matriz donde cada columna representa una señal o dato diferente. La primera co-
lumna siempre corresponde al vector de tiempo, es decir el tiempo en el que se tomó cada muestra;

62
LABORATORIO DE SISTEMAS DE CONTROL

los valores de este vector deben ir en pasos igual al tiempo de muestreo. El resto de columnas corres-
ponderán a las señales que se observan en el Scope y el orden de las mismas dependerá del puerto
del Mux en que se hayan conectado dichas señales.
Para este ejemplo se obtuvieron los datos mostrados en la figura 3.11. La variable almacenada en
este caso fue llamada data y cuenta con 3 columnas; la primera columna es el vector de tiempo, la
segunda columna es la señal de referencia o entrada de la planta y la tercera columna es la respuesta
o salida de la planta. Note que en la figura 3.2 la señal de entrada de la planta se conecta al puerto
número uno del Mux por lo que corresponde a la segunda columna de la matriz data, y la señal de
salida de la planta se conecta al puerto número dos del Mux por lo que corresponde a la tercera
columna de la matriz data.

Figura 3.11: Adquisición de Datos

Para los reportes debe mostrar las gráficas de entrada y salida del sistema vs. tiempo; puede ser
ambas gráficas en una sola figura o cada gráfica en una figura diferente, pero siempre se deben mos-
trar las señales con respecto al tiempo y detallando tı́tulo de la gráfica y leyenda si fuese necesario.
En la figura 3.12 se muestra en una sola ventana la entrada y salida del sistema del ejemplo con
respecto al tiempo. En casos donde la escala de la entrada y salida son muy distantes es preferible
trabajar con dos ventanas separadas, por ejemplo si se trabajara con una entrada en el orden de los
miliamperios y una salida en rpm.

63
LABORATORIO DE SISTEMAS DE CONTROL

Figura 3.12: Entrada y Salida del Sistema

Acondicionamiento de señales
Los datos obtenidos de plantas reales normalmente tienen un nivel de ruido significativo que puede
afectar el proceso de identificación del sistema en gran medida, por lo tanto es necesario filtrar los
datos antes de realizar la identificación. Los filtros más sencillos tienen la siguiente forma: F (s) =
p
donde p tiene que ser al menos 5 veces mayor al polo dominante de la planta. Para el ejemplo
s+ p
asumimos un tiempo de estabilización de 16 segundos,por lo tanto:
Tss = 4τ
16
τ= =4
4
1
τ= ; donde p1 representa el polo dominante de la planta.
p1
1
p1 = = 0,25
4
p ≥ 5 ∗ 0,25
p ≥ 1,25
Para el ejemplo se decidió utilizar p = 10p1 = 2,5 . Una vez ingresada la función de transferencia
del filtro se utiliza el comando lsim para filtrar los datos, y se realiza la gráfica de los datos filtrados
y sin filtrar vs. tiempo en una misma figura como se muestra en la imagen 3.13. El filtro se encuentra
bien diseñado siempre y cuando la señal filtrada no varı́e su dinámica con respecto a la seãl sin filtrar;
esto es, que la señal filtrada se encuentre dentro de la señal sin filtrar pero que tenga menor nivel de
ruido.

64
LABORATORIO DE SISTEMAS DE CONTROL

Figura 3.13: Salida del Sistema: Filtrada y Sin filtrar

Luego de filtrar los datos, es necesario hallar y restar el punto de operación de las señales de
entrada y salida del sistema. Recuerde que en control se trbajan con las variaciones de los sistemas
alrededor de sus distintos puntos de operación. El punto de operación de la entrada es conocido ya
que es escogido al inicio del experimento, pero el punto de operación correspondiente en la salida
debe ser hallado. Para hallar este valor, se deben promediar algunos datos de la salida cuando el
sistema se encontraba estable, antes de realizar variaciones alrededor del punto de operación. Para
este ejemplo, esto quiere decir que se deben promediar datos antes de t=30 segundos.
OJO: Debe considerar un rango de datos en el que el sistema se encuentre estable, no tomar en
cuenta el arranque de la planta.
El punto de operación en la salida fue de 23 grados centı́grados correspondientes a una entrada de
3V.
Luego de restar los puntos de operación de la entrada y salida del sistema, se debe graficar lo obtenido
para adjuntarlo al reporte y verificar que los puntos de operación hayan estado bien calculados. Para
el experimento se obtuvo lo mostrado en la figura 3.14. Note como ambas gráficas están centradas en
cero; las gráficas reflejan cómo varı́a la salida del sistema alrededor del punto de operación cuando
se realizan variaciones en la entrada del sistema alrededor del punto de operación.

65
LABORATORIO DE SISTEMAS DE CONTROL

Figura 3.14: Variaciones en la entrada y salida del sistema

Para empezar a hacer la identificación usando el toolbox System Identification de MatLab, debe
escribir el comando ident en el Command Window y presionar Enter. La ventana mostrada en la
figura 3.15 aparecerá.

Figura 3.15: System Identification

El siguiente paso es importar los datos para la identificación, por lo que debe dar click a Import
data y luego seleccionar Time Domain data como se muestra en la figura 3.16.

66
LABORATORIO DE SISTEMAS DE CONTROL

Figura 3.16: Import Data

Luego aparecerá una ventana como la mostrada en la figura 3.17. En Input deberá escribir el
nombre de la variable que contenga la señal de entrada ası́ como también indicar el rango de datos
que se desea importar en caso de ser necesario.De manera similar para Output, deberá escribir el
nombre de la variable que contenga la señal de salida ası́ como también indicar el rango de datos
que se desea importar en caso de ser necesario.Por ejemplo si se desea importar todos los datos de la
segunda columna de una variable llamada altura, deberı́a escribir altura(:,2).

Figura 3.17: Import Data: Time Domain Signals

67
LABORATORIO DE SISTEMAS DE CONTROL

En Starting time escriba cero y en Sampling interval escriba el tiempo de muestreo calculado y
usado (tm); luego dé click en Import. La ventana del System Identification deberá verse como la
figura 3.18.

Figura 3.18: System Identification: Datos importados

Si activa la casilla time plot, podrá visualizar los datos importados tal como se muestra en la figura
3.19.

Figura 3.19: Datos importados

68
LABORATORIO DE SISTEMAS DE CONTROL

Selección de grupos de datos para identificación y validación.

Se deben selccionar dos grupos de datos para realizar la identificación.

Working data: Son los datos con los que el programa estima la función de transferencia del sistma.

Validation data: Son los datos contra los que se compara la respuesta de la función de transferencia
encontrada.

Para seleccionar un rango de datos, dar click en Preprocess y seleccione la opción Select Range, tal
como se muestra en la figura 3.20. Se abrirá una ventana como la mostrada en la figura 3.21; debe
seleccionar al menos un perı́odo completo del tren de pulsos y luego dar click al botón Insert. El grupo
de datos seleccionado aparecerá junto a los datos importados en la vetana del System Identification.

Figura 3.20: Select Range

69
LABORATORIO DE SISTEMAS DE CONTROL

Figura 3.21: Time plot: Select Range 1

Repetir el proceso anterior pero esta vez seleccione un grupo de datos diferente al escogido an-
teriormente: de igual manera debe escoger al menos un un perı́odo completo del tren de pulsos.Para
este ejemplo se escogieron los datos como se muestran en las figuras 3.21 y 3.22.

Figura 3.22: Time plot: Select Range 2

Si desactiva los datos importados dando click una vez sobre los mismos en la ventana del System
Identification y revisa el time plot, se tendrá algo similar a lo que se muestra en la figura 3.23.
Observe que los pulsos están de dos colores diferentes, donde cada color representa un conjunto de
datos diferente. La ventana del System Identification debe ser similar a la mostrada en la figura 3.24.

70
LABORATORIO DE SISTEMAS DE CONTROL

Figura 3.23: Time plot: Datos

Figura 3.24: System Identification: Datos

71
LABORATORIO DE SISTEMAS DE CONTROL

Debe seleccionar uno de los conjuntos de datos para que sean los datos de trabajo y otro para
que sean los datos de validación. Arrastre los datos escogidos a los recuadros de Working Data y
Validation Data correspondientes,recuerde que estos deben ser dos grupos de datos distintos. Luego
de realizar esto, la ventana del System Identification queda como la de la figura 3.25.

Figura 3.25: System Identification: Working Data y Validation Data

72
LABORATORIO DE SISTEMAS DE CONTROL

Identificación hasta obtener el 80 % de ajuste.


El siguiente paso es estimar el modelo; es decir que el System identification encuentre una función de
transferencia cuya respuesta a la entrada dada sea similar a la respuesta dada. Dar click en Estimate
y luego en Process Models como se muestra en la figura 3.26.

Figura 3.26: Estimate:Process Models

Aparecerá la ventana mostrada en 3.27; en esta ventana podemos indicarle al System Identification
caracterı́sticas del modelo a estimar como el orden de la función de transferencia, presencia de ceros,
delay, o integrador, o si existen polos complejos conjugados en el caso de orden 2 o superior. También
podemos indicarle si se conoce algún parámetro como ganancia estática o algún polo o cero de la
función de transferencia resultante.En la figura 3.28 puede observar que se pueden estimar modelos
hasta de tres polos.

73
LABORATORIO DE SISTEMAS DE CONTROL

Figura 3.27: Process Models

Figura 3.28: Process Models: Número de polos

74
LABORATORIO DE SISTEMAS DE CONTROL

Los parámetros se escogen de acuerdo a previo conocimiento del modelo matemático del sistema.
Por ejemplo si se conoce que la función de transferencia de un motor de corriente continua tiene
un modelo de segundo orden y se requiere realizar la identificación del mismo, se deberı́a escoger
el número dos en la opción de Poles y se podrı́an realizar dos estimaciones, una con polos reales
y una con polos complejos conjugados, y verificar cual se parece más al comportamiento real del
sistema.Sin previo conocimiento del modelo,puede realizar diferentes combinaciones de los paráme-
tros y mediante prueba y error escoger el modelo cuya respuesta se asemeje más a la respuesta real
del sistema. Cuando termine de escoger los parámetros , dé click al botón Estimate.La ventana del
System Identification deberá verse de la siguiente manera:

Figura 3.29: System Identification: Modelos

Dé click sobre la casilla de Model Output y se abrirá una ventana similar a la de la figura3.30.
Esta ventana nos indica de manera gráfica y numérica cuánto se parece o se aproxima la respuesta
de los modelos estimados a la respuesta real del sistema. Note que cada sistema se representa por un
color y nombre diferente. En el lado derecha de la ventana se observa el porcentaje de aproximación
de la respuesta de cada modelo con la respuesta real. Recuerde que para considerar la identificación
válida este valor debe ser mayor o igual al 80 %.
Para el ejemplo, se observa que el modelo P2U, representado de color rojo, es el que tiene mejor
aproximación con un porcentaje del 93 %.El nombre del modelo indica que se trata de dos polos (P2)
y que los mismos son complejos conjugados(U).

75
LABORATORIO DE SISTEMAS DE CONTROL

Figura 3.30: Model Output

Una vez que decida cuál es el modelo que mejor simula el comportamiento del sistema, dé click
sobre el mismo y arrástrelo al recuadro To Workspace. El modelo escogido deberá aparecer ahora en
el Workspace como se muestra en la figura3.31.

Figura 3.31: Workspace

76
LABORATORIO DE SISTEMAS DE CONTROL

Escriba el nombre del modelo escogido en el Command Window o de manera alternativa escriba el
comando tf(nombre del modelo) para visualizar la función de transferencia del modelo que representa
el sistema. El resultado para este ejemplo se observa en la figura 3.32.

Figura 3.32: Función de Transferencia

77
Diseño de Controladores PID usando Sisotool

4.1. Antecedentes
Sisotool es una herramienta de gran importancia ya que nos permite simplificar el proceso de
diseño del controlador y pre-filtro; de otra manera, se debieran utilizar métodos matemáticos más
complejos para hallar el controlador indicado dependiendo de las caracterı́sticas de cada sistema.Esta
herramienta fue creada para sistemas SISO, es decir para sistemas de una entrada y una salida, y es
por eso que lleva el mismo nombre.
Sisotool es una herramienta de MatLab que permite al usuario diseñar con mayor facilidad un con-
trolador que permita al sistema operar bajo las condiciones requeridas. Sisotool es una herramienta
dinámica e interactiva que nos permite visualizar los cambios que se producen en el lugar geométrico
de las raı́ces o en la respuesta de frecuencia de un sistema conforme se va modificando el controlador;
ası́ como visualizar la respuesta en el tiempo del sistema en lazo cerrado ante una entrada escalón
unitario. Además, esta herramienta nos permite escoger entre diferentes arquitecturas de control lo
cual hace que tengamos mayor libertad al momento de realizar el diseño del mismo.Adicionalmente,
Sisotool permite al usuario diseñar un pre-filtro que es un componente necesario en muchos casos
para compensar la presencia de ceros en el sistema.

4.1.1. Objetivo General


Familiarizar al estudiante con el uso de la herramienta sisotool de MatLab para diseñar controla-
dores PID para sistemas lineales o no lineales.

4.1.2. Objetivos Especı́ficos


Reforzar los conocimientos sobre lugar geométrico de las raı́ces a través de la herramienta
sisotool.

Aprender a utilizar las diferentes opciones que ofrece sisotool para el diseño de controladores.

Representar especificaciones de funcionamiento como zonas o regiones en el lugar geométrico


de las raı́ces.

78
LABORATORIO DE SISTEMAS DE CONTROL

4.2. Prepráctica
Para acceder a esta herramienta es necesario conocer de antemano la función de transferencia
de la planta y del sensor(realimentación), y haberlos ingresado previamente en el Workspace de
MatLab.En esta guı́a identificaremos a la funcioń de transferencia de la planta como G y a la función
de transferencia del sensor como H. El comando a utilizar es:

sisotool(G,C,H,F)

Donde C es la función de transferencia del controlador y F el pre-filtro en caso de ser conocidas.En


caso contrario, se reemplazan estos valores por 1 ya que el controlador y el pre-filtro son modificables
dentro del aplicativo con lo que el comando serı́a el siguiente:

sisotool (G,1,H,1)

En caso de que se tenga realimentación unitaria para llamar al aplicativo de sisotool se puede
escribir simplemente:

sisotool(G)

Nota: Para mayor información acerca de Sisotool refiérase a la documentación de MatLab escri-
biendo la palabra sisotool en el Command Window y presionando la tecla F1.

4.2.1. Estructura de Ventanas


Al ingresar el comando correctamente, se inicializará el aplicativo de sisotool con lo que apare-
cerán dos ventanas:
SISO Design: Por default, en esta ventana se puede visualizar el lugar geométrico de las raı́ces
y el diagrama de bode de lazo abierto del sistema.Además, en esta ventana podemos acceder a di-
ferentes funciones y herramientas con lo que se puede obtener la respuesta del sistema al escalón
unitario,importar y exportar datos del sistema,cambiar ciertas opciones de Sisotool y dibujar el dia-
grama del sistema en Simulink. Es en esta ventana, donde visualizaremos los cambios que se dan
en el lugar geométrico, se establecrán las regiones de interés de acuerdo a lo que se solicite para el
diseño del controlador y se escogerá la ubicación de los polos de lazo cerrado del sistema.
Control and Estimation Tools Manager: Desde esta ventana se puede acceder a la mayorı́a de
las funcionalidades que presenta la ventana de SISO Design, ası́ como a otras funcionalidades.
A continuación se detalla como acceder a estas funcionalidades desde cada ventana.

79
LABORATORIO DE SISTEMAS DE CONTROL

4.2.2. Arquitectura de los controladores


En la ventana Control and Estimation Tools Manager, bajo la pestaña de “Architecture” se puede
visualizar la arquitectura utilizada actualmente. Si se desea cambiar la misma, debe hacer click sobre
el botón “ Control Architecture..”. Luego se abrirá una ventana del mismo nombre donde podrá
seleccionar entre las diferentes arquitecturas de control disponibles.Haga click sobre la estructura
requerida para visualiza los nombres con los que matlab identifica a cada señal bajo esa arquitectura
(ej: a la entrada se le asigna la letra r y a la salida la letra y). En esta misma ventana puede renombrar
estas señales y cambiar los signos de la realimentación o realimentaciones en caso de ser necesario.
Presione el botón “Ok” una vez que haya realizado los cambios.
Si desea importar un modelo o función de transferencia a Sisotool, en la ventana Control and
Estimation Tools Manager, bajo la etiqueta de Architecture dé click sobre “System Data..”. Luego dé
click sobre el botón “Browse”, escoja para qué sistema va a importar el modelo,si lo va a importar
desde el Workspace de MatLab o desde un archivo .mat, seleccione el modelo a importar de la lista
y dé click al botón “Import” y luego al botón “ Ok”.
Desde la ventana de SISO Design no se puede realizar el cambio de arquitectura de control,
pero se pueden importar los modelos de los sistemas.En esta ventana dé click en “File” y luego en
“Import”.Luego dé click sobre el botón “Browse”, escoja para qué sistema va a importar el modelo,si
lo va a importar desde el Workspace de MatLab o desde un archivo .mat, seleccione el modelo a
importar de la lista y dé click al botón “Import” y luego al botón “Ok”.

4.2.3. Graphical Tuning


Desde la ventana Control and Estimation Tools Manager,bajo la pestaña de “Graphical Tuning”
podemos seleccionar las diferentes gráficas que se deseen visualizar en la ventana SISO Design.
Para esta práctica sólo se necesita el lugar geométrico de las raı́ces por lo que se desactivrán los
otros diagramas que aparezcan en la ventana SISO Design. Dé click sobre cada una de las opciones
diferentes a “Root Locus” bajo el tı́tulo “Plot Type” y seleccione la opción “None”. Verifique que las
opciones queden como la figura 4.1.
En caso de que por error haya cerrado la ventana SISO Design, acceda a la pestaña “Graphical
Tuning” y dé click sobre el botón “ Show Design Plot”.
Desde la ventana SISO Design puede dar click sobre “View” y luego sobre “Design Plot Configu-
rations” lo que lo llevará a la pestaña “Graphical Tuning” mostrada en la figura 4.1 y a las opciones
mencionadas anteriormente.

4.2.4. Analysis Plots


Desde la ventana Control and Estimation Tools Manager,bajo la pestaña “Analysis Plots” podemos
seleccionar las diferentes gráficas que se deseen visualizar, tales como: la respuesta en el tiempo del
sistema ante una entrada escalón unitaria o ante una entrada impulso, el diagrama de bode, diagrama
de Nichols entre otros. Sisotool nos permite tener hasta 6 gráficas diferentes. Para esta práctica el

80
LABORATORIO DE SISTEMAS DE CONTROL

Figura 4.1: Pestaña Graphical Tuning

plot de interés es el de la respuesta del sistema ante una entrada escalón unitario. Seleccione en
“Plot Type” la opción Step para el Plot 1, luego marque la casilla que indica “Closed loop r to y”,
verificando que las opciones queden como la figura 4.2.
A continuación MatLab abrirá una nueva ventana con la respuesta del sistema de lazo cerrado
ante una entrada escalón unitario. En caso de haber cerrado esta ventana, puede acceder a la pestaña
“Analysis Plots” y dar click sobre el botón “Show Analysis Plot” para que le muestre los gráficos
nuevamente.

Desde la ventana SISO Design, también se puede acceder a las gráficas dando click sobre Analyis
y luego escogiendo el plot de interés; en este caso se seleccionarı́a la opción “Response to Step
Command”. Si dentro de las opciones de Analysis no se encuentra el plot de interés puede hacer
click sobre la opción “Other Loop Responses”, lo que lo llevará a la pestaña “Analysis Plots” en la
ventana Control and Estimation Tools Manager. Luego de seleccionar el gráfico de interés se abrirá
una ventana con la gráfica solicitada. Podrá notar que al realizar el plot de esta manera, se visualizan
dos gráficas o respuestas en la nueva ventana. En este caso una gráfica corresponde a la respuesta
del sistema tomando como salida del sistema a la salida del controlador y la otra corresponde a la
respuesta del sistema en lazo cerrado. La respuesta que se quiere visualizar es la de lazo cerrado; para
desactivar la otra respuesta, dé click derecho sobre un espacio en blanco en la graf́ica, seleccione la
opción Systems y deje marcada sólo la opción “Closed Loop r to y”.
Note que la pestaña Analysis Plots en la ventana Control and Estimation Tools Manager me per-
mite elegir un mayor rango de opciones.
Sin importar el método escogido para generar la gráfica, en la ventana con la respuesta al escalón

81
LABORATORIO DE SISTEMAS DE CONTROL

Figura 4.2: Pestaña Analysis Plots

dé click derecho en un espacio en blanco y seleccione la opción “Characteristics” y marque la opción
“Peak Response” que corresponde a información del sistema sobre la respuesta pico del mismo, es
decir el Sobrenivel en caso de que existiera. Repita el paso anterior y marque también la opción
“Settling Time” que corresponde a información del sistema sobre el tiempo de estabilización del
mismo ası́ como también a las marcas de la banda del 2 por ciento utilizadas para estimar el tiempo
de estabilización. Por último repita nuevamente el paso anterior y marque la opción Steady State que
corresponde a la respuesta en estado estable del sistema, esta opción muestra el valor final que toma
el sistema una vez que se ha estabilizado. Ver figura 4.3.

Figura 4.3: Characteristics: Step Response

82
LABORATORIO DE SISTEMAS DE CONTROL

4.2.5. Diseño del Controlador


El diseño del controlador puede realizarse a través de la ventana SISO Design o a través de la
ventana Control and Estimation Tools Manager.
Para agregar polos o ceros al controlador desde la ventana Control and Estimation Tools Ma-
nager, acceda a la pestña “Compensator Editor”, dé click derecho bajo la etiqueta Pole/Zero y se-
leccione la opción “Add Pole/Zero”(Ver figura 4.4). Aparecerá un menú donde podrá seleccionar
lo que desee agregar a su controlador, es decir polo real,polos complejos,integrador,cero real,ceros
complejos,derivador,entre otros.
1
Por omisión los polos o ceros reales se agregan en -1, esto es (s + 1) o . Para cambiar
s+1
la ubicación de los polos o ceros, seleccione el término que quiera modificar dando click izquierdo
sobre el mismo y luego en el cuadro de texto “Location” modifique el valor con la ubicación deseada.
Para cambiar la ganancia del controlador, modifique el valor en el cuadro de texto que se muestra
junto a la función de transferencia del controlador.

Figura 4.4: Pestaña Compensator Editor

Para eliminar polos y ceros desde esta ventana dé click izquierdo sobre el término que necesi-
te eliminar,luego dé click derecho sobre cualquier lugar bajo la etiqueta Pole/Zero y seleccione la
opción “Delete Pole/Zero”.
Para agregar polos o ceros al controlador desde la ventana SISO Design, dé click sobre el sı́mbolo
de polo,cero,polos complejos o ceros complejos en la barra de herramientas(Ver figura 4.5) y luego
dé click sobre la ubicación donde desee colocar el mismo.Para mover el polo o cero a una nueva
ubicación dé click sobre el sı́mbolo del cursor en la barra de herramientas y luego presione el botón
izquierdo del mouse sobre el polo o cero que desee mover y arrástrelo hacia la posición deseada.

83
LABORATORIO DE SISTEMAS DE CONTROL

Para cambiar la ubicación de los polos de lazo cerrado, mientras está activo el botón de cursor en
la barra de herramientas, arrastre los cuadrados fucsia que representan a los polos de lazo cerrado
hacia su nueva ubicación.

Para eliminar polos y ceros desde esta ventana,dé click sobre el sı́mbolo del borrador en la barra
de herramientas y luego dé click sobre el polo o cero del controlador que desee eliminar. En el caso
de que elimine un polo o cero complejo recuerde que su respectivo polo o cero conjugado también
se eliminará automáticamente.

Figura 4.5: Barra de herramientas:SISO Design

Recuerde que la ganancia cambia la ubicación de los polos de lazo cerrado sobre el lugar geométri-
co mientras que los polos y ceros cambian el lugar geométrico de las raı́ces. Los polos de lazo cerrado
sólo pueden ser ubicados sobre el lugar geométrico de las raı́ces.

Note que cualquier cambio que realice en el controlador en la ventana Control and Estimation
Tools Manager se verá reflejado en el lugar geométrico de las raı́ces mostrado en la ventana SISO
Desgin y cualquier cambio realizado en el lugar geométrico en la ventana SISO Design, se verá re-
flejado en la función de transferencia del controlador mostrada en la ventana Control and Estimation
Tools Manager. Por lo tanto puede editar el controlador en cualquiera de las dos ventanas dependien-
do de su necesidad; para ubicar ceros o polos en ubicaciones especı́ficas o para ubicar integradores
o derivadores utilice la ventana Control and Estimation Tools Manager, en caso de que desconozca
la ubicación de los polos o ceros que deba utilizar es más conveniente hacer uso de la ventana SISO
Design.

Para el diseño del pre-filtro acceda a la ventana Control and Estimation Tools Manager y selec-
cione la opción “F”como se muestra en la figura 4.6.

84
LABORATORIO DE SISTEMAS DE CONTROL

Figura 4.6: Pestaña Compensator Editor: Filtro

Design Requirements
La ubicación de ceros y polos del controlador debe ser escogida en base a las especificaciones de
funcionamiento que se espera del sistema como dominancia, error de estado estacionario, sobrenivel
porcentual o tiempo de estabilización. Para facilitar el diseño del controlador en base a algunas de
estas especificaciones, en la ventana SISO Design dé click en un espacio en blanco sobre el lugar
geométrico y seleccione la opción Design Requirements y luego seleccione New. En esta ventana
puede establecer lı́mites y regiones que cumplan con las especificaciones de tiempo de estabilización,
sobrenivel porcentual, coeficiente de amortiguación y frecuencia natural.
Antes de dar por terminado el proceso de diseño del controlador, verifique que las especificaciones
requeridas se cumplan en la respuesta en el tiempo ( respuesta al escalón). Refiérase a la Subsección
Analysis Plots.

4.2.6. Otras Opciones


Una vez diseñado el controlador y pre-filtro, Sisotool nos permite exportar los resultados hacia un
archivo .mat o hacia el Workspace.
Para exportar los modelos desde la ventana de Control and Estimation Tools Manager, dé click
sobre File, luego sobre Export y en la ventana que se abre seleccione el modelo que quiera exportar,
cambie el nombre del mismo si lo considera necesario y dé click a Export to Workspace en caso de
que quiera exportar el modelo al Workspace o dé click sobre Export to Disk en caso de que quiera
generar un archivo .mat con los modelos a exportar. Una vez que haya exportado los modelos que

85
LABORATORIO DE SISTEMAS DE CONTROL

considere necesario cierre la ventana.

Para exportar los modelos desde la ventana de SISO Design, dé click sobre la opción File, luego
sobre Export y en la ventana que se abre seleccione el modelo que quiera exportar, cambie el nom-
bre del mismo si ya existe una variable con el mismo nombre en el workspace y dé click a Export to
Workspace en caso de que quiera exportar el modelo al Workspace o dé click sobre Export to Disk en
caso de que quiera generar un archivo .mat con los modelos a exportar. Una vez que haya exportado
los modelos que considere necesario cierre la ventana.

Para acceder a otras opciones de Sisotool desde la ventana Control and Estimation Tools Manager,
dé click sobre Edit, luego sobre SISO Tool Preferences.. y aparecerá una ventana con varias opciones
de Sisotool.

Si desea hacerlo desde la ventana SISO Design,dé click sobre Edit, luego sobre SISO Tool Prefe-
rences.. y aparecerá una ventana con varias opciones de Sisotool.

En esta ventana aparecerán varias opciones que puede editar como unidades o escalas, estilo de los
tı́tulos y marcas en las gráficas,colores de las lı́neas y opciones de formato. Normalmente se prefiere
visualizar el controlador en forma de ganancia,polos y ceros en vez de las constantes de tiempo por
lo que puede acceder a la etiqueta Options, elegir la opción “Zero/pole/gain”, dar click en el botón
“Apply” y luego en el botón “Ok”.

Por último podemos encontrar una herramienta muy útil en la ventana SISO Design bajo el menú
“Tool”. Dé click sobre dicho menú y luego seleccione la opción “Draw Simulink Diagram...”. Esta
opción crea un archivo de Simulink con la arquitetura de control seleccionada y exporta los modelos
utilizados en Sisotool hacia el diagrama de bloques, lo que ahorra tiempo al momento de querer si-
mular el sistema ya que sólo es necesario configurar la entrada del sistema y el tiempo de simulación
y en caso de ser requerido colocar un Mux en la salida para visualizar la entrada y salida del sistema
en un solo Scope.

Recuerde que si el grado del numerador es mayor al grado del denominador en cualquiera de
sus modelos(bloques), Simulink no le permitirá realizar la simulación por lo que debe tener especial
cuidado al trabajar con controladores PID o PD; en estos casos es necesario sustituir el bloque del
Controlador, que normalmente es representado por la letra C, por un controlador PID que se lo en-
cuentra en la librerı́a de Simulink bajo la librerı́a Continuous.

Para usar el bloque PID es necesario conocer los valores de las constantes Kp, ki y Kd. La forma
más sencilla de determinar estos valores es exportar el controlador al workspace y usar el comando
tf con el controlador. Por ejemplo, para el siguiente controlador PID :

86
LABORATORIO DE SISTEMAS DE CONTROL

Figura 4.7: Parámetros del controlador PID

los parámetros mencionados son obtenidos dividiendo cada término del numerador para s, con lo
1
que se obtendrı́a 0,2s + 1,2 + con lo que se tendrı́a que K p = 1,2, Kd = 0,2, yKi = 1
s

87
Respuesta de frecuencia

5.1. Antecedentes
La respuesta en frecuencia de un sistema se define como la respuesta del sistema en el estado
estacionario a una señal sinusoidal de entrada. La sinusoide es una señal de entrada única, y la señal
de salida resultante para un sistema lineal, al igual que las señales a través del sistema, es sinusoidal
en el estado estacionario; difiere de la forma de onda de entrada solamente en amplitud y ángulo de
fase. La respuesta de frecuencia puede ser representada mediante un diagrama de bode de magnitud
y de fase, donde se presentan ambas caracterı́sticas a diferentes frecuencias.Entonces en un sistema
es posible usar señales de prueba sinusoidales de diferentes frecuencias para obtener las gráficas de
magnitud y fase, obteniendo ası́ información del sistema.

5.1.1. Objetivo General


Obtener de manera experimental la respuesta de frecuencia de un sistema desconocido para luego
obtener la función de transferencia del mismo.

5.1.2. Objetivos Especı́ficos


Determinar el rango de frecuencias de interés de un sistema a partir de especificaciones.

Encontrar la ganancia y desfase de un sistema ante entradas sinusoidales para el rango de


frecuencias de interés.

Obtener el diagrama de bode de magnitud y fase experimental del sistema para luego obtener
la función de transferencia estimada del mismo.

5.2. Prepráctica
Para la función de transferencia G, la respuesta de frecuencia se muestra en la figura 5.1.

88
LABORATORIO DE SISTEMAS DE CONTROL

20s
G(s) =
(s + 1)(s + 5)

Figura 5.1: Gráfica de bode –magnitud y fase- de la función de transferencia G

En la figura 5.3 se muestra la respuesta de un sistema representado por la función de transferencia


G frente a una entrada sinusoidal de amplitud unitaria y frecuencia de sesenta radianes por segundo.

Figura 5.2: Diagrama de bloques en Simulink del sistema G con una entrada sinusoidal

De la figura 5.3 es posible obtener la ganancia y el desfase entre la señal de salida (out) y la de
entrada (in). La ganancia puede ser calculada considerando la amplitud de ambas señales en estado
estacionario, el desfase se lo obtiene midiendo el desplazamiento en el tiempo que tiene la señal out
con respecto a in y luego transformarlo adecuadamente en grados.

Out
GananciadB = 20log( ) = 20log(0,3196/1) = −9,9dB (5.1)
In
360∆t
φ= = 84.69◦ atraso (5.2)
T
89
LABORATORIO DE SISTEMAS DE CONTROL

Figura 5.3: Respuesta de la planta ante entrada sinusoidal

Este procedimiento debe repetirse para múltiples frecuencia de manera que se pueda obtener un
diagrama de bode de magnitud y fase experimental que sea similar a los que se muestran en la figura
5.1. Recuerde que es necesario obtener la mayor cantidad de puntos posibles para que las gráficas se
asemejen más. Con los datos brindados en la práctica debe considerar cuál es el rango de frecuencias
de interés antes de realizar la misma.

90
LABORATORIO DE SISTEMAS DE CONTROL

Anexo A
Determinación de la Frecuencia de Muestreo, Perı́odo de la Señal de Entrada y Tiempo de
Simulación.
Los sistemas de control computarizados por naturaleza son sistemas discretos en los que las señales
se las trabaja por muestras tomadas a una determinada frecuencia, la misma que debe seleccionarse
de tal manera de poder reconstruir la naturaleza continua del proceso.

Se debe observar que aunque el requisito de la frecuencia de muestreo mı́nima, ws, se especifica en
el teorema del muestreo como ws>2wh donde wh, es la componente de más alta frecuencia presente
en la señal, algunas consideraciones prácticas sobre la estabilidad del sistema en lazo cerrado y otras
consideraciones de diseño pueden hacer necesario muestrear a una frecuencia mucho más alta que
este valor mı́nimo teórico, (Con frecuencia, ws, se elige como 10wh, a 20wh.).
Referencia: Sistemas de Control de Tiempo Discreto, por Katsuhiko Ogata, pp 92.

Por otro lado, las constantes de tiempo de la respuesta dinámica del sistema están relacionadas con
la ubicación de los polos de su función de transferencia en el plano complejo ”s”. Generalmente, los
sistemas de plantas industriales reales presentan una marcada dominancia que puede ser de primer o
segundo orden. Esto quiere decir que existe un polo simple (dominancia de primer orden) o un par
de polos complejos conjugados (dominancia de segundo orden) más cercanos al eje imaginario del
plano complejo ”s” y que los otros polos están alejados una distancia medida sobre el eje real de por
lo menos cinco veces.

Bajo este fundamento podemos determinar que la frecuencia de muestreo óptima es determinada de
la siguiente manera:

Sistemas con dominancia de Primer Orden:

Considerando un sistema tiene dominancia de primer orden, su función de transferencia puede ser
representada por:

k
Y (s) = X (s)
s+ p

Entendemos por dominancia de un polo el hecho que la posición de dicho polo con relación al origen
del Plano Complejo ”s” es el más cercano. Este hecho referido al Dominio de Tiempo equivale a la
componente de la respuesta en el tiempo más lenta.En la función de transferencia del sistema, los
otros polos deberı́an estar por lo menos ubicadas cinco veces la distancia del polo dominante con
relación al origen del Plano Complejo.

91
LABORATORIO DE SISTEMAS DE CONTROL

En este caso, el polo dominante ”p” en el dominio del Plano Complejo equivale a la constante de
tiempo dominante (más lenta) en el Dominio de Tiempo; esto es:

1
T=
p
Para el sistema con dominancia de primer orden, resulta que la respuesta a la frecuencia de dicho
sistema (gráfico de Bode) el valor del polo dominante define la ubicación de su frecuencia de esqui-
na. En dicho punto, el valor de su magnitud es de -3 dB con relación a la magnitud de respuesta a
bajas frecuencias. En nuestro caso, esta situación coincide con la definición del Ancho de Banda, en
lo relativo a la Frecuencia de Corte Superior; es decir que p = wB = wH; donde esta es la frecuencia
de corte, y la frecuencia con la que se va a trabajar.

Figura 4: Frecuencia de corte

Según el teorema de Nyquist, la frecuencia de muestreo deberı́a ser por lo menos el doble de la
Frecuencia de Corte Superior wH. Sin embargo, tomando en consideración aspectos prácticos se re-
comienda:

92
LABORATORIO DE SISTEMAS DE CONTROL

1
Tm = ; 10 ≤ n ≤ 20
nwb

Para esta pre-práctica vamos a considerar: n = 20.


El valor del Tiempo de Muestreo, Tm, es el que se usará como Fixed Step Size en Configuration
Parameters, Sample Time en los parámetros del To workspace y Sample Interval usado en Import
Data.

Por ejemplo, si se tiene la siguiente función de transferencia:


4
G(s) =
(s + 1,5)(s + 9)
G(s) tiene dominancia de primer orden ya que su polo 1.5 es el más cercano al origen y tiene una
distancia de por lo menos 5 unidades del otro polo.

Sistemas con Dominancia de Segundo Orden:

Un sistema con dominancia de segundo orden se lo puede aproximar a:


ωn2
Y (s) = K
s2 + 2ζ ωn s + ωn2
Donde ωn es la Frecuencia Natural de Oscilación y ζ es el Coeficiente de Amortiguamiento.

De la misma manera que en el sistema con dominancia de primer orden, la constante de tiempo se la
ajusta en función del par de polos complejos conjugados dominantes; esto es, de acuerdo a su parte
real:
1
T=
ζ ωn
El valor del tiempo de muestreo entonces se la puede fijar utilizando:
1
Tm = ; 10 ≤ n ≤ 20
nωn
Ya que la frecuencia de corte en un diagrama de bode de segundo orden estará dada por ωn . En este
caso también aplicaremos la recomendación práctica para seleccionar el valor de: n = 20.

Cálculo del perı́odo de la señal de prueba tipo tren de pulsos centrados con 50 % de Ciclo de
Trabajo (Duty Cycle).

Una manera posible para la identificación experimental en un sistema es someterlo a una prueba
dinámica utilizando una señal de prueba del tipo tren de pulsos (centrados con un ciclo de trabajo

93
LABORATORIO DE SISTEMAS DE CONTROL

”duty” cycle del 50 %) sobre el valor de su punto de operación seleccionando la amplitud del tren de
pulsos en un valor que nos garantice mantenernos en la zona lineal del sistema (no debe observarse
distorsión ni en el pulso positivo ni en el negativo). En este caso, es necesario ajustar el periodo de
la señal de prueba de tal manera que el sistema tenga tiempo de alcanzar aproximadamente su punto
de estabilización antes que el siguiente pulso se aplique. Ver figura 5.

Figura 5: Pulsos

El Tiempo de Estabilización, Ts, se lo define como el tiempo necesario para que la magnitud de la
señal de respuesta de un sistema a la prueba de escalón quede confinada en una zona del ±2 % de su
valor de Estado Estacionario (t = ∞).
Por ejemplo, para el sistema de primer orden mostrado en la figura, el Tiempo de Estabilización será
el tiempo que tome la señal de salida en alcanzar el 98 % de la magnitud de la señal de prueba del
escalón unitario. Ver figura 6.
Matemáticamente se puede comprobar que el Tiempo de Estabilización ”Ts” se alcanza en cuatro
Constantes de Tiempo ”T”.
Ts = 4T
El periodo de la señal de prueba, PTP, de se lo fijarı́a de acuerdo a la siguiente recomendación
práctica:
PT P ≥ 2Ts
La misma recomendación se la puede aplicar para sistemas con dominancia de segundo orden. En
este caso la Constante de Tiempo estará fijada por la parte real del polo complejo conjugado domi-
nante.

94
LABORATORIO DE SISTEMAS DE CONTROL

Figura 6: Tiempo de Estabilización

1
T=
ζ ωn
Tiempo de Simulación
El Tiempo de Simulación se lo ajusta de acuerdo a la siguiente recomendación:

Tsimulación = 4 ∗ PT P

De esta manera se apreciarán 4 perı́odos completos de la señal de prueba.

NOTA:
Considerar que el perı́odo del tren de pulsos, PTP, de la señal de prueba debe ser mayor que 2 veces
el Tiempo de Estabilización, Ts, y adicionalmente recordar que debe ser múltiplo del Tiempo de
Muestreo. Ejemplo:
Si el:

Tiempo de muestreo: Tm = 0,03seg

Constante de Tiempo: T = 0,5seg

Entonces:

Tiempo de estabilización: Ts = 4T = 2,0seg

Perı́odo tren de pulsos: PT P = 2Ts = 4,0seg

El perı́odo del tren de pulso a seleccionar deberá ser mayor a 4 y múltiplo de 0.03:

Perı́odo seleccionado: PTP =6.0 seg.

95

Вам также может понравиться