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 Comments

Can you share your model?
Some of your variables are missing. Make sure you send all of them.
Which variables ? Can you be more precise ?
It says
Undefined function or variable 'Xmlstar'
when I try to run it. I am sure there is more than one like this.
Oh i'm sorry i didn't pay attention . You can add these variables in the initfuction in the model properties.
%
%Motor parameters
Rr=0.39;
Rs=0.19;
Lls=0.2e-3;
Llr=0.6e-3;
Lm=4e-3;
fb=100;
p=4;
J=0.0226;
Lr=Llr+Lm;
Ls = 175e-3;
Tr=Lr/Rr;
wb=2*pi*fb;
Xls=wb*Lls;
Xlr=wb*Llr;
Xm=wb*Lm;
Xmlstar=1/(1/Xls+1/Xm+1/Xlr);

Sign in to comment.

Answers (1)

it is this instruction ([~, x_opt] = min(g)) that will cause the problem.

Categories

Find more on Simulink in Help Center and File Exchange

Asked:

on 28 Mar 2018

Answered:

on 30 Oct 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!