Changeset 318 for pmsm/pmsm.h

Show
Ignore:
Timestamp:
04/23/09 13:19:04 (15 years ago)
Author:
smidl
Message:

pmsm CRB model

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • pmsm/pmsm.h

    r283 r318  
    2727        IMpmsm() :diffbifn ( ) {dimy=4; dimx = 4; dimu=2;}; 
    2828        //! Set mechanical and electrical variables 
    29         void set_parameters ( double Rs0, double Ls0, double dt0, double Ypm0, double kp0, double p0, double J0, double Mz0 ) {Rs=Rs0; Ls=Ls0; dt=dt0; Ypm=Ypm0; kp=kp0; p=p0; J=J0; Mz=Mz0;} 
     29        virtual void set_parameters ( double Rs0, double Ls0, double dt0, double Ypm0, double kp0, double p0, double J0, double Mz0 ) {Rs=Rs0; Ls=Ls0; dt=dt0; Ypm=Ypm0; kp=kp0; p=p0; J=J0; Mz=Mz0;} 
    3030 
    3131        vec eval ( const vec &x0, const vec &u0 ) { 
     
    7777 
    7878//! State evolution model for a PMSM drive and its derivative with respect to \f$x\f$ 
    79 class IMpmsm2o : public diffbifn { 
     79class IMpmsm2o : public IMpmsm { 
    8080        protected: 
    81                 double Rs, Ls, dt, Ypm, kp, p,  J, Mz; 
     81//              double Rs, Ls, dt, Ypm, kp, p,  J, Mz; 
    8282                //! store first derivatives for the use in second derivatives 
    8383                double dia, dib, dom, dth; 
     
    8686                double iam, ibm, omm, thm, uam, ubm; 
    8787        public: 
    88                 IMpmsm2o() :diffbifn () {dimy=4;dimx=4;dimu=2;}; 
     88                IMpmsm2o() :IMpmsm () {}; 
    8989        //! Set mechanical and electrical variables 
    9090                void set_parameters ( double Rs0, double Ls0, double dt0, double Ypm0, double kp0, double p0, double J0, double Mz0 ) {Rs=Rs0; Ls=Ls0; dt=dt0; Ypm=Ypm0; kp=kp0; p=p0; J=J0; Mz=Mz0; d2t=dt*dt/2;} 
     
    111111                        xk ( 1 ) = ibm + dt*dib;// +d2t*d2ib; 
    112112                        xk ( 2 ) = omm +dt*dom;// +d2t*d2om; 
    113                         xk ( 3 ) = thm + dt*dth;// +d2t*d2th; // <0..2pi> 
     113                        xk ( 3 ) = thm + dt*dth;// +d2t*dom; // <0..2pi> 
    114114                         
    115115                        if ( xk ( 3 ) >pi ) xk ( 3 )-=2*pi; 
     
    148148                // d th 
    149149                        A ( 3,0 ) = 0.0; A ( 3,1 ) = 0.0; A ( 3,2 ) = dt; A ( 3,3 ) = 1.0; 
     150                        // FOR d2t*dom!!!!!!!!! 
     151/*                      A ( 3,0 ) = dt* kp*p*p * Ypm/J*dt* ( - sin ( thm ) ); 
     152                        A ( 3,1 ) = dt* kp*p*p * Ypm/J*dt* ( cos ( thm ) ); 
     153                        A ( 3,2 ) = dt; 
     154                        A ( 3,3 ) = 1.0 + dt* kp*p*p * Ypm/J*dt* ( -ibm * sin ( thm )-iam * cos ( thm ) );*/ 
    150155                } 
    151156