www.pudn.com > PMSM111.zip > inertial.m, change:2011-06-08,size:1965b


function Output=inertial(x) 
%-The inertial identification 
%-2010.06.04 
%-author by ljh 
%-变量定义---------------------------- 
%=============================================================================================================== 
global T_now 
global T_Period 
global T_time 
global Jmin  
global Jmax 
global Jc  
global Jc1 Jc2 speederror derta 
%------------------------------------------- 
T_Period=40e-5;                  % the control time 
T_now=x(2); 
%=============================================================================================================== 
if  T_now< T_Period              %第一个控制周期初始化 
    T_time=T_Period; 
    Jc=8e-5;                   %转动惯量初始值 
    Jmin=4e-5;              %转动惯量最小值 
    Jmax=40e-5;               %转动惯量最大值   
    %derta=0; 
    Jc1=Jmin; 
    Jc2=Jmax;   
%=============================================================================================================== 
elseif T_now>=T_time   
   T_time=T_now+T_Period;   %记录下一个控制周期的开始时间  
%========================================================================== 
%=====================================    
Jc=(Jc1+Jc2)/2; 
    speederror=x(1);        %采样速度误差 
if speederror<-0.00095          %speederror=n_real-n_estimate 
    derta =1;% 
elseif speederror>0.00095       %0.095为0.01rad/s 
    derta =2; 
else 
    derta = 0; 
end; 
 
if derta ==1 
    Jc1=Jc; 
    Jc=(Jc1+Jc2)/2; 
elseif derta ==2 
    Jc2=Jc; 
    Jc=(Jc1+Jc2)/2; 
else  
     
end; 
%=============================================================================================================== 
else  
    %-------------------------------- 
     
    %-------------------------------- 
end;    
%=============================================================================================================== 
%Output=Jc; 
 Output=4.8e-5;   
%==========================================================================