Modelado y Simulaci de Sistemas Din icos: M odos ...kofman/files/Intro_Modelica.pdf · Permite...

21
Introducción a Modelica El Lenguaje Modelica Modelado y Simulación de Sistemas Dinámicos: Métodos, Algoritmos y Herramientas Sistemas Continuos Ernesto Kofman Laboratorio de Sistemas Dinámicos y Procesamiento de la Información FCEIA - Universidad Nacional de Rosario. CIFASIS – CONICET. Argentina Ernesto Kofman. Modelado y Simulación de Sistemas Dinámicos Modelado de Sistemas de Tiempo Continuo

Transcript of Modelado y Simulaci de Sistemas Din icos: M odos ...kofman/files/Intro_Modelica.pdf · Permite...

Introducción a ModelicaEl Lenguaje Modelica

Modelado y Simulación de SistemasDinámicos: Métodos, Algoritmos y

HerramientasSistemas Continuos

Ernesto Kofman

Laboratorio de Sistemas Dinámicos y Procesamiento de la InformaciónFCEIA - Universidad Nacional de Rosario.

CIFASIS – CONICET. Argentina

Ernesto Kofman. Modelado y Simulación de Sistemas Dinámicos Modelado de Sistemas de Tiempo Continuo

Introducción a ModelicaEl Lenguaje Modelica

Organización de la Presentación

1 Introducción a Modelica

2 El Lenguaje Modelica

Ernesto Kofman. Modelado y Simulación de Sistemas Dinámicos Modelado de Sistemas de Tiempo Continuo

Introducción a ModelicaEl Lenguaje Modelica

Organización de la Presentación

1 Introducción a Modelica

2 El Lenguaje Modelica

Ernesto Kofman. Modelado y Simulación de Sistemas Dinámicos Modelado de Sistemas de Tiempo Continuo

Introducción a ModelicaEl Lenguaje Modelica

Introducción a Modelica

Modelica es un lenguaje estandarizado para el modelado desistemas continuos, discretos e híbridos. Tiene las siguientescaracterísticas:

Es orientado a objetos, y cada componente de un modeloes una instancia de una clase.

Permite una definición trivial de las relaciones constitutivasy estructurales de cada sub–modelo.

Permite definir relaciones acausales o causales según seanecesario.

Facilita el reuso de componentes, sub-modelos y modelosmediante la creación de paquetes y librerías.

Admite una representación gráfica totalmente intuitiva paralos distintos dominios de la física y de la técnica.

Cuenta con una librería estándar muy completa.

Ernesto Kofman. Modelado y Simulación de Sistemas Dinámicos Modelado de Sistemas de Tiempo Continuo

Introducción a ModelicaEl Lenguaje Modelica

Introducción a ModelicaEjemplo: Sistema masa-resorte usando la Librería Estándar

Modelo Masa-Resorte en Modelica (GUI de Dymola)

Ernesto Kofman. Modelado y Simulación de Sistemas Dinámicos Modelado de Sistemas de Tiempo Continuo

Introducción a ModelicaEl Lenguaje Modelica

Introducción a ModelicaEjemplo: Sistema masa-resorte usando la Librería Estándar

Modelo Masa-Resorte en Modelica:

model Masa_resorteModelica.Mechanics.Translational.SlidingMass slidingMassModelica.Mechanics.Translational.Spring springModelica.Mechanics.Translational.Damper damper(d=1.0)Modelica.Mechanics.Translational.Fixed fixedModelica.Mechanics.Translational.Force forceModelica.Blocks.Sources.Step step

equationconnect(fixed.flange_b, spring.flange_a)connect(damper.flange_a, fixed.flange_b)connect(spring.flange_b, slidingMass.flange_a)connect(damper.flange_b, slidingMass.flange_a)connect(slidingMass.flange_b, force.flange_b)connect(step.y, force.f)

end Masa_resorte;

Ernesto Kofman. Modelado y Simulación de Sistemas Dinámicos Modelado de Sistemas de Tiempo Continuo

Introducción a ModelicaEl Lenguaje Modelica

Introducción a ModelicaAlgunas clases mecánicas de la Librería Estándar

model Damperextends Interfaces.Compliant;parameter Real d = 1;SI.Velocity v_rel;

equationv_rel = der(s_rel);f = d*v_rel;

end Damper;

partial model CompliantSI.Distance s_rel;SI.Force f

equations_rel = flange_b.s - flange_a.s;flange_b.f = f;flange_a.f = -f;

end Compliant;

El comando extendsexplicita la herencia.

der() indica la derivada.

las ecuaciones son todasacausales.

las clases SI.Velocity, etc.,son variables realesprovistas de unidades demedida.

Ernesto Kofman. Modelado y Simulación de Sistemas Dinámicos Modelado de Sistemas de Tiempo Continuo

Introducción a ModelicaEl Lenguaje Modelica

Introducción a ModelicaAlgunas clases mecánicas de la Librería Estándar

connector Flange_aSI.Position s;flow SI.Force f;

end Flange_a;

connector Flange_bSI.Position s;flow SI.Force f;

end Flange_b;

Las clases tipo connectorpermiten vincular variablesmediante la ecuaciónconnect.

Todas las variables tipoflow de conectoresconectados entre sí sumancero.

Todas las demás variablesde conectores conectadosentre sí son iguales.

Ernesto Kofman. Modelado y Simulación de Sistemas Dinámicos Modelado de Sistemas de Tiempo Continuo

Introducción a ModelicaEl Lenguaje Modelica

Organización de la Presentación

1 Introducción a Modelica

2 El Lenguaje Modelica

Ernesto Kofman. Modelado y Simulación de Sistemas Dinámicos Modelado de Sistemas de Tiempo Continuo

Introducción a ModelicaEl Lenguaje Modelica

Modelos y Clases Elementales

El tipo de clase model permite definir modelos, como muestrael siguiente ejemplo

model lotkaReal x1(start=2);Real x2(start=2);parameter Real a=0.1;parameter Real b=0.1;parameter Real c=0.1;parameter Real d=0.1;

equationder(x1)=a*x1-b*x1*x2;der(x2)=-c*x2+d*x1*x2;

end lotka;

La clase Real es un tipopredefinido, y su atributostart permite incorporar elvalor inicial.

El modificador parameterpermite distinguirparámetros de variables.

Las ecuaciones sonacausales.

Ernesto Kofman. Modelado y Simulación de Sistemas Dinámicos Modelado de Sistemas de Tiempo Continuo

Introducción a ModelicaEl Lenguaje Modelica

Paquetes y Reutilización de Clases

package filtros

model pasabajosparameter Real T=1;Real u;Real y;

equationT*der(y)+y=u;

end pasabajos;

model pasabajos2pasabajos filtro1;pasabajos filtro2(T=2);

equationfiltro2.u=filtro1.y;filtro1.u=sin(time)+sin(10*time);

end pasabajos2;

end filtros;

Un paquete permiteagrupar modelos de formaordenada.

Los modelos puedeninstanciarse en otrosmodelos más complejos,modificando también susatributos como en el casodel filtro2.

En este caso, la conexiónentre los modelos filtro1 yfiltro2 se hizo a mano.

Ernesto Kofman. Modelado y Simulación de Sistemas Dinámicos Modelado de Sistemas de Tiempo Continuo

Introducción a ModelicaEl Lenguaje Modelica

Tipos

package Mecanicostype Velocity=Real(unit="m/s");type Position=Real(unit="m");type Force=Real(unit="N");type Length=Real(unit="m");type Distance=Real(unit="m");type Mass=Real(unit="Kg");

type permite crear clasesrestringidas a tipos dedatos.

Por ejemplo, se puedencrear clases derivadas deReal con distintos atributosde unidad.

Ernesto Kofman. Modelado y Simulación de Sistemas Dinámicos Modelado de Sistemas de Tiempo Continuo

Introducción a ModelicaEl Lenguaje Modelica

Conectores

connector FlangePosition s;flow Force f;

end Flange;

connector permite definirun tipo de dato quecontiene una o másvariables.

La ecuaciónconnect(c1,c2) implica quelas variables de esfuerzode c1 son iguales a las dec2, mientras que lasdefinidas como flow suman0.

Ernesto Kofman. Modelado y Simulación de Sistemas Dinámicos Modelado de Sistemas de Tiempo Continuo

Introducción a ModelicaEl Lenguaje Modelica

Herencia

model SpringFlange a;Flange b;Distance srel;Force f;parameter Real k(unit="N/m")=1;parameter Length srel0=0;

equationsrel=b.s-a.s;a.f=-f;b.f=f;f=k*(srel-srel0);

end Spring;

model DamperFlange a;Flange b;Distance srel;Force f;parameter Real bf(unit="N.m/s")=1;

equationsrel=b.s-a.s;a.f=-f;b.f=f;f=bf*der(srel);

end Damper;

Los modelos Spring yDamper tienen muchascosas en común.

La única diferencia son losparámetro y la últimaecuación.

Esto ocurre muy a menudoen los componentes desistemas físicos

Ernesto Kofman. Modelado y Simulación de Sistemas Dinámicos Modelado de Sistemas de Tiempo Continuo

Introducción a ModelicaEl Lenguaje Modelica

Herencia

partial model CompliantFlange a;Flange b;Distance srel;Force f;

equationsrel=b.s-a.s;a.f=-f;b.f=f;

end Compliant;

model Springextends Compliant;parameter Real k(unit="N/m")=1;parameter Length srel0=0;

equationf=k*(srel-srel0);

end Spring;

model Damperextends Compliant;parameter Real bf(unit="N.m/s")=1;

equationf=bf*der(srel);

end Damper;

El modelo parcialCompliant contiene todoslos elementos comunes aSpring y Damper.

El comando extendsexplicita la herencia.

Ernesto Kofman. Modelado y Simulación de Sistemas Dinámicos Modelado de Sistemas de Tiempo Continuo

Introducción a ModelicaEl Lenguaje Modelica

Herencia

partial model RigidFlange a;Flange b;Position s;parameter Length L=0;

equations=a.s+L/2;b.s=a.s+L;

end Rigid;

model SlidingMassextends Rigid;Velocity v;parameter Mass m=1;

equationa.f+b.f=m*der(v);der(s)=v;

end SlidingMass;

Otro ejemplo de herencia.

Ernesto Kofman. Modelado y Simulación de Sistemas Dinámicos Modelado de Sistemas de Tiempo Continuo

Introducción a ModelicaEl Lenguaje Modelica

Un Modelo Masa-Resorte

model FixedFlange a;parameter Position s0=0;

equationa.s=s0;

end Fixed;

model MasaResorteSlidingMass M(s(start=1));Spring S;Damper D;Fixed F;

equationconnect(S.a,F.a);connect(D.a,F.a);connect(S.b,M.a);connect(D.b,M.a);

end MasaResorte;end Mecanicos;

Una vez creadas lasclases de loscomponentes, el modeladose torna muy sencillo.

La librería estándar deModelica cuenta connumerosos componentesde distintos dominios.

Hay además decenas delibrerías creadas pordistintos usuariosdisponiebles online.

Ernesto Kofman. Modelado y Simulación de Sistemas Dinámicos Modelado de Sistemas de Tiempo Continuo

Introducción a ModelicaEl Lenguaje Modelica

Discontinuidades

model BBallReal y(start=1);Real v;parameter Real m = 1;parameter Real k = 10000;parameter Real b = 10;parameter Real g = 9.8;

equationder(y)=v;m*der(v)=if y>0 then -m*g else -k*y-b*v-m*g;

end BBall;

y(t)

Ernesto Kofman. Modelado y Simulación de Sistemas Dinámicos Modelado de Sistemas de Tiempo Continuo

Introducción a ModelicaEl Lenguaje Modelica

Introducción a ModelicaAlgunas características adicionales

El lenguaje Modelica permite representar Bond Graphs,Diagramas de Bloques y sistemas de ecuacionesdiferenciales en general de manera trivial.

En virtud de lo anterior, Modelica es una generalización delos formalismos de modelado existentes.

Además, el lenguaje cuenta con funcionalidades quepermiten representar sistemas de tiempo discreto y deeventos discretos, que pueden a su vez interactuar consubsistemas continuos dando lugar a sistemas híbridos.

Ernesto Kofman. Modelado y Simulación de Sistemas Dinámicos Modelado de Sistemas de Tiempo Continuo

Introducción a ModelicaEl Lenguaje Modelica

Introducción a ModelicaCompilación y Simulación de Modelos

Para simular modelos de Modelica estos debenconvertirse primero en Ecuaciones de Estado. Estaconversión la llevan a cabo los Compiladores de Modelica.

Hay actualmente tres compiladores desarrollados:Dymola, Mathmodelica y Open Modelica.

El proceso de compilación de un modelo complejo deModelica es bastante complicado, debido a la presenciafrecuente de singularidades estructurales (EcuacionesDiferenciales Algebraicas).

Ernesto Kofman. Modelado y Simulación de Sistemas Dinámicos Modelado de Sistemas de Tiempo Continuo

Introducción a ModelicaEl Lenguaje Modelica

Bibliografía

Modelica Association.Language Specification - Modelica - A Unified Object-Oriented Language forPhysical Systems Modeling.Linköping, Sweden, 2005.Disponible en www.modelica.org.

Dean Karnopp, Donald Margolis, and Ronald Rosenberg.System Dynamics. Modeling and Simulation of Mechatronic Systems.John Wiley & Sons, Hoboken, New Jersey, 4th. edition, 2006.

Ernesto Kofman.Introducción a Modelica.Notas de Clase, 2007.Disponible en www.fceia.unr.edu.ar/control/modelica.

Ernesto Kofman. Modelado y Simulación de Sistemas Dinámicos Modelado de Sistemas de Tiempo Continuo