Я пытаюсь изучить modelica и начал с кодирования некоторых простых примеров из учебника: «Введение в объектно-ориентированное моделирование и моделирование с помощью OpenModelica» Питера Фритцсона Link. Я работаю с димолой. Существует один пример, называемый Moon Landing, который я не могу запустить. После запуска моделирования я не могу построить ни одну из переменных. Вот мой код:Modelica Example MoonLanding
model Example
class Rocket "rocket class"
parameter String name;
Real mass(start = 1038.3);
Real altitude(start = 59404);
Real velocity(start = -2003);
Real thrust;
Real acceleration;
Real gravity;
parameter Real massLossRate=0.000277;
equation
acceleration = (thrust-mass*gravity)/mass;
der(mass) = -massLossRate * abs(thrust);
der(altitude)=velocity;
der(velocity)=acceleration;
end Rocket;
class CelesticalBody
constant Real g = 6.672e-11;
parameter Real radius;
parameter String name;
parameter Real mass;
end CelesticalBody;
class MoonLanding
parameter Real force1 = 36350;
parameter Real force2 = 1308;
protected
parameter Real thrustEndTime = 210;
parameter Real thrustDecreaseTime = 43.2;
public
Rocket apollo(name="apollo13");
CelesticalBody moon(name="moon",mass = 7.382e22, radius=1.738e6);
equation
apollo.thrust = if (time < thrustDecreaseTime) then force1
else if
(time < thrustEndTime) then force2
else 0;
apollo.gravity = moon.g*moon.mass/(apollo.altitude+moon.radius)^2;
end MoonLanding;
end Example;
ли кто-то знает, где ошибка может быть?
Это работает для меня (я скопировал ваш код и смоделировал класс MoonLanding за 230 секунд). У меня есть доступ ко всем переменным. Вы можете увидеть классы (apollo, moon) на вкладке моделирования? –
Эй, благодарю вас за ответ. Я всегда пытался имитировать всю модель, содержащую все классы. Но мне нужно моделировать только класс MoonLanding. Любая идея, почему она не работает при моделировании всей модели? –
Вся «модель» на самом деле представляет собой «пакет», содержащий три «модели». Модели, пакеты, блоки и т. Д. - это специальные классы Modelica. –