Przejdź do treści
coden

Sterowanie rozmyte: Mamdani i Sugeno od wentylatora po wahadło na wózku

Regulator i sprzężenie zwrotne, fuzyfikacja, wnioskowanie i defuzyfikacja, środek ciężkości, bisektor i średnia maksimów, regulator Takagi–Sugeno, powierzchnie sterowania i regulator rozmyty, który utrzyma drążek na wózku.

14 minut Matěj Žalmánek 2026-10-15

Seria Podstawy AI Część 35 z 52
  1. Mapa sztucznej inteligencji: co jest czym i jak to do siebie pasuje
  2. Krótka historia sztucznej inteligencji: od Turinga do modeli językowych
  3. Dane, model, trening, inferencja: podstawowe pojęcia na jednym przykładzie
  4. Jak czytać zapis matematyczny: symbole, indeksy, sumy i kwantyfikatory
  5. Zbiory i relacje: klocki, z których składają się definicje w AI
  6. Funkcje i odwzorowania: dlaczego każdy model AI jest funkcją
  7. Logika i dowody: reguły, według których rozumuje AI
  8. Grafy i drzewa: struktura, na której opierają się przeszukiwanie i sieci neuronowe
  9. Algebra liniowa dla uczenia maszynowego: wektory, macierze i dlaczego AI głównie mnoży
  10. Pochodne, gradient i reguła łańcuchowa: jak model ustala, w którą stronę się uczyć
  11. Spadek gradientu: jak uczy się model
  12. Czym jest prawdopodobieństwo: od rzutu kostką do aksjomatów Kołmogorowa
  13. Prawdopodobieństwo warunkowe i twierdzenie Bayesa: jak zmienić ocenę, gdy dowiesz się czegoś nowego
  14. Zmienna losowa i dystrybuanta: jedna funkcja, która mówi o rozkładzie wszystko
  15. Funkcja gęstości i funkcja prawdopodobieństwa: dlaczego zmienna ciągła ma w punkcie prawdopodobieństwo zero
  16. Wartość oczekiwana, wariancja i kowariancja: gdzie leży rozkład, jak jest szeroki i co z czym się wiąże
  17. Przegląd rozkładów prawdopodobieństwa: Bernoulliego, dwumianowy, Poissona, jednostajny, normalny i wykładniczy
  18. Prawo wielkich liczb i centralne twierdzenie graniczne: dlaczego średnie zachowują się tak przewidywalnie
  19. Statystyka i estymacja parametrów: największa wiarygodność, MAP i przedziały ufności
  20. Teoria informacji: entropia, entropia krzyżowa i dywergencja KL — skąd się biorą funkcje straty
  21. Przeszukiwanie przestrzeni stanów: BFS, DFS, UCS i A* z animacjami
  22. Gry i przeciwnik: minimax, przycinanie alfa-beta i Monte Carlo tree search
  23. Spełnianie ograniczeń: backtracking, propagacja ograniczeń i AC-3 na sudoku i mapie czeskich krajów
  24. Logika i systemy z bazą wiedzy: wnioskowanie w przód i wstecz, rezolucja i systemy ekspertowe
  25. Planowanie: STRIPS, świat klocków, heurystyki z relaksacji i planowanie w agentach AI
  26. Przeszukiwanie lokalne i symulowane wyżarzanie: komiwojażer przez czeskie miasta wojewódzkie
  27. Algorytmy genetyczne: populacja, krzyżowanie, mutacja i selekcja na plecaku na wycieczkę
  28. Strategie ewolucyjne i programowanie genetyczne: od reguły jednej piątej do prawa Keplera
  29. Optymalizacja kolonią mrówek: jak ślad feromonowy znajduje krótką drogę
  30. Optymalizacja rojem cząstek: bezwładność, własne doświadczenie i doświadczenie roju
  31. Neuroewolucja: ewolucja wag i kształtu sieci neuronowych oraz algorytm NEAT
  32. Zbiory rozmyte i funkcje przynależności: jak zapisać „trochę ciepło”
  33. Logika rozmyta a prawdopodobieństwo: dlaczego „trochę ciepło” nie znaczy „prawdopodobnie ciepło”
  34. Logika rozmyta: t-normy, implikacje i reguły JEŻELI–TO
  35. Sterowanie rozmyte: Mamdani i Sugeno od wentylatora po wahadło na wózku
  36. Klasteryzacja rozmyta: algorytm fuzzy c-means i punkty między skupieniami
  37. Systemy neuro-rozmyte (ANFIS): reguły rozmyte, które uczą się z danych
  38. Łańcuchy Markowa: macierz przejścia, rozkład stacjonarny i PageRank
  39. Ukryte modele Markowa: algorytm Viterbiego i nieuczciwe kasyno
  40. Sieci bayesowskie: dlaczego trawa jest mokra i co z tego wynika dla zraszacza
  41. Filtr Kalmana: jak z niedokładnych pomiarów oszacować, gdzie jest samochód i jak szybko jedzie
  42. Rodzaje uczenia maszynowego: nadzorowane, nienadzorowane, półnadzorowane i inne
  43. Prompty, kontekst i RAG: jak dać modelowi właściwe informacje
  44. Wariacyjne autoenkodery (VAE): nowe obrazki z ciągłej przestrzeni latentnej
  45. Generatywne sieci przeciwstawne (GAN): fałszerz kontra detektyw
  46. Modele dyfuzyjne: jak z czystego szumu powstaje obraz
  47. Procesy decyzyjne Markowa: stany, akcje, nagrody i równania Bellmana
  48. Q-learning i DQN: uczenie się wartości akcji od tabeli po sieć neuronową
  49. Policy gradient i PPO: uczenie się bezpośrednio polityki
  50. Jak działa agent AI: model językowy w pętli z narzędziami
  51. Programowanie z agentami AI: zadanie, testy i kontrola
  52. Ocena i bezpieczeństwo systemów AI: jak mierzyć i jak pilnować

Pełny program serii Gotowe: 52 z 83 tematów

Czego się dowiesz
  • Jak regulator rozmyty zamienia pomiar na sterowanie: fuzyfikacja, wnioskowanie i defuzyfikacja.
  • Czym różni się regulator Mamdaniego od regulatora Sugeno i dlaczego środek ciężkości nie osiąga krańców zakresu.
  • Jak dziewięć reguł utrzymuje drążek na wózku — i dlaczego do utrzymania wózka potrzebują jeszcze członu liniowego.

Warto wiedzieć wcześniej: Logika rozmyta: t-normy, implikacje i reguły JEŻELI–TO

W 1974 roku Ebrahim Mamdani siedział w londyńskim laboratorium nad małą maszyną parową, której nie udawało się sterować klasycznymi metodami. Doświadczony operator radził sobie z nią przy tym bez problemu — według reguł w rodzaju „gdy ciśnienie jest trochę za wysokie i rośnie, przykręć trochę parę”. Mamdani ze swoim studentem Sedrakiem Assilianem zapisał te reguły za pomocą logiki rozmytej i pozwolił im sterować maszyną. Zadziałało. Po dziesięciu latach regulatory rozmyte sterowały piecami cementowymi, po kolejnych kilku metrem i pralkami. W poprzedniej części nauczyliśmy się reguły obliczać; teraz zbudujemy z nich regulator, który zwraca jedną liczbę — i każemy mu balansować drążkiem.

Nawiązuje do części Logika rozmyta: t-normy, implikacje i reguły JEŻELI–TO oraz Neuroewolucja, skąd pożyczymy wahadło na wózku.

1. Regulator i sprzężenie zwrotne

Definicja — regulator

Regulator to odwzorowanie u = R(x) ze zmierzonego stanu obiektu x w sygnał sterujący u. W zamkniętej pętli sterowanie wpływa na obiekt, ten się zmienia, zostaje zmierzony ponownie i regulator znowu reaguje — zwykle od kilkudziesięciu do tysięcy razy na sekundę.

Mówiąc prościej

Termostat mierzy temperaturę i włącza ogrzewanie; temperatura się zmienia, termostat mierzy ją ponownie. Regulator to reguła „co zrobić, gdy widzę to”. Klasyczna teoria sterowania projektuje go z równań obiektu. Regulator rozmyty składa go z reguł, tak jak wypowiedziałby je doświadczony człowiek.

Definicja — zamknięta pętla w czasie dyskretnym

Komputer mierzy i steruje w krokach długości Δt. Stan xk w kroku k zmienia się zgodnie z równaniami ruchu obiektu F i sterowaniem regulatora:

uk = R(xk),    xk+1 = F(xk, uk),    k = 0, 1, 2, …

Regulator nie widzi więc ani przyszłości, ani równań F — tylko bieżący pomiar. Dla wahadła z końca tej części Δt = 0,02 s, więc minuta sterowania to 3 000 kroków pętli.

2. Trzy kroki regulatora rozmytego

wejście 27 °C60 % fuzyfikacja ciepło 0,83wilgotno 0,67 wnioskowanie R1: 0,2R3: 0,67 defuzyfikacja wyjście 65,9 %
Regulator rozmyty wentylatora krok po kroku
  1. Fuzyfikacja zamienia ostre pomiary na stopnie przynależności: 27 °C jest „przyjemnie” w stopniu 0,2 i „ciepło” w stopniu 0,83, wilgotność 60 % jest „wilgotno” w stopniu 0,67.
  2. Wnioskowanie oblicza reguły tak, jak pokazała poprzednia część: każda reguła ma siłę i przycina swój wniosek; wnioski łączy się maksimum.
  3. Defuzyfikacja robi z wynikowego zbioru rozmytego jedną liczbę, która trafia do silnika.
Przykład — fuzyfikacja 27 °C i 60 %

Termy z poprzedniej części: przyjemnie to trapez (10, 17, 23, 28), ciepło trójkąt (22, 28, 34), gorąco trapez (30, 36, 40, 40); sucho to trapez (0, 0, 30, 50), wilgotno (40, 70, 100, 100). Na opadającym zboczu trapezu (a, b, c, d) jest μ(x) = (d − x) / (d − c), na rosnącym (x − a) / (b − a).

  • przyjemnie(27) = (28 − 27) / (28 − 23) = 1/5 = 0,2,
  • ciepło(27) = (27 − 22) / (28 − 22) = 5/6 ≈ 0,83 (27 leży na rosnącym zboczu),
  • zimno(27) = gorąco(27) = 0 — 27 leży poza ich nośnikami,
  • wilgotno(60) = (60 − 40) / (70 − 40) = 2/3 ≈ 0,67, sucho(60) = 0 (nośnik kończy się w 50).

Wnioskowanie według Mamdaniego to jeden wzór, który składa wyjściowy zbiór rozmyty z przyciętych wniosków:

μout(y) = maxi min( αi, μBi(y) ),    αi = T(μAi1(x1), …, μAin(xn))

μout(y)
wyjściowy zbiór rozmyty — dla każdej możliwej wartości wyjścia y mówi, jak bardzo popierają ją reguły; to cała funkcja, a nie liczba, dlatego po nim musi jeszcze przyjść defuzyfikacja (na rysunku niżej to zielony obszar)
αi
siła i-tej reguły — t-norma T (tu minimum) łączy warunki „i”; reguła nie może zachodzić bardziej niż jej najsłabszy warunek
μBi(y)
wniosek reguły, na przykład „szybko” — kształt, jaki miałoby wyjście, gdyby reguła zachodziła w pełni
min
przycięcie — wniosek może być poparty tylko w takim stopniu, w jakim zachodzi przesłanka; słaba reguła daje więc niskie „plateau”
maxi
łączenie reguł — reguły traktuje się jako alternatywy („lub”), więc wartość y jest poparta w takim stopniu, w jakim popiera ją najsilniejsza reguła
Przykład — wyjściowy zbiór wentylatora

Siły reguł: R1 (zimno lub przyjemnie → wolno) ma α1 = max(0; 0,2) = 0,2; R2 (ciepło i sucho → średnio) min(0,83; 0) = 0; R3 (ciepło i wilgotno → szybko) min(5/6; 2/3) = 2/3; R4 (gorąco → szybko) 0.

Wolno to trapez (0, 0, 20, 45), przycięty na wysokości 0,2: plateau 0,2 aż do y = 40 (tam opadające zbocze (45 − y)/25 spada do 0,2), a potem spadek do zera w 45. Szybko to trapez (55, 80, 100, 100), przycięty na 2/3: zbocze (y − 55)/25 osiąga 2/3 w y = 55 + 25 · 2/3 ≈ 71,67. Wynik:

μout(y) = 0,2 na [0; 40], (45 − y)/25 na [40; 45], 0 na [45; 55], (y − 55)/25 na [55; 71,67] i 2/3 na [71,67; 100].

Cały regulator jako pseudokod, z osią wyjścia podzieloną na siatkę:

def mamdani(vstup, pravidla, mrizka):        # mrizka = 0; 0,1; …; 100
    sily = []
    for r in pravidla:                          # 1. fuzyfikacja + siła reguły:
        sily.append(min(                        #    „i” = minimum, „lub” = maksimum
            max(mu(t, vstup[prom]) for t in terminy)
            for prom, terminy in r.kdyz))
    vystup = [max(min(a, r.pak(y)) for a, r in zip(sily, pravidla))
              for y in mrizka]                  # 2. przycięcie i łączenie maksimum
    citatel = sum(y * m for y, m in zip(mrizka, vystup))
    jmenovatel = sum(vystup)                    # 3. defuzyfikacja środkiem ciężkości
    return citatel / jmenovatel if jmenovatel > 0 else 50

3. Defuzyfikacja

Definicja — metody defuzyfikacji

Dla wyjściowego zbioru rozmytego z funkcją przynależności μ na przedziale wartości wyjścia:

  • Środek ciężkości (centroid): y* = ∫ y μ(y) dy / ∫ μ(y) dy.
  • Bisektor: y*, dla którego pole pod μ po lewej jest takie samo jak po prawej.
  • Średnia maksimów: średnia z punktów, w których μ osiąga maksimum.
Mówiąc prościej

Wynikowy zbiór jest jak kupka piasku usypana nad osią obrotów. Środek ciężkości to miejsce, w którym kupka zrównoważyłaby się na desce; bisektor dzieli ją na dwie równie duże połowy; średnia maksimów patrzy tylko na najwyższą część, a resztę ignoruje.

y* = ∫ y · μ(y) dy / ∫ μ(y) dy

y*
ostre wyjście — jedna liczba, która trafia do silnika, bo silnik nie rozumie zbioru rozmytego
y
położenie na osi obrotów — „ramię dźwigni”; każda wartość głosuje sama na siebie
μ(y)
waga głosu — wartości, które reguły popierają bardziej, ciągną wynik mocniej (zielony obszar na rysunku)
∫ μ(y) dy
całkowite pole — dzieląc przez nie, robimy z sumy ważonej średnią ważoną; bez tego wynik rósłby z liczbą reguł, które zadziałają, a nie zależałby od tego, dokąd wskazują
To dokładnie wzór na środek ciężkości bryły z fizyki, tylko masę zastępuje stopień przynależności.
00,51 0102030405060708090100 65,9 75,3 85,9 obroty wentylatora (%) stopień przynależności μ (0–1)
Wyjście wentylatora dla 27 °C i 60 % i trzy metody defuzyfikacji środek ciężkościbisektorśrednia maksimów

Dla naszego wejścia środek ciężkości daje 65,9 %, bisektor 75,3 % i średnia maksimów 85,9 %. Różnica polega na tym, ile głosu dostaje słabsza reguła R1 („wolno” z siłą 0,2): środek ciężkości bierze ją pod uwagę w całości, średnia maksimów wcale. Środek ciężkości jest najczęściej używany, bo wyjście zmienia się płynnie. Ma jednak wadę: nigdy nie osiąga krańców zakresu. Nawet gdy zadziała tylko reguła „szybko”, środek ciężkości jej trapezu leży na 83 %, a nie na 100 %.

Przykład — środek ciężkości, bisektor i średnia maksimów ręcznie

Wyjściowy zbiór z podrozdziału o krokach składa się z prostokątów i trójkątów, więc całki obliczymy ze znanych pól i środków ciężkości (środek ciężkości trójkąta prostokątnego leży w jednej trzeciej od jego pionowego boku):

OdcinekKształtPoleŚrodek ciężkościPole · środek ciężkości
[0; 40]prostokąt o wysokości 0,2820160
[40; 45]trójkąt, opada0,541,6720,83
[55; 71,67]trójkąt, rośnie5,5666,11367,28
[71,67; 100]prostokąt o wysokości 2/318,8985,831 621,30
razem32,942 169,41
  • Środek ciężkości: y* = 2 169,41 / 32,94 ≈ 65,85 %. Komputer w src/fuzzyrizeni.js zastępuje całkę sumą co 0,1 % i dostaje 65,87 — oba wyniki zaokrąglają się do 65,9 %.
  • Bisektor: połowa pola to 16,47. Do punktu 71,67 zbiera się 8 + 0,5 + 5,56 = 14,06, brakuje 2,41; na plateau o wysokości 2/3 to 2,41 / (2/3) ≈ 3,62 dalej, czyli y* ≈ 75,3 %.
  • Średnia maksimów: maksimum 2/3 obowiązuje na całym [71,67; 100], średnia końców to (71,67 + 100)/2 ≈ 85,8 %. Komputer uśrednia punkty siatki od 71,7 w górę, stąd 85,9 %.

4. Takagi–Sugeno

Defuzyfikacja środkiem ciężkości oznacza liczenie całki — w 1985 roku na małym procesorze pralki czy kamery rzecz kosztowna. Tomohiro Takagi i Michio Sugeno zaproponowali więc reguły, które od razu zwracają liczbę.

Definicja — regulator Takagi–Sugeno

Reguła ma postać JEŻELI x1 jest A1 i … i xn jest An, TO y = f(x1, …, xn). W modelu Sugeno zerowego rzędu f jest stałą, w modelu pierwszego rzędu funkcją liniową c0 + c1x1 + … + cnxn.

Wyjście to średnia ważona wniosków, wagami są siły reguł: y* = ∑i αi fi / ∑i αi.

Mówiąc prościej

Każda reguła nie mówi „obroty są szybko” (zbiór rozmyty), lecz „obroty wynoszą 90 %” (liczba). Wynik to średnia propozycji wszystkich reguł, ważona tym, w jakim stopniu która reguła zachodzi. Żadnej całki, tylko kilka mnożeń i jedno dzielenie.

Dajmy wentylatorowi te same reguły, tylko ze stałymi wnioskami: wolno = 15 %, średnio = 50 %, szybko = 90 %. Przy 27 °C i 60 % wilgotności wyjście wynosi (0,2 · 15 + 2/3 · 90) / (0,2 + 2/3) = 63 / 0,867 ≈ 72,7 %.

y* = ∑i αi · fi / ∑i αi

y*
ostre wyjście — od razu, bez wyjściowego zbioru rozmytego i bez defuzyfikacji
αi
siła reguły, taka sama jak u Mamdaniego — decyduje, ile głosu dostaje reguła
fi
propozycja reguły — liczba (rząd 0) albo funkcja liniowa wejść (rząd 1); zastępuje cały kształt „szybko” jednym reprezentantem
∑i
zsumowanie głosów wszystkich reguł — reguły, które nie zachodzą (αi = 0), wnoszą zero
∑i αi
normalizacja — wagi αi / ∑ αk sumują się do 1, więc wynik jest średnią propozycji i nie zależy od tego, jak silnie zachodzą wszystkie reguły razem
Całka środka ciężkości zawęziła się tu do sumy po regułach — zamiast tysiąca punktów siatki cztery składniki.
Twierdzenie — Sugeno zerowego rzędu osiąga krańce

Jeśli zachodzi co najmniej jedna reguła (∑ αi > 0), wyjście Sugeno zerowego rzędu leży między najmniejszą a największą stałą reguł, które zachodzą: min fi ≤ y* ≤ max fi. Jeśli zachodzą tylko reguły o tej samej stałej c, to y* = c dokładnie.

Dowód: oznaczmy λi = αi / ∑k αk. Wtedy λi ≥ 0, ∑ λi = 1, a y* = ∑ λi fi jest kombinacją wypukłą, która nie może wyjść poza [min fi, max fi]. Jeśli wszystkie fi z λi > 0 są równe c, to y* = c ∑ λi = c. ∎

Środek ciężkości Mamdaniego takiej gwarancji nie daje: nawet sam wniosek „szybko” w pełnej wysokości ma środek ciężkości 83 %, bo do średniej wchodzi też jego rosnące zbocze od 55 %.

5. Powierzchnia sterowania

Regulator jest funkcją dwóch zmiennych, więc da się go narysować w całości. Każde pole to jedna kombinacja temperatury i wilgotności, jasność mówi, jak szybko kręci się wentylator:

Mamdani (środek ciężkości) 02040 050100 temperatura T (°C) wilgotność względna (%) Sugeno (stałe) 02040 050100 temperatura T (°C) wilgotność względna (%)
Powierzchnie sterowania wentylatora: Mamdani i Sugeno

Obie powierzchnie wyglądają podobnie — poniżej 20 °C wolno, przy cieple i wilgoci szybko — i przechodzą płynnie, bez skoków. Różnią się na krańcach. Przy 35 °C i 90 % wilgotności Sugeno daje dokładnie 90 %, Mamdani tylko 82,2 %; w chłodzie 15 °C Sugeno daje 15 %, Mamdani 18,4 %. To właśnie ta wada środka ciężkości: regulator Mamdaniego nigdy nie dojeżdża do krańców. W środku, gdzie reguły się nakładają, oba zachowują się z kolei inaczej, bo uśredniają inaczej ukształtowane propozycje.

Definicja — powierzchnia sterowania

Powierzchnia sterowania regulatora o dwóch wejściach to wykres funkcji R: [0; 40] °C × [0; 100] % → [0; 100] %, czyli zbiór {(T, h, R(T, h))}. Rysunek oblicza ją na siatce 41 temperatur (co 1 °C) × 26 wilgotności (co 4 %).

Przykład — róg powierzchni: 35 °C i 90 %

gorąco(35) = (35 − 30) / (36 − 30) = 5/6 ≈ 0,83, ciepło(35) = 0 (trójkąt kończy się w 34), przyjemnie i zimno są równe 0. Zachodzi jedyna reguła R4 (gorąco → szybko) z siłą 0,83.

  • Sugeno: y* = 0,83 · 90 / 0,83 = 90 % — dokładnie, zgodnie z twierdzeniem powyżej.
  • Mamdani: „szybko” przycięte na 5/6 to trójkąt na [55; 75,83] (pole ½ · 20,83 · 5/6 ≈ 8,68, środek ciężkości 55 + ⅔ · 20,83 ≈ 68,89) i prostokąt na [75,83; 100] (pole 24,17 · 5/6 ≈ 20,14, środek ciężkości 87,92). y* = (8,68 · 68,89 + 20,14 · 87,92) / (8,68 + 20,14) ≈ 82,2 %.

W drugim rogu, przy 15 °C i 30 %, przyjemnie(15) = (15 − 10) / (17 − 10) ≈ 0,71 i zachodzi tylko R1; Sugeno daje dokładnie 15 %, środek ciężkości przyciętego „wolno” 18,4 %.

6. Rozmyte wahadło

W części o neuroewolucji drążek na wózku utrzymywała sieć, której wagi znalazła ewolucja. Teraz spróbujemy reguł, które napisałby człowiek. Wejściem jest kąt drążka i jego prędkość, oba z trzema termami — ujemny, zero i dodatni; wyjściem siła od −10 do +10 N, Sugeno zerowego rzędu:

kąt \ prędkość kątowapada w lewostoipada w prawo
pochylony w lewo−10 N−5 N0 N
pionowo−5 N0 N+5 N
pochylony w prawo0 N+5 N+10 N

Dziewięć reguł w rodzaju „JEŻELI drążek jest pochylony w prawo I pada w prawo, TO pchnij wózek mocno w prawo”. Logika jest taka sama jak przy miotle na dłoni: ręka jedzie pod drążek tam, gdzie drążek pada.

Definicja — regulator rozmyty wahadła

Stan to (x, ẋ, θ, θ̇) jak w części o neuroewolucji, krok 0,02 s. Termy kąta θ (w stopniach): zero to trójkąt (−6, 0, 6), dodatni trapez (0, 6, 90, 90) — rośnie od 0° do 6°, a dalej wynosi 1 —, ujemny symetrycznie. Termy prędkości kątowej θ̇ (°/s) mają ten sam kształt z 40 zamiast 6 (i 900 zamiast 90).

Siła reguły z termami a (kąt) i b (prędkość) to wab = min(μa(θ), μb(θ̇)), wniosek cab to liczba z tabeli, a siła działająca na wózek to F = ∑ wab cab / ∑ wab, przycięta do [−10; 10] N.

Przykład — drążek pochylony o 2° i padający 10 °/s w prawo

Kąt: zero(2) = (6 − 2)/6 = 2/3, dodatni(2) = 2/6 = 1/3. Prędkość: zero(10) = (40 − 10)/40 = 0,75, dodatnia(10) = 10/40 = 0,25. Termy ujemne są równe 0, więc zachodzą cztery reguły:

  • pionowo i stoi: w = min(2/3; 0,75) = 2/3, wniosek 0 N,
  • pionowo i pada w prawo: w = min(2/3; 0,25) = 0,25, wniosek +5 N,
  • w prawo i stoi: w = min(1/3; 0,75) = 1/3, wniosek +5 N,
  • w prawo i pada w prawo: w = min(1/3; 0,25) = 0,25, wniosek +10 N.

F = (2/3 · 0 + 0,25 · 5 + 1/3 · 5 + 0,25 · 10) / (2/3 + 0,25 + 1/3 + 0,25) = 5,417 / 1,5 ≈ 3,61 N w prawo — wózek jedzie pod drążek.

tylko drążek (Sugeno rzędu 0) 22,0 s drążek i wózek (Sugeno rzędu 1) 24,0 s+
Regulator rozmyty wahadła: pierwsze 24 sekundy

Drążek stoi — po kilku sekundach kąt jest praktycznie zerowy. Tyle że wózek powoli odjeżdża, bo reguły nic o wózku nie mówią, i po 22 sekundach wyjeżdża poza tor. Z trzech startów z części o neuroewolucji regulator wytrzymał 22, 12,9 i 15,7 s.

Naprawimy to modelem Sugeno pierwszego rzędu: do każdej stałej w tabeli dodamy 1 · x + 2 · ẋ, gdzie x to położenie wózka, a ẋ jego prędkość. Teraz regulator utrzymuje drążek ze wszystkich trzech startów przez całą minutę, a wózek oddala się od środka najwyżej o 0,58 m. Ciekawy jest znak: gdy wózek odjeżdża w prawo, regulator popycha go jeszcze bardziej w prawo. Drążek pochyla się przez to w lewo — a reguły o drążku odwożą potem wózek z powrotem. „Intuicyjne” przeciwne znaki, które pchałyby wózek prosto do środka, przewracają drążek w ciągu pięciu sekund. Reguły doświadczonego operatora są więc cenne właśnie dlatego, że kodują doświadczenie, na które laik by nie wpadł.

F = ∑ wab cab / ∑ wab + kx x + kv ẋ

F
siła działająca na wózek (przed przycięciem do ±10 N)
∑ wab cab / ∑ wab
pierwotny Sugeno zerowego rzędu — dziewięć reguł o drążku; trzyma drążek w pionie, o wózku nie wie nic
kx x
reakcja na położenie wózka, kx = 1 N/m — bez niej wózek bezkarnie wyjechałby poza tor; dodatni znak pozornie wysyła wózek na zewnątrz, ale przez to pochyla drążek do środka, a reguły o drążku potem wózek zawracają
kv ẋ
reakcja na prędkość wózka, kv = 2 N·s/m — tłumienie; z samym położeniem (kv = 0) wózek oscyluje wokół środka coraz mocniej i ze wszystkich trzech startów wyjeżdża poza tor po 32 do 53 s
Dlaczego część liniową można wyciągnąć przed nawias: każdy wniosek to cab + kxx + kvẋ z tymi samymi k, a średnia ważona stałej kxx + kvẋ to znowu ona sama (wagi sumują się do 1).

W przykładzie powyżej z wózkiem 0,3 m na prawo od środka, który jedzie 0,1 m/s w prawo, wychodzi więc F = 3,61 + 1 · 0,3 + 2 · 0,1 ≈ 4,11 N.

7. Mamdani czy Sugeno?

MamdaniSugeno
Wniosek regułyzbiór rozmyty („szybko”)liczba albo funkcja liniowa
Wyjściedefuzyfikacja, zwykle środek ciężkościśrednia ważona
Obliczeniacałka po wyjściukilka mnożeń
Czytelnośćreguły jak zdanialiczby we wnioskach
Krańce zakresuśrodek ciężkości ich nie osiągaosiąga
Uczenie z danychtrudneparametry wniosków da się dostroić — zob. ANFIS

Mamdani sprawdza się tam, gdzie reguły piszą i czytają ludzie. Sugeno tam, gdzie liczy się szybkość obliczeń i gdzie chcemy stroić regulator na podstawie zmierzonych danych — temu poświęcona jest ostatnia część modułu.

8. Regulatory rozmyte w praktyce

  • Piec cementowy duńskiej firmy F. L. Smidth był około 1980 roku jednym z pierwszych zastosowań przemysłowych — piec trudno zamodelować, ale operatorzy sterowali nim na podstawie doświadczenia.
  • Metro w Sendai (1987) rusza i hamuje według reguł rozmytych; jazda jest płynniejsza, a producent podawał też oszczędność energii.
  • Sprzęt AGD. Około 1990 roku japońskie firmy oferowały pralki, które dobierały program według zmętnienia wody i ilości prania, oraz kamery z rozmytym ustawianiem ostrości i stabilizacją obrazu.
  • Dziś większość sterowania przemysłowego zapewniają regulatory PID i sterowanie predykcyjne. Reguły rozmyte stosuje się raczej „nad nimi” — przełączają nastawy według trybu pracy — i wszędzie tam, gdzie cenniejsze jest szybko zapisać doświadczenie niż zbudować dokładny model.

9. Podsumowanie

  • Regulator rozmyty ma trzy kroki: fuzyfikację, wnioskowanie według reguł i defuzyfikację.
  • Defuzyfikacja zamienia wyjściowy zbiór rozmyty na liczbę; dla wentylatora środek ciężkości daje 65,9 %, bisektor 75,3 % i średnia maksimów 85,9 %.
  • Sugeno ma we wnioskach liczby albo funkcje liniowe, a wyjście jest średnią ważoną — 72,7 % dla tego samego wejścia, bez całki.
  • Powierzchnia sterowania pokazuje cały regulator naraz; środek ciężkości nigdy nie osiąga krańców zakresu.
  • Dziewięć reguł o drążku go utrzymuje, ale wózek odjeżdża; Sugeno pierwszego rzędu z położeniem i prędkością wózka utrzymuje jedno i drugie przez całą minutę.

Chcesz to wypróbować na własnej skórze? Poproś agenta AI, żeby napisał rozmyty termostat dla symulowanego pokoju z opóźnieniem ogrzewania, i sprawdź, ile reguł wystarczy, żeby temperatura nie oscylowała.

Masz inne zdanie? Napisz na support@coden-app.com.

Agent na twoim komputerze, sterowany z telefonu