Koncepty po polsku, wzory i nazwy po angielsku, hiszpański w nawiasie jak na slajdach. Cel: z rysunku z klockami dojść do jednej transmitancji Y/R, a potem zobaczyć najważniejszą rzecz kursu: zamknięcie pętli przesuwa bieguny. To jest odpowiedź na pytanie z Kroku 2: jak naprawić zepsuty układ.
1 Alfabet klocków · 2 Trzy redukcje · 3 Redukcja krok po kroku · 4 Przesuwanie sumatorów · 5 Pętla zamknięta · 6 Pętla przesuwa bieguny · 7 Błąd ustalony · 8 Cztery zastosowania · 9 Pułapki · 10 MATLAB i Simulink · 11 Sprawdź się
Mnożysz, dodajesz, zamykasz pętlę. Mianownik 1+L jest taki sam dla każdego wejścia, więc to on ustala nowe bieguny. Wartość końcowa to Krok 1 zastosowany do Y/R: K_{cl}=T(0).
1 · Alfabet klocków
Diagram blokowy (diagrama de bloques) to rysunek układu, na którym każdy fragment fizyki jest klockiem, a sygnały płyną strzałkami. Cztery symbole wystarczą do wszystkiego (SS-05 p.5, SS-06 p.2).
Blok (bloque) = maszyna, która przerabia sygnał: Y(s)=G(s)\,U(s). Jak przekładnia: wyjście = przełożenie × wejście.
Strzałka (señal) = rura z jednym sygnałem, płynie tylko w stronę grotu. Strzałka nic nie zmienia, tylko przenosi.
Sumator (sumador) = kran mieszający: dodaje i odejmuje wejścia. Znak stoi przy każdym wejściu osobno: X=\pm X_1\pm X_2 (SS-06 p.2).
Rozgałęzienie (bifurcación) = kopia sygnału, jak zerknięcie na termometr. Obie gałęzie niosą ten sam sygnał, nic nie ubywa.
Dlaczego klocki się mnożą? W dziedzinie czasu blok to równanie różniczkowe. Laplace zamienia pochodną w mnożenie przez s (Krok 3, SS-04 p.13), więc całe równanie staje się zwykłym mnożeniem Y=G\cdot U (SS-05 p.5). Dlatego sygnały na diagramie to U(s),\ Y(s), a nie u(t): tylko w świecie s wolno mnożyć i dzielić klocki jak liczby.
Prawdziwy diagram: silnik DC (SS-06 p.3)
Ten sam silnik co w "1.- Modelado motor DC", tylko narysowany. Każda strzałka to fizyczna wielkość, każdy klocek to jedno prawo fizyki.
\frac{1}{Ls+R}: uzwojenie. Napięcie, które zostaje (V-V_c), pcha prąd I (Kirchhoff, cewka + rezystor).
K_t: prąd → moment T (stała momentu).
\frac{1}{Js+B}: wirnik. Moment minus obciążenie T_c rozpędza bezwładność J z tarciem B (Newton dla obrotu, jak drzwi z Kroku 3).
K_e: kręcący się silnik sam robi się prądnicą i oddaje napięcie V_c (fuerza contraelectromotriz). To jest naturalna pętla sprzężenia zwrotnego, nikt jej nie projektował.
2 · Trzy podstawowe redukcje (álgebra de bloques)
Redukcja = zastąpienie kilku klocków jednym, który robi z wejściem dokładnie to samo (SS-06 p.4).
Dwie przekładnie po kolei: 3:1, potem 2:1 daje 6:1. Wzmocnienia się mnożą.
Równolegle (en paralelo) → dodajesz
Y=G_1U+G_2U=(G_1+G_2)\,U
Dwa węże nalewają do jednego zbiornika: przepływy się dodają. Uwaga na znaki w sumatorze: z minusem byłoby G_1-G_2.
Pętla sprzężenia zwrotnego (lazo de realimentación) → G/(1+GH)
Metafora: prysznic. Kręcisz kurkiem (G), ręka czuje wodę (czujnik H), mózg porównuje z tym, co chcesz (sumator), i poprawia. Sygnał wyjścia wraca na wejście. Problem: y stoi po obu stronach równania, więc trzeba je rozwiązać.
Dlaczego minus w sumatorze daje plus w mianowniku? Minus mówi "odejmij to, co zmierzyłeś". Wyjście y pojawia się wtedy po prawej stronie z minusem: y=Gr-GHy. Żeby zebrać y w jednym miejscu, przenosisz -GHy na lewą stronę, a przeniesienie przez znak "=" zmienia minus na plus: y+GHy=Gr. Plus w mianowniku nie jest nowym fizycznym dodawaniem, to ślad po przeniesieniu. Przy sprzężeniu dodatnim (sumator +, +) wychodzi odwrotnie: G/(1-GH), czyli mikrofon przy głośniku, który piszczy coraz głośniej.
Sprawdzenie liczbami.G=10,\ H=1: \frac{10}{1+10}=0.909. G=1000: \frac{1000}{1001}=0.999. Im większe G, tym bliżej 1/H. Wniosek: przy dużym wzmocnieniu o wyniku decyduje czujnik, a nie planta (wzmacniacz Blacka, FR-03 p.4). Zły czujnik = złe wyjście, którego pętla nie zauważy (FR-01 p.8).
3 · Redukcja krok po kroku (sygnały płyną)
Typowy diagram z egzaminu: pętla w pętli plus dwa klocki równolegle. Zasada: zwijaj od środka. Najpierw to, co jest czystą serią albo równoległością, potem najbardziej wewnętrzna pętla, na końcu zewnętrzna. Kolor bursztynowy = część, którą zwiniemy w następnym kroku.
Diagram i kolejność są moje. Każdy krok używa tylko reguł z SS-06 p.4. Liczby do sprawdzenia w ćwiczeniu Z5.
4 · Przesuwanie sumatorów i rozgałęzień (SS-06 p.5–9)
Czasem pętle się krzyżują i nie da się zwinąć od środka. Wtedy przesuwasz sumator albo rozgałęzienie. Jedna zasada pilnuje wszystkiego: każdy sygnał, który wychodzi z diagramu, musi dostać dokładnie to samo co przedtem. Jak przy przenoszeniu filtra w instalacji wodnej: przesuniesz go za rozgałęzienie, to każda gałąź potrzebuje swojego filtra.
Kilka wejść naraz: superpozycja (superposición, SS-06 p.10–12). Transmitancja ma jedno wejście i jedno wyjście. Gdy wejść jest więcej (referencja X i zakłócenie Z), liczysz każdą osobno, wyzerowawszy resztę, i sumujesz:
Liczniki są różne, mianownik ten sam. Bieguny należą do pętli, nie do wejścia: zakłócenie i referencja dają ruch o tym samym kształcie. (SS-06 p.11 nazywa regulator R(s), a referencję X(s); w FR-01 regulator to D, a referencja R. Patrz pułapki.)
5 · Pętla zamknięta: serce kursu (lazo cerrado)
Każdy układ regulacji w tym kursie ma ten sam szkielet (FR-01 p.3). Kliknij element, żeby zobaczyć, czym jest. Przykład w tle: tempomat (FR-01 p.4–5).
Wyprowadzenie Y/R z regulatorem D, plantą G i czujnikiem H
Funkcja pętli (función de lazo)L=DGH = iloczyn wszystkiego, przez co sygnał przejdzie, gdy obiegnie pętlę jeden raz. Liczysz ją z otwartymi klockami, ale opisuje zamkniętą pętlę.
Y/R=DG/(1+L): licznik = droga od wejścia do wyjścia "na wprost", mianownik = 1+L.
Y/W=G/(1+L): zakłócenie (perturbación) ma krótszą drogę na wprost (sam G), ale ten sam mianownik.
Cztery funkcje wrażliwości przy H = 1 (FR-01 p.12). Wszystkie mają mianownik 1 + L.
S=\frac{1}{1+L}\ \ \text{(sensibilidad)}
T=\frac{L}{1+L}\ \ \text{(s. complementaria)}
S_i=\frac{G}{1+L}\ \ \text{(s. de entrada)}
S_u=\frac{D}{1+L}\ \ \text{(s. de control)}
T mówi, ile wyjścia z referencji. S mówi, ile błędu: E=S\,R, oraz S+T=1 (FR-04 p.3). S_i to wpływ zakłócenia, S_u to wysiłek siłownika. W STUDY_MAP to jest "jedna idea, na której wisi cały kurs": śledzenie, zakłócenia, odporność, marginesy, strojenie PID to pytania o L,\ S,\ T.
Tempomat z liczbami ze slajdów (FR-01 p.5, p.10, p.15)
Czujnik daje 0.1 V na km/h (H_y=0.1). Żeby porównywać jabłka z jabłkami, referencja też przechodzi przez H_r=0.1 (selector de referencia). Gdy H_r=H_y, można je przesunąć za sumator i dostać pętlę z H=1 oraz D=H_rD_{cl}=0.1\cdot100=10 (FR-01 p.10).
Planta: G=\frac{10}{0.1s+1}, biegun -10.
Funkcja pętli: L=DG=\frac{100}{0.1s+1}, więc L(0)=100.
Ramię robota z Kroku 3: G=\frac{20}{s(s+10)}, regulator P: D=K_p. Wtedy s(s+10)+20K_p=0, czyli s^2+10s+20K_p=0. K_p siedzi w wyrazie wolnym, więc kręcąc nim, przesuwasz bieguny, a z nimi ζ, ωn, Mp, ts z Kroku 3. To jest naprawa zepsutego układu: nie wymieniasz silnika, dokładasz pętlę.
Metafora z Kroku 3 trzyma się dalej: K_p to sprężyna drzwi, która ciągnie do \theta_{ref}. Twardsza sprężyna = szybciej, ale bardziej się buja. Dla układu niestabilnego (FR-03 p.8) to kij od szczotki na dłoni: sam się przewraca (biegun w prawo), ale oko + ręka (pętla) go łapią.
Laboratorium: wybierz układ i kręć Kp
Płaszczyzna s: ✕ bieguny planty, ● bieguny pętli zamkniętej, kropki = droga przy zmianie Kp
Odpowiedź na skok referencji r = 1
pętla zamknięta yreferencja r = 1 (kropki)sama planta, u = 1 (kreski)
Kropki na płaszczyźnie s to zapowiedź linii pierwiastkowych (lugar de las raíces, DC-01): droga, którą bieguny jadą, gdy rośnie Kp. Liczby mierzone z symulacji, ts z pasmem 5 % (SS-08 p.6).
7 · Wartość końcowa pętli i błąd ustalony (error en régimen permanente)
Krok 1: wartość końcowa = G(0), bo w stanie ustalonym pochodne = 0, czyli s=0. To samo dla pętli:
FR-04 p.11 (typ 0, skok): e_p=\frac{1}{1+K_p} ze stałą błędu położenia K_p=\lim_{s\to0}L(s)=L(0). Uwaga: to K_p to nie wzmocnienie regulatora P, tylko L(0). Ta sama litera, inna rzecz.
Regulator P zostawia błąd
P to pracownik płacony od błędu: pcha pedał tylko wtedy, gdy prędkość się nie zgadza (u=K_pe). Gdyby błąd spadł do zera, przestałby pchać i auto by zwolniło. Więc auto ustala się tam, gdzie "trochę błędu × Kp" daje akurat tyle gazu, ile trzeba. Większe Kp = mniejszy błąd, ale nigdy zero, bo L(0) jest skończone.
Całka 1/s usuwa błąd
Całka to zbiornik z Kroku 2: poziom wody = zebrany błąd. Dopóki błąd ≠ 0, woda dalej leci i pedał dalej się zmienia. Zatrzymuje się dopiero przy błędzie = 0, a poziom (gaz) zostaje taki, jaki trzeba. Matematycznie: 1/s w L daje L(0)=\infty, więc e_{ss}=1/(1+\infty)=0.
Dlatego ramię robota z Kroku 3 (Z1) miało K=1 z samym P: silnik już sam całkuje (prędkość → kąt), w G=\frac{20}{s(s+10)} siedzi 1/s. Typ układu (tipo) = liczba całek w L (FR-04 p.7, p.11): tempomat typ 0, ramię typ 1.
Tempomat: P kontra PI
Prędkość po skoku referencji: G = 2/(5s+1), r = 1
tylko P (kreski)PI: Kp + Ki/sr = 1 (kropki)
Planta tempomatu 2/(5s+1) jest moja (auto: T = 5 s). PI to temat DC-03, tu tylko zapowiedź. Zero PI (-K_i/K_p) potrafi dać przestrzelenie nawet przy biegunach rzeczywistych.
Zapowiedź DC-06 (architektury): błąd od wartości końcowej da się też usunąć bez całki. Prefiltr (prefiltro) F=1/T(0) przed pętlą skaluje referencję (DC-06 p.3, p.5), a feedforward (prealimentación) 1/G(0) podaje "z góry policzony" gaz (DC-06 p.8–9). Oba działają tylko, gdy model jest dokładny. Całka działa zawsze, bo patrzy na prawdziwy błąd.
8 · Cztery zastosowania obok siebie: pętla otwarta kontra zamknięta
Ten sam regulator P, cztery różne planty, po cztery wartości Kp. Wybierz zastosowanie. Wiersz "pętla otwarta" to sama planta przy u=1.
Odpowiedzi na skok (kliknij, żeby pokazać albo ukryć)
Mapa biegunów (kolor = Kp, ✕ = planta)
Planty tempomatu, ramienia i drona są moje. Piekarnik to planta z FR-03 p.7 (czas w minutach: grzałka, powietrze, czujnik = trzy opóźnienia). ts z pasmem 5 %.
Quiz o czterech zastosowaniach
9 · Pułapki
Znak w sumatorze. Zawsze patrz na znak przy wejściu sprzężenia. G/(1+GH) działa tylko dla minusa. Przy (+,+) masz G/(1-GH). Przy minusie przy referencji zamiast przy sprzężeniu wyprowadzaj od zera (SS-06 p.4: "saber deducirlos").
H ≠ 1 (jednostki czujnika). Czujnik daje wolty, nie km/h. Przy dużym L wyjście dąży do R/H, więc referencję trzeba podać w jednostkach czujnika (H_r=H_y, FR-01 p.5, p.10). Wzory S,\ T z FR-01 p.12 zakładają już H=1.
Pętla otwarta ≠ zamknięta.L=DGH to funkcja pętli (otwarta). Jej bieguny to bieguny klocków, nie układu. Bieguny układu to pierwiastki 1+L=0. Planta stabilna może dać pętlę niestabilną (FR-03 p.7), a planta niestabilna pętlę stabilną (FR-03 p.8).
Dwie litery R. SS-06 p.11 nazywa regulator R(s), a referencję X(s). FR-01 nazywa regulator D, referencję R. Zanim podstawisz, sprawdź, co jest czym. Podobnie K_p regulatora ≠ K_p=L(0) z FR-04 p.11.
Skracanie biegunów i zer. Wpisane ręcznie L/(1+L) w MATLAB-ie daje za wysoki rząd (te same czynniki w liczniku i mianowniku), więc użyj feedback albo minreal. Ale nigdy nie skracaj bieguna niestabilnego zerem regulatora: na papierze znika, w środku pętli sygnał dalej rośnie.
Jednostki czasu. Piekarnik liczy w minutach, ramię w sekundach. ts = 3 w piekarniku to 3 minuty. W MATLAB-ie step(T,20) to 20 jednostek czasu modelu.
Błąd w mojej starej ściądze. STUDY_MAP miał G = 1/((s+1)(s+2)(s+3)) z D = 12 jako przykład niestabilności. Z jedynką w liczniku pętla jest stabilna aż do K=60. Slajd FR-03 p.7 ma 6 w liczniku: wtedy granica to D=10, a D=12 daje bieguny 0.12\pm3.53j. Poprawiłem STUDY_MAP.
10 · MATLAB i Simulink
Skrypt step4.m w folderze projektu, sekcje uruchamiasz Ctrl+Enter
%% Step 4 - block diagrams -> closed loop
s = tf('s');
%% 1. Three reductions (SS-06 p.4)
G1 = 2/(s+1); G2 = 3/(s+4);
Gs = series(G1,G2) % = G1*G2 -> 6/(s^2+5s+4)
Gp = parallel(G1,G2) % = G1+G2 -> (5s+11)/(s^2+5s+4)
G = 10/(s+1); H = 0.5;
T1 = feedback(G,H) % G/(1+GH) -> 10/(s+6) (minus by default)
T2 = feedback(G,H,+1) % positive feedback -> 10/(s-4): unstable
%% 2. Cruise control, FR-01 p.15
D = 10; G = 10/(0.1*s+1);
L = D*G; % loop function, H = 1
T = feedback(L,1) % shows 100/(0.1s+101) = 1000/(s+1010)
S = feedback(1,L) % 1/(1+L) = (s+10)/(s+1010)
Si = feedback(G,D) % G/(1+DG) = 100/(s+1010)
pole(T), dcgain(T) % -1010, 0.9901
%% 3. Stable plant, unstable loop (FR-03 p.7)
G = 6/((s+1)*(s+2)*(s+3));
T1 = feedback(1*G,1); T12 = feedback(12*G,1);
pole(T1), pole(T12) % second one: 0.12 +/- 3.53i -> unstable
step(T1, T12, 20); legend('D = 1','D = 12')
%% 4. Robot arm with P (Step 3, Z1)
G = 20/(s*(s+10));
T = feedback(5*G,1) % 100/(s^2+10s+100)
damp(T) % zeta 0.5, wn 10
stepinfo(T,'SettlingTimeThreshold',0.05) % Overshoot 16.3, SettlingTime ~0.53
%% 5. Why minreal
L = 5*G;
Tbad = L/(1+L) % order 4: same factors on top and bottom
Tgood = minreal(Tbad) % order 2 again, same as feedback(L,1)
Simulink, pierwszy kontakt: pętla z FR-03 p.7
W Command Window wpisz simulink i Enter. Na stronie startowej: Blank Model → Create Model.
Kliknij dwa razy w puste miejsce na kanwie i wpisz nazwę bloku (szybkie wstawianie). Dodaj po kolei: Step, Sum, Gain, Transfer Fcn, Scope. (Alternatywa: zakładka SIMULATION → Library Browser: Sources, Math Operations, Continuous, Sinks.)
Ustaw je w rzędzie od lewej: Step → Sum → Gain → Transfer Fcn → Scope.
Dwuklik na Sum → List of signs: |+- → OK. Pojawią się wejście + z lewej i − od dołu. To jest sumator ze znakiem minus dla sprzężenia.
Dwuklik na Gain → Gain: 1 (to jest D).
Dwuklik na Transfer Fcn → Numerator: [6], Denominator: [1 6 11 6] (to jest rozwinięte (s+1)(s+2)(s+3)).
Dwuklik na Step → Step time: 0 (domyślnie 1), Final value: 1.
Połącz: przeciągnij myszką od grotu wyjścia (>) jednego bloku do wejścia następnego: Step → + w Sum, Sum → Gain → Transfer Fcn → Scope.
Sprzężenie: przytrzymaj Ctrl i przeciągnij od linii między Transfer Fcn a Scope w dół i w lewo do wejścia − w Sum. To jest punkt rozgałęzienia.
Na górnym pasku Stop Time: 20. Kliknij zielone Run, potem dwuklik na Scope.
Zmień Gain na 10 (wieczna oscylacja) i na 12 (rośnie, niestabilne). Porównaj z laboratorium w części 6.
Zapisz jako step4_loop.slx w folderze projektu.
Oczekiwane: przy Gain = 1 wyjście ustala się na 0.5 (T(0)=6/(6+6)), przy 12 rośnie oscylując.
11 · Sprawdź się
Z1. Seria i równolegle.G_1=\frac{2}{s+1},\ G_2=\frac{3}{s+4}. Podaj wzmocnienie statyczne K połączenia szeregowego i równoległego.
K = 1, bo G_4=1/s wnosi całkę do pętli (część 7). Zero w −1 leży tuż obok wolnego bieguna −0.9 i prawie go znosi, dlatego odpowiedź jest szybsza, niż sugeruje 3/0.9.
Z6. Modelowanie: silnik DC z SS-06 p.3.L=0.5 H, R=1 Ω, J=0.01 kg·m², B=0.1 N·m·s, K_t=K_e=0.01. Najpierw T_c=0: znajdź \Omega/V, jego K i bieguny. Potem superpozycja: K dla \Omega/T_c przy V=0.
Ten sam mianownik dla obu wejść (SS-06 p.11). Minus przy T_c, bo obciążenie hamuje. Przepis na każdy taki diagram: droga na wprost od wejścia do wyjścia w liczniku, 1+(iloczyn pętli) w mianowniku.
Z7. Projekt Kp. Ramię G=\frac{20}{s(s+10)} z regulatorem P. Jakie Kp daje ζ = 0.7 (Krok 2: najlepszy kompromis)?