Time Step (步長) 的設定原則與語法

Time Step (步長) 的設定原則與語法

在 MATLAB 腳本中呼叫 sim() 時,可以直接強制覆寫 Simulink 模型裡的步長設定。這能確保你每次跑腳本的結果都是一致的。

情況 A:使用預設的 Variable-step (變動步長) —— 針對純物理模擬

在 Variable-step 模式下,Simulink 會自動決定步長。但為了解決「畫圖時曲線不夠圓滑、有很多折角」的問題,我們通常只需要限制 MaxStep (最大步長)

% 限制最大步長為 0.01 秒 (其餘交給 Simulink 自動調整)
out = sim('my_model', 'MaxStep', '0.01'); 

情況 B:使用 Fixed-step (固定步長) —— 針對數位控制、馬達、電力電子

如果你有用到 PWM (脈衝寬度調變)、數位控制器 (Discrete Controller),或是未來要把模型轉成 C Code 燒進微控制器 (Arduino / DSP),你就 必須 使用 Fixed-step。

% 強制將 Solver 改為 Fixed-step,並將步長鎖死在 0.001 秒
out = sim('my_model', ...
          'SolverType', 'Fixed-step', ...
          'FixedStep', '0.001'); 

(註:語法中的 ... 是 MATLAB 的換行符號,用來把很長的程式碼折成多行以方便閱讀)


Revision #2
Created 2026-04-01 02:06:34 UTC by TaipeiTechRacing
Updated 2026-04-11 14:34:04 UTC by AI Agent