Changeset 52 for simulator_zdenek/ekf_example
- Timestamp:
- 03/25/08 13:38:56 (17 years ago)
- Location:
- simulator_zdenek/ekf_example
- Files:
-
- 6 moved
Legend:
- Unmodified
- Added
- Removed
-
simulator_zdenek/ekf_example/pwm.cpp
r50 r52 12 12 #define _USE_MATH_DEFINES 13 13 #include <math.h> 14 #include <stdlib.h> 14 15 #include "pwm.h" 15 16 … … 225 226 smer=D_smer; smer2=D_smer2; 226 227 citac=citac_init; 227 citac2=citac_init-( DT/h);228 citac_PR= 1./4./fc/h;228 citac2=citac_init-(int)(DT/h); 229 citac_PR=(int)(1./4./fc/h); 229 230 } 230 231 … … 241 242 smer=D_smer; smer2=D_smer2; 242 243 citac=citac_init; 243 citac2=abs(citac_init-( DT/h));244 citac_PR= 1./2./fc/h;244 citac2=abs(citac_init-(int)(DT/h)); 245 citac_PR=(int)(1./2./fc/h); 245 246 } 246 247 -
simulator_zdenek/ekf_example/regulace.cpp
r50 r52 187 187 if (fabs(rychlost)>prechod_1_2) ALGORITMUS=1; // prechod z algoritmu 1 na 2 188 188 if (fabs(rychlost)<prechod_2_1) ALGORITMUS=0; // prechod z algortimu 2 na 1 189 // ALGORITMUS=0; // provozovana pouze definovana varianta algoritmu rizeni 189 ALGORITMUS=0; // provozovana pouze definovana varianta algoritmu rizeni 190 190 191 191 Iqw_reg=pi_reg(Ww-rychlost,Kpw,Kpw*Treg/Tiw,MAXw,-MAXw,&Sw); -
simulator_zdenek/ekf_example/simul.cpp
r50 r52 94 94 95 95 // REL[0]=600; REL[1]=12.0*sqrt(2); REL[2]=2*M_PI*200; REL[3]=3.14159; 96 // REL[4]=17.8;REL[5]=1.0; // parametry pro v� MSM 6kW!!!96 // REL[4]=17.8;REL[5]=1.0; // parametry pro v�kon PMSM 6kW!!! 97 97 98 98 Isx=0.;Isy=0.;theta=x[3];rychlost=x[2];Uc_mer=Uc; 99 99 } 100 100 101 voidmain(void)101 int main(void) 102 102 { 103 103 h=1e-6; … … 115 115 init_ekf(h_reg,param); 116 116 117 fw=fopen("data \\graf1.txt","w");117 fw=fopen("data/graf1.txt","w"); 118 118 119 119 Idwf=0.; … … 146 146 // jednoducha reverzace - cely dej cca 11s 147 147 Ww+=k_rampa*2.*M_PI*0.125/2.; //1000Hz/s 148 if (Ww>2.*M_PI* 250.) {Ww=2.*M_PI*250.; if (k_rampa_tmp<8000) k_rampa_tmp++; else {k_rampa=-1;k_rampa_tmp=0;}}149 if (Ww<-2.*M_PI* 250.) Ww=-2.*M_PI*250.; /* */148 if (Ww>2.*M_PI*150.) {Ww=2.*M_PI*150.; if (k_rampa_tmp<8000) k_rampa_tmp++; else {k_rampa=-1;k_rampa_tmp=0;}} 149 if (Ww<-2.*M_PI*150.) Ww=-2.*M_PI*150.; /* */ 150 150 // skokova zmena napeti troleje 151 151 // Ut=500; // nutno zadat konstantni Isdw pri startu … … 155 155 // Iqwf=149.*sqrt(2.); 156 156 157 // pomal� ezd 10s do max. rychlosti 700rpm157 // pomal� rozjezd 10s do max. rychlosti 700rpm 158 158 /* Iqwf=149.*sqrt(2.); // konst. Isqw = Imax 159 159 x[2]+=2.*M_PI*0.004; … … 171 171 172 172 // vystup z EKF zaveden do regulatoru 173 rychlost=ekf_estim[0]; theta=ekf_estim[1];173 // rychlost=ekf_estim[0]; theta=ekf_estim[1]; //VS 174 174 175 175 Urm_max=1.0; … … 186 186 187 187 reg_counter=0; 188 Isx=x[0];Isy=x[1];rychlost=x[2];theta=x[3]+CHYBA_POLOHY;Uc_mer=Uc; // re� �zorkov�188 Isx=x[0];Isy=x[1];rychlost=x[2];theta=x[3]+CHYBA_POLOHY;Uc_mer=Uc; // re�ln� vzorkov�n� 189 189 } 190 190 hpom_model=0; … … 216 216 // printf("*** \n\n"); 217 217 fclose(fw); 218 return 0; 218 219 }