Trapezoid sin Vector

Dependencies:   mbed mbed-rtos

Committer:
oguro
Date:
Fri Jun 28 11:52:27 2019 +0000
Revision:
0:fa432f8ea1a6
Trapezoid sin Vector Control

Who changed what in which revision?

UserRevisionLine numberNew 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