1

帮助,

我对 Matlab 中的 Simulink 环境有点陌生。所以,我试图在其中实现一个分段函数,但我不知道该怎么做。我要实现的功能如下:

在此处输入图像描述

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

提前致谢。

编辑:提供有关我的方法的更多信息,我想补充一点,我的“第一个解决方案”是尝试使用Matlab Functionam304 建议的 bloc 来实现它。但是,当我尝试编译它时遇到了问题。所以我移动了一个并开发了以下解决方案,该解决方案有效,但我发现它有点粗糙。 在此处输入图像描述

Switch 1:Vref用作阈值,Switch 2:-Vref用作阈值,Switch 3:-Vref用作阈值,Switch 4:Vref用作阈值。

4

1 回答 1

2

有多种方法可以做到这一点:原生 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
于 2014-01-14T11:50:52.493 回答