計算タイミングの違うモデルを実行する
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
雄介 牧本
il 10 Dic 2020
Risposto: Toshinobu Shintai
il 11 Dic 2020
simulink内でifを用いて実行タイミングを異なっているモデルを実行させ,同じ結果にしたいと考えています.
具体的には同じ伝達関数をIf action subsystem内で1[ms]で実行するものと,シミュレーション実行サンプルタイミングである0.01[ms]ごとに実行するものを同じ結果を得たいと考えています.
サンプルsimilinkを添付いたします.
よろしくお願いします.
0 Commenti
Risposta accettata
Toshinobu Shintai
il 11 Dic 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));
0 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su モデル コンポーネントのスケジュール in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!