在Matlab Simulink中实现分段功能

时间:2014-01-14 10:50:33

标签: matlab simulink piecewise

HELLP,

我对Matlab中的Simulink环境有点新意。所以,我试图在其中实现一个分段函数,但我无法弄清楚如何这样做。我想要实现的功能如下:

enter image description here

在这些方程中,唯一随时间变化的是 x 。有人可以帮助我吗?

提前致谢。

编辑:提供有关我的方法的更多信息我想补充一点,我的“第一个解决方案”是尝试使用am304建议的Matlab Function块来实现它。不,当我尝试编译时遇到问题。所以我移动了一个并开发了以下解决方案,这是有效的,但我发现它有点粗糙。 enter image description here

开关1:使用Vref作为阈值, 交换机2:使用-Vref作为阈值, Switch 3:使用-Vref作为阈值, 交换机4:使用Vref作为阈值。

1 个答案:

答案 0 :(得分:1)

有多种方法可以实现:原生Simulink块,Stateflow图表,MATLAB函数等......

以下是我使用MATLAB Function块进行操作的方法:

function vcons = piecewise_fcn(x)

% Define Vref, kx, and x_stop

if kx*(x_stop - x) >= Vref
   vcons = Vref;
elseif kx*(x_stop - x) <= -Vref
   vcons = -Vref;
else
   vcons = kx*(x_stop - x);
end