Hi everyone,
I have a PI controller which drives a PWM unit switching an Half H-Brdige stage to control a phase of a three-phase BLDC motor. This loop regulates the current, while an outer loop control the speed to follow an external profile (through encoder readings).
I've tuned the controller in order to meet some requirements on the time response (risetime, steady-state error, overshoot, ...) but the whole tuning phase has not included the PWM stage because MATLAB cannot linearize a system with a nonlinear stage like the PWM and H-Bridge.
In order to take into account my PWM and H-Bridge, I simply modelled them as delay unit (essentially linked to the commutation time it takes for the H-Bridge stage to commute from ON to OFF). First question here: is this model oversimplified? I've learned about techniques with MATLAB to linearize a nonlinear stage, but is it really worth it? And how do I go about evaluating my phase and gain margin when I introduce the actuator stage?
Nonetheless there's an additional issue linked to another nonlinear behavior which is intrinsic to the H-Bridge stage. When I start to drive it with extreme values of duty cycle (either big or small), there'll be a kind of a threshold effect because of the time it takes to charge and discharge MOS gate capacitance.
Since the H-Bridge is driven in a complementary fashion with time delay insertion, the 50% duty cycle will correspond to my 0 mean current, while the threshold effect will be confined to the farest end of my dynamic range.
Assuming my value to be driven never gets into hitting the threshold effect I can safely ignore this phenomenon. But how can I be sure about it? What happens if a perturbation is injected in my system and suddenly it wants to compensate the error through values that drive the 'actuator' in a non linear state?
I'm not sure how my analysis should go about in these cases and how I can avoid having my controller going unstable.
While I can consider restricting the system state in order to prevent hitting the 'safe' range, what will be the effect on the outer loop then?
Any idea/pointer/suggestion is appreciated.
Al