Simulink: 高速リスタートを コマンドラインの design optimization で使う

コマンド・ラインで design optimization を使う際に、高速リスタートを有効にしたいときがあります。

この場合、高速リスタートをスイッチするコマンドの位置が大事です。

基本的にsdo.SimulationTestオブジェクトを生成してから高速リスタートをonします。

具体的には次のような感じです:

Simulator = sdo.SimulationTest('model');
Simulator = fastRestart(Simulator,'on');
% ロギングするモデル信号を指定するコード 開始
:
% ロギングするモデル信号を指定するコード おわり
% 最適化オプションを指定するコード開始%
:
% 最適化オプションを指定するコードおわり%
optimfcn = @(param) myCostfcn(param,Simulator,Requirements);
[param_opt,opt_info] = sdo.optimize(optimfcn,param);
Simulator = fastRestart(Simulator,'off');

モデル上で高速リスタートをオンしてから、上記のようなスクリプトを実行すると次のようなエラーが出たります:

エラー: sdo.optimize (line XXX)
最適化コマンドに渡された関数ハンドルは、パラメーター ベクトルを使用して評価した際にエラーを引き起こしました。

:
原因:
    エラー: sdo.SimulationTest/setLogging (line XXX)
    'ReturnWorkspaceOutputsName' プロパティの変更は許可されません

参考

Use Fast Restart Mode During Response Optimization

Adsense広告