Mindmapper skrev:Skit i PWM! En så trög process har ingen användning av det. Tänk på vilket stegsvar du har från processen. Hur snabbt svänger temperaturen idag, kan ge vägledning. Villken nogrannhet på regleringen vill du uppnå?
Vanlig ON- OFF reglering räcker! Att slå till från för snabbt skapar bara störningar och problem.
Jag har inte byggt den. Men jag tyckte att temperaturen svängde ganska rejält över. Max 10 grader över.
Jag vill ha en nogranhet på 2 grader.
Så du menar att om jag har en ON-OFF reglering så kan jag slå av vid t.ex. 67 grader och efter det så ökar den inte?
Om du inte tillför effekt, hur ska temperaturen då öka?
Jag trodde att du hade någon form av utbildning med dig i bagaget - men tydligen inget som innebär orsak och verkan.
Du kom ju just själv fram till att det svänger över 10 grader. Då passar den koden jag nyss visade perfekt. Sätt bara startvärdet LOW_TEMP till 10 grader under det önskade, dvs 57 grader.
Du kommer aldrig att komma upp i max-temperaturen (HIGH_TEMP) utan det kommer att stanna nånstans mitt emellan, beroende på hur mycket effekt som tillförs i förhållade till effekten som försvinner. Därför behöver du lägga till integralen (I) . men börja med P först.
Icecap skrev:Al: PWM betyder bara att man använder en on-off styrning av signalen, inte att det ska vara flera hundra Hertz eller mer på det hela.
En PWM-frekvens på 1Hz använder jag i ett kommersiellt produkt för att styra ett 1kW värmeelement, det sitter i luft varför värmeinertin inte räcker till en långsammare frekvens. Detta har i övrigt ökad livslängden ~5gg jmf. med en likvärd äldre styrning med 0,5Hz PWM-frekvens.
Men till det du vill uppnå räcker en PWM-frekvens på 0,5Hz mycket långt. Och då man som minst kan slå på 1 halvperiod ger det 200 steg att reglera effekten med.
Och nej, det är inte spänningen som regleras, det är effekten! Om du har en 1kW värmeelement och tänder den 1 sek och släcker 1 sek kommer effekten det avger att vara 500W.
Men du har ju redan som vanligt löst alla problem utan hjälp - och tydligen utan att fatta hur man gör.
Jag vet hur PWM fungerar. Jag tog bara en multimeter från biltema och mätte mellan VCC och någon PWM pinne. Då kunde jag se olika spänningar, i praktiken. Jag tog också en oscilloskåp för att kolla hur signalerna vandrade på skärmen.
Icecap skrev:Om du inte tillför effekt, hur ska temperaturen då öka?
Jag trodde att du hade någon form av utbildning med dig i bagaget - men tydligen inget som innebär orsak och verkan.
Och PWM är On/Off! Det är just grejen med det!
Jo, men jag menar att jag skulle ändra frekvensen på PWM på min ATmega.
Jag tror jag får koda som jessie säger.
Ändra PWM på ATmega är nog inget för mig. Lika bra att inte röra.
danei skrev:Översvängen får man av en dåligt placerad eller dålig givare.
Jag satt den ca 20 cm ovanför tekokaren.
Ska jag placera den på tekokaren istället?
jesse skrev:Du kom ju just själv fram till att det svänger över 10 grader. Då passar den koden jag nyss visade perfekt. Sätt bara startvärdet LOW_TEMP till 10 grader under det önskade, dvs 57 grader.
Du kommer aldrig att komma upp i max-temperaturen (HIGH_TEMP) utan det kommer att stanna nånstans mitt emellan, beroende på hur mycket effekt som tillförs i förhållade till effekten som försvinner. Därför behöver du lägga till integralen (I) . men börja med P först.
Icecap skrev:Om du inte tillför effekt, hur ska temperaturen då öka?
Jag trodde att du hade någon form av utbildning med dig i bagaget - men tydligen inget som innebär orsak och verkan.
Och PWM är On/Off! Det är just grejen med det!
Men ON-OFF reglering behöver inte vara PWM.
Han behöver bara använda gammal hederlig bang-bang control. Dvs. att slå av när han närmar sig önskad temperatur och sedan slå på när temperaturen gått ner en del. Utan att blanda in frekvenser där PWM ska ske osv. I detta fallet anser jag att det ska vara så enkelt som möjligt att lösa. Annars kommer tråden bara att bli en enorm slinga av missuppfattningar. Förmodligen kommer aldrig till-frånslagen att behöva ske inom samma minut. Att en 30 till 100l vätska ska minska i temperatur tar tid om processen är välisolerad. Får temperaturen dessutom variera ett antal grader har vi inga större bekymmer med regleringen.
Men visst vore det mest rekomendabla att han köper en färdig regulator.
Det du kallar " gammal hederlig bang-bang control." är inte vad jag definierar som bang-bang.
Visst för att uppnå en definierad temperatur är det lämpligt att köra fullt ös tills man tillfört rätt energimängd. Men sedan ska man hålla den temperaturen, då kan man inte köra bang-bang. Bang-bang är bra för att snabbast möjligt komma fram, inte för positionshållning.
EDIT: Efter lite googling visade det sig att bang-bang även används som begrepp för hyresreglering. Det är inte vad man brukar syfta på inom reglertekniken. Det Mindmapper syftar på är hyresreglering.
Röd pil visar om SSR ska vara ON i %.
Grön pil visar om SSR ska vara OFF i %.
Vid rumstemperatur så är SSR reläet ON till 100%. Men desto mer temperaturen går desto mer kommer SSR vara OFF under längre tid jämfört med ON. Vid mitten så kommer SSR vara lika ON som OFF vid cykel och vid börvärde så kommer SSR vara OFF till 100%. Detta är fuzzy controll. En modern reglering. Har sina rötter från 60-talet, till skillnad från PID-regleringen som har sina rötter från 1890-talet. Då ska vi inte tala om P-delen....gammal som gatan
#define TEMP_MAX 67
void setup()
{
pinMode(1, OUTPUT); // En vanlig digital utgång.
}
void loop()
{
int t = getTemp();
if (t < TEMP_MAX)
{
digitalWrite(1, 1); // SSR ON
delay(X(t));
digitalWrite(1, 0); // SSR OFF
delay(Y(t));
}
else
{
digitalWrite(1, 0); // SSR OFF
}
}
int X(int t)
{
y = -k*t + m // (notera -k)
return y;
}
int Y(int t)
{
y = k*t + 0
return y;
}
int getTemp()
{
// Analog linjärisering av TMP36
return temp;
}
Ne sagt det förut och säger det igen, svaret finns tidigare i tråden, nu är det bara att börja labba.
Al_Bundy har redan testat en reglering innan och den funka inte så bra. Första frågan man ställer sig då är VARFÖR fungerar den inte bra; jo den reglerade över max temp och det vill vi ju inte. Troligt problem felplacerad givare, (detta står i typ första eller andra inlägget).
Jag tycker att om man gått en kurs eller håller på att gå en kurs i styrteknik så borde man ha koll på on/off reglering och PID, det är typ det första kursen går igenom, jag läser just nu styr och mätteknik. Och i vårat läromedel finns det en del labbar där man ska välja om man ska ha on/off, PI eller PID reglering.
Al har även en äldre tråd med en vattenkokare i som han frågar om ett relä funkar till det (10A relä). Den rinner ut i sanden. Kanske det här är samma projekt...
Om man har mycket termisk massa i elementet eller stor temperaturgradient inne i denna som eftervärmer en stund och vattnet kring detta som tar tid på sig att sprida sig så kanske man måste slå av elementet lite innan uppnådd temperatur och detta också högst beroende av vad sensorn sitter - detta bör kunna kompenseras till en del med en PID-regulator där deriveringsdelen borde ge framförhållning baserat på temperaturstigningshastigheten och den vägen minskar på överslängen. Sedan kanske man måste ha olika parametrar för uppvärmningsfasen respektive varmhållningsfasen beroende på tillåtna av och påslagstid och tröghet/värmekapacitet i el-elementen och det som värms
att räkna på detta bör väl ingå i reglerteknik-kurserna och därmed också hur man hanterar detta.
danei skrev:Det där är en ren P-regulator.
Har du lärt dig en ny term som du vill stila med utan att veta vad den betyder nu?
Nej nej.
Det är inte en P-regulator.
En P-regulator räknar ut ett fel som kallas e. Felet e gångras med en förstärkning K. U = K*e är en "ren" P-regulator.
Det jag har gjort är en Fuzzy Controll regulator. Det är något helt nytt.
Öppna boken "Modern Reglerteknik" av Bertil Thomas (antar han heter så på riktigt, jag vet...riktigt weird namn men... ) och slå upp sida 381 och 382.
xxargs skrev:Om man har mycket termisk massa i elementet eller stor temperaturgradient inne i denna som eftervärmer en stund och vattnet kring detta som tar tid på sig att sprida sig så kanske man måste slå av elementet lite innan uppnådd temperatur och detta också högst beroende av vad sensorn sitter - detta bör kunna kompenseras till en del med en PID-regulator där deriveringsdelen borde ge framförhållning baserat på temperaturstigningshastigheten och den vägen minskar på överslängen. Sedan kanske man måste ha olika parametrar för uppvärmningsfasen respektive varmhållningsfasen beroende på tillåtna av och påslagstid och tröghet/värmekapacitet i el-elementen och det som värms
att räkna på detta bör väl ingå i reglerteknik-kurserna och därmed också hur man hanterar detta.
Jag är hajj på PID regleringing, men då gäller det att jag ska ha en dimmer som är på minst 2500 watt.
Men nu har jag bara ett SSR relä och ska försöka reglera igenom att den ska få pulsera olika pulser