Motor for velocity controlcacsd2.sakura.ne.jp/wp/wp-content/uploads/2015/11/lec011...x0=1; t0=0;...

23
Motor for velocity control J ˙ ω + c ω = K T i 1 / 23

Transcript of Motor for velocity controlcacsd2.sakura.ne.jp/wp/wp-content/uploads/2015/11/lec011...x0=1; t0=0;...

Page 1: Motor for velocity controlcacsd2.sakura.ne.jp/wp/wp-content/uploads/2015/11/lec011...x0=1; t0=0; t=0:0.01:5; x=ode(x0,t0,t,f); plot(t,x),mtlb_grid 12/23 Step response, Impulse response

Motor for velocity control

Jω + cω = KT i

1 / 23

Page 2: Motor for velocity controlcacsd2.sakura.ne.jp/wp/wp-content/uploads/2015/11/lec011...x0=1; t0=0; t=0:0.01:5; x=ode(x0,t0,t,f); plot(t,x),mtlb_grid 12/23 Step response, Impulse response

State-space representation

▶ motion equation

Jω = KT i − cω ⇒ ω = −c

Jω +

KT

Ji

▶ equilibrium state

0 = ω∗ = −c

Jω∗ +

KT

Ji∗ ⇒ ω∗ =

KT

ci∗

▶ state equation

ω − ω∗︸ ︷︷ ︸x

= −c

J︸︷︷︸a

(ω − ω∗)︸ ︷︷ ︸x

+KT

J︸︷︷︸b

(i − i∗)︸ ︷︷ ︸u

▶ output equationω − ω∗︸ ︷︷ ︸

y

= 1︸︷︷︸c

(ω − ω∗)︸ ︷︷ ︸x

2 / 23

Page 3: Motor for velocity controlcacsd2.sakura.ne.jp/wp/wp-content/uploads/2015/11/lec011...x0=1; t0=0; t=0:0.01:5; x=ode(x0,t0,t,f); plot(t,x),mtlb_grid 12/23 Step response, Impulse response

Response of 1st-order system

Given the input u,

what response y is expected?

x=0 means an equilibrium state.

3 / 23

Page 4: Motor for velocity controlcacsd2.sakura.ne.jp/wp/wp-content/uploads/2015/11/lec011...x0=1; t0=0; t=0:0.01:5; x=ode(x0,t0,t,f); plot(t,x),mtlb_grid 12/23 Step response, Impulse response

Interrelation among responses

4 / 23

Page 5: Motor for velocity controlcacsd2.sakura.ne.jp/wp/wp-content/uploads/2015/11/lec011...x0=1; t0=0; t=0:0.01:5; x=ode(x0,t0,t,f); plot(t,x),mtlb_grid 12/23 Step response, Impulse response

Stability of 1st-order system

Disturbed equilibrium state x(0) = 0

can return to x = 0?

5 / 23

Page 6: Motor for velocity controlcacsd2.sakura.ne.jp/wp/wp-content/uploads/2015/11/lec011...x0=1; t0=0; t=0:0.01:5; x=ode(x0,t0,t,f); plot(t,x),mtlb_grid 12/23 Step response, Impulse response

1st-order unforced system (c=1)

▶ 1st-order unforced systemx(t) = ax(t)

▶ responsex(t) = eatx(0)

▶ asymptotically stablea < 0 ⇒ x(t) → 0 (t → ∞)

▶ stable but not asymptotically stablea = 0 ⇒ x(t) → x(0) (t → ∞)

▶ unstablea > 0 ⇒ x(t) → ∞ (t → ∞)

6 / 23

Page 7: Motor for velocity controlcacsd2.sakura.ne.jp/wp/wp-content/uploads/2015/11/lec011...x0=1; t0=0; t=0:0.01:5; x=ode(x0,t0,t,f); plot(t,x),mtlb_grid 12/23 Step response, Impulse response

Specify a for #1,#2,#3

7 / 23

Page 8: Motor for velocity controlcacsd2.sakura.ne.jp/wp/wp-content/uploads/2015/11/lec011...x0=1; t0=0; t=0:0.01:5; x=ode(x0,t0,t,f); plot(t,x),mtlb_grid 12/23 Step response, Impulse response

Using SCILAB (resp3a.sce)

function dx=f(t,x),

dx=a*x,

endfunction

a=-1;

x0=1; t0=0; t=0:0.1:5;

x=ode(x0,t0,t,f);

plot(t,x), mtlb_grid

8 / 23

Page 9: Motor for velocity controlcacsd2.sakura.ne.jp/wp/wp-content/uploads/2015/11/lec011...x0=1; t0=0; t=0:0.01:5; x=ode(x0,t0,t,f); plot(t,x),mtlb_grid 12/23 Step response, Impulse response

Response of 1st-order system (c=1)

▶ 1st-order system: x(t) = ax(t) + bu(t)

x(t) = eatx(0) +

∫ t

0

ea(t−τ)bu(τ) dτ

▶ solving x(t) = ax(t) + bu(t)e−at(x(t)− ax(t)) = e−atbu(t)

⇒ e−at x(t)− ae−atx(t) = e−atbu(t)⇒ d

dt(e−atx(t)) = e−atbu(t)

⇒[e−atx(t)

]t′0=

∫ t′

0

e−atbu(t) dt

⇒ e−at′x(t ′)− x(0) =

∫ t′

0

e−atbu(t) dt

⇒ x(t ′) = eat′x(0) + eat

′∫ t′

0

e−atbu(t) dt

9 / 23

Page 10: Motor for velocity controlcacsd2.sakura.ne.jp/wp/wp-content/uploads/2015/11/lec011...x0=1; t0=0; t=0:0.01:5; x=ode(x0,t0,t,f); plot(t,x),mtlb_grid 12/23 Step response, Impulse response

Response of 1st-order system

y(t) = ceatx(0)︸ ︷︷ ︸zero−input resp.

+

∫ t

0

g(t − τ )u(τ ) dτ︸ ︷︷ ︸zero−state resp.

impulse response : g(t) = ceatb

10 / 23

Page 11: Motor for velocity controlcacsd2.sakura.ne.jp/wp/wp-content/uploads/2015/11/lec011...x0=1; t0=0; t=0:0.01:5; x=ode(x0,t0,t,f); plot(t,x),mtlb_grid 12/23 Step response, Impulse response

Which is the zero-input response?

11 / 23

Page 12: Motor for velocity controlcacsd2.sakura.ne.jp/wp/wp-content/uploads/2015/11/lec011...x0=1; t0=0; t=0:0.01:5; x=ode(x0,t0,t,f); plot(t,x),mtlb_grid 12/23 Step response, Impulse response

Using SCILAB (resp3a.sce)

function dx=f(t,x),

dx=a*x+b*u(t),

endfunction

function ut=u(t),

ut=sin(10*t),

endfunction

a=-1; b=1;

x0=1; t0=0; t=0:0.01:5;

x=ode(x0,t0,t,f);

plot(t,x),mtlb_grid

12 / 23

Page 13: Motor for velocity controlcacsd2.sakura.ne.jp/wp/wp-content/uploads/2015/11/lec011...x0=1; t0=0; t=0:0.01:5; x=ode(x0,t0,t,f); plot(t,x),mtlb_grid 12/23 Step response, Impulse response

Step response, Impulse response

▶ stable 1st-order system:

x(t) = − 1

Tx(t) +

K

Tu(t)

▶ impluse response: g(t) =K

Te−

1T t

▶ step response:

x(t) =

∫ t

0

K

Te−

1T (t−τ) · 1 dτ = K (1− e−

1T t)

▶ gain constant/steady state gain: K = x(∞)

▶ time constant (t s.t. x(t) = (1− 1e )K ): T

▶ relationship:d

dtx(t) = g(t)

13 / 23

Page 14: Motor for velocity controlcacsd2.sakura.ne.jp/wp/wp-content/uploads/2015/11/lec011...x0=1; t0=0; t=0:0.01:5; x=ode(x0,t0,t,f); plot(t,x),mtlb_grid 12/23 Step response, Impulse response

Step responses

14 / 23

Page 15: Motor for velocity controlcacsd2.sakura.ne.jp/wp/wp-content/uploads/2015/11/lec011...x0=1; t0=0; t=0:0.01:5; x=ode(x0,t0,t,f); plot(t,x),mtlb_grid 12/23 Step response, Impulse response

Using SCILAB (resp4a.sce)

function dx=f(t,x),

dx=a*x+b*u(t),

endfunction

function ut=u(t),

ut=1,

endfunction

a=-1; b=1;

x0=1; t0=0; t=0:0.01:5;

x=ode(x0,t0,t,f);

plot(t,x),mtlb_grid

15 / 23

Page 16: Motor for velocity controlcacsd2.sakura.ne.jp/wp/wp-content/uploads/2015/11/lec011...x0=1; t0=0; t=0:0.01:5; x=ode(x0,t0,t,f); plot(t,x),mtlb_grid 12/23 Step response, Impulse response

Impulse responses

16 / 23

Page 17: Motor for velocity controlcacsd2.sakura.ne.jp/wp/wp-content/uploads/2015/11/lec011...x0=1; t0=0; t=0:0.01:5; x=ode(x0,t0,t,f); plot(t,x),mtlb_grid 12/23 Step response, Impulse response

Using SCILAB (resp2a.sce)

function dx=f(t,x),

dx=a*x,

endfunction

a=-1; b=1;

x0=b; t0=0; t=0:0.1:5;

x=ode(x0,t0,t,f);

plot(t,x), mtlb_grid

17 / 23

Page 18: Motor for velocity controlcacsd2.sakura.ne.jp/wp/wp-content/uploads/2015/11/lec011...x0=1; t0=0; t=0:0.01:5; x=ode(x0,t0,t,f); plot(t,x),mtlb_grid 12/23 Step response, Impulse response

Laplace Transformation

▶ Laplace Transformation

x(s) :=

∫ ∞

0

x(t)e−st dt

x(t) x(s) x(t) x(s)

δ(t) 1 1 1s

t 1s2 tn n!

sn+1

eat 1s−a eatx(t) x(s − a)

sinωt ω2

s2+ω2 cosωt ss2+ω2

x(t) sx(s)− x(0)∫ t

0 x(τ) dτ1s x(s)

x(0) lims→∞ sx(s) x(∞) lims→0 sx(s)▶ time lag y(t) = x(t − L)

y(s) =

∫ ∞

0

x(t − L)e−st dt = e−sLx(s)18 / 23

Page 19: Motor for velocity controlcacsd2.sakura.ne.jp/wp/wp-content/uploads/2015/11/lec011...x0=1; t0=0; t=0:0.01:5; x=ode(x0,t0,t,f); plot(t,x),mtlb_grid 12/23 Step response, Impulse response

Frequency response

▶ stable 1st-order system: x(t) = − 1

Tx(t) +

K

Tu(t)

▶ zero-state resp. in the case of u(t) = sinωt:x(t) =

K√1+(ωT )2

(sin(ωt − tan−1 ωT ) + e−1Tt sin(tan−1 ωT ))

⇓x(t) ≃ K√

1 + (ωT )2︸ ︷︷ ︸|g(jω)|

sin(ωt − tan−1 ωT )︸ ︷︷ ︸∠g(jω)

▶ transfer function:

x(s)− x(0) = − 1

Tx(s) +

K

Tu(s) ⇒ g(s) =

x(s)

u(s)=

K

Ts + 1▶ frequency response: gain |g(jω)|, phase ∠g(jω)▶ bandwidth (ωb s.t.|g(jωb)| = |g(j0)|√

2): ωb =

1T

19 / 23

Page 20: Motor for velocity controlcacsd2.sakura.ne.jp/wp/wp-content/uploads/2015/11/lec011...x0=1; t0=0; t=0:0.01:5; x=ode(x0,t0,t,f); plot(t,x),mtlb_grid 12/23 Step response, Impulse response

Derivation

Using

∫eax sin bx dx =

eax

a2 + b2(a sin bx − b cos bx),

x(t) =

∫ t

0ea(t−τ)b sinωτ dτ = eatb

∫ t

0e−aτ sinωτ dτ

= eatb[e−aτ

a2 + ω2(−a sinωτ − ω cosωτ)]t0

=eatb

a2 + ω2(e−at(−a sinωt − ω cosωt) + ω)

=b√

a2 + ω2(sinωt

−a√a2 + ω2

− cosωtω√

a2 + ω2+ e+at ω√

a2 + ω2)

=b√

a2 + ω2(sinωt cos θ − cosωt sin θ + e+at sin θ)

=b√

a2 + ω2(sin(ωt − θ) + e+at sin θ) (θ = tan−1 ω

−a)

=b√

a2 + ω2(sin(ωt + ϕ)− e+at sinϕ) (ϕ = −θ)

20 / 23

Page 21: Motor for velocity controlcacsd2.sakura.ne.jp/wp/wp-content/uploads/2015/11/lec011...x0=1; t0=0; t=0:0.01:5; x=ode(x0,t0,t,f); plot(t,x),mtlb_grid 12/23 Step response, Impulse response

Bode Diagram

21 / 23

Page 22: Motor for velocity controlcacsd2.sakura.ne.jp/wp/wp-content/uploads/2015/11/lec011...x0=1; t0=0; t=0:0.01:5; x=ode(x0,t0,t,f); plot(t,x),mtlb_grid 12/23 Step response, Impulse response

Using SCILAB (resp5a.sce)

function g=f(a,b,w),

g=b./(%i*w-a),

endfunction

a=-1; b=1;

w=logspace(-1,1);

g=f(a,b,w);

ga=20*log10(abs(g));

ph=180/%pi*atan(imag(g),real(g));

subplot(211),plot2d(w,ga,logflag=’ln’),mtlb_grid

subplot(212),plot2d(w,ph,logflag=’ln’),mtlb_grid

22 / 23

Page 23: Motor for velocity controlcacsd2.sakura.ne.jp/wp/wp-content/uploads/2015/11/lec011...x0=1; t0=0; t=0:0.01:5; x=ode(x0,t0,t,f); plot(t,x),mtlb_grid 12/23 Step response, Impulse response

Problem LEC01

For x(x) = ax(t) + bu(t), derive the time responsex(t) when the the following input is specified.

u(t) =

{1Tst (0 ≤ t ≤ Ts)

1 (t ≥ Ts)

23 / 23