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

5 visualizaciones (últimos 30 días)
史晃 出口
史晃 出口 el 26 de Oct. de 2020
Respondida: Toshinobu Shintai el 26 de Oct. de 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)を用いてモデル作成に取り組んでいるのですが、自分の理解が追い付かず苦戦しております。
拡張カルマンフィルタのドキュメンテーションのページ(https://jp.mathworks.com/help/control/ref/ekf_block.html)には、
  • 状態遷移関数が複数の追加の入力をもつ場合、Simulink Function (Simulink) ブロックを使用して関数を指定します。Simulink Function ブロックを使用する際、追加の入力は Inport (Simulink) ブロックを使って Simulink Function ブロックに直接提供します。Extended Kalman Filter ブロック内に追加の入力用の入力端子は生成されません。
と書かれているため、添付画像のように作成していますが、そもそも作り方があっているのかもわかりません。
どのように作成すればよいでしょうか?

Respuesta aceptada

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

Más respuestas (0)

Productos


Versión

R2020b

Community Treasure Hunt

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

Start Hunting!