Sie sind auf Seite 1von 39

Dynamic Response

Unit step signal:


1
u (t ) u s (t )
s
Step response: y(s)=H(s)/s, y(t)=L-1{H(s)/s}

Time domain response specifications

Defined based on unit step response


Defined for closed-loop system
H s Y s
b s bm s m L b1s b0
U s H s n
a s s L a1s a0
1
U s Y s H s
1
s s
By final value theorem
b0
yss lim y t lim sY s lim H s
t s 0 s 0 a0
In MATLAB: num = [ .. .. .. .. ]; den=[];
b0 = num(end);
a0 = den(end);
yss=b0/a0

ess 1 yss
Other specs need to be computed from simulation

To have accurate time, need to have fine resolution in t.


One solution:
Use Matlab to get total time:
[y, t] = step();
T = t(end);
Then create a t vector with sufficient resolution:
t = (0 : T/300 : T);
Finally, use this t vector as input to step function:
y = step(, t);

Then use this new t and new y in all computation of specs.


For example:

t_out = t(abs(y yss) >= tol);


ts=t_out(end);

ymax = max(y);
tp = t(y = ymax);

t50 = t(y >= 0.5*yss);


td=t50(1);
Mp=15%

yss = 0.8
ess = 0.2

tp= 0.9

td0.35

10%yss tr0.45
ts =2.15
tp=0.35

O.S.=0.4
ts0.92
Mp=40%
yss=1
ess=0

td0.2

tr0.1
Transient Response

First order system transient response


Step response specs and relationship to pole
location
Second order system transient response
Step response specs and relationship to pole
location
Effects of additional poles and zeros
Prototype first order system
1 p
Consider : H ( s )
s 1 s p
Y ( s) H ( s) U ( s) E 1 Y(s)
U(s)
E ( s) U ( s) Y ( s) + s
-
s
[1 H ( s )]U ( s ) U (s)
s 1

1
Let U ( s ) , i.e. , u (t ) u s (t ) unit step
s
1 1 1 1
Y ( s)
s (s 1) s s 1 s s p
t

y (t ) u s (t ) e u s (t ) u s (t ) e pt u s (t )

First order system step resp

Normalized time t/
Prototype first order system

No overshoot, tp=inf, Mp = 0
Yss=1, ess=0
Settling time ts = [-ln(tol)]/p
Delay time td = [-ln(0.5)]/p
Rise time tr = [ln(0.9) ln(0.1)]/p

All times proportional to 1/p=


Larger p means faster response
The error signal: e(t) = 1-y(t)=e -ptus(t)

Normalized time t/
1
is called the time constant.
p
In every seconds, the error is reduced by 63.2%
1 p s 1
E s u y
s s s p s s p s p
t

e t e pt u s t e u s t

1
e e 0.368
1

e
1
e 2 e 2
0.368 22

e
General First-order system

k s z k z p
H s k
s p s p
We know how this responds to input

Step response starts at y(0+)=k, final value kz/p

1/p = is still time constant; in every , y(t) moves


63.2% closer to final value
Unit ramp response:
1
u t r t 2
s
p 1 p 1
Y s H s U s 2
s p s 2
s ps s
can use " step" to get ramp response by
multiplying the denominator by s.
p 1 2 1
Y s 2 2 ,
s s p s s s 1 p
t

y t r t u s t e u s t


t

r t 1 e us t


e t error
e t r t y t

t

1 e 1 t

lim e t
t

e This is the steady - state tracking error.

Note: In step response, the steady-state


tracking error = zero.
Unit impulse response:
u t t U s 1
p
Y s H s U s
s p t
1
h t y t pe u s t e u s t
pt


Prototype 2nd order system:
n2
H s 2
s 2 n s n2
n : Undamped natural frequency
: Damping ratio
n : Damping factor
d 1 2 n : Damped natural frequency
1
Q : Quality factor
2
1 : Critically damped
1 : Over damped
0 1 : Under damped

0 : Unstable
Don't consider
0 : Oscillating forever
Unit step responses for various
1.8
=0.1
2 2 2
G(s)=w n/(s +2w ns+w n)
1.6
=0.2

1.4 =0.3
=0.4
1.2 =0.5
=0.6
1 =0.7

0.8 =1

0.6
=2

0.4
=5
0.2
=10

0
0 2 4 6 8 10 12 14 16
w nt (radians)
xi=[0.7 1 2 5 10 0.1 0.2 0.3 0.4 0.5 0.6];
x=['\zeta=0.7'; '\zeta=1 '; '\zeta=2 '; '\zeta=5 '; '\zeta=10 '; '\zeta=0.1'; '\zeta=0.2';
'\zeta=0.3'; '\zeta=0.4'; '\zeta=0.5'; '\zeta=0.6'];
T=0:0.01:16;
figure;
hold;
for k=1:length(xi)
n=[1];
d=[1 2*xi(k) 1];
y=step(n,d,T);
plot(T,y);
if xi(k)>=0.7
text(T(290),y(310),x(k,:));
else
text(T(290),max(y)+0.02,x(k,:));
end
grid;
end
text(9,1.65,'G(s)=w_n^2/(s^2+2\zetaw_ns+w_n^2)')
title('Unit step responses for various \zeta')
xlabel('w_nt (radians)')
Can use \omega in stead of w
annotation

Create annotations including lines, arrows, text arrows, double arrows, text boxes,
rectangles, and ellipses

xlabel, ylabel, zlabel

Add a text label to the respective axis

title

Add a title to a graph

colorbar

Add a colorbar to a graph

legend

Add a legend to a graph


For example:

help annotation explains how to use the annotation command to add text, lines,
arrows, and so on at desired positions in the graph

ANNOTATION('textbox',POSITION) creates a textbox annotation at the


position specified in normalized figure units by the vector POSITION

ANNOTATION('line',X,Y) creates a line annotation with endpoints


specified in normalized figure coordinates by the vectors X and Y

ANNOTATION('arrow',X,Y) creates an arrow annotation with endpoints


specified

Example:

ah=annotation('arrow',[.9 .5],[.9,.5],'Color','r');

th=annotation('textarrow',[.3,.6],[.7,.4],'String','ABC');
Unit step response:
1
u t us t U s
s
n2 1
Y s 2
s 2 n s n s2

1) Under damped, 0 < < 1


Let d n 1 2 , n

s 2 n s s n n2 2n2
2 2 2
n

s d2
2

n2 1 1 s
Y s
s d s s s d s 2 d2
2 2 2 2
cos = =-Re/|root|
d =Im
= cos-1(Re/|root|)
= tan-1(-Re/Im)

=-Re
t
y t us t e t
cos d t u s t e sin d t u s t
d

us t e t
cos d t sin d t u s t
d

e t 1 2
us t sin d t tan 1 u t
1 2 s

error : e t u s t y t

e t 1 2
e t sin d t tan 1 u t
1- 2 s

To find y(t) max:
dy t set e t d e t
0 sin cos
dt 1 2 1 2
d e t
cos sin
1 2 1 2

d e t 1 2
tan 1

sin
2

1 2

d e t
sin d t
1 2
sin d t 0
d t k
d t : y t 1 e d cos
1 e d
t
d

1 2
1 e 1
k



y t 1 e 1 1
k 1
2
d t k :


when d t , y t reaches abs. max

t p is called peak time
d

1 2
M p ymax 1 e is overshoot


tp Mp e 1 2
100%
d
40
z=0.3:0.1:0.8;
35 Mp=exp(-pi*z./sqrt(1-z.*z))*100
plot(z,Mp)
30 grid;
Percentage Overshoot Mp

25
Then preference -> figure
20 ->powerpoint -> apply to figure
Then copy figure
15

10

0
0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
damping ratio


Percentage overshoot M p e 1 2 100%
when 0 1, y t is oscillatory, and it overshoots to 1.

but y lim y t
t
0
e t
lim u s t sin u s t
t
1- 2

1 yss steady - state value

ess 1 y ss steady - state error

0
For settling time : y t yss tol yss

e t
sin L 1 t tol 1
1 2

e t
It suffices to have : tol
1 2

i.e. e t tol 1 2


t ln tol 1 2
t ln tol 1
s
2

For tol 1% 0.01,

ts
4.6 ln 1 2

4.75
0.5 : ts

4.94
0.7 : ts

5
tol 0.01 : ts is a safer approx.

4
tol 0.02 : ts

3
tol 0.05 : ts

For 5% tolerance

Ts ~= 3/n
Delay time is not used very much
For delay time, solve y(t)=0.5 and solve for t
t
y t us t e t
cos d t u s t e sin d t u s t
d
For rise time, set y(t) = 0.1 & 0.9, solve for t
This is very difficult
Based on numerical simulation:
1.5 2.5 2
Rise time : tr
n n
Useful
Range
td=(0.8+0.9)/n
Useful
Range
tr=4.5()/n

Or about 2/wn
Putting all things together:

tp 1 2
tp = = y 1 e 1 e
d n 1 2 max


Delay time :
1 2
Overshoot : Mp e 0.8 0.9 1.4
td
n n
1 2
percentage : e 100%

4.5( 0.2) 1.5 2.5 2


Rise time : tr
n n n

Settling time:
ts

ln tol 1 2 ln(tol ) 3, or 4, or 5

Das könnte Ihnen auch gefallen