FMUインポートブロ​ックにおけるパラメー​タ値の入出力方法につ​いて

7 views (last 30 days)
YW
YW on 25 Jun 2018
Answered: Yuichi Tadokoro on 6 Jul 2018
FMUインポートブロックの初期値・パラメータ値の設定方法として、ブロックGUIを用いずにmファイルやワークスペースの変数から直接入力させる方法はありますか? また、計算結果パラメータをワークスペースにすべて一括で格納する方法はありますか? FMUモデルをSimulink上で動かしてアンサンブルカルマンフィルタによる状態推定をすることを想定しており、mファイル上でコードを確立できるようにしたいと思ってます。

Accepted Answer

Yuichi Tadokoro
Yuichi Tadokoro on 6 Jul 2018
FMUインポートブロックのパラメータは、直接Simulinkブロックのパラメータとして格納されているようです。 例として、標準で入っているデモを使用してみてみます。
fmudemo_vehicAOB
FMUブロックのダイアログを開いてみると、Weight, Biasという2つのパラメータが入っています。対象のブロックを選択した状態で
gcb
を実行すると、そのブロックのパス(たとえば 'fmudemo_vehicAOB/vehicAOB' 等)を得ることができます。これを使用して、たとえばWeightパラメータに関して
get_param('fmudemo_vehicAOB/vehicAOB', 'Weight')
を実行することで、
ans =
'struct('v1',0.5,'v2',0.5)'
のようにパラメータを取得することができます。
set_paramコマンドを使用すればパラメータの書き換えも可能です。たとえば
set_param('fmudemo_vehicAOB/vehicAOB','Weight','struct(''v1'',0.2,''v2'',0.8)')
としてからブロックパラメータのダイアログを開くと、値が書き変わっていることが確認できると思います。
実行結果の一括出力については、上で使用したデモのモデルにあるように、バス信号でまとめてからTo Workspaceブロックを使用することで楽にできるのではないかと考えます。

More Answers (0)

Products


Release

R2018a

Community Treasure Hunt

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

Start Hunting!