Arduino Polska Forum
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"
domyślać się o czym decydują konkretne zmienne...
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 Wink

Ogarnąłem temat chyyyyba.

Okazało się, że opisy są dla mięczaków, twardziele zawsze sobie radzą bez Wink

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 Smile

Sprawdzę jeszcze w innym układzie - wsadzę "grzałkę" do około 100ml oleju...

PWL