目次
stop時間を指定する
詳細はSimulation stop time – MATLAB – MathWorks を見る。
set_param("hogemodel", "StopTime", '20')
ロギンングのon/off
詳細は信号のログ作成をオンまたはオフにする – MATLAB Simulink.sdi.markSignalForStreaming – MathWorksを見る。
x1_handles = get_param("hogemodel/hogeBlock","PortHandles");
x1 = x1_handles.Outport(1);
x2_handles = get_param("hogemodel/fugaBlock","PortHandles");
x2 = x2_handles.Outport(1);
Simulink.sdi.markSignalForStreaming(x1,"on");
Simulink.sdi.markSignalForStreaming(x2,"on");
ブロックが複数のOutportを持つ場合は Outport(2)
などのようにindexを変更する。
Simulink.sdi.markSignalForStreaming(x1,”on”); などで、狙った箇所のロギングが有効になっているか確認すれば良い。
Simulinkのスコープから出力したFigureをいじる
下記はまとまっていない。本当に単なるメモ。
%% fh_1 = gcf; f_h_1.Position(3:4) = [800 800]; f_h_1.Children.Children(1).Children.Children(2).FontName = "Arial"; f_h_1.Children.Children(1).Children.Children(2).FontSize = 16; f_h_1.Children.Children(1).Children.Children(2).Legend.Interpreter = 'none' f_h_1.Children.Children(2).Children.Children(2).FontName = "Arial"; f_h_1.Children.Children(2).Children.Children(2).FontSize = 16; f_h_1.Children.Children(3).Children.Children(2).FontName = "Arial"; f_h_1.Children.Children(3).Children.Children(2).FontSize = 16; f_h_1.Children.Children(1).Children.Children(2).Legend.Interpreter = 'none' %% fh_2 = gcf; f_h_2.Position(3:4) = [800 800]; ax = gca; ax.FontName = "Arial"; ax.FontSize = 16;
あまり凝ったことしようとするなら、信号のログからplotで最初からグラフを作成するほうが楽だろう。
シミュレーションに時間がかかる場合などで信号をロギングしなおすのが時間を要するなど、scopeの結果をそのまま使いたい時なんかは上記のやりかたもある。
ブランクモデルを開く
Simscape
Simscapeなら
ssc_new
でブランクモデル(テンプレート)を開くことができる。
Simulink
どうやらSimulinkのブランクモデルを開く上記のようなコマンドはないようだ。
Simulink
とコマンド・ウィンドウに打ち込むとブランクモデル候補がいくつか表示されるから、その中から選んでクリックすればブランクモデルが開かれる。
Scopeのサイズを変更する
Scopeは手動でサイズを変更できるので、ついつい不揃いなScopeが量産されてしまう。
Scopeのサイズなどを揃えるのはMATLABから操作したい。(公式ドキュメント: TimeScopeConfiguration – Scope ブロックの外観と動作を制御)
そうする場合は、モデル上のScopeブロックを選択してから、
myScopeConfiguration = get_param(gcbh,'ScopeConfiguration')
として構成オブジェクトを生成する。
こうするとプロパティをMATLABから操作できる。サイズや位置はPositionを変更する:
myScopeConfiguration.Position(3:4) = [700, 600];