Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

pole-zero doublet - poor settling time- MATLAB

Status
Not open for further replies.

6sbtixjo

Junior Member level 1
Joined
Jan 1, 2012
Messages
18
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,430
Consider, a-n open loop transfer function when connected in a unity gain f/b loop, and having 2 poles (p1 and p2). Now to improve the relative stability, suppose a zero z is introduced at p2, the system exhibits first order transient to step. Say if "they are not exactly cancelled, it makes the settling time poor". But when i tried a simulation in MATLAB, i couldnt infer the result. I tried this piece of code :

sys1=tf([1],[1 3 2]);
stepinfo(sys1)

sys2=tf([1 0.9],[1 3 2]);
stepinfo(sys2)

I expected the system sys2, to have a poorer settling time than sys1, but it is much better. So have i got anything wrong here ?
Also plz give me an intutive way to understand the statement "Improper cancellation of pole-zero, affects the settling time".

Plz help me out...
 

Hi 6sbtixjo,

I see your question. There is an issue when you connect an open loop TF with negative feedback. the catch is that any form of open loop analysis is no more of any use because of the f/b. Hence to get a full picture you need to close the loop and obtain the resultant function.

Stepinfo function DOES NOT close the loop for you. it barely gives you the output for the open loop function

You could draw the open loop root locus and notice that there would always be a root close to the pole that needed to be cancelled (as a result of improper cancellation of the poles). I worked out the closed loop poles for both the systems here

sys1 = [1]/[1 3 3] which has roots at -1.5 +/- 0.866j

sys2 = [1 0.9]/[1 4 2.9] has roots at -3.0488, -0.9512

you notice that the first system is oscillatory and hence has a higher settling time than the second system. Hence it seems like the second is a better system. I hope that helped.

Cheers
K

- - - Updated - - -

Hi 6sbtixjo,

I see your question. There is an issue when you connect an open loop TF with negative feedback. the catch is that any form of open loop analysis is no more of any use because of the f/b. Hence to get a full picture you need to close the loop and obtain the resultant function.

Stepinfo function DOES NOT close the loop for you. it barely gives you the output for the open loop function

You could draw the open loop root locus and notice that there would always be a root close to the pole that needed to be cancelled (as a result of improper cancellation of the poles). I worked out the closed loop poles for both the systems here

sys1 = [1]/[1 3 3] which has roots at -1.5 +/- 0.866j

sys2 = [1 0.9]/[1 4 2.9] has roots at -3.0488, -0.9512

you notice that the first system is oscillatory and hence has a higher settling time than the second system. Hence it seems like the second is a better system. I hope that helped.

Cheers
K
 

I just un-installed my MatLAB otherwise i would have checked it properly.

Adding a zero z will change the root locus plot of the system. Its may be the reason that when we convert open-loop system to close loop. z will be introduced in denominator. Which will change the response of the system. Plot your system here

https://users.ece.gatech.edu/bonnie/book/OnlineDemos/InteractiveRootLocus/applet.html

SYSTEM1: Plot 1 in nominator, You'll see the poles were imaginary creating unerdamped response----->ts= ln(.02)/zeta*wn {since 0<zeta<1 ------->More Ts}
SYSTEM2: again plot with 1 .09, you can see poles are only on X-axis i.e (real and repeated), overdamped response {zeta>1-----> less Ts}

CONCLUSION:
System1 is poor than system two. The problem in your code is First you need to convert your open-loop TF to Close-loop TF.
For that use cl_sys1=cloop(ol_sys1); then you can check step response.

Good Luck!
 

Thanks both of you... i got your point. But shouldnt the system sys2 have a poorer settling time, as the zero does not cancel the pole exactly ?

- - - Updated - - -

Thanks both of you... i got your point. But shouldnt the system sys2 have a poorer settling time, as the zero does not cancel the pole exactly ?
 

No it won't. According to the formula ts= ln(.02)/zeta*wn

SYSTEM2: again plot with 1 .09, you can see poles are only on X-axis i.e (real and repeated), overdamped response {zeta>1-----> less Ts}
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top