# PI-controller for 1st order system.

#### huntflex

Hello,

I have an assignment where I have to design a PI-controller for a first order system. The system is given by : G =566.1 / (s +0.3514).

I have a slight problem understanding how to deal with this as the Bode plot gives me -90 degrees of phase shift. Usually I would design my controller with a 60 degree phase margin, but that's when I have -180 degree phase shift. I am a bit lost.

Any help would be appreciated

Kind regards

Related Engineering and Comp Sci Homework Help News on Phys.org

#### aralbrec

A first order system will always be stable because it can't generate more than 90 degrees phase shift, as you've discovered.

But stability is not the only reason to add compensation. You may want the steady state error due to some input to be zero or within some margin. You should take another look at your problem and see if there is a steady state error specification or maybe a settling time specification.

Last edited:

#### huntflex

Well it is a dc motor we're controlling. Steady state error should be zero, and settling time quickly as possible. Is there any other method than ensuring phase margin?

#### aralbrec

Well it is a dc motor we're controlling
Ah, ok. So that transfer functions looks like a speed/torque transfer function. Is that right?

If so, what are you trying to control? The motor speed? The motor angular position? Ie when you set the input (the command) are you demanding a particular speed or angular displacement?

How will you close the feedback loop, ie what property are you measuring from the motor output to compare to your input command?

How will you specify the torque for your speed/torque transfer function? Normally DC motors are either field or armature controlled so that you control the field current or armature current to generate known torque.

I think maybe you don't have the complete model yet if I have guessed right.

Steady state error should be zero, and settling time quickly as possible.
Steady state error to a step input? A ramp input? A parabolic input? For example, if you are controlling angular position, your input is a demanded angular position. Zero steady state error to a step input means the motor will rotate to the exact angular position demanded. If the system also has zero steady state error to a ramp demand of angular position, the motor will also be able to match speed (the steady slope of the input ramp).

#### huntflex

Thanks very much for taking your time to help :)

Ah, ok. So that transfer functions looks like a speed/torque transfer function. Is that right?
Yes, I think so, what we get out in the feedback is the angular velocity.

If so, what are you trying to control? The motor speed? The motor angular position? Ie when you set the input (the command) are you demanding a particular speed or angular displacement?
How will you close the feedback loop, ie what property are you measuring from the motor output to compare to your input command?
What we are trying to control is the motor speed, we want to set for example 10 rad/s on the input and that should be observed at the output. So what we have is a feedback from the output of the motor (angular velocity), like on the attached image.

I think that we do have the complete model.
Also the response of the system should be to a step input.

#### Attachments

• 3.9 KB Views: 315

#### aralbrec

Ok yes I see it now. 1/(sL+R) is the voltage input to the field windings and output is torque generated by the motor. Then you have some blocks that model the mechanics. Dividing by J turns torque into angular acceleration then you integrate that to get angular speed. This is part of the motor mechanics still and the output a the rightmost edge of the diagram is the physical angular speed.

Then you measure the physical angular speed with a tachometer that turns that into a voltage proportional to the speed. This is where I think you have an error in your block diagram. The output of the tachometer should be compared against the input step function so that should go directly to the first summer. The PI control output then feeds straight into the field windings transfer function.

The other stuff in your diagram: Gain2 is subtracting a component proportional to physical angular speed from the torque developed by the motor. This models viscous friction. The 0 constant you have can model an external disturbance to the torque. Maybe a sudden load is applied to the motor.

The first step (after fixing the feedback from the tachometer) would be to collapse this detailed block diagram by getting rid of the innermost feedback loop and cascading that with the field transfer function. You can ignore the 0 constant disturbance -- when you are ready to consider how the feedback system deals with such a disturbance you can come back to this more detailed diagram.

Once the feedback system is simplified you will have it in a more familiar form with the PI controller in series with a second order system inside the loop.

Last edited:

#### huntflex

Well now I understand the motor model a lot more. It makes sense to move the tachometer to the first summer also! Thanks

But I'm not sure what you mean by having the PI controller in series with a second order system, when do we get this second order system? When we calculate the transfer function of the motor model without the PI controller, we get a first order system like the one I mentioned in my first post which is also the cause of confusion...

#### aralbrec

But I'm not sure what you mean by having the PI controller in series with a second order system, when do we get this second order system? When we calculate the transfer function of the motor model without the PI controller, we get a first order system like the one I mentioned in my first post which is also the cause of confusion...
You've got a first order block 1/(sL+R) cascaded with another first order block (one factor is 1/s) so the result of that cascade is going to be second order.

Replace the feedback loop with the 1/J, 1/s and f in it with a simple block, then that will be in series with the 1/(sL+R).

#### huntflex

I see what you mean now, and I've done it, it's still a first order system, but that's because the professor told us to set the inductance equal to zero, that actually explains a lot. According to the datasheet it has a small value, and I think that I will use that value instead of zero in order to make it a 2nd order system.

Thank you very much for your help and patience!

### Physics Forums Values

We Value Quality
• Topics based on mainstream science
• Proper English grammar and spelling
We Value Civility
• Positive and compassionate attitudes
• Patience while debating
We Value Productivity
• Disciplined to remain on-topic
• Recognition of own weaknesses
• Solo and co-op problem solving