HELLP,
我对Matlab中的Simulink环境有点新意。所以,我试图在其中实现一个分段函数,但我无法弄清楚如何这样做。我想要实现的功能如下:
在这些方程中,唯一随时间变化的是 x 。有人可以帮助我吗?
提前致谢。
编辑:提供有关我的方法的更多信息我想补充一点,我的“第一个解决方案”是尝试使用am304建议的Matlab Function
块来实现它。不,当我尝试编译时遇到问题。所以我移动了一个并开发了以下解决方案,这是有效的,但我发现它有点粗糙。
开关1:使用Vref
作为阈值,
交换机2:使用-Vref
作为阈值,
Switch 3:使用-Vref
作为阈值,
交换机4:使用Vref
作为阈值。
答案 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