Although it has been several months since I updated the site, I have still been working on the project. Since the last update I have met several milestones, and ran into a HUGE hurdle. Let's get into it.
The biggest accomplishment I have made so far has been getting motor current control working. I was able to leverage TI's IQmath fixed point library to implement the Field Oriented Control algorithm so that it runs fast enough to be useful. It was a challenge to get all of the libraries working and I have to remove all of the function calls from the algorithm to make it lightning fast. With all said and done, the algorithm works well.
I have noticed that sometimes the measured electrical phase angle becomes offset from the actual value, usually when the motor is under heavy load. I am chocking this up to noise from the motor interfering with the encoder signals.
I have also been able to get the PWM capture from the STM disco board working. The PWM from the disco board tells the motor controller how much force to apply and in which direction. Unfortunately when the motor is running the signal is severely distorted. This seems to be due to the motor power trace running right next to the signal line. The noise on this line makes it impossible to do any real testing with IRacing, which is disappointing.
In order to solve these problems I have ordered a new motor driver from TI that will allow me to move the motor traces away from my signal lines.
I have also designed a "brake chopper" board that connects to to the power supply and prevents the motor from putting unwanted back-emf onto the supply.