I dont get any results from this code ?
이전 댓글 표시
Hello,I'm trying to simulate a PTC(Predictive Torque Control) of an induction motor.However all i get in results is zeros in all outputs(rotor speed, stator currents and Electromagnetique Torque) .You'll find in attached files a model in simulink showing the schema of the simulation . This is the code i'm using for PTC :
%
function [Sa,Sb,Sc] = control(T_ref,sflux_ref,wm,i_meas)
% Variables defined in the parameters file
global Ts Rs Lr Lm Ls p tr kr r_sigma t_sigma lambda v states
persistent x_opt Fs
if isempty(x_opt)
x_opt = 1;
end
if isempty(Fs)
Fs = 0.79 + 0i*1;
end
% Stator flux estimate
Fs = Fs + Ts*(v(x_opt) - Rs*i_meas);
% Rotor flux estimate
Fr = Lr/Lm*Fs+i_meas*(Lm-Lr*Ls/Lm);
g_opt = 1e10;
for i = 1:8
% i-th voltage vector for current prediction
v_o1 = v(i);
% Stator flux prediction at instant k+1
Fsp1 = Fs + Ts*v_o1 - Rs*Ts*i_meas;
% Stator current prediction at instant k+1
Isp1 = (1+Ts/t_sigma)*i_meas+Ts/(t_sigma+Ts)*(1/r_sigma*((kr/tr-kr*1i*wm)*Fr+v_o1));
% Torque prediction at instant k+1
Tp1 = 3/2*p*imag(conj(Fsp1)*Isp1);
% Cost function
g = abs(T_ref - Tp1)+ lambda*abs(sflux_ref-abs(Fsp1));
if (g<g_opt)
g_opt = g;
x_opt = i
end
end
[~, x_opt] = min(g);
%**************************************
% Output switching states
Sa = states(x_opt,1);
Sb = states(x_opt,2);
Sc = states(x_opt,3);
댓글 수: 6
Birdman
2018년 3월 28일
Can you share your model?
ayoub essrifi
2018년 3월 28일
Birdman
2018년 3월 28일
Some of your variables are missing. Make sure you send all of them.
ayoub essrifi
2018년 3월 28일
Birdman
2018년 3월 28일
It says
Undefined function or variable 'Xmlstar'
when I try to run it. I am sure there is more than one like this.
ayoub essrifi
2018년 3월 28일
편집: ayoub essrifi
2018년 3월 28일
답변 (1개)
khoudir kakouche
2020년 10월 30일
0 개 추천
it is this instruction ([~, x_opt] = min(g)) that will cause the problem.
카테고리
도움말 센터 및 File Exchange에서 Simulink에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!