我是 Modelica 新手。
我使用 OpenModelica 连接编辑器完成了此操作。
使用以下代码
model chariot_portique
Modelica.Blocks.Sources.CombiTimeTable combiTimeTable(extrapolation = Modelica.Blocks.Types.Extrapolation.HoldLastPoint, table = [0, 0; 4, 3; 8, 3; 12, 0; 16, 0; 20, -3; 24, -3; 28, 0], tableOnFile = false) annotation(
Placement(transformation(extent = {{-80, 20}, {-60, 40}})));
Modelica.Blocks.Continuous.Derivative derivative(T = 1, k = 1) annotation(
Placement(visible = true, transformation(origin = {-26, 30}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
equation
connect(combiTimeTable.y, derivative.u) annotation(
Line(points = {{-58, 30}, {-38, 30}}, color = {0, 0, 127}));
annotation(
experiment(StopTime = 20),
uses(Modelica(version = "4.0.0")));
end chariot_portique;
不幸的是验证这个模型会引发
The type of variables combiTimeTable.y and derivative.u are inconsistent in connect equations.
如何修复?
我尝试在 CombiTimeTable 和 Derivative 之间插入 SISO 或 DiscreteSISO 块。但没有成功。
y
的输出 CombiTimeTable
是一个向量,但导数块需要标量输入。您必须向连接语句添加索引并指定应使用输出向量的哪个元素。
您有一个包含 2 列的表,因此
y
的大小为 1(第一列始终是时间,所有其他列都是输出值)。因此,您必须在连接中添加[1]
。
connect(combiTimeTable.y[1], derivative.u) annotation (...);