POLITECHNIKA GDAŃSKA
WYDZIAŁ MECHANICZNY
Materiały pomocnicze do zajęć laboratoryjnych z Podstaw Automatyki
Temat: Matlab i Simulink

Daniel Karaś
Jakub Kościelnik
Marcin Waszkiewicz
PROWADZĄCY:
mgr inż. Grzegorz Banaszek
Gdańsk 2008/2009
I. MODELOWANIE
Dla układu przedstawionego na rysunku określić transmitancję operatorową ![]()
y(t)wy
k1=5000 k2=10000
m=2kg
b1=5 b2=10
x(t) we
Dla dalszych obliczeń przyjąć :
m=2 kg
k1=5000 N/m
k2=10000 N/m
b1=5 N s/m
b2=10 N s/m
2. Wprowadzenie transmitancji układu w Matlabie
Dla (**) mamy: Licznik L=[k1]
Mianownik ![]()
s2 (b1+b2)s (k1 + k2)]
wyświetlenie K(s): printsys (L,M) ,, tf (L, M)
wykresy Bode'a: bode (L, M)
wykres Nyquista: nyquist (L, M)
odpowiedz skokowa: step (L, M)
odpowiedz impulsowa: impulse (L, M)
podział ekranu na podwykresy: subplot(i, j, k)
opis tytułu: title(` tekst')
% plik w Matlabie
% DANE
m=2;
k1=5000;
k2=10000;
b1=5;
b2=10;
L=[k2]; % LICZNIK
M=[m b (k1+k2)]; % MIANOWNIK
printsys(L,M) % WYSWIETLENIE TRANSM. OPERAT. UKL.
subplot(2,2,1)
bode(L,M) % WYKRESY BODE'A
grid
subplot(2,2,2)
nyquist(L,M) % WYKRES NYQUIST
subplot(2,2,3)
step(L,M) % ODPOWIEDZ SKOKOWA
grid
subplot(2,2,4)
impulse(L,M) % ODPOWIEDZ IMPULSOWA
grid
3. Simulink
Zamodelować działanie układu o transmitancji operatorowej (**) w programie „SIMULINK”. Zadać wymuszenie skokowe i sygnałem harmonicznym o częstotliwości ![]()
. Korzystając z członów całkujących ![]()
zamodelować układ opisany różniczkowym równaniem (![]()
)
a) Uruchomić pakiet Matlab.
b) Z menu wybrać ikonę pakietu SIMULINK.
c) Otworzyć okno tworzenia nowego modelu.
d) Otwierając grupy z elementami schematów blokowych ( continuous, math operations,…,sinks, itd.)
utworzyć model analizowanego układu.
UWAGA!!! Poszczególne elementy „przeciągamy” z okna źródłowego ( np. „Continuous”) do okna modelu ( np. „Untitled”) lewym przyciskiem myszy.
e) Zmiany ustawień:
![]()
parametry i nastawy ![]()
2x klikając myszką na dany obiekt,
![]()
wygląd, kierunek, kolor bloków![]()
najechać na obiekt, nacisnąć prawy przycisk muszy, zmienić
opcję,
np. ![]()
Format
│![]()
Flip Block (obrót o 180°)
│![]()
Rotate Blok (obrót o określony kąt ![]()
)
UWAGA!!! Dodatkowe informacje o zmianach parametrów i ustawień - wg instrukcji zamieszczonej w punkcie ksero.
f) Opisy obiektów i sygnałów:
![]()
obiekt ![]()
1x kliknąć na nazwę, np. Gs zmienić opis na właściwy,
![]()
sygnał (linie) ![]()
2x kliknąć na linię, wpisać nazwę lub symbol np. y'' ,y', y, wyjście, itd.,
g) Okna wykresów ![]()
![]()
![]()
2x dwa razy kliknąć na okno.
Z równania (*)
![]()
II. DOBÓR NASTAW REGULATORA PID
Dla układu opisanego transmitacją K(S) dobrać optymalne nastawy regulatora PID metodą Zieglera-Nicholsa. Posłużyć się przykład em 9-13 , str. 212 oraz tablicą - str. 210.
W. Próchnicki, M. Dzida, Lub wg. C. Orlikowski, E. Wittbrodt
„Zbiór zadań z Podstaw Automatyki” „Laboratorium z Automatyki i Sterowania”
wyd. PG, Gdańsk 1993 str. 142
Nastawy optymalne:


1. Ustawić regulator PID na działanie tylko proporcjonalne, tzn.
![]()
![]()
z warunków stabilności wg. Hurwitza:
30 + 0.5Kkr > 0 ![]()
![]()
oraz

![]()
![]()
![]()
Na granicy stabilności układ znajduje się dla:
2. Wprowadzając Kkr uzyskamy odpowiedź dla granicy stabilności w postaci:
![]()
z wykresu odczytać
3. Wyznaczyć nastawy regulatora PID wg:


![]()
4. Tworzenie schematów blokowych w Matlabie
![]()
sprzężenie zwrotne

znak = ![]()
[L , M] = feedback (L1, M2, L2, M2, znak)
![]()
sztywne sprzężenie zwrotne
[L , M] = cloop (L1, M1, znak)
![]()
człony szeregowe
[L , M] = series (L1, M2, L2, M2)
![]()
człony równoległe
[L , M] = parallel ( (-)L1, M2, (-)L2, M2)
![]()
odpowiedź skokowa
![]()
![]()
odpowiedź impulsowa
![]()
5. Listing programu w Matlabie do wyznaczania nastaw regulatora PID
clear all;
clc;
clf;
L1=[1]
M1=[1 30 15 50]
clc;
disp('transmitancja operatorowa obiektu')
tf(L1,M1)
% TRANSM. UKL. BEZ REGULATORA
[L2,M2]=cloop(L1,M1,-1);
subplot(4,1,1)
impulse(L2,M2);
legend('uklad bez regulatora')
t=[0:0.01:20];
[y1,x,t]=impulse(L2,M2,t);
grid
% ODPOWIEDZ UKLADU Z WZMOCNIENIEM Kkr
Kkr=400;
[L3,M3]=cloop(Kkr*L1,M1,-1);
subplot(4,1,2)
impulse(L3,M3)
LEGEND
grid
Tkr=1.7;
kp=0.2*Kkr;
Ti=0.33*Tkr;
Td=0.5*Tkr;
[Lr,Mr]=parallel([0 1],[Ti 0],[Td 0],[0 1]);
[L_pid,M_pid]=parallel(kp*Lr,Mr,kp*[1],[1]);
disp('')
tf(L_pid,M_pid)
[L4,M4]=series(L_pid,M_pid,L1,M1);
[L_z_reg,M_z_reg]=cloop(L4,M4,-1);
subplot(4,1,3)
impulse(L_z_reg,M_z_reg)
[y2,x,t]=impulse(L_z_reg,M_z_reg,t);
grid
legend
subplot(4,1,4)
plotyy(t,y1,t,y2)
title('zarwa')
xlabel('t[s]')
grid
6. Okno wykresów - ”Figure 1”
7. Realizacja układu z regulatorem PID w programie SIMULINK
4