Sida 1 av 2

Vilken frekvens på PWM ska jag ha vid styrning av AC?

Postat: 29 augusti 2016, 18:52:20
av Al_Bundy
Hej!

Jag tänker kontrollera en tekokare med ett AC SSR relä och då hade jag tänkt kontrollera detta via en PID. Men för att göra detta så måste jag först skapa en algoritm som pulserar höga och låga pulser med en viss frekvens där 100% av frekvensen ska motsvara 100 % AC, dvs 230 volt i praktiken. 0% frekvens ska motsvara 0% AC i praktiken.

Jag kom och tänkte på det när Arduino's pulserar med C++ funktionen analogWrite(pin, intervall) där pin är själva numret på den digitala utgången och intervall kan vara mellan 0 och 255, alltså en 8-bitars PWM. Vid 255 PWM så är det "5 volt som spottas ut", vid 127 så är det 2.5 volt som "spottas ut".

Är detta möjligt med 230 volt att skapa en viss frekvens med en viss algoritm som pulserar så att i praktiken så blir det hälften eller en tredjedel av 230 volt? Det kanske är svårt vid så stora spänningar?

Min metodik för att lösa problemet är följande:
1. Skapa en algoritm i Simulink som kan pulsera en viss frekvens (duty cycle) som kan "omvandla" 230 volt till någon annan spänning.
2. Applicera det i en kontroller.
3. Logga temperatur över tid hos tekokaren med 100% duty cycle. Notera även effekten som har används för att driva tekokaren.
4. Ta samplad data och skapa en diskret överföringsfunktion med Simulink System identification toolbox.
6. Ta denna överföringsfunktion och implementera denna i ett återkopplat system.
7. Skapa en PID regulator som omvandlar temperaturfelet e till en viss effekt mellan effektvärdet som har används vid 100% duty cycle och 0 effekt.
8. Simulera.

Re: Vilken frekvens på PWM ska jag ha vid styrning av AC?

Postat: 29 augusti 2016, 18:59:20
av TomasL
Du får väl först mäta upp tidskonstanterna för din te-kokare.
Sedan pratar man ju inte om frekvens i detta sammanhanget, utan cykeltid.
I ditt fall så vid 100% lägger du ut ren likspänning till din ssr, vid 50 % är längden på din utsignal 50% av cykeltiden.
Rent spontant om vi pratar en traditionell vattenkokare, så skulle jag gissa att en cykeltid på säg 20 sekunder eller nått sån borde vara vettig, typ.

Re: Vilken frekvens på PWM ska jag ha vid styrning av AC?

Postat: 29 augusti 2016, 19:09:16
av ToPNoTCH
Jag vet inte vad begreppet "kontrollera" innebär. Man brukar använda det ihop med ytterligare något ord.

Men i sann kämpar anda så gissar jag att det är temperaturen du avser kontrollera, även om den enda indikationen på detta är under punkt 7 i slutet av ditt inlägg.

Om det INTE är temperaturen så sluta läs här. Annars fortsätt.
-----------------------------------------------------------------------------------------
Jag får känslan av att du krånglar till ditt behov faktor 1000 nästan.
Jag har själv gjort en liknande reglering (i detta fall för en eluppvärmd rök) med SSR och PID.

Tänk följande:
En cykel om 5 sekunder där du kan välja tiden som värmeelementet är på eller av del av tiden.
0% duty = aldrig på
100% duty = elementet på 100% av tiden = 5 sekunder

PID regulatorn justerar mot hur lång tid ditt element skall vara på respektive av.

Som du ser behövs ingen speciell "pulsbreddsmodulator" i och med den inbyggda trögheten så kan cykeln hanteras med timers och därmed kan cykeln vara så pass lång att du kan reglera på betydligt mer än de 255 steg som en Arduino "analogWrite" pysslar med.
Sedan vill jag även påstå att "tröga system" där det går lång tid mellan "förändring" och "utfall" tjänar på en högre upplösning i exempelvis AD konvertering eller nogrannhet i sensorer. Kan vara tänkvärt.

Som kuriosa kan jag nämna att min konstruktion håller sig inom +/- 0.5C för luft temepraturen vilket var överaskande bra med tanke på att den står utomhur och har yttre påverkan (vind osv. osv.). Men det tog lite tid att skruva in PID då skall medges.

Re: Vilken frekvens på PWM ska jag ha vid styrning av AC?

Postat: 29 augusti 2016, 19:20:40
av Al_Bundy
TomasL skrev:Du får väl först mäta upp tidskonstanterna för din te-kokare.
Sedan pratar man ju inte om frekvens i detta sammanhanget, utan cykeltid.
I ditt fall så vid 100% lägger du ut ren likspänning till din ssr, vid 50 % är längden på din utsignal 50% av cykeltiden.
Rent spontant om vi pratar en traditionell vattenkokare, så skulle jag gissa att en cykeltid på säg 20 sekunder eller nått sån borde vara vettig, typ.
Mäta upp tidskonstanterna gör jag när jag loggar temperatur över tid och omvandlar dessa till en diskret överföringsfunktion.

20 sekunder? Så du menar att jag kan reglera valfri temperatur om jag har en cykeltid på 20 sekunder där t.ex. 5 sekunder kan vara ON-tid och resten av 15 sekunder är OFF-tid?

Självklart har jag mycket bra och rejäl omrörning också. Men brukar man göra det som du säger att man tar i en rätt grov cykeltid? Jag har gjort en algoritm i Simulink där jag har en cykeltid på 1.0 sekunder. Men då har jag skalat upp allt i tiondelar också. Detta kanske är för tight?

Tror du en PID är för svårt att tillämpa vid detta fall? Kanske en P-regulator är enklare och mer lönsammare? Jag kräver en hyffsat bra nogranhet, 1-3 grader får det pendla.

Re: Vilken frekvens på PWM ska jag ha vid styrning av AC?

Postat: 29 augusti 2016, 19:24:30
av H.O
Det viktiga i det här fallet är ju att välja en cykeltid mångdubbelt den hos nätfrekvensen. 5s har nämnts, det är nog en bra början men beror såklart på hur "trög" din vattenkokare är. Är den på 10kW och 1l så kanske 5s är lite långsamt. 50% effekt = 2.5s på, 2.5s av osv.

Varför inte en kortare cykeltid? Därför att ju kortare den är desto större inverkan har tidpunkten för när, under nätspänningens cykel som du aktiverar reläet. Är det dessutom ett nollgenomgångstriggande relä så, ja...

Re: Vilken frekvens på PWM ska jag ha vid styrning av AC?

Postat: 29 augusti 2016, 19:29:58
av TomasL
Det är ju bara att räkna, hur mycket effekt har du? Hur mycket får du ut vid en halvperiod, sedan är det ju bara att räkna om detta till cykeltid, på så sätt får du den kortast användbara cykeltiden, eftersom din bryggare lägsta upplösning är en halvperiod.
Sedan beror ju den faktiska cykeltiden på hur många bitar du använder i din PWM, samt tidskonstanten i din bryggare.

Re: Vilken frekvens på PWM ska jag ha vid styrning av AC?

Postat: 29 augusti 2016, 19:37:08
av Al_Bundy
ToPNoTCH skrev: Jag får känslan av att du krånglar till ditt behov faktor 1000 nästan.
Jag har själv gjort en liknande reglering (i detta fall för en eluppvärmd rök) med SSR och PID.
Det är ju jag, vad annars skulle det vara :)
Tänk följande:
En cykel om 5 sekunder där du kan välja tiden som värmeelementet är på eller av del av tiden.
0% duty = aldrig på
100% duty = elementet på 100% av tiden = 5 sekunder

PID regulatorn justerar mot hur lång tid ditt element skall vara på respektive av.
Jag har tänkt samma sak nästan.
Tänk dig en funktion i t.ex. C som har en räknare och en statisk float variabel. För varje gång funktionen anropas så ökas denna variabel med +0.1 och när variabeln har blivit 1.0 så nollställs variabeln. Så länge PID-regulatorns värde är över den dynamiska variabeln så ska reläet vara ON. Men PID-regulatorn ändrar sitt värde lägre desto mindre felet blir. Det betyder att mitt SSR relä kan gå från ON till OFF till ON igen under samma cykel.
Som du ser behövs ingen speciell "pulsbreddsmodulator" i och med den inbyggda trögheten så kan cykeln hanteras med timers och därmed kan cykeln vara så pass lång att du kan reglera på betydligt mer än de 255 steg som en Arduino "analogWrite" pysslar med.
Sedan vill jag även påstå att "tröga system" där det går lång tid mellan "förändring" och "utfall" tjänar på en högre upplösning i exempelvis AD konvertering eller nogrannhet i sensorer. Kan vara tänkvärt.
Jag har faktiskt ADC konvertering och en temperaturgivare. Fått det fungera också. Så jag kan utesluta det där med PWM och köra lite grövre t.ex. 20 sekunder, eller 5 sekunder som du säger?
Som kuriosa kan jag nämna att min konstruktion håller sig inom +/- 0.5C för luft temepraturen vilket var överaskande bra med tanke på att den står utomhur och har yttre påverkan (vind osv. osv.). Men det tog lite tid att skruva in PID då skall medges.
Har du två program då eller har du ett i samma?
T.ex. att du har en PID som avgör hur lång ON-signal det ska vara. Samtidigt har du ett annat program som "snurrar på" och det programmet har en cykeltid på 10 sekunder. Om PID:en säger 3 sekunder ON tid och sedan ändrar den sig till 4 sekunder ON-tid en sekund efter. Gäller du 3 sekunds tiden då för dig?

Eller har du gjort som jag har gjort att ett program läser exakt hela tiden av PID:en och samtidigt räknar den. Så länge PID:ens värde är över tiden som räknas så ska det vara ON. Men PID:ens värde minskar desto mindre felet blir.

Re: Vilken frekvens på PWM ska jag ha vid styrning av AC?

Postat: 29 augusti 2016, 19:41:38
av Al_Bundy
TomasL skrev:Det är ju bara att räkna, hur mycket effekt har du? Hur mycket får du ut vid en halvperiod, sedan är det ju bara att räkna om detta till cykeltid, på så sätt får du den kortast användbara cykeltiden, eftersom din bryggare lägsta upplösning är en halvperiod.
Sedan beror ju den faktiska cykeltiden på hur många bitar du använder i din PWM, samt tidskonstanten i din bryggare.
Jag har 2300 Watt, det brukar vara en vanlig tekokare. Jag har inte mätt resistansen hos tekokaren än. Hur menar du räkna om till cykeltid?

Vi säger att jag får en överföringsfunktion som liknar H(s) = 1/(1+ 2.3s). 2.3 är då min tidskonstant.

Re: Vilken frekvens på PWM ska jag ha vid styrning av AC?

Postat: 29 augusti 2016, 19:56:30
av TomasL
Resistansen är fullständigt ointressant.
2300W/100= 23W per halvperiod.
Vid 8 bitar är minsta cykeltiden 255/100 = 2,55 s, för varje bit blir då effektutmatningen 23W, högre upplösning kan du aldrig få, vid flera bitar så blir kortaste cykeltiden längre, dvs kör du 16 bitar blir den kortaste cykeltiden 655,35 s.

Tidskonstanten i bryggaren är naturligtvis temperaturförändring per sekund. För att mäta detta så fyller du på kallt vatten, mät temperaturen sätt på bryggaren i säg 30s och mät sluttemperaturen. Då får du fram bryggarens tidskonstant vid upphettning, och kan på det sättet räkna fram hur läng tid det tar att värma upp ditt vatten, Därefter kan du mäta hur snabbt det hela avsvalnar, och får fram tidskonstanten för detta.
Cykeltiden skall vara tillräckligt lång så du kan utnyttja alla bitar, och betydligt kortare än tiden det tar att uppnå måltemperaturen.
Tar det 60s att uppnå måltemperaturen kan nog en cykeltid om säg 5-10s vara vettig, men det beror också på hur din regulator jobbar och hur noggrann du måste vara samt hur noggrant du mäter temperaturen.

Dock är det så att ur PWM-hänseende så är det tämligen onödigt att göra ovanstående, men för att få fram dina PID-värden så kan det vara en hjälp.

När det gäller PWM, så om du sätter cykeltiden någonstans mellan 5 och 20s så blir det nog rätt bra.

Re: Vilken frekvens på PWM ska jag ha vid styrning av AC?

Postat: 29 augusti 2016, 20:30:42
av Al_Bundy
Tackar. Detta är en PLC som jag har och ingen direkt PWM. Men jag kan skapa ett litet program i min PLC som har en cykeltid.

Vi säger att jag mäter uppvärmningtemperaturen, ta två prover och räknar ut tidskonstanten(är detta förändringshastigheten? Typ en derivata?). Om jag får t.ex. 4.6 i tidkonstant så väljer jag 5 i cykeltid. Alltså ett PLC program som har en cykeltid på 5 sekunder. Helst delar jag det med 5/100 så att programmet körs varje 0.05 sekund. Sedan har jag en PID som avgör hur lång ON-tiden ska vara. Exemplevis om programmet som körs för varje 0.05 sekund, har en variabel som adderar +0.05 sekunder för varje körning. Så länge PID:ens värde är högre än programmets räkningsvariabel så ska SSR reläet vara ON. När temperaturfelet sjunker så sjunker även PID:ens ON-tid och därmed blir cykeltiden för ON-tiden kortare.

Då har jag fattat det rätt!

Men du pratade om avsvalningstidskonstant. Hur ska jag applicera den med mitt reglersystem? Jag kan utesluta den igen om att sätta SSR = OFF när ärvärde >= börvärde.

Annan fråga: Jag förstog inte direkt hur du menar hur jag ska omvandla cykeltid för ON till effekt. Vi säger att jag har ett system i Simulink - ett återkopplat system där min PID ger ut en viss tid som SSR reläet ska vara ON. Jag vet tidskonstanten och jag vet överföringsfunktionen. Men på något sätt så måste jag omvandla ON-tid till effekt. T.ex. 100% ON är ju 100% duty cykle effekt. Samma effekt jag använde för att mäta min tidskonstant.

Re: Vilken frekvens på PWM ska jag ha vid styrning av AC?

Postat: 29 augusti 2016, 20:34:30
av TomasL
Du får ju ett stegsvar när du kopplar på värmen, och ett när du stänger av den.

Re: Vilken frekvens på PWM ska jag ha vid styrning av AC?

Postat: 29 augusti 2016, 20:40:19
av Al_Bundy
Jo. Det vet jag. Stegsvaret är konstant ON ström till SSR reläet och av detta stegsvar kan jag räkna ut tidskonstanten.

Men angående hur jag ska omvandla denna ON-tid till effekt var det jag inte riktigt förstog. Om jag ritar upp lite enkelt.

Börvärde -> Differentialpunkt(Börvärde - Ärvärde) -> PID -> ON-tid -> Modul som räknar ut ON-tiden i effekt -> Vattentank -> Temperatur/Ärvärde.

För överföringsfunktionen hos vattentanken är skapade av ett stegsvar som liknar konstant ström ON för SSR reläet. Vi säger att vattentanken har 2000 watts värmeaggregat. Kan jag då dela 2000 watt * ON-tiden i sekunder/ Perioden i sekunder? Då får jag effekt per procentuella ON-cykeltiden? Det blir väll så, eller hur?

Re: Vilken frekvens på PWM ska jag ha vid styrning av AC?

Postat: 29 augusti 2016, 21:12:36
av ToPNoTCH
Al_Bundy skrev:Eller har du gjort som jag har gjort att ett program läser exakt hela tiden av PID:en och samtidigt räknar den. Så länge PID:ens värde är över tiden som räknas så ska det vara ON. Men PID:ens värde minskar desto mindre felet blir.
Nej jag gör PID beräkningen en gång per loop, men den görs givetvis exakt innan regleringen sker.
Om man skulle göra beräkningen flera gånger i loopen utan att använda värdet så blir inte PID regulatorn låst, den kommer därmed att förändra värdet men du kommer inte nyttja det till något och det sätter funktionen ur spel lite förenklat.

Om du tänker lite som att PID regulatorn "justerar värdet" och "bedömer utfallet" och utifrån detta drar slutsatsen hur den skall ändra nästa gång, så är det enkelt att begripa det felaktiga i att göra fler beräkningar inom samma loop.

Re: Vilken frekvens på PWM ska jag ha vid styrning av AC?

Postat: 29 augusti 2016, 21:23:12
av ToPNoTCH
Ang. ditt sista inlägg så tror jag att du i princip begripit det rätt, men jag får lite känslan av att du försöker lista ut ett magiskt värde som i själva verket inte behöver förstå i och med PID regulatorn.

Exempelvis är det en stor skillnad i att värma vatten till en viss temperatur jämfört med att hålla denna temperatur.
Volymen vatten och omgivande temperatur är andra faktorer som påverkar.

Hela principen med att ha en sluten loop och en regulator är just för att du aldrig matematiskt kommer få fram det värde som är det "exakt rätta" ,då det finns för många konstanter inblandade som inte är repeterbara.
Så fokusera på hur du skall implementera och tuna din PID (eller PI) istället.

Re: Vilken frekvens på PWM ska jag ha vid styrning av AC?

Postat: 29 augusti 2016, 21:23:22
av Al_Bundy
Okej. Du menar analysera -> justera -> invänta resultat -> repetera.

Det kan faktiskt vara en smart sak faktiskt. Jag hade inte riktigt tänkt på det. Jag tänkt mest bara att så länge PID värdet är högre än räknarens ON-cykel så ska reläet vara ON och att temperaturen kan ändras rätt mycket under cykelns gång.

Men jag ska nog köra på din idé för att vara säker.