Академический Документы
Профессиональный Документы
Культура Документы
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
I
LABORATORIO DE SISTEMAS DE CONTROL
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
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.
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.
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
Construir
en MatLab
la matriz:
2 5 3
4 0 1
6 8 7
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
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
6
LABORATORIO DE SISTEMAS DE CONTROL
7
LABORATORIO DE SISTEMAS DE CONTROL
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.
8
LABORATORIO DE SISTEMAS DE CONTROL
9
LABORATORIO DE SISTEMAS DE CONTROL
10
LABORATORIO DE SISTEMAS DE CONTROL
11
LABORATORIO DE SISTEMAS DE CONTROL
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.
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
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’)
15
LABORATORIO DE SISTEMAS DE CONTROL
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.
Sı́mbolo Significado
&& Y,
|| O,
∼ No.
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
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.
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
En este capı́tulo se revisarán funciones para realizar los siguientes grupos de acciones:
19
LABORATORIO DE SISTEMAS DE CONTROL
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
Se puede obtener información de los sistemas usando las funciones mostradas en la Tabla 1.13.
Esta información puede ser:
polos,
ceros,
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
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.
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.
23
LABORATORIO DE SISTEMAS DE CONTROL
24
LABORATORIO DE SISTEMAS DE CONTROL
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.
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:
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.
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
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
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
31
LABORATORIO DE SISTEMAS DE CONTROL
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
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.
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
35
LABORATORIO DE SISTEMAS DE CONTROL
Figura 2.7: Modelo y configuración de parámetros del circuito RLC usando variables de estado
36
LABORATORIO DE SISTEMAS DE CONTROL
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
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
Figura 2.9: Modelo y configuración de parámetros del circuito RLC usando función de transferencia
39
LABORATORIO DE SISTEMAS DE CONTROL
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
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.
41
LABORATORIO DE SISTEMAS DE CONTROL
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:
43
LABORATORIO DE SISTEMAS DE CONTROL
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:
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:
46
LABORATORIO DE SISTEMAS DE CONTROL
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:
47
LABORATORIO DE SISTEMAS DE CONTROL
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
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
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
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.
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.
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.
Guiar al estudiante en el diseño del experimento para la adquisición de datos para identifica-
ció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.
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.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.
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.
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
58
LABORATORIO DE SISTEMAS DE CONTROL
59
LABORATORIO DE SISTEMAS DE CONTROL
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
61
LABORATORIO DE SISTEMAS DE CONTROL
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.
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.
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
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
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
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á.
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
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).
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.
Si activa la casilla time plot, podrá visualizar los datos importados tal como se muestra en la figura
3.19.
68
LABORATORIO DE SISTEMAS DE CONTROL
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.
69
LABORATORIO DE SISTEMAS DE CONTROL
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.
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
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.
72
LABORATORIO DE SISTEMAS DE CONTROL
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
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:
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
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.
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.
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.
Aprender a utilizar las diferentes opciones que ofrece sisotool para el diseño de controladores.
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)
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.
79
LABORATORIO DE SISTEMAS DE CONTROL
80
LABORATORIO DE SISTEMAS DE CONTROL
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
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.
82
LABORATORIO DE SISTEMAS DE CONTROL
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.
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
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.
85
LABORATORIO DE SISTEMAS DE CONTROL
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
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.
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.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
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:
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.
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
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
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
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:
Entonces:
El perı́odo del tren de pulso a seleccionar deberá ser mayor a 4 y múltiplo de 0.03:
95