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

2 次查看(过去 30 天)
雄介 牧本
雄介 牧本 2020-12-10
simulink内でifを用いて実行タイミングを異なっているモデルを実行させ,同じ結果にしたいと考えています.
具体的には同じ伝達関数をIf action subsystem内で1[ms]で実行するものと,シミュレーション実行サンプルタイミングである0.01[ms]ごとに実行するものを同じ結果を得たいと考えています.
サンプルsimilinkを添付いたします.
よろしくお願いします.

采纳的回答

Toshinobu Shintai
Toshinobu Shintai 2020-12-11
添付ファイルのようなモデルはどうでしょうか。
まず、サブシステム内を離散で実行させるために、必ずしも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));

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 モデル コンポーネントのスケジュール 的更多信息

Community Treasure Hunt

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

Start Hunting!