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

조회 수: 2 (최근 30일)
kh
kh 2023년 5월 15일
편집: Toshinobu Shintai 2023년 5월 15일
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

채택된 답변

Toshinobu Shintai
Toshinobu Shintai 2023년 5월 15일
편집: Toshinobu Shintai 2023년 5월 15일
以下リンク先のデモモデルのように、"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');

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 カスタム コンポーネントとカスタム ライブラリの作成에 대해 자세히 알아보기

태그

제품


릴리스

R2022b

Community Treasure Hunt

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

Start Hunting!