www.pudn.com > PMSM111.zip > Time.asv, change:2011-06-05,size:1929b


function T_y=inertial(x) 
%-The inertial identification 
%-2010.06.04 
%-author by ljh 
%-变量定义---------------------------- 
%=============================================================================================================== 
global T_now 
global T_temp 
global T_Period 
global T_time 
global Jmin  
global Jmax 
global Jc  
global Jc1 Jc2 speederror derta 
%------------------------------------------- 
T_Period=30e-6;         % the control time 
T_now=x(2); 
%=============================================================================================================== 
if  T_now< T_Period  %第一个控制周期初始化 
    T_time=T_Period; 
    T_y=0.48e1;                %输出转动惯量初始值 
     
    Jmin=0.48e-4;              %转动惯量最小值 
    Jmax=4.8e-4;               %转动惯量最大值   
    derta=0; 
    Jc1=Jmin; 
    Jc2=Jmax;   
    Jc=(Jc1+Jc2)/2; 
 
%=============================================================================================================== 
elseif T_now>=T_time   
          T_time=T_now+T_Period;%记录下一个控制周期的开始时间  
%========================================================================== 
%=====================================    
    speederror=x(1); 
if speederror<-9.5          %speederror=n_real-n_estimate 
    derta<0; 
elseif speederror>9.5       %9.5为0.01rad/s 
    derta>0; 
else 
    derta=0; 
end 
 
if derta<0 
    Jc1=Jc; 
    Jc=(Jc1+Jc2)/2; 
elseif derta>0 
    Jc2=Jc; 
    Jc=(Jc1+Jc2)/2; 
else  
    Jc=(Jc1+Jc2)/2; 
end 
%=============================================================================================================== 
else  
    %-------------------------------- 
     
    %-------------------------------- 
end     
%=============================================================================================================== 
T_y=Jc; 
%==========================================================================