【发布时间】:2021-11-25 10:36:37
【问题描述】:
我正在尝试运行 Simulink 仿真并收集在 Matlab 脚本中生成的数据。
Simulink 模型运行正常,通过 Simulink 运行时给出异常结果。
但是,当我尝试运行运行 Simulink 模型并处理收集的数据的 Matlab 脚本时,Simulink 诊断查看器中出现错误:
Invalid template makefile specified
Component: Simulink | Category: Model error
这是我在 Matlab 脚本中使用的代码:
clear all;close all; clc;
Tps_sim = 5;
T = 0.001;
K = 25.24;
tho = 0.149;
A = 0.35;
B = -0.3;
S = 15;
Kteta = 2047/(2*pi);
Gzm=15/(15-((abs(A)+abs(B))/2));
Q1 = - 1.752;
Q0 = 1.767;
Q = Q0 - Q1;
t = transpose(0:T:Tps_sim);
l = 0;
for Consigne = [-3 3]
l = l+1;
C = Consigne * ones(1,length(t));
E_95p = 0.95 * C;
E_105p = 1.05 * C;
figure (l) %Enlever cette ligne quand le commentaire au dessus est supprimé
set_param('Lab_3','Solver','ode4','StopTime','Tps_sim','SimulationCommand','start'); %Enlever cette ligne et 3 en dessous quand supprimé le commantaire au dessus
pause(1);
set_param('Lab_3', 'SimulationCommand','stop');
pause(2);
yi = out.Ideal.signals.values;
Si = stepinfo(yi,t,'SettlingTimeThreshold',0.05);
TRi = Si.SettlingTime;
subplot(3,1,1)
plot(t,yi,t,C,t,out.CI.signals.values,t,E_95p,t,E_105p,TRi,yi(round(TRi/T)),'r*')
title("Courbe d'évolution de la vitesse moteur idéal, Consigne = "+string(Consigne))
xlabel("Temps (s)")
ylabel("Vitesse (rad/s)")
legend("Reponse","Consigne","Effort de Commande","Borne inférieure à 5%","Borne supérieure à 5%","Tr5% = "+string(TRi)+", Valeur = "+string(yi(round(TRi/T))));
ym = out.ModeleNL.signals.values;
Sm = stepinfo(ym,t,'SettlingTimeThreshold',0.05);
TRm = Sm.SettlingTime;
subplot(3,1,2)
plot(t,ym,t,C,t,out.CM.signals.values,t,E_95p,t,E_105p,TRm,ym(round(TRm/T)),'r*')
title("Courbe d'évolution de la vitesse modèle non-linéaire, Consigne = "+string(Consigne))
xlabel("Temps (s)")
ylabel("Vitesse (rad/s)")
legend("Reponse","Consigne","Effort de Commande","Borne inférieure à 5%","Borne supérieure à 5%","Tr5% = "+string(TRm)+", Valeur = "+string(ym(round(TRm/T))));
end
如果您知道为什么会出现此问题,那将非常有用。
提前致谢。
【问题讨论】: