logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Sterowanie grzałkami 3x1500W z ATmega16 i PID - czy wykrywanie zera jest konieczne?

Myrek1 26 Sty 2009 01:39 6517 8
REKLAMA
  • #1 6055407
    Myrek1
    Poziom 23  
    Posty: 875
    Pomógł: 17
    Ocena: 53
    Witam
    Mam za zadanie zrobić regulator temperatury wody, taki bojler. Z tym, że ciecz w zbiorniku (ok. 50l) ma stabilnie trzymać temperaturę, powiedzmy 60 stopni. Jak wiadomo grzałka jest obiektem inercyjnym z opóźnieniem, a woda ma dużą bezwładność. W związku z tym wybrałem algorytm PID do zaimplementowania w uC (ATmega16).
    Sterowanie odbywa się triakiem. W tym bojlerze są trzy grzałki 3x1500W. Chcę zrobić tak, żeby do 2/3 temp. zadanej chodziły wszystkie trzy grzałki, po przekroczeniu 2/3 zadanej wyłączają się 2 grzałki i sterowanie przejmuje jedna, która ma utrzymywać temperaturę z histerezą 2stopnie.

    Sterowanie oczywiście grupowe. Z tym, że zastanawiam się czy budować układ wykrywania zera dla uC. W sterowaniu fazowym jest to ważne, żeby uC wiedział kiedy wystąpi zero i ma włączyć triaka. Ale czy w przypadku sterowania grupowego jest to ważne? Wiadomo ile trwa sinus, więc jeśli nawet uC załączy triaka w czasie sinusoidy to i skończy w tym samym punkcie, tyle że na innej połówce.
    Co o tym myślicie?

    Ma ktoś jakieś gotowe projekty PID napisane w C dla WinAVR?
  • REKLAMA
  • #2 6057570
    al777
    Poziom 27  
    Posty: 646
    Pomógł: 105
    Ocena: 83
    Myrek1 napisał:
    Witam
    (...)
    Sterowanie oczywiście grupowe. Z tym, że zastanawiam się czy budować układ wykrywania zera dla uC. W sterowaniu fazowym jest to ważne, żeby uC wiedział kiedy wystąpi zero i ma włączyć triaka. Ale czy w przypadku sterowania grupowego jest to ważne? (...)


    Moim zdaniem nie jest ważne. To co widywałem w temacie sterowania grupowego nie miało detekcji zera.
    Gdybym to ja robił ten układ, zastosowałbym optotriaki MOC3041, które mają wbudowany układ detekcji zera (włącza triak w momencie przejścia przez zero napięcia na jego końcówkach, więcej jest w nocie aplikacyjnej).
  • REKLAMA
  • #3 6058515
    Myrek1
    Poziom 23  
    Posty: 875
    Pomógł: 17
    Ocena: 53
    Nie jestem entuzjastą stosowania optotriaka z wykrywaniem zera. Przez to sterowanie będzie mniej precyzyjne. Dlatego, że np. uC załaczy optotriaka na górze sinusa a optotriak z opóźnieniem w zerze. A wyłaczenie nastąpi już na górce sinusa, czyli traci się w tym przypadku 1/4 okresu. W najgorszym przypadku można w ten sposób przeoczyć prawie 1/2 okresu.

    Czy w ogóle trzeba załączać triaka w zerze? Nie można w dowolnym momencie przy sterowaniu grupowym?

    Przeglądałem EP. Jest tam podobny do mojego projekt sterownika PID ze sterowaniem grupowym. I jest tam układ detekcji. Po co go autor stosował, skoro nie jest aż tak ważny?
  • #4 6060391
    al777
    Poziom 27  
    Posty: 646
    Pomógł: 105
    Ocena: 83
    Sterowanie grupowe z nazwy steruje grupami (i to przeważnie dużymi - min. kilkanaście okresów) przebiegu zmiennego. Niedokładność załączenia rzędu nawet 60 stopni (1/6 okresu) przy grupie liczącej powiedzmy 20 cykli (0,4 s dla napięcia sieci 50Hz) daje błąd 0,33% - czy to dużo ?
    A element z przełączaniem w zerze zaproponowałem z innego powodu - niejako automatycznie eliminuje udary prądowe, które wystąpią bez niego, jeśli "trafisz" z włączeniem w szczyt sinusoidy - pomyślałeś o tym ?

    [edit]
    Układy z EP prezentują całą gamę "jakości" - od całkiem pomysłowych, do totalnego dna. Wiele z nich wygląda na "posklejane" z kilku innych układów (przynajmniej takie odnoszę wrażenie), a autorowi nie zawsze chce się dociekać, co można odrzucić łącząc dwa pomysły.
    Może podaj co to był za artykuł - jeśli go znajdę, może domyślę się po co tam układ detekcji zera (lub coś, co na niego wygląda).
    Aha - są też regulatory grupowo-fazowe. Może ten twój to właśnie taki ?
  • REKLAMA
  • #5 6086075
    Myrek1
    Poziom 23  
    Posty: 875
    Pomógł: 17
    Ocena: 53
    EP wiem jak jest, ale ten projekt został zaprezentowany przez człowieka, którego cenię: Pana Lucjana Bryndzę. Człowiek wie o czym pisze, dlatego zastanawiam się po co ten układ detekcji zera.

    To ten projekt: http://sklep.avt.pl/p/pl/481934/regulator+temperatury+pid+z+modbus.html

    A jak to się ma do sterowania 3 grzałkami?
    Czy wystarczą te optotriaki z załączaniem w zerze, żeby odpowiednio dobrze utrzymywać temperaturę wody (40l) za pomocą trzech grzałek 1500W połączonych w gwiazdę?

    I czy zrobić sterowanie osobno dla każdego optotriaka (razem będą 3 do 3 triaków) czy razem połączyć je pod jedną końcówkę uC?

    Pisanie postu pod postem.
    Należy używać przycisku ZMIEŃ.
    Scaliłem dwa posty. [hefid]
  • #6 6095678
    hefid
    Spoczywaj w Pokoju
    Posty: 15878
    Pomógł: 546
    Ocena: 6157
    Przeniosłem z: Automatyka Robotyka na życzenie
    "Myrek1"
  • REKLAMA
  • #7 6096421
    al777
    Poziom 27  
    Posty: 646
    Pomógł: 105
    Ocena: 83
    Myrek1 napisał:
    EP wiem jak jest, ale ten projekt został zaprezentowany przez człowieka, którego cenię: Pana Lucjana Bryndzę. Człowiek wie o czym pisze, dlatego zastanawiam się po co ten układ detekcji zera.

    A może by go tak ... zapytać ? Kto będzie lepiej wiedział niż autor, szczególnie że projekt nie jest OpenSource i do źródeł nie zajrzymy.

    Myrek1 napisał:

    Niestety nie ma tam schematu, więc dalej nie mam dostatecznych informacji żeby coś wywnioskować.

    Myrek1 napisał:

    A jak to się ma do sterowania 3 grzałkami?
    Czy wystarczą te optotriaki z załączaniem w zerze, żeby odpowiednio dobrze utrzymywać temperaturę wody (40l) za pomocą trzech grzałek 1500V połączonych w gwiazdę?

    Po twoim dorobku "punktowym" widzę że nie jesteś nowicjuszem, więc dziwię się pytaniu. Masz pojemność zbiornika, znasz ciepło właściwe wody (było na fizyce w szkole), moc grzałki też (domyślam się że to miało być 1500W, a nie 1500V). Załóż sobie że sterujesz grupą 20 okresów (0.4s) i policz jaki będziesz miał skok temperatury w odpowiedzi na najmniejsze "podgrzanie" - na podstawie tego ocenisz dokładność sterowania i ewentualne przeregulowanie i porównasz ze swoimi oczekiwaniami (których - nota bene - nie podałeś tutaj).
    Aha, założyłem najprostszą (dla mnie ) metodę realizacji sterowania grupowego - ze stałym czasem trwania grupy. Są oczywiście inne.

    Myrek1 napisał:

    I czy zrobić sterowanie osobno dla każdego optotriaka (razem będą 3 do 3 triaków) czy razem połączyć je pod jedną końcówkę uC?

    W sumie można połączyć razem. I tak przecież sterujesz grupą wielokrotnie dłuższą niż okres przebiegu. Ale jeśli masz wolne piny w mikrokontrolerze - daj na oddzielne. Łatwiej zmieniać program niż płytkę.
  • #8 6100047
    Chris_W
    Poziom 39  
    Posty: 8434
    Pomógł: 381
    Ocena: 1037
    Odradzam stosowanie 3x1500W - na 40l wody. Zmiany temperatury będą za szybkie - duże udary prądowe - efekt szybszego podgrzewania - jest mniej istotny w ogrzewaczach pojemnościowych. Wystarczy ci spokojnie jedna grzałka - zwykle takie bojlery mają 1 grzałke w tych granicach mocy.
  • #9 6102370
    Myrek1
    Poziom 23  
    Posty: 875
    Pomógł: 17
    Ocena: 53
    al777 napisał:
    A może by go tak ... zapytać ? Kto będzie lepiej wiedział niż autor, szczególnie że projekt nie jest OpenSource i do źródeł nie zajrzymy


    Są źródła tu: http://www.ep.com.pl/pobierz.php?id=3052 Schemat jest prosty, to tylko uC, wyświetlacz 7-segmentowy, triak, optotriak i układ wykrywania zera - steruje przerwanoiem uC.

    Cytat:
    Po twoim dorobku "punktowym" widzę że nie jesteś nowicjuszem, więc dziwię się pytaniu. Masz pojemność zbiornika, znasz ciepło właściwe wody (było na fizyce w szkole), moc grzałki też (domyślam się że to miało być 1500W, a nie 1500V). Załóż sobie że sterujesz grupą 20 okresów (0.4s) i policz jaki będziesz miał skok temperatury w odpowiedzi na najmniejsze "podgrzanie" - na podstawie tego ocenisz dokładność sterowania i ewentualne przeregulowanie i porównasz ze swoimi oczekiwaniami (których - nota bene - nie podałeś tutaj).
    Aha, założyłem najprostszą (dla mnie ) metodę realizacji sterowania grupowego - ze stałym czasem trwania grupy. Są oczywiście inne.


    Nie jestem, ale tego nigdy nie robiłem, dlatego wole zapytać od zera. Lepiej pytać niż dochodzić do błędu godzinami, szczególnie jak czas mnie goni. Do tego nigdy nie zajmowałem się regulacją temperatury cieczy.
    Po co to liczyć? Po to jest regulator PID (z samostrojeniem), żeby ładnie to wysterował. Oczekiwania mam takie jak w projekcie z EP, czyli ±1s.

    Cytat:
    W sumie można połączyć razem. I tak przecież sterujesz grupą wielokrotnie dłuższą niż okres przebiegu. Ale jeśli masz wolne piny w mikrokontrolerze - daj na oddzielne. Łatwiej zmieniać program niż płytkę.


    Pomyślałem na tym tak, żeby zrobić układ wykrywania dla jednej fazy a dwie pozostałe załączać od razu z pierwszą fazą. Z tym, że na tych dwóch fazach zastosować już optotriaki z wykrywaniem zera. Tak chyba będzie najlepiej.

    Cytat:
    Odradzam stosowanie 3x1500W - na 40l wody. Zmiany temperatury będą za szybkie - duże udary prądowe - efekt szybszego podgrzewania - jest mniej istotny w ogrzewaczach pojemnościowych. Wystarczy ci spokojnie jedna grzałka - zwykle takie bojlery mają 1 grzałkę w tych granicach mocy.


    Tak, ale osoba, która zleciła mi wykonanie regulatora mówi, że 3 grzałki są lepsze, bo jedna częściej się przepala. Choć jak tak myślę, to przecież przy regulacji rzędu ±1s za dużo będą trzy grzałki. Może do tej pory miał histereze 10stopni i trzy grzałki były dobrym rozwiązaniem. Co o tym myślicie?

Podsumowanie tematu

✨ Dyskusja dotyczy realizacji regulatora temperatury wody w bojlerze o pojemności około 40-50 litrów, sterowanego mikrokontrolerem ATmega16 z algorytmem PID i triakami do załączania trzech grzałek po 1500W każda. Autor rozważa, czy w układzie sterowania grupowego konieczne jest wykrywanie przejścia przez zero napięcia sieciowego. W sterowaniu fazowym detekcja zera jest istotna dla precyzyjnego załączania triaka, jednak w sterowaniu grupowym, gdzie załączanie odbywa się na grupach cykli sieciowych, jej znaczenie jest mniejsze. Wskazano, że optotriaki MOC3041 mają wbudowaną detekcję zera, co eliminuje udary prądowe przy włączaniu, ale może powodować opóźnienia i mniejszą precyzję sterowania. Sterowanie grupowe pozwala na tolerancję błędów fazowych, gdyż sterowanie odbywa się na grupach kilkunastu do kilkudziesięciu okresów, co daje niewielki procentowy błąd. Zwrócono uwagę, że stosowanie trzech grzałek 1500W do 40l wody może powodować zbyt szybkie zmiany temperatury i duże udary prądowe, sugerując raczej jedną grzałkę o mocy około 1500W. Autor rozważa zastosowanie wykrywania zera dla jednej fazy i bezpośrednie załączanie pozostałych dwóch, co może być kompromisem. W projekcie z Elektroniki Praktycznej (EP) autor stosuje detekcję zera, jednak nie jest jasne, czy jest to konieczne w sterowaniu grupowym. Dyskusja podkreśla, że dobór metody sterowania i elementów wykonawczych powinien uwzględniać charakterystykę cieplną zbiornika i wymagania dotyczące stabilności temperatury (±1s).
Wygenerowane przez model językowy.
REKLAMA