I am working on a custom board based on the F28027F with DRV8305, the design is very close the the launchpad+BOOSTXL-DRV8305 combination. 4 of these boards are being used to fly a quadcopter.
I have the system flying, but something is quite right. I probably just need to adjust the PID tuning. As a starting point I'd like to get the response of my board closer to that of a traditional brushless controller. In a traditional controller there is no speed regulation, you essentially have duty cycle control of the PWM. Is it possible to accomplish something similar with instaspin FOC? Obviously some control loop on the current needs to happen, but would for example just running the Id loop work?
I based my code on lab11: The main ISR does this:
outMax_pu = _IQsqrt(_IQ(USER_MAX_VS_MAG_PU * USER_MAX_VS_MAG_PU)
- _IQmpy(gVdq_out_pu.value[0],gVdq_out_pu.value[0]));
PID_setMinMax(pidHandle[2],-outMax_pu,outMax_pu);
PID_run(pidHandle[2],refValue,fbackValue,&(gVdq_out_pu.value[1]));
What if I just did something like:
gVdq_out_pu.value[1]=Input_duty_cycle_percent*outMax_Pu?
I fully intend to go back to using the speed regulator, but establishing open-loop control might help me track down some of the trouble. Is the sort of open-loop control I desire possible?