MATLABから、S​imscapeのBa​ttery (Table-Bas​ed)内のパラメータ​を変更して、シミュレ​ーション実行する方法​について

2 Ansichten (letzte 30 Tage)
kh
kh am 15 Mai 2023
MATLABのワークスペースから、SimscapeのBattery (Table-Based)内のパラメータを変更して、シミュレーション実行を繰り返し行い、シミュレーションで得たデータは都度保存するようにしたいです。
上記動作を自動で実行するにはどのようにすべきかアドバイス頂けないでしょうか。
下記の要領でシミュレーションを実行しています。
■データの自動保存
コールバック関数のstpFcnを使って、出力されたデータを都度、自動で保存するプログラムを書いています。
■シミュレーションの実行
MATLABからset_param関数を使用して、下記のようなプログラムを実行したのですが、パラメータは変更されているようですが、
自動保存されたデータを見ると、各ファイルとも同じデータ内容となっています。
for loop_i=1:2
Signal_Ah=Signal(loop_i,1)
Signal_R0=Signal(loop_i,2)
Signal_A=Signal(loop_i,3)
set_param('ファイル名'/Constant_Signal_A','Value', num2str(Signal_A));
set_param('ファイル名'/Battery_Module/Battery_Cell1/Battery (Table-Based)','R0_mat', mat2str(R0*Signal_R0));
set_param('ファイル名'/Battery_Module/Battery_Cell1/Battery (Table-Based)','AH', num2str(1.22*Signal_Ah));
sim('ファイル名');
end

Akzeptierte Antwort

Toshinobu Shintai
Toshinobu Shintai am 15 Mai 2023
Bearbeitet: Toshinobu Shintai am 15 Mai 2023
以下リンク先のデモモデルのように、"Simulink.SimulationInput"オブジェクトにシミュレーションの設定を格納し、parsimコマンドで実行すると、各パラメーターパターンごとにシミュレーション結果を保存できます。
デモモデルの「PIDゲインスケジューリングをAutotunerを用いて設計する」をご参照ください。以下、該当箇所を抜粋しました。
==========================================================================================
電流の値が以下の値にあるときを調べる。
Iout_op = [
-20; -16; -12; -8; -4; -2; -1;
1; 2; 4; 8; 12; 16; 20];
Iout_opのパターン数分、シミュレーション設定変数を作成する。
for i = 1:numel(Iout_op)
simin(i) = Simulink.SimulationInput(system_model_name);
% 必要に応じてアクセラレータ、ラピッドアクセラレータモードを使用する。
% 使用する場合は、以下のどちらかをコメントアウトする。
% simin(i) = simin(i).setModelParameter('SimulationMode', 'accelerator');
% simin(i) = simin(i).setModelParameter('SimulationMode', 'rapid-accelerator');
simin(i) = simin(i).setVariable('Iout_ref',Iout_op(i));
end
パターン数分のシミュレーションをまとめて実行する。Parallel Computing Toolbox™がインストールされているとき、parsimは自動的に並列ワーカーを立ち上げて並列実行を行う。
save_system(system_model_name, [], 'OverwriteIfChangedOnDisk', true);
simout = parsim(simin, 'ShowProgress', 'on');

Weitere Antworten (0)

Kategorien

Mehr zu Simscape Multibody finden Sie in Help Center und File Exchange

Tags

Produkte


Version

R2022b

Community Treasure Hunt

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

Start Hunting!