Sunteți pe pagina 1din 22

INTRODUCCION AL CONTROL SYSTEM TOOLBOX

DE MATLAB

CHICA VANEGAS ORLAND JAIBER

CHAVERRA RAMIREZ WILFER ARMEL

HECTOR OSORIO
DOCENTE

TEORIA DE CONTROL

INSTITUTO TECNOLOGICO METROPOLITANO

ELECTROMECANICA

MEDELLIN

2008
INTRODUCCIÓN AL MATLAB

Introducción:

Matlab es una herramienta interactiva basada en matrices para cálculos científicos y


de ingeniera (de hecho, el termino matlab procede de matrix laboratory). Desde el
punto de vista del control.
Matlab se puede considerar un entorno matemático de simulación que puede utilizarse
para modelar y analizar sistemas. Permitiría el estudio de sistemas continuos,
discretos, lineales y no lineales, mediante descripción interna y externa, en el dominio
temporal y frecuencial.
Matlab constituye un entorno abierto, para el cual numerosas paquetes específicos
adicionales (toolboxes) han sido desarrollados. En el caso que nos ocupa se utilizaría
fundamentalmente el Control System Toolbox. Estos paquetes específicos adicionales
están constituidos por un conjunto de funciones que pueden ser llamadas desde el
programa y mediante las cuales se pueden realizar multitud de operaciones.
Las referencias al Control System Toolbox se realizarían directamente en los ejemplos
que acompañan a estas notas.
Las notas se centrarían fundamentalmente en aquellos aspectos y funciones que más
interés tengan desde el punto de vista de control, instando al lector a que busque en el
manual de usuario cualquier información adicional que desee ([4], [3], [2]). Para el
desarrollo de las mismas se ha utilizado asimismo, una serie de referencias básicas en
control: [1], [5], [6], [7],

De la herramienta informática Matlab, se requiere implementar la codificación que


involucra operaciones como ingreso de funciones, derivación y gráficas.

Ingreso a la herramienta informática Matlab

Al ingresar al Matlab, aparece una pantalla, llamada ventana de comandos y tiene la


siguiente apariencia:

Y aquí se procede a escribir la codificación o programa de acuerdo a las necesidades


del usuario, en este caso se ingresa el código para implementar una función
matemática, y para ello se utiliza el lenguaje simbólico, de esta manera la herramienta
permite al usuario ingresar funciones matemáticas. Por ejemplo la función:
Codificada en Matlab, queda de la siguiente manera:

Se presiona la tecla Enter, y si se desea, se puede ver en pantalla la función escrita en


forma algebraica y para ello se utiliza el comando pretty:

La derivada de una función tiene aplicaciones en diversas áreas del conocimiento.


Una de ellas es la física, por esta razón se considera importante incluir la derivada
como operación para ser realizada con la herramienta Matlab, y el comando es diff( ),
y entre paréntesis se escribe la función:
Graficar funciones implica ingresar la función y el arreglo que contiene los valores que
toma la función de acuerdo a la variable independiente.

Para graficar la función del ejemplo anterior se debe ingresar los valores para la
variable “x” y luego la función:

El punto ubicado después de la variable, en este caso la “x”, se debe colocar para
indicar que por cada valor de x, se genera un valor para la función.

Uno de los comandos para graficar es plot, y se utiliza de la siguiente manera:

La primera línea de código quiere decir que los valores de la variable independiente
comienzan en cero y van hasta cinco con pasos de 0.01.

Al presionar la tecla Enter aparece en pantalla la figura, así:


Al gráfico se le pueden adicionar título, etiquetas a los ejes y también rejilla, los
comandos para ello y la gráfica resultante se muestran a continuación:

Es importante ver gráficos en una misma ventana pero en distintos planos, para ello se
emplean los comandos Subplot y plot. El código y las gráficas generadas se muestran
en la siguiente figura.

Si se desea editar cada gráfico, se requiere que esté activada la opción Edit plot, como
muestra la figura:
El mouse debe estar posicionado en cualquiera de las gráficas y presionar el botón
derecho:

De la lista se escoge la acción que el usuario requiera: Adicionar datos (Add Data),
cortar (cut), copiar (copy), borrar la curva (clear axes), borrar el gráfico (delete),
mostrar leyenda (show legend), cambiar el color del fondo del gráfico (colo…),
Agregar rejilla (gris), cambiar las propiedades (adicionar título, agregar etiquetas a los
ejes, cambiar el tipo de letra, entre otras.
Graficar funciones en el mismo plano requiere el comando hold on, este va después
de escribir la orden para graficar la primera de varias curvas (plot) y luego se escribe el
código correspondiente a las otras funciones que se quieren representar gráficamente.

INTRODUCCION A CONTROL SYSTEMS TOOLBOX

Introducción:

El Control Systems Toolbox es un conjunto de rutinas para MATLAB dedicadas a


aplicar las distintas herramientas de la teoría de control clásico para sistemas lineales.
El objetivo de este apunte es dar las nociones básicas para la utilización de este
paquete, dejando que el lector interesado en mayores detalles consulte la ayuda y los
manuales en línea.

Podemos dividir este toolbox en cuatro subgrupos,

. Funciones para definir modelos


. Funciones para obtener la respuesta temporal
. Funciones para obtener la respuesta en frecuencia
. Funciones para el diseño de controladores

Dado el sistema que deseamos analizar, deberemos obtener primeramente las


ecuaciones dinámicas que describen su comportamiento. En caso que estas
ecuaciones sean no lineales, las linealizáremos en la cercanía de un punto de
operación. De este proceso tendremos una descripción del sistema ya sea como
transferencia o como variables de estado, la cual seria nuestro punto de partida.
Comenzaremos primero con las distintas formas de ingresar modelos. Luego,
pasaremos a las herramientas de análisis, respuesta en tiempo y frecuencia, para
terminar con algunas funciones para el diseño de controladores.

COMANDOS BASICOS PARA CONTROL CLASICO

matlab\general - Comandos de propósito general

matlab\ops - Operadores y caracteres especiales

matlab\lang - Constructores del lenguaje de programación

matlab\elmat - Matrices elementales y manipulación matricial

matlab\elfun - Funciones matemáticas elementales

matlab\specfun - Funciones matemáticas especiales

matlab\matfun - Funciones matriciales - ´algebra lineal num´erica

matlab\datafun - Análisis de datos y transformada de Fourier

matlab\polyfun - Interpolación y polinomios


matlab\funfun - Funciones de funciones y métodos para ODE

matlab\sparfun - Funciones para matrices dispersas

matlab\graph2d - Gráficos en dos dimensiones

matlab\graph3d - Gráficos en tres dimensiones

matlab\specgraph - Gráficos especializados

matlab\graphics - Manipulación de gráficos

matlab\uitools - Herramientas de interfaz gráfica de usuario (GUI)

matlab\strfun - Cadenas de caracteres

matlab\iofun - Funciones para entrada/salida de ficheros

matlab\timefun - Hora y fecha

matlab\datatypes - Tipos de datos y estructuras

matlab\winfun - Ficheros de interfaz con Windows (DDE/ActiveX)

matlab\demos - Ejemplos y demostraciones

simulink\simulink - Simulink

simulink\blocks - Liberia de bloques de Simulink

simulink\simdemos - Ejemplos y demostraciones de Simulink

toolbox\control - Paquete de Control de Sistemas

Append - agrupa dinámica de varios sistemas

Blkbuild - Construye un sistema en representación en espacio


De estados a partir del diagrama de bloques

Cloop - Calcula el bucle cerrado de un sistema

Connect- Modelado con diagrama de bloques

Feedback - Conexión de sistemas realimentados


ord2- Genera las matrices A, B, C y D para un
Sistema de segundo orden

Pade- Aproximación de Pad´e a un retardo

Parallel -Conexión de sistemas en paralelo

Series - Conexión de sistemas en serie


DEFINICION DE MODELOS EN FUNCION DE TRANSFERENCIA

Este apartado muestra el uso de algunas de las herramientas con las que cuenta
matlab para el diseño y análisis de sistemas de control. Para el ejemplo se va a partir
de una descripción de la planta en forma de función de transferencia:
H(s) = .2s2 + .3s + 1

(s2 + .4s + 1)(s + .5)

En matlab las funciones de transferencia se introducen dando el par de polinomios


numerador denominador:

Tratamiento mediante funciones de transferencia. Sistemas continuos

núm. = [.2 .3 1];


Den1 = [1 .4 1];
den2 = [1 .5];

El polinomio del denominador es el producto de dos términos. Para obtener el


polinomio resultante se usa el producto de convolución (o de polinomios).
Den = conv (den1, den2)
DEFINICION DE MODELOS CEROS- PÒLOS- GANANCIA

Para ver los polos (o los ceros) de la función de transferencia, podemos usar: roots
(den) (Roots (num)). Una forma más completa de convertir una función de
transferencia dada por dos polinomios numerador y denominador, en un conjunto de
factores de grado 1, correspondientes a los polos (z1, z2, z3) y ceros (c1, c2), de la
forma:

H(s) =
K (1 − s
c1
) (1 − s
c2
)
(1 − s
z1
) (1 − s
z2
) (1 − s
z3
)

Es mediante el comando tf2zp:


[Ceros, polos, gan] = tf2zp (N, D); Que devuelve un vector conteniendo los ceros de la
función de transferencia, un vector conteniendo los polos, y un escalar
correspondiente a la ganancia estática. La función complementaria a esta también
existe:

[N, D] = zp2tf (ceros, polos, gan);

Como curiosidad, cabe mencionar que el nombre de estas funciones es bastante


descriptivo:
”tf-two-zp” procede de transfer-function to zero-pole form.

Lugar de las raíces

El análisis mediante el lugar de las raíces se puede obtener definiendo un vector de


ganancias Deseadas (que es el parámetro usado habitualmente para ver la evolución
de los polos en bucle Cerrado). La sintaxis es:

r = rlocus (N, D, K);


Rlocus (N, D);
En la primera forma, calcula el lugar de las raíces de 1+KN(s) D(s) = 0, para un vector
de ganancias especificado, K. rlocus devuelve una matriz r con length (K) filas y length
(den) columnas, conteniendo la localización de las raíces complejas. Cada fila de la
matriz corresponde a una ganancia del vector K. El lugar de las raíces puede ser
dibujado con
Plot (r,’x’). En la segunda forma, que es la usada habitualmente, la función
directamente dibuja el lugar de las raíces. Además, como vemos, no es imprescindible
indicar un vector de ganancias. Para la función de transferencia que veníamos
utilizando en los ejemplos, se obtendría el lugar de las raíces mostrado en la Fig. 1.12
Un comando muy útil como complemento a rlocus es rlocfind, cuya sintaxis general es:
[K, polos] = rlocfind (num, den)

CONEXIÓN DE MODELOS (comandos: series, parallel, feedback, cloop

Conexión Serie:

Conecta en serie dos modelos:

Fig. 1. Modelos en Serie

Es equivalente a la multiplicación: sys = sys2 * sys1

Sys = series (sys1, sys2, outputs1, inputs2)

Permite la siguiente conexión:

Fig. 2. Modelos en Serie

En donde outputs1 e inputs2 indican cuales salidas y1 de sys1 y cuales


entradas u2 de sys2 deben ser conectadas. El modelo sys resultante
tiene como entrada u y como salida y.

RESPUESTA EN EL TIEMPO SISTEMAS DE PRIMER Y SEGUNDO ORDEN


(Comandos: step, impulse,)
La respuesta a un escalón unitario de entrada se obtiene con la función step.

t = [0:0.1:10]’;
Ye = step (num, den, t);
Plot (t, ye);
Title (’Respuesta a un escalón unitario’);
Xlabel (’tiempo (seg)’);
Grid;

Respuesta a escalón unitario del sistema de primer orden Las dos características
fundamentales de un sistema de primer orden son su ganancia estática K y su
constante de tiempo τ. La constante de tiempo es el tiempo que tarda en alcanzar el
63% de la salida. La ganancia estática es el cociente entre la amplitud de salida y la de
entrada en el régimen permanente. Estos valores se pueden comprobar directamente
en la gráfica o analizando el vector de datos resultante:

YRP = ye (length (ye)); % Valor en régimen permanente


n = 1;
While ye (n) < 0.63*yRP
n=n+1;
End
% Constante de tiempo (0.1 es el intervalo transcurrido entre dos medidas,
% se le resta 1, porque los índices empiezan en 1):
TauEstim = 0.1*(n-1);
La respuesta a una rampa unitaria de entrada para nuestro sistema de primer orden se
puede
Similar mediante:
Ramp = t;
Yr = lsim (num, den, ramp, t);
Plot (t, yr, t, ramp);
Title (’Respuesta a una rampa’);
Xlabel (’tiempo (seg)’);
Grid;

La respuesta impulsional se puede obtener del mismo modo, pero usando en este
caso la función impulse, que tiene una sintaxis similar al comando step.

Yi = impulse (num, den, t);


Plot (t, yi);
Title (’Respuesta a un impulso’);
Xlabel (’tiempo (seg)’);

Coinciden con los esperados en la teoría. Como es bien sabido, los sistemas lineales
de primer Orden de ganancia unidad invariantes en el tiempo tienen las siguientes
características (nos Remitimos a la bibliógrafa):

Respuesta a escalón unitario: ye2 (t) = 1 − e (−t/τ), (t ≥ 0)

Respuesta a rampa unitaria: yr2 (t) = t − τ + τe (−t/τ), (t ≥ 0)


INTRODUCCION A SIMULINK

Es un sistema basado en matrices para realizar cálculos


Matemáticos y de ingeniería. Entre las múltiples herramientas que presenta este
programa se encuentra Simulink que es una librería de MATLAB que permite la
simulación de procesos mediante diagramas de bloques.

1. Acceso a la librería de bloques de Simulink:


Para acceder a la librería de Simulink se debe abrir inicialmente la ventana principal de
Matlab

(Matlab Command Window). En esta se puede ejecutar el comando “simulink” o hacer


clic en el símbolo correspondiente en la barra de herramientas en la parte superior de
esta ventana.
Al hacer esto aparecerá el listado de las librerías correspondientes a simulink, donde
se podrá tener acceso a todos los bloques que brinda esta herramienta. Para abrir una
nueva hoja de trabajo se deberá acceder a través de: File à New à Model, o hacer clic
en el símbolo de “hoja nueva”.

Figura 1. Simulink Library Browser


La librería “Simulink” contiene los bloques necesarios para simular un sistema
mediante técnicas
convencionales, las

Simulink es un entorno interactivo para el modelamiento, análisis y simulación de una


amplia variedad de sistemas dinámicos, incluyendo los sistemas continuos, discretos e
híbridos. Simulink suministra una interfaz grafica de usuario para la construcción de
modelos de diagrama de bloques usando operaciones de “arrastre-y-suelte”. Con las
grandes librerías de construcción de bloques del Simulink, podemos modelar un
sistema rápidamente, sin tener que escribir una sola línea de código

MODELOS SIMPLES:

Modelos Matemáticos no Linealizados


Diagrama de bloques de la simulación de la ecuación diferencial.
SISTEMAS DE PRIMER ORDEN:

La representación en forma de función de transferencia viene dada por:


G(s) = K
1 + τs

que en notación matlab se introduce:


K = 1;
tau = 1;
núm. = K;
den = [tau 1];

La respuesta a un escalón unitario de entrada se obtiene con la función step.


t = [0:0.1:10]’;
ye = step(num,den,t);
plot(t,ye);
title (’Respuesta a un escalon unitario’);
xlabel (’tiempo(seg)’);
grid;

Las dos características fundamentales de un sistema de primer orden son su ganancia


estática K y su constante de tiempo τ . La constante de tiempo es el tiempo que tarda
en alcanzar el 63% de la salida. La ganancia estática es el cociente entre la amplitud
de salida y la de entrada en el régimen permanente. Estos valores se pueden
comprobar directamente en la gráfica o analizando el vector de datos resultante:
yRP = ye(length(ye)); % Valor en régimen permanente
n = 1;
while ye(n) < 0.63*yRP
n=n+1;
end
% Constante de tiempo (0.1 es el intervalo transcurrido entre dos medidas, % se le
resta 1, porque los índices empiezan en 1): tauEstim = 0.1*(n-1);

La respuesta a una rampa unitaria de entrada para nuestro sistema de primer orden se
puede simular mediante:
ramp = t;
yr = lsim (num,den,ramp,t);
plot (t,yr,t,ramp);
title (’Respuesta a una rampa’);
xlabel (’tiempo(seg)’);
grid;

SISTEMAS DE SEGUNDO ORDEN:

La representaci´on normal de un sistema de segundo orden en forma de funci´on de


transferencia
viene dada por:
G(s) = Kw2n
s2 + 2δwns + w2n
donde:
K: ganancia est´atica del sistema. Se va a suponer en el an´alisis siguiente, sin p
´erdida de
generalidad, que K = 1.
δ: Coeficiente de amortiguamiento.
wn: Frecuencia natural no amortiguada del sistema.
Del polinomio caracter´ıstico se tiene que las dos ra´ıces son s1,2 = −δwn±wn√δ2 − 1,
pudiendo
distinguirse los siguientes casos:
Caso 1: Si δ > 1 → 2 ra´ıces reales distintas en SPI (sobreamortiguado).

d = 0;
den = [1,2*d*wn,wn^2];
ye = step (num,den,t);
plot (t,ye);
title (’Respuesta a un escalón unitario’);
xlabel (’tiempo(seg)’);
grid;

d = 0;
den = [1,2*d*wn,wn^2];
ye = step (num,den,t);
plot (t,ye);
title (’Respuesta a un escalon unitario’);
xlabel (’tiempo(seg)’);
grid

SIMULACION DE UN SISTEMA DE LAZO CERRADO

Antes de construir un modelo vamos a ver como funcionaría la simulación de un


modelo ya existente, para poder comprender mejor el funcionamiento de SIMULINK.
En la librería principal de SIMULINK hacemos doble click en el bloque ‘Demos’.

Nos aparece el menú de Demos, en el que elegimos el modelo termodinámico de una


casa:

Esta demo muestra la termodinámica de una casa cuyo termostato se ha fijado a 70


grados
Farenhait, y está afectada por la temperatura del exterior, que varía cuando le
aplicamos una onda sinusoidal con una temperatura de 15º sobre una temperatura
base de 50º.
Podemos abrir cada subsistema para ver lo que contiene en su interior haciendo doble
click en el bloque de subsistema.
El subsistema House actualiza la temperatura interna, teniendo en cuenta las
temperaturas interna y externa.

El subsistema Thermostat modela la operación de un termostato, determinando


cuando se conecta y desconecta el sistema de calentamiento.
Para iniciar la simulación elegimos ‘Start’ en el menú ‘Simulation’.

Si abrimos los dos bloques Scope podemos observar las dos gráficas de salida:
Cuando se está suministrando calor se calculan y visualizan los costes del
calentamiento en el bloque Scope Heat Cost ($). La temperatura interna se visualiza
en el bloque Scope Indoor Temp.
Para parar la simulación vamos al menú ‘Simulación’ y escogemos la orden ‘Stop’.
Al realizar la simulación de esta Demos, podemos abrir cada bloque y ver lo que
contiene en su interior, bien sea un subsistema o simplemente los parámetros que
definen el bloque. También vemos como los bloques Scope visualizan señales igual
que lo haría un osciloscopio.
OBJETIVOS:

- Utilizar métodos básicos para la conexión de modelos lineales invariantes en el


tiempo.

- Utilizar las herramientas computacionales provistas por MATLAB para la


conexión y conversión de modelos lti.
BIBLIOGRAFÍA

INTRODUCCION A SIMULINK

INTRODUCCIÓN AL CONTROL SYSTEM TOOLBOX

INTRODUCCIÓN A MATLAB

ANALISIS Y CONTROL DE SISTEMAS USANDO MATLAB

INTROCUCCIÓ AL SIMULINK MODELADO Y SIMULACION DE SISTEMAS


DINAMICOS

INTRODUCCION A MATLAB Y SIMULINK. REGULACION AUTOMATICA,


INGENIERO EN ELECTRONICA. CURSO 2006/2007.
JAVIER ARACIL Y FABIO GOMEZ-ESTERN

S-ar putea să vă placă și