【发布时间】:2019-11-21 02:38:58
【问题描述】:
我正在尝试在 Simulink 中编写一个 S-Function,输入“t”代表时间,“LIBs”代表进入系统的材料量。有2个输出。这个想法在 Simulink 中是这样的。 Simulink model concept
我想要做的是,在某个时间迭代中,输入“LIBs”转到不同的输出。但在迭代过程中,有一些特殊点我不希望输入转到任何输出。
代码是这样的:
MATLAB
function [Batts_Spent, Batts_N_Spent] = BattsL6Y(t, LIBs)
for t = 2011:6:2035
if t ~= 2005:10:2035
Batts_Spent = LIBs;
end
end
for t = 2015:10:2035
if t ~= 2005:6:2035
Batts_N_Spent = LIBs;
end
end
for t = 2011:6:2035
if t == 2015:10:2035
Batts_Spent = LIBs;
end
end
end
我确定这段代码不正确,但我不知道如何正确编写。
而且,即使我有多个输入和输出端口,Simulink 项目中的 S-Function 模块仍然只有一个输入和输出端口。我应该将其更改为 MATLAB Function 块吗?
【问题讨论】:
-
不清楚预期的输出是什么。你能设计一组简单的输入 los 和相应的输出来演示吗?现在你的代码毫无意义,因为你在循环中一遍又一遍地覆盖同一个变量。
-
我添加了一个图形来展示这个 Simulink 模型的概念。很抱歉我只能添加链接。