我有一个连续的 S-Function,可以解决 ICE 气缸内各种状态属性的导数。因此,函数的输出设置为输出每个时间步长的这些导数的积分,这是一个 7 元素向量(每个被计算的属性为 1)
block.OutputPort(1).Data = block.ContStates.Data;
在循环中的某个时刻,我想将此输出的值更改为显式值(即不是导数的积分),如下所示(在这种情况下,显式值为 x):
block.OutputPort(1).Data = block.ContStates.Data;
block.OutputPort(1).Data(3) = x;
我正在使用 if 语句切换到这个替代输出。通过调试,我想我已经验证 Simulink 在正确的位置输入了这段代码 - 但是 S-Function 的输出仍然是导数的积分,这给了我一个非有限错误。
任何可以让我明确设置连续 S-Function 输出的帮助或建议将不胜感激。