Changeset 63 for tests/pmsm_sim3.cpp

Show
Ignore:
Timestamp:
04/09/08 15:29:53 (16 years ago)
Author:
smidl
Message:

odstraneni net a drobne upravy

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • tests/pmsm_sim3.cpp

    r62 r63  
    2727void set_simulator_t(double &Ww) { 
    2828 
    29         if (t>0.2) x[8]=1.2;    // 1A //0.2ZP 
     29        if (t>0.0002) x[8]=1.2;    // 1A //0.2ZP 
    3030        if (t>0.4) x[8]=10.8;   // 9A 
    3131        if (t>0.6) x[8]=25.2;  // 21A 
     
    7373        if (t>8.5) x[8]=25.2;  // 21A 
    7474         
    75 //        x[8]=0.0; 
     75        x[8]=0.0; 
    7676} 
    7777 
     
    8181        double h = 1e-6; 
    8282        int Nsimstep = 125; 
    83         int Npart = 500; 
     83        int Npart = 100; 
    8484         
    8585 
    8686        vec mu0= "0.0 0.0 0.0 0.0"; 
    87         vec Qdiag ( "0.01 0.01 0.0001 0.0001" ); //zdenek: 0.01 0.01 0.0001 0.0001 
     87        vec Qdiag ( "0.05 0.05 0.002 0.001" ); //zdenek: 0.01 0.01 0.0001 0.0001 
    8888        vec Rdiag ( "0.05 0.05" ); //var(diff(xth)) = "0.034 0.034" 
    8989        chmat Q ( Qdiag ); 
     
    9999        MPF<EKFfixed> M ( rx,rQ,evolQ,evolQ,Npart,KFE ); 
    100100        // initialize 
    101         evolQ.set_parameters ( 1000.0 ,Qdiag, 0.5); //sigma = 1/10 mu 
     101        evolQ.set_parameters ( 10.0 ,Qdiag, 1.0); //sigma = 1/10 mu 
    102102        evolQ.condition ( Qdiag ); //Zdenek default 
    103103        epdf& pfinit=evolQ._epdf(); 
    104104        M.set_est ( pfinit ); 
    105         evolQ.set_parameters ( 100000.0, Qdiag, 0.99999 ); 
     105        evolQ.set_parameters ( 500000.0, Qdiag, 0.9999 ); 
    106106 
    107107 
     
    111111 
    112112        mat Xt=zeros ( Ndat ,9 ); //true state from simulator 
    113         mat Dt=zeros ( Ndat,4+2 ); //observation 
     113        mat Dt=zeros ( Ndat,4 ); //observation 
    114114        mat XtE=zeros ( Ndat, 4 ); 
    115115        mat XtM=zeros ( Ndat,4+4 ); //Q + x 
     
    118118        pmsmsim_set_parameters ( 0.28,0.003465,0.1989,0.0,4,1.5,0.04, 200., 3e-6, h ); 
    119119        double Ww=0.0; 
     120        static int k_rampa=1; 
     121        static long k_rampa_tmp=0; 
     122 
    120123        vec dt ( 2 ); 
    121124        vec ut ( 2 ); 
     
    125128                for ( int ii=0; ii<Nsimstep;ii++ ) { 
    126129                        //simulator 
    127                         set_simulator_t(Ww); 
     130                        Ww+=k_rampa*2.*M_PI*2e-4;    //1000Hz/s 
     131                        if ( Ww>2.*M_PI*150. ) { 
     132                                Ww=2.*M_PI*150.; 
     133                                if ( k_rampa_tmp<500000 ) k_rampa_tmp++; 
     134                                else {k_rampa=-1;k_rampa_tmp=0;} 
     135                        }; 
     136                        if ( Ww<-2.*M_PI*150. ) Ww=-2.*M_PI*150.; /* */ 
     137//                      set_simulator_t(Ww); 
    128138                        pmsmsim_step ( Ww ); 
    129139                }; 
     
    138148                 
    139149                Xt.set_row ( tK,vec ( x,9 ) ); //vec from C-array 
    140                 Dt.set_row ( tK, concat ( dt,ut,vec_1(sqrt(pow(ut(0),2)+pow(ut(1),2))), vec_1(sqrt(pow(dt(0),2)+pow(dt(1),2))) ) ); 
     150                Dt.set_row ( tK, concat ( dt,ut)); 
    141151                XtE.set_row ( tK,KFEep.mean() ); 
     152                double qNaN = std::numeric_limits<double>::quiet_NaN(); 
    142153                XtM.set_row ( tK,Mep.mean() ); 
    143154        }