資源簡介
SRM直接轉矩MATLAB仿真,用于SRM直接轉矩電機的研究。

代碼片段和文件信息
function?[sysx0strts]?=?d_sfunc_dtc(txuflagFsetSpeedKpKiTemax)
%intput:u(1)-u(5)--fafbfcTen
%state:?x1:F?change?statex2:Te?change?statex3:sx4:section
%???????x5:Fax6:Fbx7:sum?det_speedx8:pid?output?as?Te*
%output:y1:sy2:sectiony3:Fay4:Fb
switch?flag
????case?0
????[sysx0strts]?=?mdlInitializeSizes;
???case?2????????????????????????????????????????????????
????sys?=?mdlUpdate(txuFsetSpeedKpKiTemax);?
???case?3????????????????????????????????????????????????
????sys?=?mdlOutputs(txu);
??case?{149?}???????????????????????????????????????????????
????sys?=?[];?%?do?nothing
??otherwise
????error([‘unhandled?flag?=?‘num2str(flag)]);
end
function?sys?=?mdlUpdate(txuFsetSpeedKpKiTemax)
%?*******************************************
%?slove?Fs?and?delta
Fa=u(1)-0.5*u(2)-0.5*u(3);%?3/2
Fb=0.86605*(u(2)-u(3));%?3/2?:0.86605=sqrt(3)/2
Fs=sqrt(Fa*Fa+Fb*Fb);
if?(abs(Fa)<1e-5)
????Fa=1e-5;
end
Fba=Fb/Fa;
delta=atan(Fba);%?pi/2?~?-pi/2
if?(Fa<0)
????delta=delta+pi;?%?-pi/2?~?3pi/2
end
%***************************************************
det_speed=Speed-u(5);
sum_det=x(7)+det_speed;
%?if?(sum_det*Ki>Temax*3)%limited?sum_det
%?????sum_det=Temax*3/Ki;
%?end
%?if?(sum_det*Ki<-Temax*3)%limited?sum_det
%?????sum_det=-Temax*3/Ki;
%?end
x(8)=det_speed*Kp+sum_det*Ki;%pid?output?as?Te*
if?x(8)>Temax????????%limited?Temax
????x(8)=Temax;
end
if?x(8)<-Temax
????x(8)=-Temax;
end
%?**************************************************
%?s=1:00?T-??phir-??s=2:01?T-??phir+?
%?s=3:10?T+??phir-??s=4:11?T+??phir+
if?(Fset-Fs)/Fset>0.005
????x(1)=1;
end
if?(Fset-Fs)/Fset<-0.005
????x(1)=0;
end
if?(x(8)-u(4))/x(8)>0.005
????x(2)=1;
end
if?(x(8)-u(4))/x(8)<-0.005
????x(2)=0;
end
x(3)=x(2)*2+x(1)+1;%s=x(2)*2+x(1)+1;
%?******************************************
%??slove?section?based?on?delta
%?1:?????0-60???2:???60-120??3:??120-180?
%?4:??180-240???5:??240-300??6:??300-360
if?(delta<0)
??delta=delta+2*pi;??%?-pi/2?~?3pi/2?--->0~?2pi
end
x(4)=ceil(delta*360/(2*pi*60));%section=ceil(delta/60)
%?******************************************************
x(5)=Fa;
x(6)=Fb;
sys(1)=x(1);?%if?abs(Fset-Fs)<=0.005????x(1)?no?change
sys(2)=x(2);?%if?abs(Tset-u(4))<=0.005??x(2)?no?change
sys(3)=x(3);?
sys(4)=x(4);?
sys(5)=x(5);?
sys(6)=x(6);?
sys(7)=sum_det;
sys(8)=x(8);
function?sys?=?mdlOutputs(txu)
sys(1)=x(3);
sys(2)=x(4);
sys(3)=x(5);
sys(4)=x(6);
function?[sysx0strts]?=?mdlInitializeSizes()
sizes?=?simsizes;
sizes.NumContStates??=?0;
sizes.NumDiscStates??=8;
sizes.NumOutputs?????=?4;
sizes.NumInputs??????=?5;
sizes.DirFeedthrough?=?0;
sizes.NumSampleTimes?=1;
sys?=?simsizes(sizes);
x0??=[1?1?1?1?0.001?0.001?0?0];
str?=?[];
ts??=?[-1?0];?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????102145??2013-08-27?15:58??SRM直接轉矩matlab仿真\DTC_measure.mdl
?????文件???????2805??2013-08-16?09:53??SRM直接轉矩matlab仿真\d_sfunc_dtc.m
?????文件???????1261??2013-08-21?21:23??SRM直接轉矩matlab仿真\d_sfunc_measure.m
?????文件??????97020??2013-09-11?23:00??SRM直接轉矩matlab仿真\Sfun_dtc_ASR.mdl
?????文件?????126422??2013-11-24?23:32??SRM直接轉矩matlab仿真\Srm_dtc.mdl
?????文件????????306??2014-06-06?12:30??SRM直接轉矩matlab仿真\仿真模型說明.txt
?????目錄??????????0??2015-09-06?19:48??SRM直接轉矩matlab仿真
-----------?---------??----------?-----??----
???????????????329959????????????????????7
- 上一篇:A*算法 matlab版
- 下一篇:matlab GA-pls建立模型
評論
共有 條評論