計算タイミングの違うモデルを実行する

2 visualizaciones (últimos 30 días)
雄介 牧本
雄介 牧本 el 10 de Dic. de 2020
Respondida: Toshinobu Shintai el 11 de Dic. de 2020
simulink内でifを用いて実行タイミングを異なっているモデルを実行させ,同じ結果にしたいと考えています.
具体的には同じ伝達関数をIf action subsystem内で1[ms]で実行するものと,シミュレーション実行サンプルタイミングである0.01[ms]ごとに実行するものを同じ結果を得たいと考えています.
サンプルsimilinkを添付いたします.
よろしくお願いします.

Respuesta aceptada

Toshinobu Shintai
Toshinobu Shintai el 11 de Dic. de 2020
添付ファイルのようなモデルはどうでしょうか。
まず、サブシステム内を離散で実行させるために、必ずしもIf Actionを用いる必要はありませんので、私がやりやすいようにサブシステムをアトミック化し、サンプル時間を設定しました。If Actionでなければならない場合は、そのように修正してください。
離散時間で動作するモデルでは、基本的には離散時間のブロックを使います。添付モデルでは連続の1次遅れ伝達関数と同じダイナミクスを持つ離散時間のブロックを設計しました。
「param.m」に記載しましたが、1次遅れ伝達関数と同じ特性を持つ離散時間フィルターの重みを計算する式は以下になります。
ts = 1e-5; % シミュレーションのタイムステップ[s]
tc = 1e-3; % 離散フィルターのタイムステップ[s]
wc = 5; % 1次ローパスフィルタのカットオフ周波数[rad/s]
% 1次離散ローパスフィルタの重み
r = cos(wc * tc) - 1 + sqrt((cos(wc * tc) - 1) * (cos(wc * tc) - 3));

Más respuestas (0)

Categorías

Más información sobre モデル コンポーネントのスケジュール en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!