Zamyšlení nad PWM

daton
Příspěvky: 664
Registrován: 16 bře 2013, 16:12

Zamyšlení nad PWM

Příspěvek od daton »

Dobrý den
Potřeboval bych trochu pomoci s PWM respektive jeho aplikací u solárního regulátoru. Podařilo se mi vytvořit funkční zapojení regulátoru s picaxe 08M2. Předpokládal jse že budu moci pomocí PWM jednoduše řídit ustálené napětí na panelu které navíc bude i závislé na napětí na akumulátoru. Tedy hlavní podmnkou regulátoru je udrřet 17V na straně soláru a max14,4V na straně aku. To se celkem daří ale.. a tady přijdou zatím nevyřešené problémy. Dříve jsem pro tento regulátor používal analogového zapojení dvou tranzistoru které fungovalo dobře ale s nízkým kmitočntem a nevyužívalo celý potenciál panelů. Tedy to jsem si mysle doposud. Ted ale už o tom nejsem přesvědčen. Jen jednoduchý popis konstrukce je to vlastně MPPT regulátor protože za FETEm který se řídí PWM je toroid s diodou a potom usměrnovačem, který využívá napětové akumulace a při zavření ji pošle proudově do aku. Problém s velikostí indukčnosti už jsem snad vyřešil (při 15kHzvyhovují indukčnosti od 120uH ). Ale problém je ve frekvenci. Zatím jedu v základní frekvenci tedy 15kHz PWM a říkal jsem si čím vyšší frekvence tím lépe ale když jsem to sledoval osciloskopem tak si už tak jist nejsem. Ten analog co jsem tam měl průběžně s vyšším zatížením snižoval frekvenci což jsem považoval za špatně ale ono to paradoxně bylo dobře. Jestli jsem si to správně vysvětlil pak vyšší frekvence znamená více cyklů ale tím i více času co se nevyužije pro napájení akumulátoru. A proč no protože plnění i když v algoritmu ho mám do maxima tedy do 254 respektive pwmout 2,65,254 stále se mi na osciloskopu ukazuje že plnění je jen kolem 83% což mi nějak nejde dohromady s tím maximem co by tam mělo být. A příčiny mohou být dvě, jedna že prostě PWM více než 83% nezvládne což je ale asi špatně jedině v případě že bych měl chybu v přepoštu frekvence plnění) a druhá možná příčina je že při měření napětí na panelu dojde k poklesu napětí, které způsobí že algoritmus nezařadí maximální plnění ale jen o takové jaké mu vychází při měření. Ale jak toto vyřešit, no dal jsem na vstup kondenzátor který měl pulsy srovnat ale protože jsou to dost velké proudové pulsy tak se kondezátory hřály proto jsem musel použít větší MP kondezátory s hodnotou kolem 5uF, což vyhovuje tak do 2A ale potom by se kapacita musela hodně navýšit což se ve výkonových kondenzátorech dělá dost špatně. Potom mne napadlo že by to chtělo synchronizovat měření s PWM ale to by šlo asi dost obtížně proto se asi budu muset uchýlit k průměrování měření aby byla hodnota průměrná. Avšak problém tím vyřešen nebude protože pulsy na přívodech do panelů budou fungivat jako dost nepříjemné rušení do okolí.
Stále mi vychází že to budu muset vyfiltrovat u solárních panelů ale jak. Máte někdo nějaký nápad ne jen k filtraci ale například k tomu zda mám správn nastavené plnění a frekvenci. Díky.
Uživatelský avatar
gilhad
Příspěvky: 262
Registrován: 29 kvě 2015, 00:36
Kontaktovat uživatele:

Re: Zamyšlení nad PWM

Příspěvek od gilhad »

Jen takova uvaha, mozna zcela z cesty - na AVR jde nastavit preruseni na hranu signalu (nevim, jak na tom tvojem procesoru, ale asi by to taky mohlo jit) a kdyby se dalo to mereni do toho preruseni, (nebo od nej nejak odvodilo), tak by vychazelo porad do stejne faze PWM a nemusel bys prumerovat a odhadovat ...
daton
Příspěvky: 664
Registrován: 16 bře 2013, 16:12

Re: Zamyšlení nad PWM

Příspěvek od daton »

To je zajimavé meření by se provadelo na vzestupné hraně či sestupne? Nejsem si jist jestli by to ale s picaxem šlo udělat.
daton
Příspěvky: 664
Registrován: 16 bře 2013, 16:12

Re: Zamyšlení nad PWM

Příspěvek od daton »

Zeptám se ještě jinak když mi běží program a čte se vstup jak dlouho asi tak trvá operace přečtení, nebo i nastavení PWM například v tomto kusu programu
for b1 = 1 to 2
readadc 4,b3 ; měření na soláru
readadc 1,b2 ; měření na aku
pause 10
sol = b3/2 + sol ; průměrování
bat = b2/2 + bat
next b1

if sol >= 181 and bat <= 153 then
if pl < 254 then
pl = pl+1
pwmout 2,63,pl
pause 3
goto make
else

Jde mi o to jak asi dlouho trvá ´vykonání této části kodu oproti pulsu PWM při oněch 15kHz.
AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: Zamyšlení nad PWM

Příspěvek od AlesH »

Ahoj. Délka operací závisí na typu PICAXE a na (programově) nastavené frekvenci procesoru. Pokud Ti jde o tu "for" část s "readadc", tak při základní frekvenci 4MHz to podle mého odhadu celé bude trvat hodně přes 25 ms (jen samotný příkaz "pause 10" bude trvat 10 ms a v cyklu projde dvakrát), což je přes 350 PWM pulzů při frekvenci 15 kHz. Na vyšších frekvencích procesoru se ten čas bude zkracovat, ale určitě nebude kratší, než "několik desítek" PWM pulzů.

Ty řádky s komentářem "průměrování" mi připadají podivné (pokud jsou kompletní), protože za normálních okolností by ta čísla pořád rostla až do "přetečení" (pokud je někde jinde nenuluješ).

Příkaz "pwmout" se obvykle v programu používá jen jednou (protože mimo jiné "resetuje" to PWM) a plnění PWM se pak v programu raději průběžně mění pomocí "pwmduty".
daton
Příspěvky: 664
Registrován: 16 bře 2013, 16:12

Re: Zamyšlení nad PWM

Příspěvek od daton »

Zdravím ano v tom průměrování máte pravdu je to jen kousek programu co se opakuje a na začátku to nuluji tak že při každe skoku na začátek se to vynuluje. Ale popravdě si myslím že to průměrování je stejně k ničemu a asi to vypustím, mám totiž za děličem 8k2 a 2k2 ještě 2uF kondenzátor a tedy se to lehce filtruje a tedy si myslím že to průměrování programem asi nemá moc smysl. Něco jiného je to u senzoru proudu ACS712 který bez průměrování a to alespoň 50x nedá rozumnou hodnotu ale tady to asi uplně odstraním i s tím příkazem pause a tedy smyčku o dost zrychlím. Původně jsem chtěl aby bylo to nastavování trochu líné protože změna slunečního svitu není nijak rychlá a naopak třeba blesky při rychlé interakci dělají neplechu ale asi bude lepší rychlá odezva.
PWMduty jsem ještě nezkoušel ale určitě to zkusím. Díky za info. Ještě jeden dotaz pokud zvýším frekvenci proceosru na 8MHz pak se zvší frekvence 2x i PWM.
AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: Zamyšlení nad PWM

Příspěvek od AlesH »

Takže abych to pochopil. Ten regulátor udržuje napětí na výstupu ze solárního panelu tím, že při vyšším výstupním napětí propojí panel s akumulátorem (tím se panel zatíží, napětí na něm klesne a navíc se nabíjí akumulátor). Když je napětí na akumulátoru už moc vysoké (akumulátor je nabitý), tak se na to regulátor "vykašle" a napětí z panelů už se nesnaží snižovat. Je to tak? Pokud ano, tak asi nějak nechápu smysl toho regulátoru. Je cílem regulovat napětí z panelů, nebo udržovat akumulátor nabitý?

Každopádně zvýšení frekvence procesoru jednoznačně zvýší i frekvenci PWM (při stejných parametrech "pwmout").

Souhlasím s tím, že to průměrování programem je v tomto případě asi zbytečné. Principiálně je to ale asi jen proporciální (P) regulátor, takže se ta programová regulace může "rozkmitat" (za určitých podmínek).

Ještě mne napadlo jestli by nebylo možné tím PWM spíš ovládat řídicí napětí toho spínacího tranzistoru? Tam by se to totiž mnohem snadněji filtrovalo (stačily by mnohem menší kondenzátory a tranzistor by pak [po vyfiltrování] nepracoval v pulzním režimu, ale spíš v "analogovém" [bez proudových nárazů a bez rušení]).
daton
Příspěvky: 664
Registrován: 16 bře 2013, 16:12

Re: Zamyšlení nad PWM

Příspěvek od daton »

NO s tím je právě problém. Ještě jednou to zkusím popsat tranzistor spíná panel k akumulátoru ale protože na panelu musí být nominálně 17 a na aku je jen max 14,4 musí se to dělat pulsně a to tak že se náboj přelije ze soláru do indukčnosti přes právě tranzistor. Ten když vypne tak indukčnost to "nacpe" taky do aku. Aby se využil i proud dodávaný panelem v době kdy je odpojen tak je tam právě kondenzátor který chytá ten impuls a když opět sepne tranzistor je náboj kondenzátoru i panelu "nacpán" opět do tlumivky a po jejím nabití i akumulátoru ale jen do doby než začne klesat napětí na soláru a v okamžiku kdy klesne na 17 tak opět tranzistor vypne a vše se opakuje.
Na tranzistor jsou kladeny dost velké nároky protože pulsy z kondenzátoru plus panelu jsou dost silné (měl jsem problém udělt strmé náběžné hrany protože při vypínání má fet IRF4905 kapacitu až 3400pF což se už odporem z plusu nedá zvládnout. No ale budič se podařil a ted o víkendu jsem to zkoušel na konstantní proud 5A ale špičky z kondenzátoru musely být mnohem větší.
Problém je zatím s tou délkou vypnutí tranzistoru neboli délkou plnění. Zatím co v analogu co mám a chci ho nahradit ( jsou tam problémy s ošetření přesného napětí) je plnění až 93% u picaxe se mi daří s plněním jen 83% a nemohu se dostat výše. Softwarem to asi není tak že asi je to nesprávnou interpretací vstupního napětí z panelu, nebo už mi dochází nápady.
AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: Zamyšlení nad PWM

Příspěvek od AlesH »

Takže ten pulzní režim je tam kvůli lepší účinnosti a lepšímu využití energie z panelu? Pardon, ale tento druh elektroniky asi nechápu dostatečně dobře. K čemu vlastně mají být ty změny plnění PWM? To má reagovat na změny napětí během jediného PWM pulzu? To PICAXE nikdy nedokáže tak rychle změřit. Pokud stačí to plnění PWM měnit tak max. 100x za sekundu, lze to s PICAXE udělat. Pokud to má reagovat rychleji, tak to s PICAXE nejde. Jinak samozřejmě i s PICAXE lze PWM plnění dotáhnout nad 83%, až k plným 100% (v tu chvíli to ovšem přestane kmitat).

Bohužel pořád nerozumím tomu, kdy, kam a jak se "přelévá" ta energie z panelu. A pořád také nevím, co je cílem té regulace plnění PWM (regulace průměrného nabíjecího proudu?). Nemusíš to ale "řešit", protože to bude asi jen můj problém.
daton
Příspěvky: 664
Registrován: 16 bře 2013, 16:12

Re: Zamyšlení nad PWM

Příspěvek od daton »

Pisi z tabletu tak ze se omlouvam za diakritiku.
U regulatoru jde o to aby panel pracoval v optimalnich parametrech coz je zhruba 17v no a musi se zajistit aby napeti geloveho aku neprelezlo 14,4 no a tak se provadi transformace step -down menicem ale ten menic musi umet udrzet ty napeti tak jak jsem popsal vyse a to tak ze napeti na panelu muze stoupnout az na max pokud bude aku plny. Ta rychlost zmeny nemusi byt tak velka slunce take nereaguje tak rychle. Ten napetovy rozdil mezi panelem a aku se transformuje v prod tak ze pred regulatorem je proud z panelu napr kolem 2a ale z regulatoru tece do aku uz 2,4A to je to navyseni proudu pri snizeni napeti.
Musim jen zkusit optimalizovat plneni tak aby transformace byla co nejucinnejsi no a zkusit se priblizit tomu analogovemu oscilatoru s promennou fazi. :)
Odpovědět