我想在一个更符合逻辑(或基于行为)的观点而不是低级(电子)观点中,在Modelica(OpenModelica)中建模一个非常简单的嵌入式系统.对我来说主要的问题是,我之前从未与Modelica合作过,而且我在理解如何正确思考如何正确建模时遇到了麻烦.
该系统应该非常简单地用于启动,并且包括通过总线与控制器连接的传感器.系统的期望行为应该是,传感器周期性地生成值并通过中断通知控制器.作为回报的控制器应该对该中断作出反应并获取该值.对我来说,这个例子的目的是,正如我已经提到的,首先要理解如何在Modelica中查看思考并获得一个初始(可能不是非常有用)的工作示例,我可以迭代地扩展到更复杂的一个.
这是我到目前为止建模的系统:
传感器型号:
model ES_Sensor
parameter Integer id = 1;
parameter Real frequency = 1.0;
Integer reg_temperature = 0;
ES_Interface interface;
algorithm
when sample(0, 1 / frequency) then
reg_temperature := reg_temperature + 1;
interface.interrupt := 1;
end when;
when interface.address == id then
interface.data := reg_temperature;
end when;
end ES_Sensor;
Run Code Online (Sandbox Code Playgroud)
接口连接器:
connector ES_Interface
flow Real dummy1;
flow Real dummy2;
flow Real dummy3;
Integer address = 0;
Integer data = 0;
Integer interrupt = 0;
end ES_Interface;
Run Code Online (Sandbox Code Playgroud)
总线型号:
model ES_Bus …Run Code Online (Sandbox Code Playgroud)