Responses of a transfer function on MATLAB

Click For Summary
SUMMARY

The discussion focuses on analyzing the stability of a transfer function in MATLAB, specifically the system represented by the equation \(\frac{3s+0.5}{s^3 + 3s^2 + 8s}\). Users plot the step and ramp responses using MATLAB code, revealing instability due to a pole at the origin. The conversation concludes that the system can be stabilized with unit feedback, and emphasizes that the response to a ramp input will diverge unless properly managed.

PREREQUISITES
  • Understanding of transfer functions and their stability criteria
  • Familiarity with MATLAB's Control System Toolbox
  • Knowledge of root locus techniques for stability analysis
  • Concept of steady-state error in control systems
NEXT STEPS
  • Explore MATLAB's Control System Toolbox for advanced functions
  • Learn about feedback control systems and their impact on stability
  • Investigate methods to calculate steady-state error for different inputs
  • Study the implications of poles and zeros on system behavior
USEFUL FOR

Control engineers, MATLAB users, and students studying control systems who need to analyze system stability and response characteristics.

geft
Messages
144
Reaction score
0
I'm given the following system:

\frac { 3s+0.5 }{ { s }^{ 3 }+3{ s }^{ 2 }+8s }

I'm supposed to find the steady state error of the system by plotting the step and ramp responses, and then find the value when s tends to infinity.

Here is the MATLAB code:

Code:
sys1 = 3 + tf(0.5.*[1], [1 0]);
sys2 = tf([1], [1 3 8]);
sys = sys1*sys2

subplot(1, 2, 1)
step(sys)

sys3 = tf([1], [1 0]);
subplot(1, 2, 2)
step(sys*sys3)
title('Ramp Response')

figure
rlocus(sys*sys3)

Here's the result: http://i.imgur.com/vXoXV.png

As can be seen, the step and ramp responses are unstable. All the roots are on the left of the imaginary axis, so the system must be stable. I'm not sure where I went wrong.
 
Physics news on Phys.org
geft said:
I'm given the following system:

\frac { 3s+0.5 }{ { s }^{ 3 }+3{ s }^{ 2 }+8s }

I'm supposed to find the steady state error of the system by plotting the step and ramp responses, and then find the value when s tends to infinity.

Here is the MATLAB code:

Code:
sys1 = 3 + tf(0.5.*[1], [1 0]);
sys2 = tf([1], [1 3 8]);
sys = sys1*sys2

subplot(1, 2, 1)
step(sys)

sys3 = tf([1], [1 0]);
subplot(1, 2, 2)
step(sys*sys3)
title('Ramp Response')

figure
rlocus(sys*sys3)

Here's the result: http://i.imgur.com/vXoXV.png

As can be seen, the step and ramp responses are unstable. All the roots are on the left of the imaginary axis, so the system must be stable. I'm not sure where I went wrong.

Your system has a pole at the origin. So, it is unstable. With a unit feedback it can be made stable, depending of the gain (your root locus graph).
 
So it's only stable if it's a closed loop? Thanks, that solved the unit step part.

What about the ramp response? How do I make it stable?
 
Last edited:
The response of a stable system to a ramp input is a ramp, so it tends to infinity.
If you have a pole at the origin, the response to a ramp will be a parabola, as your graph shows.
 
Many thanks for the help.
 

Similar threads

Replies
2
Views
1K
  • · Replies 12 ·
Replies
12
Views
3K
Replies
0
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 4 ·
Replies
4
Views
5K