Help can I choose the correct settling time for my system? (Beginner question)

58 views (last 30 days)
Hello, everyone
First of all, I'm an electronics degree student and a total beginner in control system design.
My teacher has assigned our class different plants to adapt with a controller, by using Control System Designer, to requirements that we have to choose and, for the settling time, she gave us a tip by saying "look at the plant to determine the controller's settling time".
All my classmates have determined it by calculating the fedback plant transfer function settling time and using it as a reference. However, my plant, a satellite orientation system, has the following transfer function:
1
--------
0.33 s^2
Resulting in an oscillating system with infinite settling time when it is fed-back.
I was able to determine the rest of the parameters of the controller by myself, thinking about what would be necessary for the system to work correctly, but I am completely lost in this regard.
I'd like to have more insight on this issue not only to finish my schoolwork but to know what criteria do I have to follow when I have to choose the parameters of a controller by myself in the future.
Best regards.

Answers (1)

albara
albara on 29 Apr 2023
It sounds like you have a second-order plant with the transfer function:
G(s) = 1 / (0.33 * s^2)
As you mentioned, this plant represents an oscillating system with no damping, which results in infinite settling time when used in a feedback loop. To achieve a desired settling time, you'll need to add damping to the system by designing an appropriate controller.
One common approach to control such a system is to use a Proportional-Derivative (PD) or Proportional-Integral-Derivative (PID) controller. A PD controller can add the necessary damping to achieve a desired settling time.
A PD controller has the transfer function:
C(s) = K_p + K_d * s
where K_p is the proportional gain and K_d is the derivative gain. For a PID controller, you would also have an integral gain term (K_i / s). However, for this particular system, a PD controller should be sufficient.
To choose the controller gains, you can use the following guidelines:
  1. Start with a small value of K_p (proportional gain) and increase it until the system has a reasonable transient response (overshoot and settling time). You can use the rule-of-thumb that a higher K_p will result in a faster response but may cause more overshoot.
  2. Increase the K_d (derivative gain) to add damping to the system. A larger K_d value will decrease overshoot and settling time. However, too large a value can cause the system to become overdamped and slow to respond.
  3. Use the Closed-Loop Transfer Function T(s) = G(s) * C(s) / (1 + G(s) * C(s)) to analyze the closed-loop system's behavior. You can then examine the step response and observe how the settling time changes with different values of K_p and K_d.
  4. To meet the desired settling time, iterate the process of tuning K_p and K_d until the closed-loop system achieves the desired performance.
Keep in mind that these guidelines are just a starting point, and you may need to adjust the gains further depending on the specific requirements of your system. In the future, when you have to choose the parameters of a controller, you can follow similar guidelines depending on the type of controller being used (e.g., PI, PD, PID, etc.) and the system's characteristics. Ultimately, control system design is an iterative process that requires understanding of the system's behavior and the goals of the control strategy.
Waiting for your feedback
Important: There may be some mistakes in this answer Experts can tell if there are any mistakes
  4 Comments
Daniel Muñiz
Daniel Muñiz on 29 Apr 2023
Moved: John D'Errico on 29 Apr 2023
Hello, I've opened the Control System Designer window but I cannot find anything that says "New" to click on in order to create the compensator. Do you know where can it be?
Thank you
albara
albara on 29 Apr 2023
Moved: John D'Errico on 29 Apr 2023
Control System Designer has a slightly different interface for creating and modifying compensators. Here's the updated procedure to create a compensator:
  1. First, define your plant transfer function in the MATLAB workspace. For your system, it would be:
s = tf('s');
G = 1 / (0.33 * s^2);
2- Launch Control System Designer by typing the following in the MATLAB command window:
controlSystemDesigner('rlocus', G);
This command will open Control System Designer with a root locus plot of your plant transfer function.
  1. In the Control System Designer window, go to the "Architecture" tab and click on "Edit Architecture." This will open the "Edit Architecture" window.
  2. In the "Edit Architecture" window, you can define your control system architecture. The default architecture is a single-input, single-output feedback system with a compensator 'C' in the forward path. This should work for your system.
  3. Click "OK" to close the "Edit Architecture" window. You will now see the compensator 'C' in the "Tuned Blocks" section of the Control System Designer window.
  4. To edit the compensator 'C,' click on it in the "Tuned Blocks" section. This will open the "Block Editor" window for the compensator.
  5. In the "Block Editor" window, you can define the transfer function for your PID controller. For example, you can start with a simple proportional controller with K_p = 1 by entering "1" in the "Gain" field.
  6. Click "OK" to save the compensator configuration.
Now you have configured a simple proportional controller in Control System Designer. You can iteratively update the controller's transfer function by editing the compensator 'C' in the "Tuned Blocks" section as needed. You can also use the various analysis plots (e.g., Bode, root locus, step response) to help with tuning the controller gains.
I hope this clears up the confusion. Let me know if you have any more questions!

Sign in to comment.

Tags

Products


Release

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!