Xcosのマニュアルで素晴らしい機能の紹介があったのでご紹介
・xcos_simulate()コマンドでxcosをバッチモードで実行できるらしい。
・xcos_simulateには、pre_とpost_の2種類の実行モードもあり、シミュレーション前後のxcosファイルのエラー有無の確認もできる。
・また、同マニュアルで紹介されている例として、CLRブロックのBode線図を確認する手順が紹介されている。手順は以下の通り、
1.importXcosDiagram(“xxx”)でzcosファイルの読み込み。(xxxはzcosファイルの置き場所)
2.typeof(scs_m):関数の引数としてダイアグラムのデータ構造体を指定
3.実行例。(詳細はXcos>Batch functions>xcos_simulateで確認できます)
function post_xcos_simulate(%cpr, scs_m, needcompile)
// 全オブジェクトを取得
T=5; //一時遅れ時間を指定
objs = scs_m.objs;
clrBlock = [];
// CLRブロックを探す
for i=1:size(objs)
if objs(i).gui == “CLR” then
clrBlock = objs(i);
break;
end
end
// CLRが見つかったかどうかを確認
if isempty(clrBlock) then
disp(“No CLR block found.”)
return
end
// exprsを取得
exprs = clrBlock.graphics.exprs;
s = poly(0,’s’);
num = eval(exprs(1));
den = eval(exprs(2));
h = syslin(‘c’, num/den);
// 新たに図をオープンし,ボード線図をプロット
scf(max(winsid())+1);
bode(h, 0.01, 100);
endfunction
xcos_simulate(scs_m, 4);
・上記実行すると、以下のようにBode線図も確認することができます。
コメント