PPA 03 2013 MATLAB

background image

Instytut Automatyki

Zakład Teorii Sterowania




Krzysztof Marzjan

Podstawowe problemy automatyki

background image

2

zastosowanie Matlab-

a do rozwiązywania prostych zadań automatyki

Transmitancja operatorowa

Dana jest transmitancja operatorowa G(s

), którą można zapisać na dwa sposoby

0

1

2

2

1

1

0

1

2

2

1

1

)

(

)

(

)

(

a

s

a

s

a

s

a

s

a

b

s

b

s

b

s

b

s

b

s

M

s

L

s

G

n

n

n

n

n

n

m

m

m

m

m

m

lub

n

i

i

n

m

j

j

m

s

s

a

s

s

b

s

M

s

L

s

G

1

1

)

(

)

(

)

(

)

(

)

(

m

n

gdzie

j

s

-

zera układu,

i

s

-

bieguny układu,

n

m

a

b

k

-

wzmocnienie układu (nie jest to wzmocnienie

statyczne układu, ponieważ wzmocnienie statyczne

0

0

)

0

(

a

b

G

).

Dla pulsacji

4

5

10

zapas

fazy będzie równy

8

,

ponieważ wypadkowe
wzm

ocnienie układu dla tej

pulsacji jest równe

dB

j

G

50

)

(

log

20

0

,

to wypadkową charakterystykę
amplitudową należy przesunąć
do góry o 50dB, stąd

316

10

2

5

log

50

log

20

2

5

p

p

p

k

k

k

Zapas fazy dla tego układu

wynosi

4

, zapas

modułu

dB

L

10

. Aby

pulsacja odcięcia

1

była

równa pulsacji

,

wypadkową charakterystykę
amplitudową należy
przesunąć do góry o 10dB,
stąd

16

,

3

10

2

1

log

10

log

20

2

1

p

p

p

k

k

k

background image

3

zastosowanie Matlab-

a do rozwiązywania prostych zadań automatyki

Jeżeli wykorzystujemy pierwszą postać transmitancji, to:
współczynniki wielomianu L(s) począwszy od współczynnika przy najwyższej potędze zapisujemy w
wektorze

licz (num)

,

zaś współczynniki wielomianu M(s) w wektorze

mian (den)

.

Transmitancj

ę operatorową G(s), można wpisać następująco:

G=tf(licz,mian)

Np.:

s

s

s

s

s

G

08

,

0

48

,

0

4

,

0

1

,

0

)

(

2

3

% wpisanie transmitancji operatorowej
% postaci G(s)=L(s)/M(s) do Matlab-a

licz=[1 0.1];

% wielomian L(s)=s+0,1

mian=[0.4 0.48 0.08 0];

% wielomian M(s)=0,4s^3+0,48s^2+0,08s

G=tf(licz,mian)

% transmitancja postaci G(s)=L(s)/M(s)

Odpowiedź MATLAB-a

Transfer function:
s + 0.1
---------------------------
0.4 s^3 + 0.48 s^2 + 0.08 s

background image

4

zastosowanie Matlab-

a do rozwiązywania prostych zadań automatyki

Jeżeli wykorzystujemy drugą postać transmitancji, to
wyznaczamy zbiór zer układu

j

s

zbiór biegunów układu

i

s

,

współczynnik wzmocnienia.

n

m

a

b

.

W rozpatrywanym przykładzie mamy:

)

1

(

)

2

,

0

(

)

1

,

0

(

5

,

2

08

,

0

48

,

0

4

,

0

1

,

0

)

(

2

3

s

s

s

s

s

s

s

s

s

G

zera układu

j

s

:

1

,

0

1

s

;

b

ieguny układu

i

s

:

1

,

2

,

0

,

0

3

2

1

s

s

s

współczynnik wzmocnienia:

5

,

2

k

z=[-0.1];

% zera układu

p=[0 -0.2 -1];

% bieguny układu

k=2.5;

% wzmocnienie

G=zpk(z,p,k)

Odpowiedź MATLAB-a

Zero/pole/gain:
2.5 (s+0.1)
---------------
s (s+0.2) (s+1)

background image

5

zastosowanie Matlab-

a do rozwiązywania prostych zadań automatyki

Uwaga! Gdy L(s)=1, to:

)

1

(

)

2

,

0

(

5

,

2

08

,

0

48

,

0

4

,

0

1

)

(

2

3

s

s

s

s

s

s

s

G

z=[ ];

% zera układu – zbiór pusty

p=[0 -0.2 -1];

% bieguny układu

k=2.5;

% wzmocnienie

G=zpk(z,p,k)

Zero/pole/gain:
2.5
---------------
s (s+0.2) (s+1)

I jeszcze jedna

możliwość:

s=tf(

's'

);

% zmienna zespolona

G=(s+0.1)/(0.04*s^3+0.48*s^2+0.08*s)

Transfer function:
s + 0.1
----------------------------
0.04 s^3 + 0.48 s^2 + 0.08 s

background image

6

zastosowanie Matlab-

a do rozwiązywania prostych zadań automatyki

Uwaga! Gdy stosujemy MATLAB-

a do wyznaczania zastępczej transmitancji operatorowej

w różnych połączeniach wygodniej do wpisywania transmitancji używać instrukcji

zpk

Przyjmijmy:

)

1

(

)

2

,

0

(

)

1

,

0

(

5

,

2

)

(

1

s

s

s

s

s

G

;

s

s

G

1

)

(

2

Połączenie szeregowe

G1=zpk([-0.1],[0 -0.2 -1],2.5);
G2=zpk([],0,1);
G=series(G1,G2)

Odpowiedź MATLAB-a

Zero/pole/gain:
2.5 (s+0.1)
-----------------
s^2 (s+0.2) (s+1)

)

(

1

s

G

)

(

2

s

G

background image

7

zastosowanie Matlab-

a do rozwiązywania prostych zadań automatyki

Połączenie równoległe

G1=zpk([-0.1],[0 -0.2 -1],2.5);
G2=zpk([],0,1);
G=parallel(G1,G2)

Zero/pole/gain:
s (s+3.574) (s+0.1259)
----------------------
s^2 (s+0.2) (s+1)

G1=tf([1 0.1],[0.4 0.48 0.08 0]);
G2=tf([1],[1 0]);
G=parallel(G1,G2)

Transfer function:
0.4 s^3 + 1.48 s^2 + 0.18 s
-----------------------------
0.4 s^4 + 0.48 s^3 + 0.08 s^2

+

+

)

(

1

s

G

)

(

2

s

G

background image

8

zastosowanie Matlab-

a do rozwiązywania prostych zadań automatyki

Sprzężenie zwrotne

G1=zpk([-0.1],[0 -0.2 -1],2.5);
G2=zpk([],0,1);
G=feedback(G1,G2)

Zero/pole/gain:
2.5 s (s+0.1)
-------------------------------------------
(s+1.81) (s+0.1004) (s^2 - 0.7106s + 1.376)

G1=tf([1 0.1],[0.4 0.48 0.08 0]);
G2=tf([1],[1 0]);
G=feedback(G1,G2)

Transfer function:
s^2 + 0.1 s
---------------------------------------
0.4 s^4 + 0.48 s^3 + 0.08 s^2 + s + 0.1

_

)

(

1

s

G

)

(

2

s

G

background image

9

zastosowanie Matlab-

a do rozwiązywania prostych zadań automatyki

Układ regulacji:










Transmitancja uchybowa

Transmitancja uchybowo-

zakłóceniowa

)

(

)

(

1

1

)

(

s

G

s

G

s

G

OR

R

e

)

(

)

(

1

)

(

)

(

s

G

s

G

s

G

s

G

OR

R

OR

ez

Transmitancja nadążna

Transmitancja zakłóceniowa

)

(

)

(

1

)

(

)

(

)

(

s

G

s

G

s

G

s

G

s

G

OR

R

OR

R

)

(

)

(

1

)

(

)

(

s

G

s

G

s

G

s

G

OR

R

OR

z

Przyjmijmy

)

1

(

)

2

,

0

(

)

1

,

0

(

5

,

2

)

(

s

s

s

s

s

G

OR

;

s

s

G

R

1

)

(

G

R

(s)

x(s)

z(s)

G

OR

(s)

+

_

e(s)

_

u(s)

y(s)

background image

10

zastosowanie Matlab-

a do rozwiązywania prostych zadań automatyki

Transmitancja nadążna

GOR=zpk([-0.1],[0 -0.2 -1],2.5);
GR=zpk([],0,1);
G=feedback(series(GR,GOR),1)

Zero/pole/gain:
2.5 (s+0.1)
-------------------------------------------
(s+1.81) (s+0.1004) (s^2 - 0.7106s + 1.376)



Transmitancja uchybowa

GOR=zpk([-0.1],[0 -0.2 -1],2.5);
GR=zpk([],0,1);
Ge=feedback(1,series(GOR,GR))


Zero/pole/gain:
s^2 (s+0.2) (s+1)
-------------------------------------------
(s+1.81) (s+0.1004) (s^2 - 0.7106s + 1.376)

)

(

)

(

1

1

)

(

s

G

s

G

s

G

OR

R

e

G

R

(s)

x(s)

G

OR

(s)

_

y(s)

G

OR

(s)

u(s)

G

R

(s)

_

e(s)

+

)

(

)

(

1

)

(

)

(

)

(

s

G

s

G

s

G

s

G

s

G

OR

R

OR

R

background image

11

zastosowanie Matlab-

a do rozwiązywania prostych zadań automatyki

Transmitancja uchybowo

– zakłóceniowa

GOR=zpk([-0.1],[0 -0.2 -1],2.5);
GR=zpk([],0,1);
Gez=feedback(GOR,GR)


Zero/pole/gain:
2.5 s (s+0.1)
-------------------------------------------
(s+1.81) (s+0.1004) (s^2 - 0.7106s + 1.376)








)

(

)

(

1

1

)

(

)

(

)

(

1

)

(

)

(

s

G

s

G

s

G

s

G

s

G

s

G

s

G

OR

R

OR

OR

R

OR

ez

G

R

(s)

z(s)

G

OR

(s)

+

e(s)

_

-1

G

R

(s)

z(s)

G

OR

(s)

_

e(s)

+

background image

12

zastosowanie Matlab-

a do rozwiązywania prostych zadań automatyki

Transmitancja zakłóceniowa

GOR=zpk([-0.1],[0 -0.2 -1],2.5);
GR=zpk([],0,1);
Gez=-series(GOR,feedback(1,series(GOR,GR)))
Zero/pole/gain:
-2.5 s^2 (s+0.2) (s+0.1) (s+1)
-----------------------------------------------------------
s (s+1.81) (s+1) (s+0.2) (s+0.1004) (s^2 - 0.7106s + 1.376)









)

(

)

(

1

1

)

(

)

(

)

(

1

)

(

)

(

s

G

s

G

s

G

s

G

s

G

s

G

s

G

OR

R

OR

OR

R

OR

z

G

R

(s)

z(s)

G

OR

(s)

_

y(s)

_

G

R

(s)

z(s)

G

OR

(s)

+

y(s)

_

-1

background image

13

zastosowanie Matlab-

a do rozwiązywania prostych zadań automatyki

Odpowiedź impulsowa

4

3

2

)

(

)

(

1

1

s

s

s

G

t

g

)

(

1

9

2

)

(

3

1

)

(

3

4

t

e

t

t

g

t


G=zpk([-2],[-4/3],1/3);
impulse(G)






Uwaga
!

Jeżeli stopień licznika jest równy

stopniowi mianownika

0

1

2

2

1

1

0

1

2

2

1

1

)

(

a

s

a

s

a

s

a

s

a

b

s

b

s

b

s

b

s

b

s

G

n

n

n

n

n

n

n

n

n

n

n

n

to w odpowiedzi impulsowej pojawia się

impuls Diraca

)

(t

a

b

n

n

,

którego MATLAB nie liczy

L

L

background image

14

zastosowanie Matlab-

a do rozwiązywania prostych zadań automatyki

Odpowiedź impulsową można wywołać w taki sposób, by można było dorysować impuls Diraca;:

G=zpk([-2],[-4/3],1/3);

% wpisanie transmitancji

[x,t]=impulse(G,6);

% wyliczenie i zapisanie odpowiedzi impulsowej

% narysowanie części ciągłej odpowiedzi

plot(t,x)
grid

% dodanie impulsu Diraca

hold on
plot([0 0],[0 .35],

'r'

)

hold off

% poprawienie zakresu rysunku

axis([0 6 0 .4])

% opis rysunku

title(

'odpowiedz impulsowa g(t)'

)

xlabel(

'czas [s]'

)

ylabel(

'g(t)'

)

% dodanie dodatkowych opisów

text(0.1,0.25,

'\delta(t)'

,

'color'

,

'r'

,

'fontsize'

,12)

background image

15

zastosowanie Matlab-

a do rozwiązywania prostych zadań automatyki

background image

16

zastosowanie Matlab-

a do rozwiązywania prostych zadań automatyki

Odpowie

dź jednostkowa

)

4

3

(

2

)

(

)

(

1

1

s

s

s

s

s

G

t

h

)

(

1

6

1

2

1

)

(

3

4

t

e

t

h

t


G=zpk([-2],[-4/3],1/3);
step(G)

L

L

background image

17

zastosowanie Matlab-

a do rozwiązywania prostych zadań automatyki

Odpowiedź jednostkową podobnie jak impulsową można wywołać także w następujący sposób:

% wpisanie transmitancji

G=zpk([-2],[-4/3],1/3);

% wyliczenie i zapisanie odpowiedzi jednostkowej

[x,t]=step(G,6);

% narysowanie wyliczonej części odpowiedzi

plot(t,x,

'r'

)

grid

% dodanie początkowego skoku odpowiedzi

hold on
plot([0 0],[0 x(1)],

'r'

)

hold off

% poprawienie zakresu rysunku

axis([0 6 0 .6])

% opis rysunku

title(

'odpowiedz jednostkowa h(t)'

)

xlabel(

'czas [s]'

)

ylabel(

'h(t)'

)

background image

18

zastosowanie Matlab-

a do rozwiązywania prostych zadań automatyki

background image

19

zastosowanie Matlab-

a do rozwiązywania prostych zadań automatyki

Odpowiedź na dowolne wymuszenie

% Transmitancja operatorowa obiektu regulacji

Gor=tf([2],[0.04 0.5 1 0]);

% zdefiniowanie sygnału zadającego

t=0:pi/100:pi;u=sin(10*t);

% Obliczenie odpowiedzi

[y,t]=lsim(Gor,u,t);
plot(t,y,

'm'

,t,u,

'b'

)

grid
title(

'odpowiedz y(t) dla u(t)=sin(t)'

)

xlabel(

'czas [s]'

)

ylabel(

'u(t), y(t)'

)

legend(

'y(t)'

,

'u(t)'

,4)

axis([0 pi -1.1 1.1])

background image

20

zastosowanie Matlab-

a do rozwiązywania prostych zadań automatyki

background image

21

zastosowanie Matlab-

a do rozwiązywania prostych zadań automatyki

Charakterystyka amplitudowo

– fazowa

% Transmitancja operatorowa obiektu regulacji

G=tf([2],[0.04 0.54 1.5 1]);

% Zakres częstotliwości

w=logspace(-2,2,501);

% charakterystyka amplitudowo - fazowa

nyquist(G,w)

background image

22

zastosowanie Matlab-

a do rozwiązywania prostych zadań automatyki

Funkcja

nyquist

służy także do wyznaczenia części rzeczywistej i urojonej transmitancji

widmowej dla zadanego przedziału częstotliwości. Sposób wywołania funkcji może zmienić jej
przeznaczenie. Poniżej przedstawiono inne zastosowanie tej funkcji.

G=tf([2],[0.04 0.54 1.5 1]);
w=logspace(-3,2,501);
[p1 q1]=nyquist(G,w);
P1(1,:)=p1(1,1,:);
Q1(1,:)=q1(1,1,:);
plot(P1,Q1,-1,0,

'r+'

)

axis([-1.5 2.5 -1.4 .2])
title(

'charakterystyka amplitudowo-fazowa'

)

text(-1.2,0.05,

'(-1, j0)'

,

'color'

,

'r'

,

'fontsize'

,12)

hold on
plot([0 0],[-1.4 .2],

'k'

)

plot([-1.5 2.5],[0 0],

'k'

)

hold off
grid
xlabel(

'Re [G(j\omega)]'

)

ylabel(

'Im [G(j\omega)]'

)

background image

23

zastosowanie Matlab-

a do rozwiązywania prostych zadań automatyki

background image

24

zastosowanie Matlab-

a do rozwiązywania prostych zadań automatyki

Charakterystyki logarytmiczne

G=tf([2],[0.04 0.54 1.5 1]);
w=logspace(-3,2,501);

% charakterystyki Bodego

bode(G,w)
grid

background image

25

zastosowanie Matlab-

a do rozwiązywania prostych zadań automatyki

G=tf([2],[0.04 0.54 1.5 1]);
w=logspace(-2,2,501);
[amp,faza,w]=bode(G,w);
A(1,:)=amp(1,1,:);F(1,:)=faza(1,1,:);
subplot(211)
plot(log10(w),20*log10(A),

'linewidth'

,2)

grid
set(gca,

'XTick'

,-2:2)

set(gca,

'YTick'

,-100:20:40)

title(

'logarytmiczna charakterystyka aplitudowa'

)

xlabel(

'log \omega'

)

ylabel(

'L(\omega)'

)

text(-1.5,15,{

'20logk'

},

'color'

,

'r'

,

'fontsize'

,12)

text(1,-60,{

'-60dB/dek'

},

'color'

,

'r'

,

'fontsize'

,12)

subplot(212)
plot(log10(w),F,

'linewidth'

,2)

axis([-2 2 -280 10])
grid
set(gca,

'XTick'

,-2:2)

set(gca,

'YTick'

,-315:45:45)

title(

'logarytmiczna charakterystyka fazowa'

)

background image

26

zastosowanie Matlab-

a do rozwiązywania prostych zadań automatyki

xlabel(

'log \omega'

)

ylabel(

'\phi(\omega)'

)

background image

27

zastosowanie Matlab-

a do rozwiązywania prostych zadań automatyki

Okno graficzne

ltiview

, pozwala na analizę prostych liniowych i stacjonarnych obiektów

opisanych np. transmitancją operatorową:

background image

28

zastosowanie Matlab-

a do rozwiązywania prostych zadań automatyki

Dane importujemy z przestrzeni roboczej Matlaba (Workspace)

Okno graficzne można dzielić, w sposób pokazany poniżej. W wydzielonej części okna dostępne są
opcje z rozwijanej listy

background image

29

zastosowanie Matlab-

a do rozwiązywania prostych zadań automatyki

Wywołanie okna graficznego możliwe jest także z przestrzeni roboczej Matlaba. Poniższa instrukcja
wywoła odpowiedź jednostkową i charakterystyki logarytmiczne elementu o transmitancji
operatorowej G1

ltiview({'step','bode'},G1)


Wyszukiwarka

Podobne podstrony:
PPA 03 2013
I ROK PPA 2 harmonogram 05 03 2013 3 str
MIKROBIOLOGIA JAMY USTNEJ, WYKŁAD 3, 28 03 2013
2 Sieci komputerowe 09 03 2013 [tryb zgodności]
Strona główna 03 2013
Psychologia Ogólna cz C 03 2013
PPA 01 2013
8) TSiP aux 04 03 2013
Geo fiz wykład 5 03 2013
3 Sieci komputerowe 23 03 2013 [tryb zgodności]
10 03 2013 Wid 10701 Nieznany
W 13.03.2013(1), STUDIA PEDAGOGIKA opiekuńczo-wychowawcza z terapią pedagogiczną - własne, licencja
Podanie o zaliczenie praktyk w 2 egzemplarzach od 03-2013, AiR, 6 semestr AIR, praktyki
6 03 2013 Anatomia Jama ustna i początek zębów
Psychologia i socjologia pracy 03 2013

więcej podobnych podstron