Simulink Functionを使​用した、非線形状態空​間モデルの作成方法が​分かりません。

4 ビュー (過去 30 日間)
史晃 出口
史晃 出口 2020 年 10 月 26 日
回答済み: Toshinobu Shintai 2020 年 10 月 26 日
Simulink Functionを使用して非線形状態空間モデルを作りたいのですが、その作成方法が分かりません。
具体的には、4つの伝達関数(うち1つはむだ時間を伴う)から、4入力1出力の状態空間モデルを作成し、線形カルマンフィルタを使用した解析を行っておりました。
U = tf(-0.607735,[86440 1],'inputdelay',11840);
V1 = tf(0.000520059,[114410 1]);
V2 = tf(0.002600792,[60160 1]);
V3 = tf(0.000801016,[113840 1]);
Ys = [U V1 V2 V3];
plant = ss(Ys);
[A,B,C,D] = ssdata(plant);
しかし今回、この状態空間モデルのパラメータの更新を行うため、拡張カルマンフィルタ(Extended Kalman Filter)を用いてモデル作成に取り組んでいるのですが、自分の理解が追い付かず苦戦しております。
拡張カルマンフィルタのドキュメンテーションのページ(https://jp.mathworks.com/help/control/ref/ekf_block.html)には、
  • 状態遷移関数が複数の追加の入力をもつ場合、Simulink Function (Simulink) ブロックを使用して関数を指定します。Simulink Function ブロックを使用する際、追加の入力は Inport (Simulink) ブロックを使って Simulink Function ブロックに直接提供します。Extended Kalman Filter ブロック内に追加の入力用の入力端子は生成されません。
と書かれているため、添付画像のように作成していますが、そもそも作り方があっているのかもわかりません。
どのように作成すればよいでしょうか?

採用された回答

Toshinobu Shintai
Toshinobu Shintai 2020 年 10 月 26 日
以下のサンプルモデルを参考に、真似して作成してみてはいかがでしょうか。
出口さんのモデルでは、ヤコビアンが計算できるタイプのモデルですので、ブロックパラメータの「ヤコビアン」にチェックを入れて、A行列などを計算するモデルをSimulink Function内に作れば良いのではないかと思います。

その他の回答 (0 件)

カテゴリ

Help Center および File Exchange状態空間の制御設計と推定 についてさらに検索

製品


リリース

R2020b

Community Treasure Hunt

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

Start Hunting!