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


function output=inertia(x); 
%the inertia identification  
%输入变量 
%x(1):  speederror 
global Jmin  
global Jmax 
global Jc  
global Jc1 Jc2 speederror derta 
 
T_Period=50e-6;% the control time 
%========================================================================== 
%--%当前时间值 
T_now=x(1); 
%--------------------------------------------------- 
%=============================================================================================================== 
if  T_now< T_Period  %第一个控制周期初始化 
    T_time=T_Period;  % SV_time 记录一个控制节点时间 
Jmin=0.48e-4;              %转动惯量最小值 
Jmin=4.8e-4;               %转动惯量最大值    
Jc=(Jmin+Jmax)/2; 
Jc1=Jmin; 
Jc2=Jmax; 
%=============================================================================================================== 
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 
output(1)=1; 
 
 
%-- 
T_t0=x(2); 
%---- 
T_t1=x(3); 
 
 
    %----------- 
    T_temp=1; 
     
  
    if(T_now<T_t0) 
        T_temp=1; 
    elseif(T_now<T_t1)%这里elseif不能分开 
        T_temp=0; 
    else 
        T_temp=1; 
    end 
%=============================================================================================================== 
else  
    %-------------------------------- 
     
    %-------------------------------- 
end     
%=============================================================================================================== 
T_y(1)=T_temp; 
%==========================================================================