2014-01-14 281 views
1

Hellp,在Matlab中實現分段函數Simulink

我對Matlab中的Simulink環境有點新鮮。所以,我試圖在其中實現一個分段功能,但我不知道如何去做。我想要實現的功能是下列之一:

enter image description here

在這些方程隨時間變化的唯一的事情是X。那麼有人可以幫助我嗎?

在此先感謝。

編輯:提供關於我的方法的更多信息我想補充一點,我的「第一個解決方案」是嘗試使用am304建議的Matlab Function集合來實現它。當我試圖編譯它時,遇到問題。所以我搬了一個,開發了以下解決方案,這很有效,但我覺得有點粗糙。 enter image description here

開關1:用途Vref作爲閾值, 開關2:使用-Vref作爲閾值, 開關3:使用作爲-Vref閾值時,開關 4:使用Vref作爲閾值。

+0

告訴我們你試過什麼... – am304

+0

@ am304增加了我的解決方案。感謝或幫助。 – yamilife

回答

0

有各種方式可以做到這一點:原生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