Biblioteka PID_AutoTune_v0.h - nie tunuje ;) - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica) +--- Wątek: Biblioteka PID_AutoTune_v0.h - nie tunuje ;) (/watek-biblioteka-pid-autotune-v0-h-nie-tunuje) |
Biblioteka PID_AutoTune_v0.h - nie tunuje ;) - PierwszyWolnyLogin - 02-05-2019 Cześć Próbuję właśnie ogarnąć autotuning PID do regulatora temperatury. Ściągnąłem bibliotekę PID_AutoTune_v0.h jako input podałem temperaturę z termometra, output przekierowałem na stycznik PWM. PID jako taki działa - na domyślnych parametrach w moim testowym układzie przestrzela trochę, ale to kwestia parametrów - gdy lekko zmienić ręcznie zachowuje się poprawnie. Problem w tym, że gdy przełączyć w tryb tuningowania to nic sensownego się nie dzieje. Wartość output jest za wysoka, w efekcie temperatura jest przestrzelona. Nie widać żadnych zmian na lepsze - pętla sobie chodzi, nic się nie zmienia, regulacja jest do niczego... Niestety nie ma w zasadzie żadnej dokumentacji - muszę na "Macajewa" domyślać się o czym decydują konkretne zmienne... Może ktoś próbował tej biblioteki i może pomóc ogarnąć auto-tuning? PWL RE: Biblioteka PID_AutoTune_v0.h - nie tunuje ;) - es2 - 02-05-2019 (02-05-2019, 16:29)PierwszyWolnyLogin napisał(a): Niestety nie ma w zasadzie żadnej dokumentacji - muszę na "Macajewa"W Arduino to norma, zero komentarzy. Czasem nazwy zmiennych pomagają, niestety, czasem ślą "w maliny". Na tym forum, niestety, normą jest nieudostępnianie kodów i bibliotek. W takiej sytuacji ciężko uzyskać szybką pomoc, bo komu się chce ściągać bibliotekę? W dodatku, ta, którą się ściągnie może być inna niż ta, którą posługuje się autor postu. Tu niestety norma w Arduino jest to, ze nazwy bibliotek pokrywają się. RE: Biblioteka PID_AutoTune_v0.h - nie tunuje ;) - PierwszyWolnyLogin - 03-05-2019 Veni vidi vici Ogarnąłem temat chyyyyba. Okazało się, że opisy są dla mięczaków, twardziele zawsze sobie radzą bez Skorzystałem z bibliotek: #include <PID_v1.h> #include <PID_AutoTune_v0.h> I przykładowego program dołączonego do nich. Zmodyfikowałem lekko - na wejściu dałem temperaturę z DSa, a na wyjście podłączyłem funkcję sterującą stycznikiem załączającym zasilanie grzałki tak jakby to był stycznik PWM. Podaje się wypełnienie od 0 do 1, czyli jak w %, definiuje oczywiści długość cyklu PWM. Ja dałem 2s, ale to raczej bez znaczenia. Testowy układ to termometr z przymocowanymi czteroma rezystorami, jeśli dobrze pamiętam, w sumie dają 1W ciepła zasilane z 12V. Auto tuning trwał jakieś pół godziny, wyniki są bardziej zachowawcze niż moje własne PIDy ustawione na oko. Układ rozgrzewa się wolniej, ale za to nie wpada w żadne oscylacje, u mnie ze dwa razy przelatywał, żeby później ustabilizować się, przy PIDach z autotuningu nie przestrzeliwuje, ale wolniej się rozgrzewa. Jak już dojdzie do temp. docelowej to trzyma jak skała z dokładnością jak rozdzielczość termometru. A cały problem polegał na tym, że domyślnie w kodzie ustawiony jest za wysoki filtr szunów "aTuneNoise". Zmieniłem na 0.1 i bangla Sprawdzę jeszcze w innym układzie - wsadzę "grzałkę" do około 100ml oleju... PWL |