Aplicaciones de Simulink Al Control Automatico

download Aplicaciones de Simulink Al Control Automatico

of 72

Transcript of Aplicaciones de Simulink Al Control Automatico

APLICACIONES DE SIMULINK AL CONTROL AUTOMATICO

APLICACIONES DE SIMULINK AL CONTROL AUTOMATICOMiguel A. Snchez [email protected] URPSimulink modela, simula y analiza sistemas dinmicos. Tambin es una herramienta para el diseo de sistemas de control.Simulink trabaja con sistemas lineales y no lineales, modelados en tiempo continuo, tiempo discreto, o un hbrido de los dos.Cientficos e ingenieros usan Simulink paramodelar y resolver problemas reales en una variedad de industrias.Breve introduccin a SimulinkSimulink proporciona una interfaz grfica de usuario (GUI) para la construccin de modeloscomo diagramas de bloques.Simulink posee una amplia biblioteca de bloques tales como salidas, fuentes,componentes lineales y no lineales, y los conectores. Si estos bloques no cumplensus necesidades, tambin puede crear sus propios bloques.Breve introduccin a SimulinkBreve introduccin a Simulink

Para ingresar a Simulink se escribe Simulink sobre laventana de comandos de Matlab o se pulsa el botnSimulink de la barra superior.Breve introduccin a Simulink

Breve introduccin a Simulink

Breve introduccin a Simulink

Simulink est estrechamente integrado con el entorno de MATLAB. Se requiere MATLAB para ejecutar un diagrama Simulink, previa configuracin de los bloques.Hay seis pasos para modelar un sistema:1 Definir el sistema.2 Identificar los componentes del sistema.3 Modelar el sistema con ecuaciones.4 Construir el diagrama de bloques Simulink.5 Ejecutar la simulacin.6 Validar los resultados de la simulacin.Se debe realizar los tres primeros pasos de este proceso fuera del software Simulink antes de comenzar la construccin de su modelo.Breve introduccin a SimulinkEn resumen Simulink permite: Dibujar elementos y conexiones en una ventana grfica. Las conexiones indican el recorrido de las seales de un elemento a otra. Los elementos se los extrae de la biblioteca del propio Simulink, e inclusive se pueden crear nuevos elementos.Los resultados se obtienen como salida de algunos elementos, pudindose almacenar, ver grficamente, etc. Los datos o seales de entrada pueden obtenerse de salidas de variables especiales, del disco o de variables utilizadas en MATLAB.Breve introduccin a SimulinkConsidere el sistema motor DC acoplado a una carga. i w

u

Ecuaciones: di u = Ri + L -- + Kbw ( 1 ) dt dw Kmi Bw = J --- ( 2 ) dt Ejemplo 1:Modelo y simulacin de sistema motor - carga De las ecuaciones diferenciales se despejan las derivadas de mayor orden: di 1 -- = -- ( u Ri - Kbw ) ( 3 ) dt L

dw 1 --- = -- ( Kmi Bw ) ( 4 ) dt J

Ejemplo 1:Modelo y simulacin de sistema motor - carga Para representar este sistema en Simulink, utilizaremos los bloques integrador (Integrator) ubicado en la categora Continuous , sumador (Sum) y multiplicador por constante (Gain) , que se encuentran dentro de la categora Math Operations .Los bloques integrador permiten obtener a partir de di(t)/dt la seal i(t) y de dw(t)/dt la seal w(t).Los bloques sumador permiten sumar/restar seales.Los bloques multiplicador o ganancia permiten multiplicar un bloque por una constante.Para simulacin utilizaremos el bloque escaln (Step) de la categora Sources y la salida ser observada en el bloque osciloscopio (Scope) y almacenada en el bloque (To Workspace) de la categora Sinks.

Ejemplo 1:Modelo y simulacin de sistema motor - carga Ejemplo 1:Modelo y simulacin de sistema motor - carga

En Step, poner Step Time=0.En To Workspace, poner un nombre a la variable (en este caso w) yponer formato como Array.El diagrama bloques de simulacin serConstruccin del esquema de simulacin:

1 Creacin de la ventana de diseo : Desde la ventana Simulink Library Browser hacer clic sobre el botn New model. Se abrir una ventana en blanco, donde se dibujar el esquema.2 Introduccin de los bloques en el esquema : Se realiza arrastrndolos con el mouse desde la ventana que contiene los bloques hacia la ventana de diseo. 3 Modificacin de parmetros : Los bloques permiten una cierta configuracin. Para esto se debe hacer doble clic sobre el bloque, apareciendo una ventana de parmetros.

Ejemplo 1:Modelo y simulacin de sistema motor - carga Construccin del esquema de simulacin:4 Interconexin de bloques : Para conectar dos elementos debe hacerse un arrastre con el mouse desde la salida de uno de ellos hasta la entrada del elemento correspondiente pulsando botn izquierdo. La forma de crear una rama nueva sobre una conexin ya existente es similar pero pulsando botn derecho. Para girar 180 los bloques, se les selecciona y se elige la opcin Flip block del men Format.5 Simulacin : Se realizar la simulacin con la opcin Start del men Simulation y se hallar el resultado haciendo doble clic sobre el bloque Scope.6 Guardar el modelo : Escoja Save as ... desde el men File e ingrese un nombre al modelo y gurdelo.

Ejemplo 1:Modelo y simulacin de sistema motor - carga Simulacin:En primer lugar ir a la ventana de comandos de Matlab e ingresar los valores numricos de los parmetros. En este caso: J=0.01; B=0.1; Km=0.01; R=1; L=0.5; Kb=0.01;En la ventana donde est el modelo del sistema, ingrese a Simulation Configuration Parameters, para modificar si es necesario algunos parmetros de simulacin como:Tiempo inicial y tiempo final.Opciones de integracin numrica (Tipo, mtodo, otros)

Ejemplo 1:Modelo y simulacin de sistema motor - carga Ejemplo 1:Modelo y simulacin de sistema motor - carga

Simulacin:Se realizar la simulacin con la opcin Start del men Simulation, o pulsando botn Start.Se observar el resultado haciendo doble clic sobre el bloque Scope.

Ejemplo 1:Modelo y simulacin de sistema motor - carga

Simulacin:Ir a Matlab y observe que se ha creado la variable w con los valores de la velocidad calculados. Si escribe: >> plot(tout,w) Obtiene tambin la grfica de la velocidad vs tiempo.

Ejemplo 1:Modelo y simulacin de sistema motor - carga

Simulacin:Si desea observar el comportamiento de otras variables, como por ejemplo la corriente, adicione otro bloque Scope en i, vuelva a simular, abra este bloque.El bloque Scope permite tambin guardar los resultados de la simulacin en una variable de Matlab. Veamos:Ahora haremos clic sobre el botn Parameters del bloque Scope para abrir su configuracin. Seleccionamos Data History y marcamos la opcin Save data to workspace . Adems asignamos un nombre a la variable en la que deseamos guardar los datos, por ejemplo veloc.

Ejemplo 1:Modelo y simulacin de sistema motor - carga Simulacin:Luego especificamos el formato Array para los datos, que quiere decir que se guardarn en forma de vector.Nuevamente realizamos la simulacin y en la ventana de comandos averiguamos la dimensin de la variable veloc , con: >> size(veloc) ans = 60 2Es decir es una matriz de 60 filas y 2 columnas. La primera columna contiene los instantes de tiempo y la segunda los valores que toma la variable en cada instante.Desde la ventana de comandos de Matlab , podemos graficar la variable veloc , con >> plot(veloc(:,1),veloc(:,2))

Ejemplo 1:Modelo y simulacin de sistema motor - carga Creando un subsistema:Cuando un esquema Simulink incrementa en tamao y complejidad, se le puede simplificar agrupando bloques en un subsistema:Encierre los bloques que formarn el subsistema con el mouse. En el ejemplo visto agruparemos todos los bloques, excepto los de entrada y salida.Escoja Create Subsystem desde el men Edit. Simulink reemplaza todos los bloques seleccionados por el bloque Subsystem, obtenindose:

Ejemplo 1:Modelo y simulacin de sistema motor - carga Ejemplo 1:Modelo y simulacin de sistema motor - carga

Si se abre el bloque Subsystem aparecen losbloques seleccionados.

Enmascarando un subsistema:Con la finalidad de realizar un esquema mas general, que permita ingresar los valores de los parmetros directamente mediante una ventana, se puede enmascarar un subsistema de la siguiente manera:

Seleccione el bloque subsistema a enmascarar y escoja Mask Subsystem desde el men Edit .Se abre la ventana Mask Editor: Subsystem .

Ejemplo 1:Modelo y simulacin de sistema motor - carga Ejemplo 1:Modelo y simulacin de sistema motor - carga

Seleccione Parameters e ingrese datos de los parmetros:Ejemplo 1:Modelo y simulacin de sistema motor - carga En Prompt el nombre que describe al parmetro.En Variable el nombre de la variable que almacenarel valor del parmetro.En Type el estilo de ingreso de los parmetros.

Ejemplo 1:Modelo y simulacin de sistema motor - carga Ahora seleccione Documentation de la ventana Mask Editor: Subsystem y se abre la ventana donde se puede ingresar: La descripcin del subsistema en Mask description , y el texto de ayuda para uso del subsistema en Mask help .

Ejemplo 1:Modelo y simulacin de sistema motor - carga Presione Apply y OK. Haga doble clic en el bloque subsistema y se abrir la ventana Function Block Parameters: Subsystem, donde observar la descripcin e ingresar los valores de los parmetros. Acepte y luego efecte la simulacin.

Ejemplo 1:Modelo y simulacin de sistema motor - carga Si en la ventana Function Block Parameters: Subsystem, se pulsa Help, aparecer el texto de ayuda que fue ingresado previamente.

Finalmente luego de observar los resultados de la simulacin sedebe dar la interpretacin fsica para obtener las conclusiones

Ejemplo 2:Modelo y simulacin de sistema no lineal: pndulo simple Considere el pndulo mostrado en el cual se deseacontrolar su posicin angular .

Variables de estado:x1 = x2 = d/dt Ecuaciones de estado (a simular):dx1/dt = x2 dx2/dt = (1/m.L2).u (g/L).senx1 Para representar este sistema en Simulink, utilizaremos los bloques integrador (Integrator) ubicado en la categora Continuous , sumador (Sum) y multiplicador por constante (Gain) , que se encuentran dentro de la categora Math Operations.Tambin se emplear el bloque Trigonometric Function (sin) tambin dentro de Math Operations.

Para simulacin utilizaremos el bloque constante (Constant) de la categora Sources y las salidas sern observadas en los bloques osciloscopios (Scope) de la categora Sinks.

Ejemplo 2:Modelo y simulacin de sistema no lineal: pndulo simple Ejemplo 2:Modelo y simulacin de sistema no lineal: pndulo simple

El diagrama bloques de simulacin serSimulacin:Luego de ingresar los parmetros en la ventana de comandos de Matlab. Se v a simular que inicialmente el pndulo se desplaza 0.1 rad de su posicin vertical y se suelta con velocidad inicial cero, sin aplicar torque (u=0).Para lo cual configure los siguientes bloques como sigue:Constant Constant value: 0Integrator Initial condition: 0.1Integrator 1 Initial condition: 0

Ejemplo 2:Modelo y simulacin de sistema no lineal: pndulo simple Simulacin:El resultado de la simulacin ser: x1: posicin angular x2: velocidad angular

Ejemplo 2:Modelo y simulacin de sistema no lineal: pndulo simple

Otra forma de construir el diagrama de simulacinCuando se tienen sistemas de orden alto con gran nmero de no linealidades, se recomienda emplear los bloques Fcn ubicado en la librera User-Defined Functions, en donde se escriben los segundos miembros de las ecuaciones, empleando como variables los trminos u(i), donde i indica el orden en que est la seal a la entrada del bloque Mux.El bloque Mux que se ubica en la librera Signal Routing, se emplea cuando la ecuacin est en base a dos o mas seales.

Ejemplo 2:Modelo y simulacin de sistema no lineal: pndulo simple Ejemplo 2:Modelo y simulacin de sistema no lineal: pndulo simple El diagrama bloques de simulacin ser

A partir del diagrama Simulink se puede analizar la respuesta del sistema lineal y no lineal (previa linealizacin automtica). Se puede obtener la respuesta temporal al escaln, al impulso, diagramas de Bode, de Nyquist, plano con polos y ceros. Tambin calcula la funcin de transferencia entre los puntos del sistema que seleccione.

Para explicar su funcionamiento se emplear el diagrama de bloques dibujado en Simulink para el ejemplo 1.

Ejemplo 3: Anlisis linealEjemplo 3: Anlisis lineal

El siguiente paso ser definir las variables de entrada y de salida. Para ello nos situaremos sobre las flechas que porten las variables de inters y pulsando el botn derecho del ratn seleccionaremos si se trata de un punto de entrada (Input point) o de salida (Output point) en la entrada de men Linearization points. En este caso vamos a analizar entre el voltaje de entrada u y la velocidad de salida w, por lo que el Input point lo ubicaremos sobre u y el Output point sobre w.Ejemplo 3: Anlisis linealEjemplo 3: Anlisis lineal

Para el caso del input point se procede as:Ejemplo 3: Anlisis linealEn la siguiente figura se muestran los smbolos queindican que u es una variable de entrada y w de salida,tras haber realizado el proceso anterior.

41Ejemplo 3: Anlisis linealA continuacin ingresaremos a la ventana LinearAnalysis desde el men Tools Control DesignLinear Analysis

Luego se abre la ventana Control and Estimation ToolsManager, mostrando las variables de entrada y salidaEscogidas.

42Ejemplo 3: Anlisis lineal

43Ejemplo 3: Anlisis linealPara obtener el modelo pulsaremos el botnLinearize Model. Tras ello, nos aparecer la ventana LTI Viewer: Linearization Quick Plot.Inicialmente el LTI Viewer nos mostrar la respuesta ante el escaln unitario entre lasalida y la entrada indicadas.

44Ejemplo 3: Anlisis linealPulsando con el botn derecho del mouse podremosobtener las caractersticas de la respuesta, seleccionandoCharacteristics.

45Ejemplo 3: Anlisis linealPor ejemplo si seleccionamos Settling Time (tiempo de establecimiento), se obtiene lo siguiente, ubicando elmouse sobre el punto.

46Ejemplo 3: Anlisis linealPulsando con el botn derecho del mouse podremoscambiar el tipo de respuesta con Plot Types.Se podr mostrar el diagrama de Bode, el planode polos y ceros, el diagrama de Nyquist, etc.

47Ejemplo 3: Anlisis linealPor ejemplo si seleccionamos Bode nos mostrar losDiagramas de Bode.

48Clculo de la funcin de transferencia:Iremos a: File Export en la ventana LTI Viewer: Linearization Quick Plot.

Se abrir la ventana LTI Viewer Export con los sistemas que tengamos almacenados. En este caso slo habr uno. Su nombre puede variar, en este caso le llama Model. Podemos cambiar el nombre de exportacin en la casilla Export as. Ejemplo 3: Anlisis linealEjemplo 3: Anlisis lineal

Seleccionamos el sistema que nos interese exportarpulsando con el mouse sobre l, y luego pulsamosExport to Workspace. Si tenemos el Matlab configurado para mostrar la ventana Workspace, podremos ver ah el sistema exportado.

Para ver el modelo, que est en variables de estado, en la ventana Command Window de Matlab escribimos su nombre, obteniendo:

Ejemplo 3: Anlisis lineal

Para obtener el modelo en funcin de transferencia y en polos y ceros utilizaremos el comando tf y zpk:

Ejemplo 3: Anlisis lineal

Matlab ha desarrollado interfaces grficas de usuario (GUI), que permiten analizar y disear sistemas de control de una manera simple, siempre que se conozca la teora de control correspondiente.

Una de ellas es sisotool, la cual abre una ventana mostrando el diagrama de LGR y el de Bode.Para ingresar slo escriba sisotool en la ventana de comandos de Matlab, y se abren dos ventanas:Control and Estimation Tools ManagerSISO Design for SISO Design TaskEjemplo 4: Diseo de controlador PI mediante Lugar geomtrico de las racesEjemplo 4: Diseo de controlador PI mediante Lugar geomtrico de las races

Ejemplo 4: Diseo de controlador PI mediante Lugar geomtrico de las races

Vamos a ilustrar su uso para el modelo G1 de la planta encontrada en el Ejemplo 3, la cual ya est en el workspace de Matlab:Ejemplo 4: Diseo de controlador PI mediante Lugar geomtrico de las races

En primer lugar, analizaremos el control de la planta con realimentacin negativa empleando un controlador proporcional: C(s) = K.En la ventana SISO Design for seleccione:File Import , abrindose la ventana: System Data, donde seleccionamos G y pulsamos BrowseEjemplo 4: Diseo de controlador PI mediante Lugar geomtrico de las races

En la ventana Model Import seleccionamos G1 para G y pulsamos Import y luego Close.Ejemplo 4: Diseo de controlador PI mediante Lugar geomtrico de las races

Regrese a la ventana SISO design for , y observar el LGR, y diagramas de Bode de lazo abierto y lazo cerrado. Los cuadraditos son las races cuando C(s) = 1Ejemplo 4: Diseo de controlador PI mediante Lugar geomtrico de las races

Para ver la respuesta del sistema a una entrada escaln unitario, ir a Analysis Response to Step Command.Ejemplo 4: Diseo de controlador PI mediante Lugar geomtrico de las races

Se aprecia una respuesta con error estacionario alto.

Para mejorar la respuesta, con el mouse mueva las races para que sean complejas (se est aumentando la ganancia del controlador K.

Automticamente se actualizan los diagramas de Bode y la respuesta al escaln, como sigue:Ejemplo 4: Diseo de controlador PI mediante Lugar geomtrico de las racesEjemplo 4: Diseo de controlador PI mediante Lugar geomtrico de las races

Ejemplo 4: Diseo de controlador PI mediante Lugar geomtrico de las races

Mejor la respuesta, ms rpida, pero sigue teniendo error estacionario.Se debe a que le falta integrador (polo en orgen).Ahora calcularemos un controlador PI para eliminar el error estacionario: K ( s + 1/Ti) C(s) = ----------- sAplicando cancelacin polo-cero, seleccionamos el cero del controlador que cancele al polo de la planta ubicado en -2.003: 1/Ti = 2.003Ahora ir a la ventana Control and Estimation Tools Manager, seleccione Compensator EditorEjemplo 4: Diseo de controlador PI mediante Lugar geomtrico de las racesEjemplo 4: Diseo de controlador PI mediante Lugar geomtrico de las races

Sobre ventana Dynamics, pulse botn derecho del mouse, seleccione Add Pole/Zero Integrator.Ejemplo 4: Diseo de controlador PI mediante Lugar geomtrico de las races

Realice lo mismo pero ahora: Add Pole/Zero Real Zero y ponga la ubicacin del cero en -2.003Ejemplo 4: Diseo de controlador PI mediante Lugar geomtrico de las races

Ahora regrese a la ventana LTI Viewer for y observe la respuesta, ya no hay error estacionario. Ejemplo 4: Diseo de controlador PI mediante Lugar geomtrico de las races

Para mejorar la respuesta, con el mouse mueva las races hasta -5 +/-j5 Ejemplo 4: Diseo de controlador PI mediante Lugar geomtrico de las races

Ahora regrese a la ventana LTI Viewer for y observe la respuesta, es ms rpida, no tiene error estacionario y un sobreimpulso adecuado (4.4%).La F.T C(s) del controlador calculado se ve en la ventana Control and EstEjemplo 4: Diseo de controlador PI mediante Lugar geomtrico de las races

Ejemplo 4: Diseo de controlador PI mediante Lugar geomtrico de las races

El controlador PI calculado tiene como F.T: 50.453 ( 0.5s + 1) 100.9 ( s + 2 ) C(s) = ---------------- = ------------- s s

Guarde el diseo pulsando sobre Store Design.Ejemplo 4: Diseo de controlador PI mediante Lugar geomtrico de las races