1
Dependencies: mbed-dev-f303 FastPWM3
Diff: Calibration/calibration.cpp
- Revision:
- 54:4c9415402628
- Parent:
- 53:32218a36df05
- Child:
- 55:d614e29c60c5
--- a/Calibration/calibration.cpp Tue Sep 15 08:59:03 2020 +0000 +++ b/Calibration/calibration.cpp Thu Sep 17 07:49:27 2020 +0000 @@ -25,7 +25,7 @@ ///Set voltage angle to zero, wait for rotor position to settle abc(theta_ref, v_d, v_q, &v_u, &v_v, &v_w); //inverse dq0 transform on voltages - svm(1.0, v_u, v_v, v_w, &dtc_u, &dtc_v, &dtc_w); //space vector modulation + svm(1.0, v_u, v_v, v_w, 0, &dtc_u, &dtc_v, &dtc_w); //space vector modulation for(int i = 0; i<20000; i++){ TIM1->CCR3 = (PWM_ARR>>1)*(1.0f-dtc_u); // Set duty cycles TIM1->CCR2 = (PWM_ARR>>1)*(1.0f-dtc_v); @@ -47,7 +47,7 @@ /// Rotate voltage angle while(theta_ref < 4*PI){ //rotate for 2 electrical cycles abc(theta_ref, v_d, v_q, &v_u, &v_v, &v_w); //inverse dq0 transform on voltages - svm(1.0, v_u, v_v, v_w, &dtc_u, &dtc_v, &dtc_w); //space vector modulation + svm(1.0, v_u, v_v, v_w, 0, &dtc_u, &dtc_v, &dtc_w); //space vector modulation wait_us(100); TIM1->CCR3 = (PWM_ARR>>1)*(1.0f-dtc_u); //Set duty cycles TIM1->CCR2 = (PWM_ARR>>1)*(1.0f-dtc_v); @@ -98,7 +98,7 @@ ///Set voltage angle to zero, wait for rotor position to settle abc(theta_ref, v_d, v_q, &v_u, &v_v, &v_w); // inverse dq0 transform on voltages - svm(1.0, v_u, v_v, v_w, &dtc_u, &dtc_v, &dtc_w); // space vector modulation + svm(1.0, v_u, v_v, v_w, 0, &dtc_u, &dtc_v, &dtc_w); //space vector modulation for(int i = 0; i<40000; i++){ TIM1->CCR3 = (PWM_ARR>>1)*(1.0f-dtc_u); // Set duty cycles if(PHASE_ORDER){ @@ -122,7 +122,7 @@ for(int j = 0; j<n2; j++){ theta_ref += delta; abc(theta_ref, v_d, v_q, &v_u, &v_v, &v_w); // inverse dq0 transform on voltages - svm(1.0, v_u, v_v, v_w, &dtc_u, &dtc_v, &dtc_w); // space vector modulation + svm(1.0, v_u, v_v, v_w, 0, &dtc_u, &dtc_v, &dtc_w); //space vector modulation TIM1->CCR3 = (PWM_ARR>>1)*(1.0f-dtc_u); if(PHASE_ORDER){ // Check phase ordering TIM1->CCR2 = (PWM_ARR>>1)*(1.0f-dtc_v); // Set duty cycles @@ -149,7 +149,7 @@ for(int j = 0; j<n2; j++){ theta_ref -= delta; abc(theta_ref, v_d, v_q, &v_u, &v_v, &v_w); // inverse dq0 transform on voltages - svm(1.0, v_u, v_v, v_w, &dtc_u, &dtc_v, &dtc_w); // space vector modulation + svm(1.0, v_u, v_v, v_w, 0, &dtc_u, &dtc_v, &dtc_w); //space vector modulation TIM1->CCR3 = (PWM_ARR>>1)*(1.0f-dtc_u); if(PHASE_ORDER){ TIM1->CCR2 = (PWM_ARR>>1)*(1.0f-dtc_v); @@ -279,7 +279,7 @@ ///Set voltage angle to zero, wait for rotor position to settle abc(theta_ref, v_d, v_q, &v_u, &v_v, &v_w); // inverse dq0 transform on voltages - svm(1.0, v_u, v_v, v_w, &dtc_u, &dtc_v, &dtc_w); // space vector modulation + svm(1.0, v_u, v_v, v_w, 0, &dtc_u, &dtc_v, &dtc_w); // space vector modulation for(int i = 0; i<40000; i++){ TIM1->CCR3 = (PWM_ARR>>1)*(1.0f-dtc_u); // Set duty cycles if(PHASE_ORDER){ @@ -305,7 +305,7 @@ //theta_joint_ref=theta_joint_ref- delta-theta_ref/GR; theta_joint_ref-=delta; abc(theta_ref, v_d, v_q, &v_u, &v_v, &v_w); // inverse dq0 transform on voltages - svm(1.0, v_u, v_v, v_w, &dtc_u, &dtc_v, &dtc_w); // space vector modulation + svm(1.0, v_u, v_v, v_w, 0, &dtc_u, &dtc_v, &dtc_w); // space vector modulation TIM1->CCR3 = (PWM_ARR>>1)*(1.0f-dtc_u); if(PHASE_ORDER){ // Check phase ordering TIM1->CCR2 = (PWM_ARR>>1)*(1.0f-dtc_v); // Set duty cycles @@ -339,7 +339,7 @@ //theta_joint_ref=theta_joint_ref+delta+theta_ref/GR; theta_joint_ref+=delta; abc(theta_ref, v_d, v_q, &v_u, &v_v, &v_w); // inverse dq0 transform on voltages - svm(1.0, v_u, v_v, v_w, &dtc_u, &dtc_v, &dtc_w); // space vector modulation + svm(1.0, v_u, v_v, v_w, 0, &dtc_u, &dtc_v, &dtc_w); // space vector modulation TIM1->CCR3 = (PWM_ARR>>1)*(1.0f-dtc_u); if(PHASE_ORDER){ TIM1->CCR2 = (PWM_ARR>>1)*(1.0f-dtc_v); @@ -502,7 +502,7 @@ ///Set voltage angle to zero, wait for rotor position to settle abc(theta_ref, v_d, v_q, &v_u, &v_v, &v_w); // inverse dq0 transform on voltages - svm(1.0, v_u, v_v, v_w, &dtc_u, &dtc_v, &dtc_w); // space vector modulation + svm(1.0, v_u, v_v, v_w, 0, &dtc_u, &dtc_v, &dtc_w); //space vector modulation for(int i = 0; i<40000; i++){ TIM1->CCR3 = (PWM_ARR>>1)*(1.0f-dtc_u); // Set duty cycles if(PHASE_ORDER){ @@ -529,7 +529,7 @@ // theta_joint_ref+=delta; abc(theta_ref, v_d, v_q, &v_u, &v_v, &v_w); // inverse dq0 transform on voltages - svm(1.0, v_u, v_v, v_w, &dtc_u, &dtc_v, &dtc_w); // space vector modulation + svm(1.0, v_u, v_v, v_w, 0, &dtc_u, &dtc_v, &dtc_w); //space vector modulation TIM1->CCR3 = (PWM_ARR>>1)*(1.0f-dtc_u); if(PHASE_ORDER){ // Check phase ordering TIM1->CCR2 = (PWM_ARR>>1)*(1.0f-dtc_v); // Set duty cycles @@ -561,7 +561,7 @@ //theta_joint_ref-=delta; theta_joint_ref+=delta; abc(theta_ref, v_d, v_q, &v_u, &v_v, &v_w); // inverse dq0 transform on voltages - svm(1.0, v_u, v_v, v_w, &dtc_u, &dtc_v, &dtc_w); // space vector modulation + svm(1.0, v_u, v_v, v_w, 0, &dtc_u, &dtc_v, &dtc_w); //space vector modulation TIM1->CCR3 = (PWM_ARR>>1)*(1.0f-dtc_u); if(PHASE_ORDER){ TIM1->CCR2 = (PWM_ARR>>1)*(1.0f-dtc_v); @@ -707,7 +707,7 @@ ///Set voltage angle to zero, wait for rotor position to settle abc(theta_ref, v_d, v_q, &v_u, &v_v, &v_w); // inverse dq0 transform on voltages - svm(1.0, v_u, v_v, v_w, &dtc_u, &dtc_v, &dtc_w); // space vector modulation + svm(1.0, v_u, v_v, v_w, 0, &dtc_u, &dtc_v, &dtc_w); // space vector modulation for(int i = 0; i<40000; i++){ TIM1->CCR3 = (PWM_ARR>>1)*(1.0f-dtc_u); // Set duty cycles if(PHASE_ORDER){ @@ -734,7 +734,7 @@ theta_joint_ref+=delta; abc(theta_joint_ref, v_d, v_q, &v_u, &v_v, &v_w); // inverse dq0 transform on voltages - svm(1.0, v_u, v_v, v_w, &dtc_u, &dtc_v, &dtc_w); // space vector modulation + svm(1.0, v_u, v_v, v_w, 0, &dtc_u, &dtc_v, &dtc_w); // space vector modulation TIM1->CCR3 = (PWM_ARR>>1)*(1.0f-dtc_u); if(PHASE_ORDER){ // Check phase ordering TIM1->CCR2 = (PWM_ARR>>1)*(1.0f-dtc_v); // Set duty cycles @@ -766,7 +766,7 @@ theta_joint_ref-=delta; //theta_joint_ref+=delta; abc( theta_joint_ref, v_d, v_q, &v_u, &v_v, &v_w); // inverse dq0 transform on voltages - svm(1.0, v_u, v_v, v_w, &dtc_u, &dtc_v, &dtc_w); // space vector modulation + svm(1.0, v_u, v_v, v_w, 0, &dtc_u, &dtc_v, &dtc_w); // space vector modulation TIM1->CCR3 = (PWM_ARR>>1)*(1.0f-dtc_u); if(PHASE_ORDER){ TIM1->CCR2 = (PWM_ARR>>1)*(1.0f-dtc_v);