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