質問です。
あるシステムにおけるパラメータの影響を調べるため、各パラメータの値ごとにsim関数をループさせてメッシュデータにまとめようとしています。
例えば以下のようなシステムのパラメータa0_hat, a1_hatを変化させて41*41回程度のsimlinkモデルを用いたシミュレーションをシミュレーション時間1-100[s]で行い、その最終値を用いてメッシュデータを作成した場合、得られたメッシュデータがそのパラメータ地点でのみシミュレーションを行った場合の値と明らかに異なります。
これを解決してsim関数をwhile文中でも操作することは可能でしょうか?
対象としているシステムは実際はより複雑なものであり、また条件を組み換えによって変更しながら特性を観察しているため、コードによる表現でなくsimulink上での実行でないと難しい状態です。
しばらく、試行錯誤してみたのですが解決できませんでした。
よろしくおねがいします。
set(groot,'defaultAxesTickLabelInterpreter','latex');
set(groot,'defaulttextinterpreter','latex');
set(groot,'defaultLegendInterpreter','latex');
Axis_a0 = [-0.2:0.01:0.2];
Axis_a1 = [-0.2:0.01:0.2];
[XX, YY] = meshgrid(xx, yy);
MeshCounter = zeros(n, m);
GetSim = sim('Text.slx');
MeshCounter(Count1, Count2) = a;
surf(XX, YY, MeshCounter); grid on; axis square;
xlabel('$\hat{a}_{0}(0)$',FontSize=20);
ylabel('$\hat{a}_{1}(0)$',FontSize=20);
zlabel('Last value of a system',FontSize=13);
strtitle = ['How last value affected by ' ...
'Parameter $\hat{a}_{0}(0)$ and $\hat{a}_{1}(0)$.'];
上記のスクリプ卜を実行した後にコマンドラインからグラフに示されているポイントの条件を用いてシミュレーションを個別に実行すると
>> GetSim = sim('Text.slx');
>> a = GetSim.Testing(end)
となり、結果が変わってしまう現象です。グラフのZ軸の値が異なってしまう現象です。