Simulink Functionを使用した、非線形状態空間モデルの作成方法が分かりません。
11 views (last 30 days)
Show older comments
史晃 出口
on 26 Oct 2020
Answered: Toshinobu Shintai
on 26 Oct 2020
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)を用いてモデル作成に取り組んでいるのですが、自分の理解が追い付かず苦戦しております。
- 状態遷移関数が複数の追加の入力をもつ場合、Simulink Function (Simulink) ブロックを使用して関数を指定します。Simulink Function ブロックを使用する際、追加の入力は Inport (Simulink) ブロックを使って Simulink Function ブロックに直接提供します。Extended Kalman Filter ブロック内に追加の入力用の入力端子は生成されません。
と書かれているため、添付画像のように作成していますが、そもそも作り方があっているのかもわかりません。
どのように作成すればよいでしょうか?
0 Comments
Accepted Answer
Toshinobu Shintai
on 26 Oct 2020
以下のサンプルモデルを参考に、真似して作成してみてはいかがでしょうか。
出口さんのモデルでは、ヤコビアンが計算できるタイプのモデルですので、ブロックパラメータの「ヤコビアン」にチェックを入れて、A行列などを計算するモデルをSimulink Function内に作れば良いのではないかと思います。
0 Comments
More Answers (0)
See Also
Categories
Find more on 状態空間の制御設計と推定 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!