Elektroda.pl
Elektroda.pl
X
BotlandBotland
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Sterowanie z wykorzysatniem logiki rozmytej - Bascom

06 Sty 2012 15:21 5357 29
  • Poziom 10  
    Witam panowie
    Nie jestem pewien czy zajmujecie się tą dziedziną programowania ,ale chciałbym zaproponować temat zaprogramowania mikrokontrolera w środowisku Bascom. Cały problemem w sumie było by stworzenie odpowiedniego algorytmy opartego o metody logiki rozmytej. Tak się zastanawiam czy w ogóle da się umieścić taki program na mikroprocesorze firmy Atmelu. Moja propozycja to sterownik pieca C.O.
  • BotlandBotland
  • Poziom 43  
    Oczywiście że się da.
  • Poziom 10  
    Ok to jak byś to rozwiązał??
  • Poziom 42  
    atom1477 napisał:
    Oczywiście że się da.


    No! kolego atom1477, weź że napisz tu ładnie algorytm i porządny program w Bascomie, a nie tylko odpowiadasz - "że się da" ;) - jak tak można.
  • BotlandBotland
  • Poziom 43  
    To:
    vienio79 napisał:
    Ok to jak byś to rozwiązał??

    Oraz krytyka mojego zachowania przez Mirkka36 :D mocno mnie zmotywowały do pracy więc przedstawiam tutaj moje rozwiązanie:
    1. Stworzenie algorytmu sterowania.
    2. Implementacja tego algorytmu w logice rozmytej.
    3. Skompilowanie programu.
    4. Zaprogramowanie procesora.
    I hula! :D
  • Poziom 10  
    Dobra implementacja w logice rozmytej. moim zdanie trzeba przyjąć jakieś parametry stale jakieś wejściowe i wyjściowe.Określić przynależności i dopiero wziąć się za algorytm.Pytanie co wybrać za parametry przynależności a co za zmienne oraz parametry wejściowe.
  • Poziom 38  
    Przecież to i tak trzeba przetłumaczyć na logikę 0-1 bo innej żaden procesor nie rozumie.
  • Poziom 10  
    Dobra sugeruje podać zmienną jako temperatura , stałe to powiedzmy regulacja pompy oraz dmuchawy.Regulacja pompy oraz dmuchawy będzie uzależniona od temperatury.
  • Poziom 28  
    Nie wiem co wy się tak napalacie na logikę rozmytą..
    Pewnie będzie dużo (bezsensownego pisania)
    A jeśli już się coś uda.. to wyjdzie na to, że prościej i lepiej byłoby podłączyć termometr ds18b20 i w zależności od temp reghulować moc dmuchawy

    if (temp < 30) {moc dmuchawy =100}
    if (temp >30 &&< 50) {moc dmuchawy =70}

    itp.. chyba że czegoś nie zrozumiałem

    Ale tak jak napisał:
    janbernat napisał:
    Przecież to i tak trzeba przetłumaczyć na logikę 0-1 bo innej żaden procesor nie rozumie.
  • Poziom 38  
    No bo nie ma innej logiki niż prawda- fałsz.
    Fuzzy logic to jest bzdura.
    Podobnie jak sieci neuronowe- przecież to kompletna bzdura.
    To jest ja wróżenie z kart.
    Były próby stworzenia komputerów przeliczajacych wartości 0-9 na wynik.
    No ale to bez sensu- jakieś drabinki rezystorowe - ze wszystkimi ograniczeniami czestotliwościowymi.
  • Poziom 42  
    janbernat napisał:

    Fuzzy logic to jest bzdura..


    No, no no ;) na to - to aż ciśnie się na usta cytat z filmu "Sexmisja"

    "A Kopernik to też była kobieta"

    Teraz to kolega zaszalał ;) no chyba - że nie zrozumiałem ukrytego żartu ;)
  • Poziom 43  
    janbernat: przecież procek poza 0..1 rozumie też i operuje na liczbach 8 albo i 16-to bitowych, czyli na wartościach 0...255 albo i 0...65535.
    A nawet 8 bitów (256 wartości) to już bardzo dobre przybliżenie dla prostszych systemów logiki rozmytej.
    No chyba że to był żart :D No ale ja też nie zrozumiałem.

    Więc system jak najbardziej da się zrobić.
    No ale autor tematu musi to zrobić sam.
    A widać że nie bardzo chce. Już sam wstęp: "propozycja" pozwala się domyśleć że sam autor nie wie czego chce i liczy na to że jego "propozycja" się przyjmie. I że ludzie zrobią za niego różne systemy, a on na koniec widząc już te gotowe systemy zastanowi się co mu jest potrzebne i skorzysta z jednego z tych systemów. No ale tak to nie ma.
  • Poziom 10  
    Kolego Atom1477 wiem czego chcę próbuje poukładać to sobie jakoś bo nigdy nie robiłem żadnego systemu opartego o logikę rozmytą, a domyślam że któryś z kolegów ma większe doświadczenie. Mam pewien pomysł i chciałbym go Wam przedstawić żebyście zobaczyli i ocienili czy takie coś w ogóle da się zrealizować.

    Dodano po 18 [minuty]:

    Oto moja zasada działania trzeba dopisać reguły tylko
  • Poziom 11  
    zarys teoretyczny logiki rozmytej(FL) poniżej(w zastosowaniu do sterownika c.o.):
    FUZZY LOGIC

    XAMREX & JANBERNAT poczytajcie trochę o logice rozmytej i jej przydatności w sterowaniu obiektami nieliniowymi a może zmienicie zdanie!

    pełen efekt(adaptacja + sterowanie nieliniowe) daje dopiero fuzzy w połączeniu z sieciami neuronowymi zwanymi systemami neuronowo-rozmytymi
  • Poziom 38  
    Zaraz zaraz- ale nie włącz/wyłącz powinno być z tym porównane tylko regulator PID.
    Poza tym- teorii w linku to niema- raczej reklama.
  • Poziom 38  
    PIDa też można zrobić na włącz/wyłącz np PWM :)
  • Poziom 11  
    teoria jest w książkach, na stronie jest informacja o sposobie implementacji na AVR,
    nigdy nie robiłem PID na AVR, takie porównania robiłem ale na sterownikach PLC(dawno temu), jak zawsze ciężko się wypowiadać co jest lepsze PID czy FL -> oczywiście zależy do czego,

    większość ludzi wybiera PID ponieważ FL jest dużo cięższe do implementacji i zrozumienia stąd jest omijane szerokim łukiem,

    jak widać strona jest średnio-komercyjna(a raczej informacyjna) także nie chodziło mi o reklamę

    w najnowszym projekcie z GLCD algorytm FL będzie w pełni dostępny w wersji skompilowanej
  • Poziom 20  
    Z tego co wiem i nauczyłem się na studiach bo osobiście nic takiego nie robiłem to w logice rozmytej najtrudniej dostać odpowiednie dane do sterowania tak żeby to miało sens. Jak to powiedział jeden z moich wykładowców PID jest algorytmem głupim i ciężko go popsuć dlatego ludzie go wybierają a logika rozmyta czy inne algorytmy bardziej że tak powiem wyrafinowane mogą dawać dużo lepsze rezultaty w sterowaniu.

    No skoro autor już ma jak chce żeby to wyglądało to teraz musi określić co się ma dziać kiedy temperatura jest niska średnia i wysoka lub na ich pograniczu.

    Ps z tego co wiem zbiory przyporządkowań nie muszą być rozłączne bo obecnie można to zrobić 2 if-ami
  • Poziom 11  
    dokładnie - FL jest "ciężki" w fazie projektu(wybranie zmiennych wejściowych, określenie progów i kształtu funkcji przynależności, dobór reguł wnioskowania, metody wyostrzania itp.), za to użytkownik finalny ma "prostsze życie",
  • Poziom 33  
    Witam
    Swego czasu były opracowania FL w Elektorze, za dużo papieru do przerzucenia bym to odnalazł ale opis był jasny i układ chyba nawet dostępny jako zestaw na procesorze 8051 był w gazecie opisany z algorytmami ( nie programem ).
    Nie wiem co jest lepsze, P , PI , czy PID i nie dlatego że nie mam wiedzy na ten temat tylko zależy to od obiektu regulacji, od jego parametrów czasowych.
    W układach zamkniętych stabilność zależy od wielu czynników, teoretycznie można dobrać nastawy obserwując odpowiedź układu na wymuszenie jednostkowe, ale dla zwykłego usera to jest ciemna magia a w warunkach przemysłowych może doprowadzić czasami do wielkiego bum....
    Reasumując FL jest lepsze bo zwalnia usera od znajomości ustawienia układu i zapewnia statystycznie lepszą regulację :)
    Piotr
  • Poziom 11  
    EP 3-4 2000,
    albo klasyk:
    A. Piegat, Modelowanie i sterowanie rozmyte, EXIT, Warszawa 1999
  • Poziom 33  
    Witam
    Mój błąd, faktycznie EP a nie Elektor, powinienem mieć to zeskanowane do PDFa.
    Pozdrawiam
  • Poziom 23  
    Czy istnieje jakieś API/biblioteka z funkcjami fuzzy logic do arduino?
  • Poziom 43  
    Przecież same funkcje fuzzy logic to zwykłe operacje na zmiennych typu Float.
  • Poziom 10  
    A może by tak od teorii przejść do konkretów.
    Nie wiem o co chodzi w logice rozmytej ale wiem jak pracuje typowy sterownik kotła CO z dmuchawą i wiem jakie ma wady.
    U mnie dmuchawa jest ustawiona na 15 procent bo wolniej się nie dało.
    Sterownik włącza dmuchawę gdy temperatura spadnie o 2 stopnie poniżej temperatury zadanej
    i wyłącza ją gdy temperatura osiągnie temperaturę zadaną.
    Po wyłączeniu dmuchawy temperatura nadal się podnosi o około 5 stopni i dopiero zaczyna opadać.
    Czyli histereza wynosi około 7 stopni.
    Myślę że żeby zmniejszyć histerezę należało by włączać wentylator na krótkie odcinki czasu
    i próbkować jak zmienia się temperatura.
    Po pewnym czasie regulator mógłby dojść do jakiejś średniej czasu pracy i przerwy i tym sposobem dość stabilnie utrzymywać zadaną temperaturę.
    Tak ja to wykombinowałem.
    Napiszcie co o tym sądzicie i jak według was wyglądał by taki sterownik działający z logiką rozmytą.
    Jakie miałby zalety w porównaniu z moją propozycją.
  • Poziom 19  
    "Początkowa euforia związana z zastosowaniem logiki rozmytej w dziedzinie regulacji z początku lat dziewięćdziesiątych zdaje się ustępować bardziej trzeźwej ocenie.Można to zauważyć obserwując wyraźny spadek liczby zastosowań logiki rozmytej po 1995 roku." I dalej : "Do zastosowań dających się rozwiązać przy pomocy rozwiązań klasycznych, nie stosuje się już dziś tak jak kiedyś logiki rozmytej ZE WZGLĘDÓW REKLAMOWYCH.

    Żródło: Recknagel, Sprenger,Schramke Ogrzewnictwo Klimatyzacja, ciepła woda chłodnictwo 2008r
  • Poziom 34  
    Tak się składa, że pokusiłem się 2 lata temu o sterownik kotła CO. Zadanie jakie miał spełnić to ograniczenie szybkości dopływu powietrza do kotła aby wydłużyć czas oddawania ciepła przez spaliny w wymienniku.
    Mój sterownik dopuszcza utrzymanie temperatury kotła w granicach 11°C. W tym przedziale dysponuje pięcioma szybkościami obrotowymi wentylatora i pięcioma czasami pracy ślimaka. Sterownik reaguje już na obniżenie temperatury o 0,1°C włączając poszczególne "biegi" w miarę obniżania się temperatury względem wartości zadanej. Jednocześnie mierzona jest temperatura średnia w ciągu godziny i w następnej godzinie pracy na podstawie różnicy temperatury zadanej i średniej sterownik oblicza korektę krótkoterminową, którą dodaje lub odejmuje od korekty długoterminowej i zmienia progi uruchamiania poszczególnych biegów tak aby dojść do temperatury zadanej w następnej godzinie.
    Zaletą rozwiązania jest to, że wyeliminowano praktycznie wyłączanie się pieca - piec cały czas pracuje na którymś z wyliczonych biegów, najczęściej tych niskich (niska szybkość obrotowa wentylatora) i dość dokładne utrzymywanie temperatury w stanie ustalonym. Wadą jest znacznie opóźniona reakcja na nagły odbiór ciepła z kotła (podczas włączenia się pompy).
    Planuję zmniejszyć czas pomiędzy aktualizacjami temperatury średniej z 1 godz. do 15 min.

    Tak steruję moim kotłem, sterownik adaptuje się do aktualnego zapotrzebowania na ciepło, ale nie wiem czy to jest logika rozmyta.
  • Poziom 21  
    Oczywiście, że nie jest to logika rozmyta bo być nie musi. Do tak dobrze mierzalnego i precyzyjnie zdefiniowanego procesu jak sterowanie piecem dużo lepiej nadają się typowe regulatory znane z automatyki niż logika rozmyta. Nikt przecież nie buduje kalkulatorów posiłkując się logiką rozmytą choć być może to możliwe.

    Pozdrawiam
  • Poziom 23  
    W moim przypadku podjąłem się napisania funkcji fl samemu (ale w arduino nie bascom).