„Szabályozástechnika - Soros kompenzátorok tervezése” változatai közötti eltérés
| 194. sor: | 194. sor: | ||
% Wc_pid(s) = Ap * ( 1 + ------ + ---------- ) = ---- * -------------------------------- | % Wc_pid(s) = Ap * ( 1 + ------ + ---------- ) = ---- * -------------------------------- | ||
% ( s*Ti s*Tc + 1 ) Ti s * (s*Tc + 1) | % ( s*Ti s*Tc + 1 ) Ti s * (s*Tc + 1) | ||
% | |||
% | |||
% Aplant Aplant | |||
% Wp(s) = ---------------------------- = ---------------------------------------------- | |||
% (1+s*Tau1)(1+s*Tau2)(1+s*T3) (s^2*Tau1*Tau2 + s*(Tau1+Tau2) + 1) * (s*T3+1) | |||
N=10; % Td/Tc arány meghatározása | N=10; % Td/Tc arány meghatározása | ||
| 202. sor: | 208. sor: | ||
% 1. Tau1+Tau2 = Ti+Tc | % 1. Tau1+Tau2 = Ti+Tc | ||
% 2. Tau1*Tau2 = Ti*(Td+Tc) = Ti*(N+1)*Tc | % 2. Tau1*Tau2 = Ti*(Td+Tc) = Ti*(N+1)*Tc | ||
% Az 1. egyenletből Ti-t kifejezve (Ti=Tau1+Tau2-Tc) | |||
% Az 1. egyenletből Ti-t kifejezve (Ti=Tau1+Tau2-Tc) és T2-be helyettesítve, | |||
% egy másodfokú egyenletet kapunk Tc-re, aminek megoldása: | % aztán egy kicsit rendezgetve egy másodfokú egyenletet kapunk Tc-re, aminek megoldása: | ||
Tcs=roots([N+1 -(N+1)*(Tau1+Tau2) Tau1*Tau2]) | Tcs=roots([N+1 -(N+1)*(Tau1+Tau2) Tau1*Tau2]) | ||
% Tc mindenképpen pozitív és valós | % Tc mindenképpen pozitív és valós kell hogy legyen! Ha mindkét gyökre teljesül ez a | ||
% feltétel, akkor a kisebbiket választjuk mindig. | |||
Tc=Tcs(2) % Itt a gyökök közül mindkettő valós és pozitív, a 2. a kisebb | Tc=Tcs(2) % Itt a gyökök közül mindkettő valós és pozitív, a 2. a kisebb | ||
% Automatizált megoldás - vájtfülű érdeklődőknek, nem része az anyagnak! | % Automatizált megoldás - vájtfülű érdeklődőknek, nem része az anyagnak! | ||
% A find függvény segítségével megkeressük Tcs nulla | % A find függvény segítségével megkeressük Tcs nulla képzetes részű (imag(Tcs)=0) | ||
% és (&) pozitív valós részű (Tcs>0) elemeit. A find függvény a feltételnek eleget | |||
% tevő elemek indexével tér vissza, így az értékek maguk a Tcs(find(...)) módon kaphatók meg. | |||
% Ezek közül pedig a minimálisat választjuk: | |||
Tc=min(Tcs(find(imag(Tcs)==0 & Tcs>0))) | Tc=min(Tcs(find(imag(Tcs)==0 & Tcs>0))) | ||
| 224. sor: | 229. sor: | ||
wc_pid=tf(1,1)+tf(1,[Ti 0])+tf([Td 0],[Tc 1]) % A szabályozó Ap=1 mellett | wc_pid=tf(1,1)+tf(1,[Ti 0])+tf([Td 0],[Tc 1]) % A szabályozó Ap=1 mellett | ||
w0=minreal(wc_pid*wp) % A felnyitott kör átviteli függvénye | w0=minreal(wc_pid*wp) % A felnyitott kör átviteli függvénye p-z kiejtéssel | ||
figure(1); | figure(1); | ||
pzmap(wp,'b',wc_pid,'r'); % A pólus-zérus kiejtés szemléltetése | pzmap(wp,'b',wc_pid,'r'); % A pólus-zérus kiejtés szemléltetése | ||
| 232. sor: | 237. sor: | ||
% Leolvasva (természetesen a táblázatos módszer is használható): | % Leolvasva (természetesen a táblázatos módszer is használható): | ||
Ap=10^(2.16/20) | Ap=10^(2.16/20) | ||
wc_pid=Ap*wc_pid % A szabályzó átviteli függvénye a megfelelő Ap mellett | wc_pid=Ap*wc_pid % A szabályzó átviteli függvénye a megfelelő Ap mellett | ||
w0=minreal(wc_pid*wp) % A felnyitott kör | w0=minreal(wc_pid*wp) % A felnyitott kör | ||
| 246. sor: | 252. sor: | ||
figure(5); | figure(5); | ||
step(wur_pid); % Az r->u átviteli függvény ugrásválasza | step(wur_pid); % Az r->u átviteli függvény ugrásválasza | ||
pause; % Várakozás gombnyomásra | pause; % Várakozás gombnyomásra | ||
close all; % Az összes nyitva lévő grafikus ablak bezárása | close all; % Az összes nyitva lévő grafikus ablak bezárása | ||