PI-controller for 1st order system.

  • Thread starter Thread starter huntflex
  • Start date Start date
  • Tags Tags
    System
AI Thread Summary
The discussion centers on designing a PI-controller for a first-order system represented by the transfer function G = 566.1 / (s + 0.3514). The user is confused about achieving the desired phase margin due to the system's inherent -90 degrees phase shift. Key points include the importance of steady-state error specifications and settling time, particularly for controlling a DC motor's speed. The conversation also clarifies the feedback mechanism involving angular velocity measurement and the need to simplify the block diagram for better analysis. Ultimately, the user recognizes that incorporating a small inductance value can transform the system into a second-order model, enhancing control capabilities.
huntflex
Messages
26
Reaction score
0
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
 
Physics news on Phys.org
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:
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?
 
huntflex said:
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).
 
Thanks very much for taking your time to help :)

aralbrec said:
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.

aralbrec said:
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?

aralbrec said:
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

  • Capture.PNG
    Capture.PNG
    4 KB · Views: 657
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:
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...
 
huntflex said:
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).
 
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!
 

Similar threads

Replies
4
Views
2K
Replies
0
Views
1K
Replies
6
Views
2K
Replies
1
Views
2K
Replies
10
Views
4K
Replies
3
Views
3K
Replies
3
Views
2K
Back
Top