PI-controller for 1st order system.

  • Thread starter huntflex
  • Start date
  • Tags
    System
In summary, a first order system is given by G =566.1 / (s +0.3514) and is stable due to the maximum 90 degrees phase shift it can generate. However, stability is not the only reason to add compensation, as there may be a steady state error or settling time specification. In this case, the system is controlling a DC motor's speed, using a feedback loop with a tachometer to measure the physical angular speed. The PI controller output is fed into the field windings transfer function, and the overall system can be simplified by cascading the innermost feedback loop with the field transfer function. This results in a familiar form with the PI controller in series with a second order system.
  • #1
huntflex
27
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
  • #2
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:
  • #3
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?
 
  • #4
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).
 
  • #5
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: 588
  • #6
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:
  • #7
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...
 
  • #8
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).
 
  • #9
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!
 

1. What is a PI-controller for a 1st order system?

A PI-controller is a type of feedback controller that is used to regulate the output of a 1st order system. It consists of two components - a proportional (P) term and an integral (I) term. The proportional term adjusts the output in proportion to the error between the desired and actual output, while the integral term takes into account the cumulative error over time and adjusts the output accordingly.

2. How does a PI-controller work?

A PI-controller works by continuously comparing the desired output with the actual output of a 1st order system and making adjustments to minimize the error. The proportional term provides an immediate response to the error, while the integral term helps to eliminate any steady-state error by gradually increasing or decreasing the output based on the cumulative error.

3. When is a PI-controller used?

A PI-controller is commonly used when a system needs to reach a desired output quickly and without any overshoot. It is also useful for systems with a constant disturbance or changing setpoints, as the integral term can compensate for these changes and maintain the desired output.

4. What are the advantages of using a PI-controller?

One of the main advantages of a PI-controller is its simplicity and ease of implementation. It also provides a stable and accurate control of the output, even in the presence of disturbances or changing setpoints. Additionally, a PI-controller can be easily tuned to achieve the desired response in a system.

5. Are there any limitations to using a PI-controller?

While a PI-controller can provide stable and accurate control, it may not be suitable for systems with large and sudden disturbances or systems that require precise control. In these cases, a more complex controller with additional components may be necessary. Additionally, improper tuning of a PI-controller can lead to oscillations, overshoot, or other undesirable responses in the system.

Similar threads

  • Engineering and Comp Sci Homework Help
Replies
0
Views
790
  • Engineering and Comp Sci Homework Help
Replies
4
Views
2K
  • Engineering and Comp Sci Homework Help
Replies
3
Views
1K
  • Engineering and Comp Sci Homework Help
Replies
6
Views
1K
  • Engineering and Comp Sci Homework Help
Replies
3
Views
1K
  • Engineering and Comp Sci Homework Help
Replies
1
Views
1K
  • Engineering and Comp Sci Homework Help
Replies
1
Views
821
  • Engineering and Comp Sci Homework Help
Replies
10
Views
3K
  • Engineering and Comp Sci Homework Help
Replies
4
Views
2K
  • Engineering and Comp Sci Homework Help
Replies
1
Views
798
Back
Top