Other Parts Discussed in Thread: MOTORWARE
Hello,
I just wanted to share a problem that I've had for the past couple weeks and that turned out to be a bit more difficult to find out than expected. It could also be considered a bug of the program if I am correct.
I am using InstaSpin and Motorware 15 to run an inverter we've just developed. In order to test it I connected it to a low voltage of 30-40 V (the inverter supports up to 1100V) to run in with a permanent magnet motor. I've always worked with the DC Bus Voltage compensation activated since I've never had any problem with it. It just so happens, that for those low voltages, the oneoverdcbus variable takes the value 100, and it gets multiplied by whichever value you are using for the proportional gain of the PIDs. I was using a proportional gain of 1.5, which multiplied by 100 gives 150. Since the variable is iq24, it would roll-over and use a value of -120 which of course made controlling the motor pretty much impossible.
To fix it I just added the line:
if(Kp_Iq < _IQ(0.0)) Kp_Iq = _IQ(127.99);
right under:
Kp_Iq = _IQmpy(Kp_Iq,EST_getOneOverDcBus_pu(obj->estHandle));
to limit the maximum value the Kp can take.
I hope that might be helpful for someone.
Regards