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

[Atmega16][C/Eclipse]Trójstawna regulacja temperatury

sevotharte 26 Cze 2011 16:20 1542 8
  • #1 9652160
    sevotharte
    Poziom 10  
    Witam.

    Mam takie zadanie, by zdziałać regulację temperatury i sterować zarówno wentylatorem jak i ogrzewaniem. Wymyśliłem na razie coś takiego:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    korzystam z czujnika DS18B20. Ustaliłem, że chciałbym temperaturę 22 stopni. Więc ochładzam powiedzmy z 24 stopni. Tylko, że wentylator wyłącza mi się przy 23 stopniach. Ma ktoś może jakiś pomysł jakby to inaczej zdziałać? jakiś algorytm słowny by mnie nakierował.

    Dzięki za pomoc![/code]
  • #2 9652255
    acid12
    Poziom 21  
    mozesz sterowac tylko i wylacznie ON/OFF czy analogowo? czym jest twoj obiekt ktorym sterujesz? jakas charakterystyka, model, opis bezwladności.

    Jezeli masz do dyspozycji on/off to musisz zrobic trojstanowe sterowanie z histerezą (razem 4 strefy histerezy) i strefą martwa.

    narazie masz 2 strefy i to odwronie podlaczone,
    pozatym cos tu w warunku nie gra, nie zgodzisz się ?
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • #3 9652277
    sevotharte
    Poziom 10  
    mogę sterować tylko poprzez stany ON/OFF. Obiektem używanym do ogrzewania jest podgrzewacz do lusterek samochodowych, a obiektem chłodzącym wentylator sunon kd1204PFS1.

    http://datasheet.octopart.com/KD1204PFS1-H-Sunon-Fans-datasheet-134936.pdf

    a mógłbyś jakąś rozwinąć to sterowanie trójstanowe? dwie strefy histerezy na ogrzewanie i 2 na chłodzenie?
  • #4 9652303
    acid12
    Poziom 21  
    ten temat powinien zostac przeniesiony do działu automatyka. Znajdz w necie albo w ksiazkach z podstaw automatyki sterowanie trojstanowe z histerezą albo dwustanowe z histerezą i ew. strefa martwą.
  • #5 9652429
    janbernat
    Poziom 38  
    No nie- jakby automatyka była tak prosta...
    Jak x<22- włącz grzałkę i wyłącz wentylator.
    Jak x>23- wyłącz grzałkę i włacz wentylator
    jak x>22 i x<23 nie rób nic.
    A wzbudzić się to faktycznie może- jak ten obiekt ma małą pojemność cieplną.
  • #6 9652436
    sevotharte
    Poziom 10  
    prosiłbym o poprawienie jeśli się mylę. Więc tak:

    zaczynam od warunków na ogrzewanie:
    -> gdy mam temp mniejszą niż 22 stopnie, to grzej do 22 stopni+histereza. Następnie wyłącz grzałkę. Gdy temperatura spadnie poniżej 22stopni - histereza włącz grzałkę.

    -> dla temp większych niż 22 stopnie (np.24), włącz wentylator do 22 stopni - histereza. Następnie wyłącz, a gdy wzrośnie powyżej 22 stopni + histereza to włącz wentylator.

    Oto chodzi?

    Pozdrawiam
  • #7 9652442
    acid12
    Poziom 21  
    nic nie wiemy o tym układzie, taki dobór nastaw, bez histerezy wyłącznie ze strefa martwa może doprowadzić do niestabilności układu
  • #8 9652514
    janbernat
    Poziom 38  
    No- piszę że się może wzbudzić.
    To co napisałem- to jest bez dodatkowej zmiennej histereza.
    I bez zmiennej uchyb.
    Tylko dla konkretnych temperatur.
    Histereza sama jakby sama z tego wynika.
    Tak jest łatwiej na początek.
    Bo po co na początek komplikować.
    Na poczatku dajesz:
    #define temperature_max
    #define temperature_min
    I dalej samo się robi- if albo switch.
    Ten uchyb na poczatek to nie jest potrzebny- bo przecież nie znasz parametrów wzmocnienia no i nie jest to PID.
    Algorytmy na PID albo nawet PI to w tych paru linijkach by się nie zmieściły.
    No i oszacowanie parametrów obiektu sterowanego to jest dużo dłuższa bajka.
    No i wzbudzić się może- ale w tak małym doświadczeniu będzie to i niegroźne i kształcące.
  • #9 9652604
    gayetan
    Poziom 18  
    Mało danych ale...
    Jeśli dobrze zrozumiałem - moje skromne uwagi ( może się na coś przydadzą ):
    1/ histereza 0.5K na DS18B20 w tym układzie jest praktycznie nie do osiągnięcia - zwłaszcza przy zastosowaniu powietrza jako medium wymiany ciepła. DS ma za dużą bezwładność - to się nie uda!!!.
    2/ Jeśli chcesz dokładności bliskiej tej o jakiej wspominasz musisz DS'y skalibrować ( wszystko w nocie Dallas'a)
    3/ Zrób sobie dwa osobne niezależne układy termostatów do sterowania. Dla nich osobne parametry i algorytm rozgraniczający.
    4/ Nie komplikuj zbytnio to się zawsze żle kończy!!!
REKLAMA