複数のUKFブロックの使用方法。
Show older comments
質問事項:複数のUKFブロックを同時に使用する方法を教えてください。
背景:下記URLを参考に、UKFブロックを用いて直列電池中の電池一つ一つのSOC推定プログラムを構築中。
電池ごとにパラメータが異なるため、状態方程式等は電池ごとに設定。UKFブロックは電池ごとに設置。
問題:下記エラーが出る。
Data Store Memory のタグ 'x 'は、ブロック 'calc_batt/batt_2/SOC_KF/UKF_SOC/DataStoreMemory - x' とブロック 'calc_batt/batt_1/SOC_KF/UKF_SOC/DataStoreMemory - x' で使われています
Answers (1)
Toshinobu Shintai
on 9 Nov 2021
0 votes
おっしゃるように複数のUKFブロックを以下のように作った所、問題なく実行できました。
「Unscented Kalman Filter」ブロックをコピーし、「Simulink Function - State Transition Function」と「Simulink Function - Measurement Function」もコピーして、コピーしたそれぞれのSimulink Functionの関数名を「Unscented Kalman Filter」ブロックのブロックパラメータに指定する。(以下の画像を参照)

この方法で問題ありませんでしょうか。
4 Comments
Yudai Tanimura
on 9 Nov 2021
Toshinobu Shintai
on 9 Nov 2021
上記のサンプルに対してUKFブロックをサブシステムの中に格納し、階層を分けましたが、問題なく実行できています。

Simulink FunctionブロックとUKFブロックは同じモデルファイルにありますでしょうか。もし、参照モデルで分けられている場合はUKFブロックからSimulink Functionを参照できないと思います。
また、エラーメッセージを素直に読み取ると、同じデータ名を使用するData Store Memoryが複数使われているというエラーのようですが、そのようなことをしていませんでしょうか。
Yudai Tanimura
on 9 Nov 2021
Edited: Yudai Tanimura
on 10 Nov 2021
Yudai Tanimura
on 3 Feb 2022
Edited: Yudai Tanimura
on 3 Feb 2022
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!