- Index
- » Users
- » heinz.m
- » Profile
Posts
Posts
Hello
I was very pleased to find the systemdynamics library in openmodelica.
I created some models. They were ok. After that, I used OMEdit & SystemDynamics Library in a course with students and we had a lot of trouble. E.g. one student built a model, that did not run, although it looked identical to models that were ok. One Student was unable to save his model....
I decided to give up OMEdit & SystemDynamics Library and went on with other Simulation Software.
OMEdit & SystemDynamics do not yet seem to be a useful combination. (April 2014)
I write this to prevent other people from the same experience.
Cheers
Heinz
When I try to simulate one of my first models, created with OMEdit, I get the error messages:
[:0:0-0:0] Warning: No system for the symbolic initialization was generated. A method using numerical algorithms will be used instead.
[:0:0-0:0] Warning: Trying to fix over-determined initial system with 5 variables and 6 equations... [not implemented yet!]
When I look into the code created in the step "Simulation - Instantiate model" I see many more than 6 equations and 5 variables .
Please give me a hint, how to examine equations and variables.
Cheers
Heinz
the model:
model Konto
SystemDynamics.Sources.Source source1 annotation(Placement(visible = true, transformation(origin = {-80,40}, extent = {{-10,-10},{10,10}}, rotation = 0)));
SystemDynamics.Rates.Rate_2 Einnahmen annotation(Placement(visible = true, transformation(origin = {-40,40}, extent = {{-10,-10},{10,10}}, rotation = 0)));
SystemDynamics.Levels.Level Konto(x0 = 10000) annotation(Placement(visible = true, transformation(origin = {0,40}, extent = {{-10,-10},{10,10}}, rotation = 0)));
SystemDynamics.Rates.Rate_3 Ausgaben annotation(Placement(visible = true, transformation(origin = {40,40}, extent = {{-10,-10},{10,10}}, rotation = 0)));
SystemDynamics.Sources.Sink sink1 annotation(Placement(visible = true, transformation(origin = {80,40}, extent = {{-10,-10},{10,10}}, rotation = 0)));
SystemDynamics.Auxiliary.Const Lohn(k = 100000) annotation(Placement(visible = true, transformation(origin = {-60,0}, extent = {{-10,-10},{10,10}}, rotation = 0)));
SystemDynamics.Auxiliary.Const Miete(k = 25000) annotation(Placement(visible = true, transformation(origin = {20,0}, extent = {{-10,-10},{10,10}}, rotation = 0)));
SystemDynamics.Auxiliary.Const Steuern(k = 20000) annotation(Placement(visible = true, transformation(origin = {40,0}, extent = {{-10,-10},{10,10}}, rotation = 0)));
SystemDynamics.Auxiliary.Const Zinssatz(k = 0.02) annotation(Placement(visible = true, transformation(origin = {-40,-40}, extent = {{-10,-10},{10,10}}, rotation = 0)));
SystemDynamics.Auxiliary.Prod_2 Zins annotation(Placement(visible = true, transformation(origin = {-20,0}, extent = {{-10,-10},{10,10}}, rotation = 0)));
SystemDynamics.Auxiliary.Const Auslagen(k = 50000) annotation(Placement(visible = true, transformation(origin = {60,0}, extent = {{10,-10},{-10,10}}, rotation = 0)));
equation
connect(Auslagen.y,Ausgaben.u2) annotation(Line(points = {{60,7},{43.8512,7},{43.8512,29.4372},{43.8512,29.4372}}));
connect(Steuern.y,Ausgaben.u1) annotation(Line(points = {{40,7},{40.0922,7},{40.0922,29.9539},{40.0922,29.9539}}));
connect(Miete.y,Ausgaben.u) annotation(Line(points = {{20,7},{35.9447,7},{35.9447,29.4931},{35.9447,29.4931}}));
connect(Zinssatz.y,Zins.u1) annotation(Line(points = {{-40,-33},{-27.6498,-33},{-27.6498,0.460829},{-27.6498,0.460829}}));
connect(Lohn.y,Einnahmen.u) annotation(Line(points = {{-60,7},{-43.7788,7},{-43.7788,29.0323},{-43.7788,29.0323}}));
connect(Zins.y,Einnahmen.u1) annotation(Line(points = {{-20,7},{-36.4055,7},{-36.4055,29.4931},{-36.4055,29.4931}}));
connect(Konto.y3,Zins.u2) annotation(Line(points = {{0,33.5},{-13.3641,33.5},{-13.3641,-0.921659},{-13.3641,-0.921659}}));
connect(Ausgaben.y1,sink1.MassInPort1) annotation(Line(points = {{45,40},{69.12439999999999,40},{69.12439999999999,38.2488},{69.12439999999999,38.2488}}));
connect(Konto.u2,Ausgaben.y1) annotation(Line(points = {{11,40},{45.1613,40},{45.1613,40.553},{45.1613,40.553}}));
connect(Einnahmen.y1,Konto.u2) annotation(Line(points = {{-35,40},{10.5991,40},{10.5991,39.1705},{10.5991,39.1705}}));
connect(source1.MassInPort1,Einnahmen.y1) annotation(Line(points = {{-69,40},{-35.023,40},{-35.023,39.6313},{-35.023,39.6313}}));
annotation(Icon(coordinateSystem(extent = {{-100,-100},{100,100}}, preserveAspectRatio = true, initialScale = 0.1, grid = {2,2})), Diagram(coordinateSystem(extent = {{-100,-100},{100,100}}, preserveAspectRatio = true, initialScale = 0.1, grid = {2,2})));
end Konto;
When i try to simulate SystemDynamics.PopulationDynamics.LarchBudMoth from OMEdit, I get the error message:
[:0:0-0:0] Error: Cannot instantiate SystemDynamics.PopulationDynamics.LarchBudMoth due to class specialization PACKAGE..advice
I would appreciate two types of advice:
1. How can I solve that problem?
2. What do you recommend to a beginner to read, to become able to help myself?
Cheers
Heinz
In the system dynamics library are some interfaces. E.g. nonlin_2.
How do I define an equation for an interface? Let's say
y = u1 * u2 in nonlin_2 ?
Kind Regards
Heinz
- Index
- » Users
- » heinz.m
- » Profile