LaboratoriumTeoriiSterowaniaITe Nieznany

background image

Skrypt – Regulator PID

Katedra Automatyki Napędu i Urządzeń Przemysłowych

1

L

ABORATORIUM

T

EORII

S

TEROWANIA I

T

ECHNIKI

R

EGULACJI

Regulator PID – charakterystyki czasowe

i częstotliwościowe

1 Wprowadzenie

Regulator PID jest to element układu regulacji realizujący w przypadku idealnym następujące prawo sterowania:

dt

de(t)

K

e(t)dt

K

e(t)

K

u(t)

d

T

0

i

p

+

+

=

,

( 1 )

gdzie:

!" K

p

– współczynnik części proporcjonalnej

!" K

i

– współczynnik części całkującej

K

i

= 1/T

i

T

i

– czas zdwojenia

!" K

d

– współczynnik części różniczkującej

K

d

= T

d

T

d

– czas wyprzedzenia

!" e(t)E(s) – uchyb regulacji (błąd)

e(t) = ref(t) – y(t)

!" u(t)U(s) – sygnał sterujący podawany na obiekt (generowany przez regulator)
!" ref(t)Ref(s) – sygnał odniesienia (referencyjny)
!" y(t)Y(s) – sygnał wyjściowy
!" d(t)D(s) – sygnał zakłócenia


Po przekształceniu Laplace’a otrzymano transmitancję:

s

K

s

K

s

K

s

K

s

K

K

s

T

s

T

1

K

E(s)

U(s)

(s)

G

i

p

2

d

d

i

p

d

i

p

PID

+

+

=

+

+

=

+

+

=

=

.

( 2 )

W literaturze spotyka się również inne postacie zapisu prawa sterowania regulatora PID, np.:

s

T

K

s

T

K

K

s)

T

s

T

1

1

(

K

E(s)

U(s)

(s)

G

D

p

I

p

p

D

I

p

PID

+

+

=

+

+

=

=

( 3 )

gdzie:

!" T

I

= K

p

T

i

!" T

D

= T

d

/K

p


Człon różniczkujący realizowany w praktyce zawiera niedużą inercję

τ

<< T

d

(np.:

τ

= 0,001). Zatem jego

transmitancja przyjmuje postać:

1

τs

s

T

(s)

G

d

d

+

=

,

( 4 )

stąd:

s

τs

K

τ)s

K

(K

τ)s

K

(K

1

τs

s

K

s

K

K

1

τs

s

T

s

T

1

K

E(s)

U(s)

(s)

G

2

i

i

p

2

p

d

d

i

p

d

i

p

PID

+

+

+

+

+

=

+

+

+

=

+

+

+

=

=

( 5 )

Ponadto jeśli uwzględni się możliwości techniczne (wejście wzmacniacza operacyjnego w stan nasycenia),
to rzeczywisty regulator PID można przedstawić za pomocą następującego schematu blokowego:

rys. 1

e(t)

u(t)

+

+

+

E(s)

U(s)

K

p

K

i

s

1

1

τs

Td s

+

background image

Skrypt – Regulator PID

Katedra Automatyki Napędu i Urządzeń Przemysłowych

2

Instrukcja ćwiczenia laboratoryjnego

2 Przykład

Będziemy rozważać następujący układ automatycznej regulacji z ujemną pętlą sprzężenia zwrotnego:

rys. 2

Dla powyższego układu (rys.2) jako obiekt weźmy układ masa, sprężyna i amortyzator (problem tłumienia
drgań):

rys. 3

Modelem matematycznym powyższego obiektu jest równanie różniczkowe drugiego rzędu, które po
przekształceniu Laplace’a można przedstawić w postaci transmitancji:

u(t)

ky(t)

(t)

y

b

(t)

y

M

=

+

+

!

!!

k

bs

Ms

1

U(s)

Y(s)

2

+

+

=

gdzie:

M = 1 [kg], b = 10 [N s/m], k = 20 [N/m],

H(s) =1 – jednostkowa pętla sprzężenia zwrotnego,

ref(t) = 1(t)

Ref(s) = 1/s – wymuszenie, D(s) = 0,

stąd:

20

s

10

s

1

U(s)

Y(s)

2

+

+

=

.

2.1 Wpływ współczynników: K

p

, K

i

, K

d

, na: czas narastania, przeregulowanie

i błąd w stanie ustalonym.

!" Obiekt w układzie otwartym – odpowiedź na skok jednostkowy

Utwórz m-plik Matlaba:

M = 1;
b = 10;
k = 20;
u = 1;

num=u;
den=[M b k];
step(num,den)

title('Układ otwarty

- odp. na skok jednostkowy')

disp('Naciśnij klawisz

---->'), pause

y(t)– przemieszczenie
M – masa
F(t) = u(t) – siła wymuszająca
b – współczynnik tłumienia lepkościowego
k – stała sprężyny

(t)

y

b!

y(t)

k

u(t)

F(t)

=

M

background image

Skrypt – Regulator PID

Katedra Automatyki Napędu i Urządzeń Przemysłowych

3

Wzmocnienie stałe obiektu wynosi 1/20 tj. 0,05, jest to wartość, na której ustala się odpowiedź obiektu.
Odpowiada to błędowi w stanie ustalonym 0,95. Czas narastania i czas ustalenia wynoszą odpowiednio
ok. 1 [s] i 1,5 [s]. Zaprojektujemy regulator, który zredukuje czas narastania i czas ustalenia oraz wyeliminuje
błąd w stanie ustalonym.

!" Regulator proporcjonalny

Transmitancja układu zamkniętego

)

K

20

(

s

10

s

K

p

2

p

+

+

+

.

Kp=300;
num=[Kp*u];
den=[M b k+Kp];
t=0:0.01:2;

figure(2)
step(num,den,t)

title('Układ zamknięty

- odp. na skok jednostkowy Reg P')

disp('Naciśnij klawisz

---->'), pause

lub z instrukcją

cloop()

num=[u];
den=[M b k];

[numCL,denCL]=cloop(Kp*num,den);

figure(3)

step(numCL, denCL,t)

title('Układ zamknięty

- odp. na skok jednostkowy Reg P')

disp('Naciśnij klawisz

---->'), pause

Zwróć uwagę jakie nastąpiły zmiany.

!" Regulator proporcjonalno-różniczkujący (idealny)

Transmitancja układu zamkniętego

)

K

20

(

)s

K

10

(

s

K

s

K

p

d

2

p

d

+

+

+

+

+

.

Kd=10;
num=[Kd Kp];
den=[M b+Kd k+Kp];
figure(3)

step(num,den,t)

title('Układ zamknięty

- odp. na skok jednostkowy Reg PD')

disp('Naciśnij klawisz

---->'), pause

Zwróć uwagę jakie nastąpiły zmiany.

!" Regulator proporcjonalno-całkujący

Transmitancja układu zamkniętego

i

p

2

3

i

p

K

)s

K

20

(

s

10

s

K

s

K

+

+

+

+

+

.

Kp=30;
Ki=70;
num=[Kp Ki];
den=[M b k+Kp Ki];

step(num,den,t)
t

itle('Układ zamknięty

- odp. na skok jednostkowy Reg PI')

disp('Naciśnij klawisz

---->'), pause

Zwróć uwagę jakie nastąpiły zmiany.

!" Regulator proporcjonalno-całkująco-różniczkujący (idealny)

Transmitancja układu zamkniętego

i

p

2

d

3

i

p

2

d

K

)s

K

20

(

)s

K

10

(

s

K

s

K

s

K

+

+

+

+

+

+

+

.

Kp=350;
Ki=300;
Kd=50;
num=[Kd Kp Ki];
den=[M b+Kd k+Kp Ki];

figure(4)
t=0:0.01:2;
step(num,den,t)

title('Układ zamknięty

- odp. na skok jednostkowy Reg PID')

disp('Naciśnij klawisz

---->'), pause

Zwróć uwagę jakie nastąpiły zmiany.

2.2 Uruchom m-plik regpid.m.

Zapoznaj się z odpowiedzią na skok jednostkowy i charakterystykami Bodego (obiekt jw.) dla różnych wartości
parametrów regulatorów: P, PD, PI, PID:

!" układu otwartego
!" układu z regulatorem proporcjonalnym
!" układu z regulatorem proporcjonalno-różniczkującym (rzeczywistym i idealnym)
!" układu z regulatorem proporcjonalno-całkującym
!" układu z regulatorem proporcjonalno-całkująco-różniczkującym (rzeczywistym i idealnym)

background image

Skrypt – Regulator PID

Katedra Automatyki Napędu i Urządzeń Przemysłowych

4

2.3 Metoda Ziglera i Nicholsa

Jednym ze sposobów doboru nastaw parametrów regulatora PID dla obiektów nie zawierających opóźnień jest
inżynierska metoda Ziglera i Nicholsa. Wymaga ona obliczenia marginesu wzmocnienia i częstotliwości
odpowiadającej wzmocnieniu krytycznemu, tj. takiemu, przy którym faza jest równa –180 stopni. Jeśli
oznaczymy G

m

– margines amplitudy,

ω

180

– wspomniana częstotliwość, to nastawy Ziglera i Nicholsa dla

regulatorów są następujące:

PID:

K

p

=0,6 G

m

180

i

T

=

ω

π

4

T

T

i

d

=

PI:

K

p

=0,45 G

m

180

i

3

5

T

=

ω

π

P:

K

p

=0,5 G

m

Należy zaznaczyć, że uzyskane nastawy nie są optymalne i można je w sposób arbitralny skorygować.

3 Zadania do wykonania

1. Wykaż, że regulatory typu P i PD w przeciwieństwie do PI, PID nie zapewniają likwidacji uchybu

ustalonego.

2. Dobierz parametry regulatora PID według metody Ziglera i Nicholsa. Skorzystaj z funkcji

[G

m

,P

m

,

ω

cg

,

ω

cp

] = margin(L,M) obliczającej margines (zapas) wzmocnienia G

m

i fazy P

m

dla układu

opisanego równaniami stanu lub transmitancją (L – licznik, M – mianownik) oraz odpowiadające im
częstotliwości graniczne – odpowiednio

ω

cg

(w180) i

ω

cp

. Przedstaw przebiegi. Transmitancja obiektu:

)

1

s

5

)(

1

s

20

)(

1

s

30

(

1

(s)

G

O

+

+

+

=

.

3. Jaki jest efekt zmiany wartości K

p

, K

i

, K

d

na odpowiedź układu z rys.2 (czas narastania t

r

, przeregulowanie

M

o

, czas ustalenia t

s

, błąd w stanie ustalonym e

ss

) oraz na charakterystyki Bodego (szerokość pasma, moduł

rezonansowy M

p

i odpowiadająca mu częstotliwość

ω

p

(Aneks C)) przy wymuszeniu skokiem

jednostkowym. Zinterpretuj wyniki. Skorzystaj z funkcji:
[M

o

,t

p

,t

r

,t

s

,e

ss

] = tstats(t,y,ref) (Aneks A) oraz [bw,e

rr

] = bwcalc(db,omega,lfg_db) (Aneks B).

Transmitancja obiektu i pętli sprzężenia zwrotnego:

1

0,05s

1

H(s)

,

)

1

s

5

,

0

)(

1

s

2

(

4

)

s

(

G

o

+

=

+

+

=

Czas narastania

t

r

[s]

Przeregulowanie

M

o

[%]

Czas ustalenia

t

s

[s]

Błąd w stanie

ustalonym

e

ss

[%]

Szerokość pasma

bw [rad/s]

K

p

K

i

K

d

4. Na podstawie układu rys.2 wyznacz transmitancję

D(s)

Y(s)

oraz przebieg y(t) przy d(t) = 1(t), ref(t) = 0

dla regulatora P, PI, PID. Zinterpretuj otrzymane wyniki i porównaj z przebiegiem y(t) i ref(t) = 1(t)
przy d(t) = 0(t).

4 PID – Literatura

[1] Frederick D. K., Chow J. H.: „Feedback control problems using Matlab and the Control System Toolbox”,

PWS Publishing Company, 1995

[2] Markowski A., Kostro J., Lewandowski A.: „Automatyka w pytaniach i odpowiedziach”, WNT, Warszawa,

1979

[3] Shahian B., Hassul M.: „Control system design using Matlab”, Prentice Hall, 1992
[4] www.engin.umich.edu/group/ctm/
[5] Zalewski A., Cegieła R.: „Matlab – obliczenia numeryczne i ich zastosowania”, Nakom, Poznań, 1996

background image

Skrypt – Regulator PID

Katedra Automatyki Napędu i Urządzeń Przemysłowych

5

Aneks

A)

np.:
t = 0:0.1:2
y = step(L,M,t),
ref = 1

function [M

o

,t

p

,t

r

,t

s

,e

ss

] = tstats(t,y,ref)

argumenty prawostronne (wejściowe):
t – wektor czasu symulacji
y – wektor odpowiedzi
ref – poziom sygnału referencyjnego w stanie
ustalonym

argumenty lewostronne (wyjściowe):
M

o

– przeregulowanie [%]

t

p

– czas osiągnięcia wartości maksymalnej

t

r

– czas narastania

t

s

– czas ustalenia (2%)

e

ss

– błąd w stanie ustalonym [%]

B)

np.:
lfg = dcgain(L,M)
lfg_dB = 20*log10(lfg)

function [bw,e

rr

] =

bwcalc(db,omega,lfg_db)
Określa szerokość pasma układu
zarówno otwartego, jak i zamkniętego
przez:
– obliczenie odpowiedzi
częstotliwościowej dla danego wektora
częstotliwości omega
– znalezienie częstotliwości, przy której
amplituda spada o 3dB poniżej
amplitudy sygnału stałego (lfg)

argumenty prawostronne (wejściowe):
db – wektor amplitud w dB

omega – wektor częstotliwości
lfg_db – wzmocnienie sygnału
stałego w dB – funkcja
dcgain(L,M)

argumenty lewostronne
(wyjściowe):
bw – szerokość pasma
e

rr

– flaga błędu:

1-amplituda przy najniższej
częstotliwości
< lfg – 3.0[dB]
2-amplituda przy wszystkich
częstotliwościach
> lfg – 3.0[dB]

C)

[M

p

,i] = max(mag)

ω

p

= w(i)

Listing m-pliku Matlaba regpid.m

% OZNACZENIA
% dla obiektu
% n,d - obiekt: mianownik,licznik
% z,p,k - obiekt: zera, bieguny, wzmocnienie
% a,b -

obiekt: odpowiedź na skok jednostkowy

% e,f - obiekt: ch-ka Bodego

% cyfra na końcu oznaczenia oznacza kolejno:

1-reg.P, 2-reg.PD, 3-reg.PI, 4-reg.PID
% dla regulatora P
% rl1,rm1 - regulator
% nro1,dro1 -

obiekt+regulator ukł.otw.

% nrz1,drz1 -

obiekt+regulator ukł.zamk. z

pętlą ujemnego sprzężenia zwrotnego

% zrz1,prz1,krz1 - zera, bieguny i wzmocnienie

dla ukł.zamk. z reg

.P

% a1,b1,c1,d1, - odpowiedzi na skok jednostkowy
% g1,h1 - ch-ki Bodego dla regulatora
% i1,j1 - ch-ki Bodego dla obiekt+regulator

ukł.otw.

% k1,l1 - ch-ki Bodego dla obiekt+regulator

ukł.zamk. z pętlą ujemnego sprzężenia zwrotnego

% dla regulatora PD PID indeks "i" oznacza
regulator idealny

%Kp=350;
%Ki=300;
%Kd=50;
%inKd=.01; %tau

clear
clc
%==============================================
set(gcf,'DefaultAxesFontSize',9)
set(gcf,'DefaultTextFontSize',9)

t=0:0.01:4;
w=logspace(-2,2,200);

Kp=input('Wpro

wadź Kp= ');

Kd=input('Wprowadź Kd= ');

Ki=input('Wprowadź Ki= ');

inKd=input('Wprowadź inercję dla różniczki

inKd= ');

%=============================================

% Odpowiedź obiektu

n=1; d=[1,10,20];
clc
'Transmitancja obiektu'
printsys(n,d)
[z,p,k]=tf2zp(n,d)

subplot(3,1,1)
step(n,d,t)
[a,b]=step(n,d,t);
xlabel(''), ylabel('Amplituda Czas [s]'),

title('Odpowiedź obiektu')


disp('---->'), pause
%#############################################
% Reg. P
%Kp=300;
rl1=[Kp]; rm1=[1];
clc
'Transmitancja regulatora P'
printsys(rl1,rm1)
[zr1,pr1,kr1]=tf2zp(rl1,rm1)

disp('---->'), pause

background image

Skrypt - Regulator PID

Katedra Automatyki Napędu i Urządzeń Przemysłowych

6

% Odpowiedź układu otwartego z reg.

P

[nro1,dro1]=series(rl1,rm1,n,d);
clc

'Transmitancja układu otwartego z reg.

P'

printsys(nro1,dro1)
[zro1,pro1,ko1]=tf2zp(nro1,dro1)
subplot(3,1,2)
step(nro1,dro1,t)
[a1,b1]=step(nro1,dro1,t);
xlabel(''), ylabel('Amplituda Czas [s]'),

title('Odpowiedź ukłau otwartego z reg.

P')


disp('---->'), pause

% Odpowiedź układu zamkniętego z reg. P

[nrz1,drz1]=cloop(nro1,dro1,-1);
clc
'Transmitan

cja układu zamkniętego z reg. P

-

ujemne sprzężenie zwrotne'

printsys(nrz1,drz1)
[zrz1,prz1,kz1]=tf2zp(nrz1,drz1)
subplot(3,1,3)
step(nrz1,drz1,t)
[c1,d1]=step(nrz1,drz1,t);
xlabel(''), ylabel('Amplituda, Czas [s]'),

title('Odpowiedź ukłau zamkniętego z re

g. P -

ujemne sprzężenie zwrotne')


disp('---->'), pause

%=============================================
clc

disp('Charakterystyki częstotliwościowe Bodego
dla ukł. z reg. P'), pause


% obiekt
[e,f,w]=bode(n,d,w);
% regulator
[g1,h1,w]=bode(rl1,rm1,w);
% o

biekt+regulator ukł. otw.

[i1,j1,w]=bode(nro1,dro1,w);

% obiekt+regulator ukł. zamk.

[k1,l1,w]=bode(nrz1,drz1,w);

figure(2)
subplot(4,2,1)
semilogx(w,20*log10(e)),grid
title('obiekt')
subplot(4,2,3)
semilogx(w,f),grid

subplot(4,2,2)
semilogx(w,20*log10(g1)),grid
title('regulator P')
subplot(4,2,4)
semilogx(w,h1),grid

subplot(4,2,5)
semilogx(w,20*log10(i1)),grid
title('obiekt+regulator P otw.')
subplot(4,2,7)
semilogx(w,j1),grid

subplot(4,2,6)
semilogx(w,20*log10(k1)),grid
title('obiekt+regulator P zam.')
subplot(4,2,8)
semilogx(w,l1),grid

disp('---->'), pause

%############################################

clc
disp('Regulator PD---->'), pause

figure(3)
subplot(4,1,1)
step(n,d),xlabel(''), ylabel('Amplituda Czas
[s]'), title('

Odpowiedź obiektu')


% reg. PD
%Kp=300;
%Kd=10;
rl2i=[Kd, Kp]; rm2i=[0, 1];
rl2=[Kd, Kp]; rm2=[inKd, 1];
clc

'Transmitancja regulatora z inercją PD'

printsys(rl2,rm2)
[zr2,pr2,kr2]=tf2zp(rl2,rm2)
'Transmitancja idealnego regulatora PD'
printsys(rl2i,rm2i)

disp('---->'), pause

% Odpowiedź układu otwartego z reg.

PD

[nro2,dro2]=series(rl2,rm2,n,d);
clc

'Transmitancja układu otwartego z reg.

PD'

printsys(nro2,dro2)
[zro2,pro2,ko2]=tf2zp(nro2,dro2)
subplot(4,1,2)
step(nro2,dro2,t)
[a2,b2]=step(nro2,dro2,t);
xlabel(''), ylabel('Amplituda Czas [s]'),

title('Odpowiedź ukłau otwartego z reg.

PD')


disp('---->'), pause

% Odpowiedź układu zamkniętego z reg. PD

[nrz2,drz2]=cloop(nro2,dro2,-1);
clc

'Transmitancja układu zamkniętego z reg. PD

-

ujemne sprzężenie zwrot

ne'

printsys(nrz2,drz2)
[zrz2,prz2,kz2]=tf2zp(nrz2,drz2)
subplot(4,1,3)
step(nrz2,drz2,t)
[c2,d2]=step(nrz2,drz2,t);
xlabel(''), ylabel('Amplituda, Czas [s]'),

title('Odpowiedź ukłau zamkniętego z reg. PD

-

ujemne sprzężenie zwrotne')


disp('---->'), pause

%^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

% Odpowiedź układu otwartego z reg. PD idealnym

[nro2i,dro2i]=series(rl2i,rm2i,n,d);
clc

'Transmitancja układu otwartego z reg. PD

idealnym'
printsys(nro2i,dro2i)
[a2i,b2i]=step(nro2i,dro2i,t);

% Odpowiedź układu zamkniętego z reg. PD

idealnym
[nrz2i,drz2i]=cloop(nro2i,dro2i,-1);

'Transmitancja układu zamkniętego z reg. PD

idealnym -

ujemne sprzężenie zwrotne'

printsys(nrz2i,drz2i)
subplot(4,1,4)
step(nrz2i,drz2i,t)
[c2i,d2i]=step(nrz2i,drz2i,t);

background image

Skrypt - Regulator PID

Katedra Automatyki Napędu i Urządzeń Przemysłowych

7

xlabel(''), ylabel('Amplituda, Czas [s]'),

title('Odpowiedź ukłau zamkniętego z reg. PD

idealnym -

ujemne sprzężenie zwrotne')

%^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

disp('---->'), pause

%=============================================
clc
disp('Charakterysty

ki częstotliwościowe Bodego

dla ukł. z reg.

PD'), pause


% regulator PD
[g2,h2,w]=bode(rl2,rm2,w);

% obiekt+regulator ukł. otw.

[i2,j2,w]=bode(nro2,dro2,w);

% obiekt+regulator ukł. zamk.

[k2,l2,w]=bode(nrz2,drz2,w);


figure(4)
subplot(4,2,1)
semilogx(w,20*log10(e)),grid
title('obiekt')
subplot(4,2,3)
semilogx(w,f),grid

subplot(4,2,2)
semilogx(w,20*log10(g2)),grid
title('regulator PD')
subplot(4,2,4)
semilogx(w,h2),grid

subplot(4,2,5)
semilogx(w,20*log10(i2)),grid
title('obiekt+regulator PD otw.')
subplot(4,2,7)
semilogx(w,j2),grid

subplot(4,2,6)
semilogx(w,20*log10(k2)),grid
title('obiekt+regulator PD zam.')
subplot(4,2,8)
semilogx(w,l2),grid

disp('---->'), pause

%##############################################
clc
disp('Regulator PI---->'), pause

figure(5)
subplot(3,1,1)
step(n,d),xlabel(''), ylabel('Amplituda Czas

[s]'), title('Odpowiedź obiektu')


% Reg. PI
%Kp=30;
%Ki=70;
rl3=[Kp, Ki]; rm3=[1, 0];
clc
'Transmitancja regulatora PI'
printsys(rl3,rm3)
[zr3,pr3,kr3]=tf2zp(rl3,rm3)

disp('---->'), pause

% Odpowiedź układu otwartego z reg.

PI

[nro3,dro3]=series(rl3,rm3,n,d);
clc

'Transmitancja układu otwartego z reg.

PI'

printsys(nro3,dro3)
[zro3,pro3,ko3]=tf2zp(nro3,dro3)

subplot(3,1,2)
step(nro3,dro3,t)
[a3,b3]=step(nro3,dro3,t);
xlabel(''), ylabel('Amplituda Czas [s]'),

title('Odpowiedź ukłau otwartego z reg.

PI')


disp('---->'), pause

% Odpowiedź układu zamkniętego z reg. PI

[nrz3,drz3]=cloop(nro3,dro3,-1);
clc

'Transmitancja układu zamkniętego z reg. PI

-

ujemne sprzężenie zwrotne'

printsys(nrz3,drz3)
[zrz3,prz3,kz3]=tf2zp(nrz3,drz3)
subplot(3,1,3)
step(nrz3,drz3,t)
[c3,d3]=step(nrz3,drz3,t);
xlabel(''), ylabel('Amplituda, Czas [s]'),

title('Odpowiedź ukłau zamkniętego z reg. PI

-

ujemne sprzężenie zwrotne')


disp('---->'), pause

%=============================================
clc

disp('Charakterystyki częstotliwościowe Bodego
dla ukł. z reg.

PI'), pause


% regulator PI
[g3,h3,w]=bode(rl3,rm3,w);

% obiekt+regulator ukł. otw.

[i3,j3,w]=bode(nro3,dro3,w);

% obiekt+regulator ukł. zamk.

[k3,l3,w]=bode(nrz3,drz3,w);

figure(6)
subplot(4,2,1)
semilogx(w,20*log10(e)),grid
title('obiekt')
subplot(4,2,3)
semilogx(w,f),grid

subplot(4,2,2)
semilogx(w,20*log10(g3)),grid
title('regulator PI')
subplot(4,2,4)
semilogx(w,h3),grid

subplot(4,2,5)
semilogx(w,20*log10(i3)),grid
title('obiekt+regulator PI otw.')
subplot(4,2,7)
semilogx(w,j3),grid

subplot(4,2,6)
semilogx(w,20*log10(k3)),grid
title('obiekt+regulator PI zam.')
subplot(4,2,8)
semilogx(w,l3),grid

disp('---->'), pause

%#############################################
clc
disp('Regulator PID---->'), pause

figure(7)
subplot(4,1,1)
step(n,d),xlabel(''), ylabel('Amplituda Czas

[s]'), title('Odpowiedź obiektu')


% Reg. PID

background image

Skrypt - Regulator PID

Katedra Automatyki Napędu i Urządzeń Przemysłowych

8

%Kp=350;
%Ki=300;
%Kd=50;
rl4i=[Kd, Kp, Ki]; rm4i=[0, 1, 0];
rl4=[Kd, Kp, Ki]; rm4=[inKd, 1, 0];
clc
'Transmitancja regulatora PID'
printsys(rl4,rm4)
[zr4,pr4,kr4]=tf2zp(rl4,rm4)
%printsys(rl4i,rm4i)

disp('---->'), pause

% Odpowiedź układu otwartego z reg.

PID

[nro4,dro4]=series(rl4,rm4,n,d);
clc

'Transmitancja układu otwartego z reg.

PID'

printsys(nro4,dro4)
[zro4,pro4,ko4]=tf2zp(nro4,dro4)
subplot(4,1,2)
step(nro4,dro4,t)
[a4,b4]=step(nro4,dro4,t);
xlabel(''), ylabel('Amplituda Czas [s]'),

title('Odpowiedź ukłau otwartego z reg.

PID')


disp('---->'), pause

% Odpowiedź układu zamkniętego z reg.

PID

[nrz4,drz4]=cloop(nro4,dro4,-1);
clc

'Transmitancja układu zamkniętego z reg. PID

-

ujemne sprzężenie zwrotne'

printsys(nrz4,drz4)
[zrz4,prz4,kz4]=tf2zp(nrz4,drz4)
subplot(4,1,3)
step(nrz4,drz4,t)
[c4,d4]=step(nrz4,drz4,t);
xlabel(''), ylabel('Amplituda, Czas [s]'),

title('Odpowiedź ukłau zamkniętego z reg. PID

-

ujemne sprzężenie zwrotne')


disp('---->'), pause

%^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

% Odpowiedź układu zamkniętego z reg. PID

idealnym
clc

'Transmitancja układu otwartego z reg. P

ID

idealnym'
[nro4i,dro4i]=series(n,d,rl4i,rm4i);
printsys(nro4i,dro4i)
clc

'Transmitancja układu zamkniętego z reg. PID

idealnym -

ujemne sprzężenie zwrotne'

[nrz4i,drz4i]=cloop(nro4i,dro4i,-1);
printsys(nrz4i,drz4i)

subplot(4,1,4)
step(nrz4i,drz4i,t)

xlabel(''), ylabel('Amplituda, Czas [s]'),

title('Odpowiedź ukłau zamkniętego z reg. PID

idealnym -

ujemne sprzężenie zwrotne')

%^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

disp('---->'), pause

%=============================================
clc
disp('C

harakterystyki częstotliwościowe Bodego

dla ukł. z reg.

PID'), pause

% regulator PID
[g4,h4,w]=bode(rl4,rm4,w);

% obiekt+regulator ukł. otw.

[i4,j4,w]=bode(nro4,dro4,w);

% obiekt+regulator ukł. zamk.

[k4,l4,w]=bode(nrz4,drz4,w);

figure(8)
subplot(4,2,1)
semilogx(w,20*log10(e)),grid
title('obiekt')
subplot(4,2,3)
semilogx(w,f),grid

subplot(4,2,2)
semilogx(w,20*log10(g4)),grid
title('regulator PID')
subplot(4,2,4)
semilogx(w,h4),grid

subplot(4,2,5)
semilogx(w,20*log10(i4)),grid
title('obiekt+regulator PID otw.')
subplot(4,2,7)
semilogx(w,j4),grid

subplot(4,2,6)
semilogx(w,20*log10(k4)),grid
title('obiekt+regulator PID zam.')
subplot(4,2,8)
semilogx(w,l4),grid

disp('---->'), pause

%#############################################
clc
disp('porównanie odpowiedzi czasowych na skok
jednostkowy'), pause

figure(9)
subplot(4,2,1)
plot(t,a1),grid

title('Odpowiedzi czasowe na skok jed. ukł.

otw. i zamk. dla:')
subplot(4,2,3)
plot(t,a2),grid
subplot(4,2,5)
plot(t,a3),grid
subplot(4,2,7)
plot(t,a4),grid

subplot(4,2,2)
plot(t,c1),grid
title(' P, PD, PI, PID')
subplot(4,2,4)
plot(t,c2),grid
subplot(4,2,6)
plot(t,c3),grid
subplot(4,2,8)
plot(t,c4),grid

disp('---->'), pause

%#############################################
clc
disp('porównanie ch-yk Bodego'), pause

figure(10)
subplot(4,2,1)
semilogx(w,20*log10(g1)),grid
title('Ch-ki Bodego dla: P')
subplot(4,2,3)
semilogx(w,h1),grid

background image

Skrypt - Regulator PID

Katedra Automatyki Napędu i Urządzeń Przemysłowych

9


subplot(4,2,2)
semilogx(w,20*log10(g2)),grid
title('PD')
subplot(4,2,4)
semilogx(w,h2),grid

subplot(4,2,5)
semilogx(w,20*log10(h3)),grid
title('PI')
subplot(4,2,7)
semilogx(w,h3),grid

subplot(4,2,6)
semilogx(w,20*log10(g4)),grid
title('PID')
subplot(4,2,8)
semilogx(w,h4),grid

[g2i,h2i,w]=bode(rl2i,rm2i,w);
[g4i,h4i,w]=bode(rl4i,rm4i,w);

%#############################################
clc

disp('porównanie ch-yk Bodego - PD, PID
idealne'), pause

figure(11)
subplot(2,2,1)
semilogx(w,20*log10(g2i)),grid
title('Ch-ki Bodego dla: idealnego PD')
subplot(2,2,3)
semilogx(w,h2i),grid

subplot(2,2,2)
semilogx(w,20*log10(g4i)),grid
title('idelany PID')
subplot(2,2,4)
semilogx(w,h4i),grid

%#############################################

set(gcf,'DefaultAxesFontSize',get(0,'DefaultAxe
sFontSize'));
set(gcf,'DefaultTextFontSize',get(0,'DefaultTex
tFontSize'));


disp('Czy zamknąć wszystkie wykresy'), pause

close all


Wyszukiwarka

Podobne podstrony:
LaboratoriumProcesorySygnaloweW Nieznany
LaboratoriumPodstawAutomatyki D Nieznany
materialy do zajec laboratoryjn Nieznany
03 Zastosowanie technik laborat Nieznany
1 16 lutego 2011 Laboratorium Nieznany
LaboratoriumProcesorySygnaloweW Nieznany
LaboratoriumPodstawAutomatyki D Nieznany
laboratorium artykul 2010 01 28 Nieznany
5 2 3a CCNA1 Laboratorium pl id Nieznany (2)
Laboratorium metod numerycznych Nieznany
LABORATORIUM 1 id 261484 Nieznany
Laboratorium Podstaw Fizyki id Nieznany
Laboratorium nr 5 wskaYniki Nieznany
instrukcja laboratoryjna id 216 Nieznany
Laboratorium wiczenie6 id 26186 Nieznany
Laboratorium z TM spr1 id 26189 Nieznany
Laboratorium INFORMATYKA ET SEM Nieznany
laboratorium maszyny synchronic Nieznany

więcej podobnych podstron