Interesting. When you were doing 1 1 1 and it seemed to be running away, what was really happening was it was trying to command a torque and a flux as follows:
id & iq = 10
id & iq = 20
...30
40
So, the controller is controlling torque, and not RPM. So even though it seemed like something was going wrong, it was actually doing what it was supposed to do. A DC motor behaves exactly this way when you control torque rather than rpm. IF you held the motor post so it couldn't spin, Each time you would hit 1, it would put just a tiny bit more torque (and flux) through the motor.
It's interesting that the hardware overcurrent is tripping. My guess is that at high speed, when the rotor flux angle gets out of sync, it viciously commands current in the wrong orientation and there's a current spike that trips the hardware. I think we need to get some data of Id and Iq and Vd and Vq and a bunch of other stuff at high rpm. The rotor flux angle may get out of sync because the rotor time constant changes as a function of RPM. I just learned today that as frequency goes up, the rotor inductance and stator inductance go down. I think we should get a set of data points for the phase current and phase voltage, and then plug the stuff into a formula and get the stator inductance at several rpms. The rotor inductance has the same percent of variation as the stator inductance. Then we can update the inductance for the rotor (and the rotor time constant) in real time, based on RPM. I think we also might need to one of those run pi tests for Id. I just assumed that the response for iq was the same as for Id, just because it was for my motor.
Last edited by MPaulHolmes; 09-17-2015 at 07:57 AM..
|