Atmel AVR sinusový střídač a FB

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
Jenda_KL
Příspěvky: 1173
Registrován: 10 zář 2008, 00:00
Bydliště: Kadaň
Kontaktovat uživatele:

Atmel AVR sinusový střídač a FB

#1 Příspěvek od Jenda_KL »

Napáchal jsem z ATTiny 2kVA měnič do auta na ruční nářadí.

Tiny: int.osc 8MHz a PLL pro PWM (15kHz).
střídač: můstek 4x5 IRF44Z, buzený přes TLP250
trafo: primár 400V sekundár 24V umotaný na 15V.

Generuje se INT při T1MAX, kdy se bere hodnota pro další pulz ze sinusové tabulky, kde je předpočítáno 156 pulzů půlperiody.

Na flexu to fuguje při nastartovanym autě dobře, ale při jízdě na baterku samozřejmě klesá i výstupní napětí.

problém je se zavedením zpětné vazby, tedy jak upravit výstup tabulky podle FB pro generování PWM tak, aby to nesežralo 10us, když se to má počítat 15000x za sekundu.
Pokud by to trvalo déle, bylo by potřeba to přepočítat do RAM, které je ale na Tiny26 na tohle málo.

Nápad?
Uživatelský avatar
Bernard
Příspěvky: 3654
Registrován: 27 kvě 2005, 00:00

#2 Příspěvek od Bernard »

Jestli to dobře chápu, výstupní napětí klesá následkem poklesu vstupního napětí. Tak by se dalo měřit vstupní napětí a podle jeho poklesu zvětšovat ty pulzy o nějaký díl, asi zas z nějaké tabulky.
Pro ty pulzy stačí tabulka na čtvrtperiodu, čteš jí jednou dopředu, jednou pozpátku.
Jenda_KL
Příspěvky: 1173
Registrován: 10 zář 2008, 00:00
Bydliště: Kadaň
Kontaktovat uživatele:

#3 Příspěvek od Jenda_KL »

jo, baterka se prostě vybíjí :)

o čtvrtperiodě jsem uvažoval, ale vzhledem k tomu že už komutace zabere 10us jsem to zatím vzdal.

Mám už FB zavedenou z 230 přes optočlen na AD, který mi vzorkuje v maximu půlperiody, takže hodnota by byla. Jen nevím jak to dělit, když to umí dělit jen dvěma.

Edit:
měří to samozřejmě i napětí baterie, zobrazuje její stav a vypíná při poklesu pod 10,5V.
Uživatelský avatar
procesor
Příspěvky: 5286
Registrován: 02 říj 2009, 00:00
Bydliště: PO

#4 Příspěvek od procesor »

V jednom projekte som potreboval viac dat, tak som použil voľné miesto v programovej pamäti. PIC umožňuje aj zapisovať/prepisovať síce zložitejšie, ale čítanie ide v pohode. Tam sa ti zmestí toho habadej, ak programuješ v asm. Štyri, prípadne osem rôznych sád by stačilo prepínať podľa napätia akumulátora.
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#5 Příspěvek od Andrea »

S tím trafem ale nemáš žádnou rezervu, při 11V na baterce už na výstupu sinus s amplitudou 325V neuděláš, můžeš akorát přejít do obdélníku.
Jenda_KL
Příspěvky: 1173
Registrován: 10 zář 2008, 00:00
Bydliště: Kadaň
Kontaktovat uživatele:

#6 Příspěvek od Jenda_KL »

Trafo upravit je otázka pěti minut.
Má odbočky 400,415,425,440 a postupně jak se vybíjí tak přehazuju do vyšších.
Jenda_KL
Příspěvky: 1173
Registrován: 10 zář 2008, 00:00
Bydliště: Kadaň
Kontaktovat uživatele:

#7 Příspěvek od Jenda_KL »

procesor píše: Štyri, prípadne osem rôznych sád by stačilo prepínať podľa napätia akumulátora.


Asi tohle je nejsnadnější cesta
Uživatelský avatar
mtajovsky
Příspěvky: 3728
Registrován: 19 zář 2007, 00:00
Bydliště: Praha

#8 Příspěvek od mtajovsky »

Ještě bych zkusil nějaké modifikace tabulky. Holá tabulka by obsahovala délky impulsů pro plný výkon. Nějak přesně dělit asi není z hlediska rychlosti reálné, ale možná by šlo shiftem selektivně dělit 2, 4 nebo 8 každý n-tý impuls. Čím menší n, tím by se zkrátilo více impulsů a vstupní napětí by klesalo. Chce to najít vhodný způsob výběru impulsů (čili n), které se budou dělit, v kombinaci s dělitelem 2, 4, 8, atd., aby se pokud možno zachoval sinus na výstupu a přitom se dosáhlo proporionální regulace výstupního napětí.
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#9 Příspěvek od Andrea »

Násobení 8bitového čísla koeficientem 1,000 - 1,246 se dá zvládnout za 18 taktů (2.25us při 8MHz), koeficientem 1,000 - 1,496 za 20 taktů (2,5us). To se během přerušení 1x za 66us stihne levou zadní. Koeficient se vypočte ze změřených hodnot jednou za periodu 50Hz, tj. na to bude času dost.

Jenda_KL píše:vzhledem k tomu že už komutace zabere 10us

Co si mám představit pod tou komutací?
Uživatelský avatar
procesor
Příspěvky: 5286
Registrován: 02 říj 2009, 00:00
Bydliště: PO

#10 Příspěvek od procesor »

V prípade, že stačí 5 diskrétnych hodnôt, ten výpočet ide urobiť ešte rýchlejšie.
Násobiť 1.00 1.25, 1.5, 1.75 2.00 je jednoduché
čo trvá:..0......3......2.....4.......1 taktov.
Možno sa to nebude dať použiť, kvôli prezentácii dát.
Potom ešte 9 polohový "prepínač" bol výhodný, ale nejaký ten tak by to trvalo dlhšie(max 6 taktov). Musela by sa vypočítať a prirátavať aj 1/8 .
Sedemnásť polôh je už asi zbytočnosť, ale do desať taktov vy sa dalo zmestiť.
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#11 Příspěvek od Andrea »

Pokud napájecí napětí kolísá o ani ne 50% tak mi koeficienty 1,75 a 2,00 přijdou už mimo, takže zbývají jen tři. Navíc ty napsané takty jsou dosti podhodnocené, to je jen na samotný posun a přičtení, ale nějak se musí rozhodnout, o kolik se bude posouvat a kolikrát se bude přičítat.
Uživatelský avatar
procesor
Příspěvky: 5286
Registrován: 02 říj 2009, 00:00
Bydliště: PO

#12 Příspěvek od procesor »

Pre 15V by to malo šlapať s 50% moduláciou, pri 10V 100%. V podstate je to dvojnásobok. Samozrejme, tie takty sú iba na Shift a add. Testovalo by sa iba raz. Zabralo by to však viac pamäti.
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#13 Příspěvek od Andrea »

procesor píše:Pre 15V by to malo šlapať s 50% moduláciou, pri 10V 100%. V podstate je to dvojnásobok.

To máš teda divný počty.

procesor píše:Testovalo by sa iba raz.

Jedním testem dokážeš rozlišit 5 hodnot? To jseš dobrej.
Uživatelský avatar
procesor
Příspěvky: 5286
Registrován: 02 říj 2009, 00:00
Bydliště: PO

#14 Příspěvek od procesor »

1/ :roll: dobre.... od 7,5 do 15V ( to by sa už sa hodilo to 9 úrovňové)
tých 7,5V aby sa to dobre počítalo, mohlo by to byť aj 8...16V
2/ cez ijmp 2 takty.
+Niekoľko taktov na začiatku periódy sínusovky (vtedy by som nič nenásobil 0*(1...2)=0, ale spočítal adresu výpočtov pre IJMP s meraním batérie. AD by meral Vbat-7,5V. Do výpočtu adresy sa použijú iba 4 najvýznamnejšie bity.

A nakoniec... píše, že má na to 10µs a meranie a s tým súvisiace zabezpečenie musí robiť tak či tak nezávisle od spôsobu násobenia.
Naposledy upravil(a) procesor dne 18 říj 2011, 22:21, celkem upraveno 1 x.
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#15 Příspěvek od Andrea »

Proč od 7,5V? To už ta baterka bude mrtvá. A kde píše, že na to má 10us?
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“