Sunteți pe pagina 1din 9

Ministerul Educaieiei al Republicii Moldova

Universitatea de Stat din Moldova


Facultatea de Matematic i Informatic

Laborator Nr.1
La disciplina Modelarea Imitaional
Tema:"Limbajul Modelica i softul pentru
modelarea imitaional"

Efectuat:
Ghiderman Ion
Verificat:
Ungureanu Valeriu

Chiinu, 2017
Introducere n Modelica
Ce este Modelica?
Modelica este un limbaj de modelare orientat pe obiecte, declarativ,
multidimensional, pentru modelarea orientat pe componente a sistemelor complexe, de
exemplu, sisteme care conin subcomponente mecanice, electrice, electronice, hidraulice,
termice, de comand, electrice sau de proces. Limbajul liber Modelica este dezvoltat de
Asociaia non-profit Modelica. Asociaia Modelica dezvolt, de asemenea, librria liber
Modelica Standard care conine aproximativ 1360 de componente generice i 1280 de funcii n
diverse domenii, ncepnd cu versiunea 3.2.1.

Caracteristici

n timp ce Modelica seamn cu limbile de programare orientate pe obiecte , cum ar


fi C++ sau Java , aceasta difer n dou aspecte importante. n primul rnd, Modelica este
un limbaj de modelare, mai degrab dect un limbaj de programare convenional . Modelele de
clas nu sunt compilate n sensul obinuit, ci sunt transformate n obiecte care sunt apoi
exercitate de un motor de simulare. Motorul de simulare nu este specificat de limb, dei anumite
capabiliti cerute sunt subliniate.

Istorie

Proiectul de proiectare Modelica a fost iniiat n septembrie 1996 de ctre Hilding


Elmqvist. Scopul a fost de a dezvolta un limbaj orientat pe obiecte pentru modelarea sistemelor
tehnice n scopul reutilizrii i schimbului de modele dinamice ale sistemelor ntr-un format
standardizat. Modelica 1.0 se bazeaz pe doctorat teza a Hilding Elmqvist i pe experiena cu
modelarea limbilor Allan, Dymola , NMF ObjectMath, Omola, SIDOPS +, i Smile. Hilding
Elmqvist este arhitectul cheie al Modelica, dar i ali oameni au contribuit (vezi apendicele E). n
septembrie 1997, a fost lansat versiunea 1.0 a specificaiei Modelica, care a stat la baza unei
implementri prototip n cadrul sistemului informatic Dymola. n anul 2000, asociaia non-profit
Modelica a fost creat pentru a gestiona limba n continu evoluie a modelului i dezvoltarea
librriei libere Standardica. n acelai an, a nceput utilizarea modelului n aplicaii industriale.

Implementri

Comerciale front-end pentru Modelica includ AMESim de la compania francez


Imaginai - v SA (acum parte a Siemens PLM Software ), Dymola de la compania suedez
Dynasim AB (acum parte din Dassault Systemes ), CyModelica de la compania american
CyDesign Labs acum ESI Grupul , Wolfram SystemModeler(fost MathModelica ) de la
2
compania suedez Wolfram Mathcore AB (acum parte din Wolfram Research ), SimulationX de
la compania german ESI ITI GmbH, MapleSim de la compania canadiana Maplesoft, i CATIA
Systems la Dassault Systemes ( CATIA este unul dintre principalele sisteme CAD ).

JModelica.org este o platform open-source bazat pe Modelica pentru optimizarea,


simularea i analiza sistemelor dinamice complexe. Obiectivul principal al proiectului este de a
crea o platform open source viabil din punct de vedere industrial pentru optimizarea simulrii
modelelor Modelica, oferind n acelai timp o platform flexibil care servete ca un laborator
virtual pentru dezvoltarea i cercetarea algoritmilor.

Openmodelica este un model de modelare bazat pe model open source i simulare


destinat utilizrii industriale i academice. Dezvoltarea pe termen lung este susinut de o
organizaie non-profit - Open Source Modelica Consortium (OSMC). Scopul cu efortul
OpenModelica este de a crea o modelare cuprinztoare Open Source Modelica, compilare i
mediu de simulare bazat pe software - ul gratuit distribuit n format binar i codul surs pentru
cercetare, de predare, i industriale de utilizare.

Mediul de simulare liber Scicos folosete un subset de Modelica pentru modelarea


componentelor. Sprijinul pentru o mare parte a limbajului Modelica este n curs de
dezvoltare. Cu toate acestea, exist nc o anumit incompatibilitate i interpretare divergent
ntre toate instrumentele diferite referitoare la limbajul Modelica.

Aplicaii

Modelica este proiectat pentru a fi neutre de domeniu i, ca urmare, este utilizat ntr - o
larg varietate de aplicaii, cum ar fi sisteme fluide (de exemplu, generarea de energie cu abur,
hidraulice, etc.), aplicaii auto ( n special pentru sistemul de propulsie) i sisteme mecanice (de
exemplu, sisteme cu mai multe corpuri, mecatronice etc.).

n sectorul automobilelor, muli dintre principalii productori de echipamente auto


utilizeaz Modelica. Acestea includ Ford, General Motors, Toyota, BMW, i Daimler.

Modelica este folosit din ce n ce mai mult pentru simularea sistemelor termo-lichide i
energetice.

Caracteristicile Modelica (acuzaional, orientat pe obiecte, neutre pe domenii) o fac foarte


potrivit pentru simularea la nivel de sistem , domeniu n care Modelica este acum bine stabilit.

3
Modelica n exemple. Modelul clasic Lotka-Voltera
Modelul clasic Lotka-Volterra implic dou specii. O specie este specia "prad". n
aceast seciune, populaia speciilor de prad va fi reprezentat prin x. Celelalte specii sunt
speciile "prdtor" ale cror populaii vor fi reprezentate de y.
Exist trei efecte importante ntr-un sistem Lotka-Volterra. Primul este reproducerea
speciei "prad". Se presupune c reproducerea este proporional cu populaia. Putem reprezenta
acest lucru matematic ca:

unde x este populaia de prad, reste schimbarea n populaia prad datorat

reproducerii i este proporionalitatea constant care surprinde probabilitatea unei


reproduceri reuite.
Urmtorul efect de luat n considerare este nfometarea speciilor de prad. Dac nu exist
destul "prad" n jurul mncrii, speciile de prdtori vor muri. La modelarea foametei, este
important s se ia n considerare efectul concurenei. Avem din nou o relaie de proporionalitate,
dar de data aceasta funcioneaz n sens invers deoarece, spre deosebire de reproducerea prad,
cu att sunt mai muli prdtori n jurul foamei mai predispuse. Acest lucru este exprimat
matematic n acelai mod ca i reproducerea:

unde y este populaia de prdtori, seste schimbarea populaiei de prdtori din cauza

foametei i este proporionalitatea constant care surprinde probabilitatea de foame.


n cele din urm, ultimul efect pe care trebuie s-l considerm este "drmarea", adic,
consumul speciilor de prad de speciile de prad. Fr prdtori, speciile de prad ar crete (cel
puin matematic) exponenial. Deci, prad este efectul care ine sub control populaia de specii de
prad. n mod similar, fr nici o prad, speciile de prdtori ar pierde pur i simplu. Deci,
predarea este ceea ce echilibreaz acest efect i menine populaia prdtorului de la zero. Din
nou, avem o relaie de proporionalitate. Dar de data aceasta, este de fapt o relaie bilinear care,
din nou, este asemntoare din punct de vedere conceptual cu Legea aciunii n mas. Aceast
relaie este pur i simplu captarea, matematic, a faptului c ansele ca un prdtor s gseasc i
s consume unele prad este proporional att cu populaia prad ct i cu prdtorii. Deoarece
acest efect specific necesit implicarea ambelor specii,i anume,

4
unde peste declinul populaiei de prad din cauza drmrii , peste creterea populaiei

de prdtori datorat drmrii , este constanta proporionalitii reprezentnd probabilitatea

consumului de prada i este constanta proporionalitii care reprezint probabilitatea ca


prdtorul s aib o nutriie suplimentar suficient pentru a susine reproducerea.
Lund n considerare diferitele efecte, variaia global a fiecrei populaii poate fi
reprezentat de urmtoarele dou ecuaii:

Folosind relaiile anterioare, putem extinde fiecare dintre termenii din partea dreapt n
aceste dou ecuaii:

Codul programului n Modelica


model ClassicModelInitialEquations "This is the typical equation-
oriented model"
parameter Real alpha=0.1 "Reproduction rate of prey";
parameter Real beta=0.02 "Mortality rate of predator per prey";
parameter Real gamma=0.4 "Mortality rate of predator";
parameter Real delta=0.02 "Reproduction rate of predator per prey";
parameter Real x0=10 "Initial prey population";
parameter Real y0=10 "Initial predator population";
Real x(start=x0) "Prey population";

Real y(start=y0) "Predator population";


initial equation
x = x0;

y = y0;
equation
der(x) = x*(alpha-beta*y);

der(y) = y*(delta*x-gamma);
end ClassicModelInitialEquations;

5
Soluia triviala
model QuiescentModel "Find steady state solutions to LotkaVolterra
equations"
parameter Real alpha=0.1 "Reproduction rate of prey";

parameter Real beta=0.02 "Mortality rate of predator per prey";


parameter Real gamma=0.4 "Mortality rate of predator";
parameter Real delta=0.02 "Reproduction rate of predator per prey";

Real x "Prey population";


Real y "Predator population";
initial equation

der(x) = 0;
der(y) = 0;
equation

der(x) = x*(alpha-beta*y);
der(y) = y*(delta*x-gamma);
end QuiescentModel;

6
Soluia cnd se utilizeaz valorile de start
model QuiescentModelUsingStart "Find steady state solutions to
LotkaVolterra equations"
parameter Real alpha=0.1 "Reproduction rate of prey";
parameter Real beta=0.02 "Mortality rate of predator per prey";
parameter Real gamma=0.4 "Mortality rate of predator";
parameter Real delta=0.02 "Reproduction rate of predator per prey";

Real x(start=10) "Prey population";


Real y(start=10) "Predator population";
initial equation

der(x) = 0;
der(y) = 0;
equation

der(x) = x*(alpha-beta*y);
der(y) = y*(delta*x-gamma);
end QuiescentModelUsingStart;

7
Cderea unei mingi
model BouncingBall "The 'classic' bouncing ball model"
type Height=Real(unit="m");
type Velocity=Real(unit="m/s");
parameter Real e=0.8 "Coefficient of restitution";
parameter Height h0=1.0 "Initial height";

Height h;
Velocity v;
initial equation

h = h0;
equation
v = der(h);

der(v) = -9.81;
when h<0 then
reinit(v, -e*pre(v));

end when;
end BouncingBall;
8
9

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