background image

Jacek Kabziński

Automatyka i sterowanie

 

————————————————————————————————————————

background image

 

2 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

 

Silnik serwo 

0

d

dt

d

J

( t ) B ( t ) M ( t )

dt

θ ω

ω τ

ω

=

=

 

( t ) K i( t ) K i( t )

τ

τ

ϕ

=

=

 

1

m

m

m

di

u( t ) L

Ri( t ) e ( t )

dt

e ( t ) K

( t ) K

( t )

ϕω

ω

=

+

+

=

=

 

silnik 

Układ pomiaru i 
sterowania 

Wzmacniacz 
mocy 

θ

a

(t) 

r(t)

e(t)

θ (t) 

u(t) 

r(t)

θ

a

(t) 

zakłócenie

Uwzględnia maszynę roboczą 

background image

 

3 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

0

1

( s )

( s )

s

Js ( s ) K i( s ) B ( s ) M ( s )

τ

θ

ω

ω

ω

=

=

 

m

u( s ) Lsi( s ) Ri( s ) K

( s )

ω

=

+

+

 

(

)

(

)

1

1

1

m

m

R

i( s )

u( s ) K

( s )

u( s ) K

( s )

L

Ls R

s

R

ω

ω

=

=

+

+

 

(

)

(

)

0

0

1

1

1

B

( s )

K i( s ) M ( s )

K i( s ) M ( s )

J

Js B

s

B

τ

τ

ω

=

=

+

+

 

 

background image

 

4 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

 
 
 
 
 
 
 
 
 
 
 

 

0

1

u

m

m

K

K

RB

L

T

J

K K

JRs RB K K

s

B

RB

τ

τ

ω

τ

τ

≈ ⇒

=

=

+

+

+ +

 

 

1

1

R

L

s

R

+

K

τ

1

1

B

J

s

B

+

0

M

m

K

1

s

θ

u

ω

background image

 

5 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

 
 
 
 
 
 
 
 
 
 
 

(

)

1

1

1

1

1

1

1

1

1

1

1

1

u

m

m

m

R

B

K

L

J

K

s

s

K

R

B

RB

T

L

J

K K

L

s

s

s

JRs RB

K K

R

B

K

K

R

B

RB

R

L

J

s

s

R

B

τ

τ

τ

ω

τ

τ

τ

+

+

=

=

=

⎞⎛

+

+ +

+

+

+

⎟⎜

+

⎠⎝

+

+

 

(

)

0

u

m

K

L ~

T

JRs RB

K K

τ

ω

τ

=

+

+

 

C( s )

m

K

JRs RB K K

τ

τ

+

+

0

M

K M

1

1

s

θ

u

p

K

a

θ

r

N

background image

 

6 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

(

)

0

0

a

u

m

K

L

T

JRs RB K K s

θ

τ

≈ ⇒

=

+

+

 

 
 
 
 
 
 
 
 
 
 
 
 

C( s )

m

K

JRs RB K K

τ

τ

+

+

0

M

K M

1

1

s

θ

u

p

K

a

θ

r

N

background image

 

7 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

(

)

0

2

4

4

1

2

3

2

1

a

u

m

K

T

s( s

)( s

)

s( s

s

)

L

s

JRs RB

K K

s

R

θ

τ

=

=

=

+

+

+ +

+

+

+

 

 
 
 
 
 
 
 
 
 
 
 
 
 

C( s )

(

)

1

m

K

L

s

JRs RB

K K

R

τ

τ

+

+

+

z

M

1

1

s

θ

u

p

K

a

θ

r

N

background image

 

8 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

0

d

dt

d

J

( t ) B ( t ) M ( t )

dt

θ ω

ω τ

ω

=

=

 

( t ) K i( t ) K i( t )

τ

τ

ϕ

=

=

 

1

m

m

m

di

u( t ) L

Ri( t ) e ( t )

dt

e ( t ) K

( t ) K

( t )

ϕω

ω

=

+

+

=

=

 

 

silnik 

Układ pomiaru i 
sterowania 

Wzmacniacz 
mocy 

θ

a

(t) 

r(t)

e(t)

θ (t) 

u(t) 

r(t)

θ

a

(t) 

zakłócenie

Uwzględnia maszynę roboczą 

background image

 

9 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

0

d

dt

d

J

K i( t ) B ( t ) M ( t )

dt

τ

θ ω

ω

ω

=

=

 

0

d

dt

d

K

B

M ( t )

i( t )

( t )

dt

J

J

J

τ

θ ω

ω

ω

=

=

 

m

di

L

K

( t ) Ri( t ) u( t )

dt

ω

= −

+

   

1

m

di

K

R

( t )

i( t )

u( t )

dt

L

L

L

ω

= −

+

 

a

p

K

θ

θ

=

 

background image

 

10 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

1

2

2

3

2

3

2

3

1

m

dx

x

dt

dx

K

B

x

x

d

dt

J

J

dx

K

R

x

x

u( t )

dt

L

L

L

τ

=

=

= −

+

   

1

1

2

2

3

3

0

1

0

0

0

0

0

1

1

0

0

m

x

x

d

B

K

x

x

u

d

dt

J

J

x

x

K

R

L

L

L

τ

⎡ ⎤

⎢ ⎥

⎡ ⎤

⎡ ⎤

⎡ ⎤

⎢ ⎥

⎢ ⎥

⎢ ⎥

⎢ ⎥

=

+

+

⎢ ⎥

⎢ ⎥

⎢ ⎥

⎢ ⎥

⎢ ⎥

⎢ ⎥

⎢ ⎥

⎢ ⎥

⎣ ⎦

⎣ ⎦

⎣ ⎦ ⎢ ⎥

⎣ ⎦

 

1

p

y K x

=

   

 

 

 

 

 

 

0 0

p

y

K

x

= ⎣

 

Ustalamy dane: 

L=0.1 
J=1 
b=(3-sqrt(5/2))/2 
R=(3-b/J)*L 
Ktau=sqrt(2*L*J-R*b) 

Km=Ktau 
Kp=4*L*J/Ktau 
L = 0.1000 
J =1 
b =0.7094 

R =0.2291 
Ktau =0.1936 
Km =0.1936 
Kp =2.0656

 

I obliczamy macierze 

background image

 

11 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

A = 
         0    1.0000         0 
         0   -0.7094    0.1936 
         0   -1.9365   -2.2906 
 

B = 
     0 
     0 
    10 
 

C = 
 
    2.0656         0         0 
D=0 

 

sprawdzamy transmitancję wyznaczonego układu 
>> 

[np, dp]=SS2TF(A,B,C,D) 

plants=tf(np, dp)

 

np = 
         0    0.0000   -0.0000    4.0000 
dp = 
    1.0000    3.0000    2.0000         0 
Transfer function: 
2.22e-015 s^2 - 4.441e-016 s + 4 
-------------------------------- 
       s^3 + 3 s^2 + 2 s 

Nie jest to oczywiście jedyna możliwość wyboru 
zmiennych stanu. Np.: 

[A1,B1,C1,D1]=tf2ss(np,dp) 

A1 = 
   -3.0000   -2.0000         0 
    1.0000         0         0 
         0    1.0000         0 
 
B1 = 
     1 
     0 
     0 
C1 =   0.0000   -0.0000    4.0000 

D1 =     0 

background image

 

12 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

Zbadajmy strukturę własną obiektu: 

[V,S]=eig(A) 

V = 
    1.0000   -0.4850    0.0740 
         0    0.4850   -0.1480 
         0   -0.7277    0.9862 
S = 
         0         0         0 
         0   -1.0000         0 
         0         0   -2.0000 

Sprawdzimy sterowalność układu 

>> Qs=[B A*B A*A*B] 

Qs = 
         0         0                1.9365 
         0       1.9365        -5.8095 
   10.0000  -22.9057    48.7171

 

background image

 

13 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

Załóżmy dostępność wszystkich zmiennych stanu 
wyznaczmy sprzężenie zwrotne od wektora stanu 
przesuwające bieguny układu zamkniętego do 
położeń podanych w wektorze p

figure 
hold on 
nsz=[] 
for i=1:2:10 
    p=-i*[1 1 1]; 
    K=acker(A,B,p); 
    Az=A-B*K; 
    plantz=SS(Az,B*K(1)/C(1),C,D); 
    step(plantz) 
    nsz=[nsz,norm(K)] 
end 

figure 
plot([1:2:10],nsz,'x') 
title('norma SZ dla bieg. potrójnego w -
p');xlabel('p')

 

background image

 

14 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

 

nsz = 
    0.7303   17.5927   72.6433  189.8392  
393.8280 

 
 
 
 
 
 
 
 
 
 
 
 
 

background image

 

15 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

Spróbujmy dołożyć jeszcze jedno całkowanie: 

% z całkowaniem 
Atyl=[A [0;0;0];-C 0] 
Btyl=[B;0] 
Qstyl=[Btyl Atyl*Btyl Atyl*Atyl*Btyl 
Atyl*Atyl*Atyl*Btyl] 
rank(Qstyl) 
p=-5*[1 1 1 1]; 
    Ktyl=acker(Atyl,Btyl,p); 
    Aztyl=Atyl-Btyl*Ktyl; 
    plantzc=SS(Aztyl,[0;0;0;1],[C 0],D); 
    figure 
    step(plantzc) 

 
Ktyl = 
  258.1989   70.1989    1.7000 -156.2500 

 

background image

 

16 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

 

background image

 

17 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

Zbudujmy obserwator: 

 Qo=[C;C*A;C*A*A] 
rank(Qo) 
p=-5*[1 1 1]; 
K=acker(A,B,p) 
Ke=acker(A',C',2*p)' 

Qo = 
    2.0656         0         0 
         0    2.0656         0 
         0   -1.4654    0.4000 
 
ans = 
     3 
K = 
   64.5497   33.3009    1.2000 
Ke = 
  1.0e+003 * 
    0.0131 
    0.1051 
    1.1224 

background image

 

18 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

 
 
 
 
 

 
 
 
 
 
 

background image

 

19 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

 

Zmienne stanu układu i obserwatora  

 

błędy odtwarzania zmiennych stanu

wymuszenie sinusoidalne, warunki początkowe układu i obserwartora różniły się o 1 w każdej zmiennej 
 

background image

 

20 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

Praca obserwatora w układzie zamkniętym: 

 

background image

 

21 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

 

 
odpowiedź 

jednostkowa 

u.z. 

 

     błędy odtwarzania zmiennych stanu 

 

background image

 

22 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

 

 

odpowiedź na wymuszenie sinusoidalne 

 

błędy odtwarzania zmiennych stanu 

 
 

background image

 

23 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

Regulator z obserwatorem można 
przedstawić w postaci transmitancji: 

 

Aro=A-Ke*C-B*K 
RO=SS(Aro,Ke,K,0) 
[nro dro]=ss2tf(Aro,Ke,K,0) 
Tro=tf(nro,dro) 
figure 
step(feedback(series(RO,plant),1)) 
title ('regultor z obserwatorem') 

Transfer function: 
5689 s^2 + 2.528e004 s + 3.125e004 
---------------------------------- 
   s^3 + 42 s^2 + 697 s + 5700

 

 
 

background image

 

24 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

 

(

)

0

2

4

4

1

2

3

2

1

a

u

m

K

T

s( s

)( s

)

s( s

s

)

L

s

JRs RB

K K

s

R

θ

τ

=

=

=

+

+

+ +

+

+

+

,     

 

 

T=0.5!

 

 
 
 
 
 
 
 
 
 
 
 
 

C( z )

(

)

1

m

K

L

s

JRs RB

K K

R

τ

τ

+

+

+

1

sT

e
s

1

1

s

θ

u

p

K

a

θ

r

G(z) 

background image

 

25 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

(

)

1

1

2

2

2

4

2

3

4

1

2

3 4

1

1

1

2

1

2

t

t

L

L

t

e

e

( t )

s ( s

)( s

)

s

s

( s

) ( s

)

=

+

+

+

=

− +

+

+

+

+

 

{

} {

}

(

)

(

)

2

0 5

2

0 5

1

2

2

3 4

1

3 4

1

3

4

1

1

3

4

1

0 6065

0 3679

1

kT

kT

. k

k

.

z

z

z

z

Z kT

e

e

Z k

e

e

z

z e

z e

z

z

z

z

z

z

z

.

z

.

z

− +

=

− +

=

+

=

=

+

 

(

)

(

)(

)(

)

2

2

2

3

2

1

1

3

4

1

0 6065

0 3679

1

0 05824

0 1629

0 02753

0 05824

0 1629

0 02753

1 9744

1 1975

0 2231

1

0 6065

0 3679

z

z

z

z

G( z )

z

z

z

.

z

.

z

.

z

.

z

.

.

z

.

z

.

z

.

z

.

z

.

z

z

.

z

.

= −

+

=

⎟⎜

+

+

+

+

=

=

+

 

 
Stosując pierwszy wariant metody bezpośredniej znajdujemy reprezentację w przestrzeni stanu: 

background image

 

26 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

[

]

0

1

0

0

0

0

1

0

0 02753 0 1629 0 05824

0 2231

1 1975 1 9744

1

d

d

d

A

B

C

.

.

.

.

.

.

⎡ ⎤

⎢ ⎥

=

=

=

⎢ ⎥

⎢ ⎥

⎣ ⎦

 

Oczywiście ten układ jest całkowicie sterowalny i obserwowalny. Układ dyskretny jest niedoskonałym 
modelem układu ciągłego: 

 

 

background image

 

27 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

Przypuśćmy że dysponujemy zmiennymi stanu układu dyskretnego – zaprojektujmy sprzężenie zwrotne 
ustalające bieguny w położeniu p  

% sprzężenie od wektora stanu 
p=0.1*[1 1 1]; 
    Kd=acker(Ad,Bd,p); 
    Azd=Ad-Bd*Kd; 
    plantzd=SS(Azd,Bd/0.3411,Cd,0,Ti); 
    figure 
    step(plantzd) 
    title ('odp. jedn. sz od wektora stanu')

 

Kd = 
 
    0.2221   -1.1675    1.6744 

 
 
 

background image

 

28 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

Oczywiście tymi zmiennymi stanu nie dysponujemy (można wytworzyć z pomiarów analogiczne 
zmienne stanu układu ciągłego). Zaprojektujmy układ z obserwatorem: 

%obserwator 
pd=0.1*[1 1 1]; 
Kd=acker(Ad,Bd,pd) 
Ked=acker(Ad',Cd',0.5*pd)'

 

 
Kd = 
    0.2221   -1.1675    1.6744 
Ked = 
    3.6723 
    7.1487 
    9.5943 

 
 
 

background image

 

29 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

 

 

 

wymuszenie: 

 

skokowe 

     sinusoidalne 

odpowiedź układu ciągłego z dyskretnym obserwatorem 

background image

 

30 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

Realizacja regulatora i obserwatora w jednej transmitancji: 

Arod=Ad-Ked*Cd-Bd*Kd 
ROd=SS(Arod,Ked,Kd,0,Ti) 
figure 
step(feedback(series(ROd,plantd),1)) 
title ('regulator z obserwatorem dyskr') 
[nrod drod]=ss2tf(Arod,Ked,Kd,0) 
Tror=tf(nro,dro,Ti)

 

nrod = 
         0    8.5341   -7.7074    1.6867 
drod = 
    1.0000    1.5244    1.3977    0.2081 
Transfer function: 
5689 z^2 + 2.528e004 z + 3.125e004 
---------------------------------- 
   z^3 + 42 z^2 + 697 z + 5700 Sampling time: 0.5

 

background image

 

31 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

 

 
 
 
 

background image

 

32 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

Obliczanie sterowania dead-beat 
 
Układ  

)

(

)

(

)

(

)

(

)

)

1

((

kT

cx

kT

y

kT

bu

kT

Ax

T

k

x

=

+

=

+

 

 należy wyposażyć w regulator zapewniający zanikanie przebiegów przejściowych w N okresach impulsowania i zerowy uchyb 
ustalony przy wymuszeniu jednostkowym. 
 

[

]

=

)

0

(

)

(

)

)

1

((

)

(

1

0

u

T

u

T

N

u

b

A

Ab

b

x

A

NT

x

N

N

#

"

 

1

)

(

)

(

=

=

NT

cx

NT

y

 

N

k

dla

NT

u

kT

u

kT

x

T

k

x

=

=

+

)

(

)

(

),

(

)

)

1

((

 

 

background image

 

33 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

)

(

)

(

)

(

NT

bu

NT

Ax

NT

x

+

=

 

Jeśli A nie ma wart wł. równych 1, to macierz I-A jest odwracalna i 

)

(

)

(

)

(

1

NT

bu

A

I

NT

x

=

 

1

)

(

)

(

)

(

1

=

=

NT

bu

A

I

c

NT

y

 

)

1

(

1

)

(

1

)

(

1

o

G

b

A

I

c

NT

u

=

=

 

Potem wyznacza się x(NT), potem ciąg sterujący. 
Jeśli A ma wart wł. równą 1, to u(NT)=0 i  

(

)

0

)

(

=

NT

x

A

I

 

Równanie to ma wiersze liniowo zależne – jeden z nich należy zastąpić przez  

1

)

(

=

NT

cx

 

Stąd wyznacza się x(NT), potem ciąg sterujący.

 

 
Przyjmiemy x

0

=0 i N=3 

 

background image

 

34 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

Zadanie  

Kod Matlaba 

Rezultat 

Jeśli A ma wart wł. równą 1, to u(NT)=0 i  

(

)

0

)

(

=

NT

x

A

I

 

Równanie to ma wiersze liniowo zależne – jeden 
z nich należy zastąpić przez  

1

)

(

=

NT

cx

 

%DEADBEAT 
IAd=eye(size(Ad))-Ad; 
XNT=inv([Cd;IAd(1:2,:)])*[1;0;0] 
N=3 

XNT = 
    4.0214 
    4.0214 
    4.0214 
N = 
     3 

Obliczenie ciągu sterującego: 

[

]

=

)

0

(

)

(

)

)

1

((

)

(

1

0

u

T

u

T

N

u

b

A

Ab

b

x

A

NT

x

N

N

#

"

U=inv([Ad*Ad*Bd,Ad*Bd,Bd])*XNT 

U = 
    4.0214 
   -3.9184 
    0.8972 

Obliczenie kolejnych wartości 
wektora stanu i wyjścia: 

X1=Bd*U(1); 
X2=Ad*X1+Bd*U(2); 
X3=Ad*X2+Bd*U(3); 
Y=[0;Cd*X1;Cd*X2;Cd*X3] 

Y = 
 
         0 
    0.2342 
    0.8893 
    1.0000 

Dla sprawdzenia 

background image

 

35 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

Obliczenie kolejnych wartości uchybu

E0=1-Y(1) 
E1=1-Y(2) 
E2=1-Y(3)

 

E0 = 
     1 
E1 = 
    0.7658 
E2 = 
    0.1107

 

Obliczenie transmitancji regulatora i 
odpowiedź jednostkowa 

TrReg=tf(U',[E0,E1,E2],Ti) 
figure 
step(feedback(series(TrReg,plantd),1)) 
title ('regulator D-B')

 

Transfer function: 
4.021 z^2 - 3.918 z + 0.8972 
---------------------------- 
  z^2 + 0.7658 z + 0.1107 
  
Sampling time: 0.5

 

 
 
 
 
 
 
 

background image

 

36 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

background image

 

37 

Automatyka i sterowanie 10 Przykłady - zmienne stanu 

Układy czasu ciągłego 

 

 

wymuszenie: 

 

skokowe 

     sinusoidalne 

odpowiedź układu ciągłego z dyskretnym regulatorem dead-beat