Changeset 1316 for applications/pmsm

Show
Ignore:
Timestamp:
03/28/11 09:37:44 (13 years ago)
Author:
vahalam
Message:
 
Files:
1 modified

Legend:

Unmodified
Added
Removed
  • applications/pmsm/pmsm_ctrl.h

    r1302 r1316  
    296296                icond(3) = the; 
    297297                icond(4) = Ww; 
    298                 icond(5) = 1; 
     298                icond(5) = 0; 
    299299                vec tmp = L*icond;                   
    300300                 
     
    465465                icondpd(5) = u_old(0); 
    466466                icondpd(6) = u_old(1); 
    467                 icondpd(7) = 1;  
     467                icondpd(7) = 0;  
    468468                         
    469469                tmp = L*icondpd;                 
     
    471471                udq = tmp(0,1); 
    472472                 
    473                 uab = udq; //set size 
     473                //uab = udq; //set size 
    474474                uab(0) = udq(0)*cos(the) - udq(1)*sin(the); 
    475475                uab(1) = udq(1)*cos(the) + udq(0)*sin(the); 
     
    490490                //else{ //(MAXuflag == 0) //no cut off } 
    491491                 
    492                 u_old = uab; 
     492                u_old = udq; 
    493493                 
    494494                return uab; 
     
    655655                 
    656656                for(i = 0; i < rec_hor-1; i++){                  
    657                         p_isd(i+1) = a*p_isd(i) + p_isq(i)*p_ome(i)*Dt + c*udq(0);                       
    658                         p_isq(i+1) = -p_isd(i)*p_ome(i)*Dt + a*p_isq(i) - b*p_ome(i) + c*udq(1); 
     657                        p_isd(i+1) = a*p_isd(i) + p_isq(i)*p_ome(i)*Dt; + c*0.5*(udq(0)+u_old(0));                       
     658                        p_isq(i+1) = -p_isd(i)*p_ome(i)*Dt + a*p_isq(i) - b*p_ome(i); + c*0.5*(udq(1)+u_old(1)); 
    659659                        p_ome(i+1) = d*p_ome(i) + e*p_isq(i); 
    660660                        p_the(i+1) = p_the(i) + Dt*p_ome(i);                     
     
    677677                 
    678678                L = lq.getL(); 
    679                  
     679         
    680680                icondpd(0) = isa*cos(the) + isb*sin(the); 
    681681                icondpd(1) = isb*cos(the) - isa*sin(the); 
     
    685685                icondpd(5) = u_old(0); 
    686686                icondpd(6) = u_old(1); 
    687                 icondpd(7) = 1; 
     687                icondpd(7) = 0; 
    688688                         
    689689                tmp = L*icondpd;                         
     
    691691                udq = tmp(0,1); 
    692692                 
    693                 uab = udq; //set size 
     693                //uab = udq; //set size 
    694694                uab(0) = udq(0)*cos(the) - udq(1)*sin(the); 
    695695                uab(1) = udq(1)*cos(the) + udq(0)*sin(the); 
     
    710710                //else{ //(MAXuflag == 0) //no cut off } 
    711711                 
    712                 u_old = uab; 
    713                  
     712                u_old = udq; 
     713         
    714714                return uab; 
    715715        }