akiyoshi oguro
/
Nucleo_Hall_rect_sin_vector
Trapezoid sin Vector
IO_define.h@0:fa432f8ea1a6, 2019-06-28 (annotated)
- Committer:
- oguro
- Date:
- Fri Jun 28 11:52:27 2019 +0000
- Revision:
- 0:fa432f8ea1a6
Trapezoid sin Vector Control
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
oguro | 0:fa432f8ea1a6 | 1 | Serial pc(USBTX,USBRX); |
oguro | 0:fa432f8ea1a6 | 2 | |
oguro | 0:fa432f8ea1a6 | 3 | PwmOut PWM_IN1_U(PA_8); |
oguro | 0:fa432f8ea1a6 | 4 | PwmOut PWM_IN2_V(PA_9); |
oguro | 0:fa432f8ea1a6 | 5 | PwmOut PWM_IN3_W(PA_10); |
oguro | 0:fa432f8ea1a6 | 6 | |
oguro | 0:fa432f8ea1a6 | 7 | DigitalOut EN1_U(PC_10); |
oguro | 0:fa432f8ea1a6 | 8 | DigitalOut EN2_V(PC_11); |
oguro | 0:fa432f8ea1a6 | 9 | DigitalOut EN3_W(PC_12); |
oguro | 0:fa432f8ea1a6 | 10 | |
oguro | 0:fa432f8ea1a6 | 11 | DigitalOut Vector(PC_4); |
oguro | 0:fa432f8ea1a6 | 12 | |
oguro | 0:fa432f8ea1a6 | 13 | DigitalIn HALL_U(PA_15); |
oguro | 0:fa432f8ea1a6 | 14 | DigitalIn HALL_V(PB_3); |
oguro | 0:fa432f8ea1a6 | 15 | DigitalIn HALL_W(PB_10); |
oguro | 0:fa432f8ea1a6 | 16 | |
oguro | 0:fa432f8ea1a6 | 17 | /*DigitalIn HALL_U(PC_8); |
oguro | 0:fa432f8ea1a6 | 18 | DigitalIn HALL_V(PC_6); |
oguro | 0:fa432f8ea1a6 | 19 | DigitalIn HALL_W(PC_10);*/ |
oguro | 0:fa432f8ea1a6 | 20 | |
oguro | 0:fa432f8ea1a6 | 21 | |
oguro | 0:fa432f8ea1a6 | 22 | /*InterruptIn HALL_Ui(PC_8); |
oguro | 0:fa432f8ea1a6 | 23 | InterruptIn HALL_Vi(PC_6); |
oguro | 0:fa432f8ea1a6 | 24 | InterruptIn HALL_Wi(PC_5);*/ |
oguro | 0:fa432f8ea1a6 | 25 | |
oguro | 0:fa432f8ea1a6 | 26 | InterruptIn HALL_Ui(PA_15); |
oguro | 0:fa432f8ea1a6 | 27 | InterruptIn HALL_Vi(PB_3); |
oguro | 0:fa432f8ea1a6 | 28 | InterruptIn HALL_Wi(PB_10); |
oguro | 0:fa432f8ea1a6 | 29 | |
oguro | 0:fa432f8ea1a6 | 30 | AnalogIn V_adc(PC_2); // gaibu Volume |
oguro | 0:fa432f8ea1a6 | 31 | //AnalogIn V_adc(PB_1); //On Board Volume |
oguro | 0:fa432f8ea1a6 | 32 | AnalogIn Curr_ui(PA_0); |
oguro | 0:fa432f8ea1a6 | 33 | AnalogIn Curr_vi(PC_1); |
oguro | 0:fa432f8ea1a6 | 34 | AnalogIn Curr_wi(PC_0); |
oguro | 0:fa432f8ea1a6 | 35 | |
oguro | 0:fa432f8ea1a6 | 36 | AnalogOut aout(PA_4); |
oguro | 0:fa432f8ea1a6 | 37 | |
oguro | 0:fa432f8ea1a6 | 38 | float Vr_adc,Vr_adc_i; |
oguro | 0:fa432f8ea1a6 | 39 | |
oguro | 0:fa432f8ea1a6 | 40 | unsigned short SH,frd=1,q; |
oguro | 0:fa432f8ea1a6 | 41 | short f1=0,a1=0,f1c=0,a1c=0; |
oguro | 0:fa432f8ea1a6 | 42 | float kido=0.5,START=10.0,STOP=1.0,power; |
oguro | 0:fa432f8ea1a6 | 43 | float y,ay,Speed; |
oguro | 0:fa432f8ea1a6 | 44 | |
oguro | 0:fa432f8ea1a6 | 45 | float ut1=0,ut2=0,usi=0; |
oguro | 0:fa432f8ea1a6 | 46 | float vt1=0,vt2=0,vsi=0; |
oguro | 0:fa432f8ea1a6 | 47 | float wt1=0,wt2=0,wsi=0; |
oguro | 0:fa432f8ea1a6 | 48 | float ut1c=0,ut2c=0,usic=0; |
oguro | 0:fa432f8ea1a6 | 49 | unsigned int ui=0,vi=0,wi=0,et=0; |
oguro | 0:fa432f8ea1a6 | 50 | int r=0,i=0,s=0; |
oguro | 0:fa432f8ea1a6 | 51 | float Xin,Xout; |
oguro | 0:fa432f8ea1a6 | 52 | |
oguro | 0:fa432f8ea1a6 | 53 | float thave,th,thu,thv,thw,Ed,Vd,Vq,Vqi,West,Wz,Wo,Icom,Wcom; |
oguro | 0:fa432f8ea1a6 | 54 | float vst=0,vstt=0,vsti=0,vstf=0,Edw=0; |
oguro | 0:fa432f8ea1a6 | 55 | float iso=0,Vqp; |
oguro | 0:fa432f8ea1a6 | 56 | //float tau=50; //drone 50 |
oguro | 0:fa432f8ea1a6 | 57 | //float zint=tau*1E-6; |
oguro | 0:fa432f8ea1a6 | 58 | |
oguro | 0:fa432f8ea1a6 | 59 | Timer uT; |
oguro | 0:fa432f8ea1a6 | 60 | Timer vT; |
oguro | 0:fa432f8ea1a6 | 61 | Timer wT; |
oguro | 0:fa432f8ea1a6 | 62 | Timer uTc; |
oguro | 0:fa432f8ea1a6 | 63 | |
oguro | 0:fa432f8ea1a6 | 64 | Ticker zt; |
oguro | 0:fa432f8ea1a6 | 65 | Ticker ztc; |
oguro | 0:fa432f8ea1a6 | 66 | Ticker cnt; |
oguro | 0:fa432f8ea1a6 | 67 | |
oguro | 0:fa432f8ea1a6 | 68 | float Curr_u=0,Curr_uf=0,iu; |
oguro | 0:fa432f8ea1a6 | 69 | float Curr_v=0,Curr_vf=0,iv; |
oguro | 0:fa432f8ea1a6 | 70 | float Curr_w=0,Curr_wf=0,iw; |
oguro | 0:fa432f8ea1a6 | 71 | float iuvw[3]; |
oguro | 0:fa432f8ea1a6 | 72 | float iab[2],Vab[2]; |
oguro | 0:fa432f8ea1a6 | 73 | float idq[2],idqi[2],idqo[2]; |
oguro | 0:fa432f8ea1a6 | 74 | |
oguro | 0:fa432f8ea1a6 | 75 | float Idin,Vdout,Iqin,Vqout,Xsi; |
oguro | 0:fa432f8ea1a6 | 76 | |
oguro | 0:fa432f8ea1a6 | 77 | short uz[5]={0x7FFF,0xC000,0,0x0001,0};//a1,a2,f0,f1,f2 |
oguro | 0:fa432f8ea1a6 | 78 | short vz[5]={0x7FFF,0xC000,0,0x0001,0};//a1,a2,f0,f1,f2 |
oguro | 0:fa432f8ea1a6 | 79 | short wz[5]={0x7FFF,0xC000,0,0x0001,0};//a1,a2,f0,f1,f2 |
oguro | 0:fa432f8ea1a6 | 80 | |
oguro | 0:fa432f8ea1a6 | 81 | short uc[5]={0x7FFF,0xC000,0,0x0001,0};//a1,a2,f0,f1,f2 |
oguro | 0:fa432f8ea1a6 | 82 | short vc[5]={0x7FFF,0xC000,0,0x0001,0};//a1,a2,f0,f1,f2 |
oguro | 0:fa432f8ea1a6 | 83 | short wc[5]={0x7FFF,0xC000,0,0x0001,0};//a1,a2,f0,f1,f2 |
oguro | 0:fa432f8ea1a6 | 84 | |
oguro | 0:fa432f8ea1a6 | 85 | float PI=3.141592; |
oguro | 0:fa432f8ea1a6 | 86 | float ia=0,iaf=0,ib=0,ibf=0,iq=0,iqf=0,id=0,idf=0; |
oguro | 0:fa432f8ea1a6 | 87 | //float th; |
oguro | 0:fa432f8ea1a6 | 88 | |
oguro | 0:fa432f8ea1a6 | 89 | float zet=sqrt(2.0f/3.0f),cos23=cos((2.0f/3.0f)*PI); |
oguro | 0:fa432f8ea1a6 | 90 | float cos43=cos((4.0f/3.0f)*PI),sin23=sin((2.0f/3.0f)*PI),sin43=sin((4.0f/3.0f)*PI); |
oguro | 0:fa432f8ea1a6 | 91 | |
oguro | 0:fa432f8ea1a6 | 92 | float sinth,costh; |
oguro | 0:fa432f8ea1a6 | 93 | float id_diff,id_p,iq_diff,iq_p; |
oguro | 0:fa432f8ea1a6 | 94 | float s_ki_id, ki_id,kp_id, s_ki_iq ,ki_iq,kp_iq; |
oguro | 0:fa432f8ea1a6 | 95 | float Wnon,Ednon,W,PLL; |
oguro | 0:fa432f8ea1a6 | 96 | //float Vd,Vq; |
oguro | 0:fa432f8ea1a6 | 97 | float s_ki_errth,s_kp_errth,derrth; |
oguro | 0:fa432f8ea1a6 | 98 | float therr,dth,eth,phm; |
oguro | 0:fa432f8ea1a6 | 99 | float sq32=sqrt(3.0f/2.0f); |
oguro | 0:fa432f8ea1a6 | 100 | float sq23=2.0f/sqrt(3.0f); |
oguro | 0:fa432f8ea1a6 | 101 | float sq3=1.0f/sqrt(3.0f); |
oguro | 0:fa432f8ea1a6 | 102 | float Vdlink=0.6; //0.6 |
oguro | 0:fa432f8ea1a6 | 103 | float aVa; |
oguro | 0:fa432f8ea1a6 | 104 | float a3Vb; |
oguro | 0:fa432f8ea1a6 | 105 | |
oguro | 0:fa432f8ea1a6 | 106 | float errth; |
oguro | 0:fa432f8ea1a6 | 107 | float su=0,sv=0,sw=0,suv=0,svv=0,swv=0; |
oguro | 0:fa432f8ea1a6 | 108 | |
oguro | 0:fa432f8ea1a6 | 109 | float z=0.3;//0.5 |
oguro | 0:fa432f8ea1a6 | 110 | float Va,Vb; |
oguro | 0:fa432f8ea1a6 | 111 | float d1,d2,d3,d4,d5,d6,d07; |
oguro | 0:fa432f8ea1a6 | 112 | float du,dv,dw; |
oguro | 0:fa432f8ea1a6 | 113 |