Continue to Site

# PI REGULATOR FOR FOC SYSTEM

Status
Not open for further replies.

#### v1.5

##### Member
hello my elders
After my last electronic design, I managed to sell some of my electronic cards. I spent some of my money for my education and decided to start another project for the rest. my new project is to produce pmsm motor control circuit which includes foc control algorithm.
I am in the research stage especially about this subject and although I have researched a subject, I could not find the answer I was looking for. I am waiting for your support.
First of all, I do not have a problem with the tree diagram of the control algorithm. The part I had difficulty in understanding was that I could not understand that current input was provided to the pi regulator input and that the output contains voltage information.
Since my system contains pi control, I can easily find formulas with proportional and integral. I have no idea how to determine some constants (kp, ki etc.). How can I get the regulator output vq and vd voltages? How can I determine the proportional constants (kp, ki etc.)?

A normal industrial "servo drive" for a DC motor is normally a double-loop type.

The outer loop (velocity or rate) compares actual speed to commanded speed.

The error signal from that is the input to the inner loop, which controls current.

With a BLDC motor, the current demand signal controls the duty cycle of the three phase PWM signal, with phasing of that based on the position sensors in the motor; or back EMF measurements if the motor is sensorless (but servos always have sensor feedback).

The "Position loop" part is often separate from the servo drive, eg. a CNC or robotics system that uses the servo drives for positioning.

Grab the TPAR drive manual from this site; it's a 1970s design and very simple, but incredibly good at what it does.
The rate loop and current loop parts are on separate cards with individual diagrams, so you can see their functions easily.

A normal industrial "servo drive" for a DC motor is normally a double-loop type.

The outer loop (velocity or rate) compares actual speed to commanded speed.

The error signal from that is the input to the inner loop, which controls current.

With a BLDC motor, the current demand signal controls the duty cycle of the three phase PWM signal, with phasing of that based on the position sensors in the motor; or back EMF measurements if the motor is sensorless (but servos always have sensor feedback).

The "Position loop" part is often separate from the servo drive, eg. a CNC or robotics system that uses the servo drives for positioning.

Grab the TPAR drive manual from this site; it's a 1970s design and very simple, but incredibly good at what it does.
The rate loop and current loop parts are on separate cards with individual diagrams, so you can see their functions easily.
Hi;
There is another external matter that I should ask you if you allow it. I want the circuit to increase and decrease the motor speed with pi control. In other words, the motor will operate in the nominal rpm range, but with my pi controller, I will increase and decrease this rpm value within the frame of nominal values. this is my goal.
Now the part I need to ask you is, can I have the speed control of the motor over the value of Iq (torque referance frame) for an algorithm as I just mentioned?
As you know, I will not need the Id (flux referance frame) value. I will set this value to zero. But can I respect the torque reference frame for speed control by adjusting it with the pi controller? Does the system need any extra control units?
I will not need field weakening (as far as I know), as I will keep the engine running at rated speed conditions. I would like to know your thoughts on this subject.
Thank you again

You have to track or simulate the motor "rotation" in software; that's what controls the angles of the three sets of sine wave outputs.
Plus ensuring the simulation does not get ahead of actual motor position, if you only have hall feedback.

The current demand sets the PWM duty cycle within the sine ratio fed to each phase.

The velocity input to the overall system then controls motor speed.

If the motor has no feedback whatsoever, you can pretty much treat it as a three phase stepper motor & limit acceleration to what you know or determine it can track without "slipping"; adjust the current (pwm) in proportion with acceleration & load.

Status
Not open for further replies.