我正在寻找“从哪里开始”-我希望这个问题有点涉及到这个论坛,但我需要一个起点,我的搜索还没有成功:(任何意见将不胜感激…
我需要使用SystemModeler / OpenModelica接口创建一个加权图。我们流程的第一步将跳过SystemModeler模拟,并将模型传递给Mathematica进行处理
我的问题是关于向System Modeler GUI中的连接器添加属性:
我需要绘制这样一个模型:状态A连接到状态B和状态C,到B的路径的权重为.7,C的路径的权重为.3。我需要创建一个对象来保持权重,并将其与连接器相关联。还需要在给定状态的连接器未加到1时发出警告。
对于从哪里开始有什么想法吗?
发布于 2016-04-19 00:36:21
由于Modelica中的连接本身不包含任何信息,而是传递它所连接的块中的信息,因此我相信您有两种选择:
下面是一个如何实现后一种方法的示例:
model WeightedGraph
model Node
Modelica.Blocks.Interfaces.RealInput u[nin];
Modelica.Blocks.Interfaces.RealOutput y[size(k, 1)];
Real usum;
parameter Real k[:] = {0};
parameter Integer nin = 0;
equation
y = k;
usum = sum(u);
end Node;
Node A(nin = 0, k = {0.7});
Node B(nin = 1, k = {0.3});
Node C(nin = 1);
equation
connect(A.y[1], B.u[1]);
connect(B.y[1], C.u[1]);
end WeightedGraph;需要使用nin参数指定组件的输入数量。输出的数量将等于k的长度,k是一个列表,您可以在该列表中指定每个连接的权重。例如,您可以使用assert检查ysum是否加到1,或者您是否希望在Mathematica中执行此操作。
https://stackoverflow.com/questions/36657924
复制相似问题