• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Biblioteka PID_AutoTune_v0.h - nie tunuje ;)
#1
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
 
Odpowiedź
#2
(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ę.
- Kod z Delay i/lub bez WDT (WDG) to nie kod, to DEMO!
- Wielowątkowość to najczęściej konieczność w dobrym programie.
- Kod wymaga komentarzy!
- Nie pomagam leniwym analfabetom. Sprawdzanie pisowni jest w każdej dobrej przeglądarce WWW.


 
Odpowiedź
#3
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
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości