Sumea logiikka - tapa saavuttaa epätarkkoihin syötteisiin perustuva hallinta

Kokeile Instrumenttia Ongelmien Poistamiseksi





Digitaalisen ohjauksen aikakaudella lähes kaikkia laitteita ohjataan digitaalinen ohjaus tasolla. Mutta ajattele vain, eikö ole aivan epäkäytännöllistä ajatella, että jokaisen kohtaamasi päivittäisten prosessien tuotos riippuu vain kahdesta syötteen tilasta. Ei, ehdottomasti. Kuvittele äitisi ruoanlaittavan maukasta ruokaa, etkä voi estää itsesi ylistämästä häntä. Joten miten ruoasta tulee niin maukasta? Tietenkin lisäämällä ainesosia oikeaan määrään ja suhteeseen. Joten miten hän hallitsee sen? Onko luvuilla täydellinen numeerinen tieto? Ei aina. Hän tekee sen tunnetulla idealla, johon liittyy kokemusta. Täältä tulee ajatus ohjauslogiikasta, joka käyttää tulotilan asteita itse tulojen sijaan, logiikan, joka ei vaadi täydellisiä syötteitä, vaan toimii pikemminkin vain tyypillisen tulojen estimoinnin kanssa. Tämä on sumea logiikka.

Mikä on sumea logiikka?

Sumea logiikka on perusohjausjärjestelmä, joka perustuu tulon tilan asteisiin ja lähtö riippuu tulon tilasta ja tämän tilan muutosnopeudesta. Toisin sanoen sumea logiikkajärjestelmä toimii tietyn lähdön osoittamisen periaatteella riippuen tulon tilan todennäköisyydestä.




Kuinka sumea logiikka syntyi?

Fuzzy Logicin kehitti vuonna 1965 Lotfi Zadeh Kalifornian yliopistossa, Berkleyssä, keinona suorittaa tietokoneprosesseja, jotka perustuvat luonnonarvoihin eikä binaarisiin arvoihin. Sitä käytettiin alun perin tapana käsitellä tietoja ja myöhemmin sitä alettiin käyttää ohjausstrategiana.

Kuinka sumea logiikka toimii?

Fuzzy-logiikka toimii lähdekoodin päättämisen oletusten perusteella. Se toimii sarjaan perustuen. Jokainen joukko edustaa joitain kielimuuttujia, jotka määrittelevät mahdollisen tuotoksen tilan. Jokainen mahdollinen tulon tila ja tilan muutosasteet ovat osa joukkoa, riippuen siitä, mikä lähtö ennustetaan. Se toimii If-else-the -periaatteella, ts. Jos A ja B Sitten Z.



Oletetaan, että haluamme ohjata järjestelmää, jossa lähtö voi olla missä tahansa joukossa X, jolla on yleinen arvo x, siten että x kuuluu X: lle. Tarkastellaan tiettyä joukkoa A, joka on X: n osajoukko siten, että kaikki A: n jäsenet kuuluvat väli 0 ja 1. Joukko A tunnetaan sumeana joukkona ja f: n arvonaTO(x) x: ssä merkitsee x: n jäsenyysastetta kyseisessä joukossa. Tuotos päätetään x-jäsenyyden asteen perusteella joukossa. Tämä jäsenyyden määrääminen riippuu lähtöjen oletuksesta riippuen panoksista ja tulojen muutosnopeudesta.

Nämä sumeat joukot esitetään graafisesti jäsentoimintojen avulla ja tulos valitaan funktion kussakin osassa olevan jäsenyyden asteen perusteella. Sarjojen jäsenyys päättää IF-Else-logiikka.


Yleensä joukon muuttujat ovat tulojen tila ja panoksen muutosasteet ja lähdön jäsenyys riippuu syötteen tilan JA toiminnan logiikasta ja panoksen muutosnopeudesta. Monitulojärjestelmässä muuttujat voivat olla myös erilaisia ​​tuloja ja ulostulo voi olla muuttujien välisen AND-toiminnan mahdollinen tulos.

Sumea ohjausjärjestelmä

Sumea ohjausjärjestelmä koostuu seuraavista komponenteista:

Sumea logiikan ohjausjärjestelmä

Sumea logiikan ohjausjärjestelmä

Fuzzifier joka muuntaa mitatut tai syötetyt muuttujat numeerisissa muodoissa kielellisiin muuttujiin.

Ohjain suorittaa sumea logiikkaoperaation, jolla ulostulot osoitetaan kielitietojen perusteella. Se suorittaa likimääräisen päättelyn, joka perustuu ihmisen tulkintatapaan kontrollilogiikan saavuttamiseksi. Ohjain koostuu tietopohjasta ja päättelymoottorista. Tietopohja koostuu jäsenyystoiminnoista ja sumeista säännöistä, jotka saadaan tietäen järjestelmän toimintaa ympäristön mukaan.

Defuzzifier muuntaa tämän sumean ulostulon tarvittavaksi ulostuloksi järjestelmän ohjaamiseksi.

Yksinkertainen ohjausjärjestelmä, joka käyttää sumeaa logiikkaa ohjaamaan tuulettimen nopeutta tulon lämpötilasta riippuen.

Oletetaan, että haluat säätää tuulettimen nopeutta huoneen lämpötilan mukaan. Normaalille maallikolle, jos huoneen lämpötila on sellainen, että hän tuntuu liian kuumalta, puhaltimen nopeus nostetaan täydelliseen arvoon. Jos hänestä tuntuu hieman kuumalta, tuulettimen nopeutta nostetaan maltillisesti. Jos hän tuntuu liian kylmältä, tuulettimen nopeus vähenee voimakkaasti.

Joten Kuinka saada tietokone tekemään tämä?

Näin voimme saavuttaa tämän:

Puhaltimen nopeuden säätäminen lämpötilatulon perusteella

Puhaltimen nopeuden säätäminen lämpötilatulon perusteella

  • Lämpötila-anturi mittaa huoneiden lämpötila-arvot. Saadut arvot otetaan ja annetaan sitten sumuttimelle.
  • Fuzzifier määrittää kielelliset muuttujat kullekin mitatulle arvolle ja mitatun arvon muutosnopeudelle.

Esimerkiksi, jos mitattu arvo on 40 ° C tai enemmän, huone on liian kuuma

Jos mitattu arvo on välillä 30–40 ° C, huone on melko kuuma

Jos mitattu arvo on 22–28 ° C, huone on kohtalainen

Jos mitattu arvo on 10–20 ⁰C, huone on kylmä

Jos mitattu arvo on alle 10, huone on liian kylmä.

  • Seuraava vaihe käsittää tietopohjan toiminnan, joka sisältää tiedot näistä jäsenfunktioista sekä sääntöpohjan.

Jos esimerkiksi huone on liian kuuma JA huone lämpenee nopeasti, aseta tuulettimen nopeudeksi korkea

Jos huone on liian kuuma JA huone lämpenee hitaasti, aseta tuulettimen nopeudeksi alle korkea.

  • Seuraavassa vaiheessa muunnetaan tämä kielellinen ulostulomuuttuja numeerisiksi tai loogisiksi muuttujiksi, joita käytetään puhaltimen käyttämiseen moottorin kuljettaja .
  • Viimeiseen vaiheeseen kuuluu tuulettimen nopeuden säätäminen antamalla oikea tulo puhaltimen moottorin kuljettajalle.

Joten tämä on lyhyt katsaus Fuzzy Logiciin, kaikki muut syötteet ovat tervetulleita lisäämään.