PID regulace

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

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
peatre
Příspěvky: 39
Registrován: 26 lis 2007, 01:00
Bydliště: Malacky
Kontaktovat uživatele:

#16 Příspěvek od peatre »

Ja mam podobnym systemom riesenu regulaciu v sekundarnom okruhu vykurovania pre podlahovku. tiez sa teplota na vstupe meni a ja potrebujem dosiahnut stalu teplotu na vystupe. Riesil som to nasledovnym sposobom. Ak sa zelana teplota blizi nastavenej. cize napriklad
If Temp_out < temp_set Then rozdiel = temp_set - Temp_out
If Temp_out > temp_set Then rozdiel = Temp_out - temp_set

ako vstupne udaje mas:
temp_set = zelana teplota
Temp_out = realna teplota na vystupe

ako vystup dostanes:
rozdiel = povedzme 1,5,3,4... rozdiel od zelanej teploty.

Ryrinu pre odladanie staci napisat tak ze do smycky regulacie das
hybanie servom krat rozdiel
a potom pauza povedzme sekunda.

Ak bude rozdiel 4st tak program bude 4s hubat servom a potom sekunda pauza. ak bude rozdiel uz len 1st tak program bude sekundu hybat servom a potom sekunda pauza.
Jo a treba to napisat tak ze ak je povedzme rozdiel väčši nez 4st tak servom sa hýbe bez tej pauzy.

Beha to je to odskusane rokami. servo po zakureni zacne postupne zatvarat a ked je rozdil mensi nez 4 stupne zacne pekne zpomalovat...
_________________
Bezpečnost pri práci je dúležitejší než práca samotná...
Bezpečnost pri práci je dúležitejší než práca samotná...

Uživatelský avatar
silas15
Příspěvky: 90
Registrován: 09 úno 2013, 01:00

#17 Příspěvek od silas15 »

zrovna před chvilkou jsem jsem zatím na nečisto odskoušel novou verzi. mám to podobně, akorád. má delší časový úsek - 10 sekund čenání co se stane s teplotou. potom, pokud je rozdíl větší než 10°otáčej 10 sec, jinak 2 sec.

něco podobného co navrhuješ ty, mě taky napadlo a nevím proč jsem to nepoužil. zkusím dopsat i tvé řešení asi bude o něco přesnější než moje.
díky.

jinak, ty vidíš změnu teploty už po 1 sec? to je docela dost rychlý.

Uživatelský avatar
peatre
Příspěvky: 39
Registrován: 26 lis 2007, 01:00
Bydliště: Malacky
Kontaktovat uživatele:

#18 Příspěvek od peatre »

Jo cca po jednej sekunde, meranie prebieha ale cca 10x za sekundu takze tento udaj je priemer 10 merani. ako snimace vyuzivam DS18B20 ktore su napajane po komunikacnej linke. meranie prebieha v 9bit rezime. co je cca 90mS na vzorku. teplota na vystupe regulacie je velmi stabilna. Ak chces nieco o tom vediet viac tak ti mozem poslat nejake info mailom, alebo to bolo publikovane aj v AR c.3 r2013... Mne sa osvedcilo nastavenie ze pri rozdiely väčšom ako 4st ide servo stále bez zpomalenia a potom začne postupne predlzovat pauzy. kedze meriam teplotu s des ciarkou tak ako klesa teplova typicky 3.9, 3.8, 3.7... kde je udaj reprezentovany ako cislo 39, 38, 37 tak v setupe mam este nastavitelnu konstantu ktorou sa cele cislo vynasobi cize ked dam povedzme konstatu 100 tak ako udaj pre spomalenie dostanem 3900, 3800, 3700 co v milisenkundach uz je pekne pouzitelne na plynule zpomalenie regulacie.

Samozrejme hodnoty ber ako informativne, vsetko zalezi od toho ako rychlo sa ti menia teploty v systeme...
Bezpečnost pri práci je dúležitejší než práca samotná...

Uživatelský avatar
silas15
Příspěvky: 90
Registrován: 09 úno 2013, 01:00

#19 Příspěvek od silas15 »

já dnes vyzkoušel tu moji regulaci a docela to bylo použitelný neříkám, že úplně přesný ale drželo to teplotu +-1°C. Ale bylo to tak, že co 10 s 2 sec zásah. Stále to není stoprocentní. Co mě štvalo, že při nastavené t 40 tam zrovna v okamžiku měření skočilo 41 a ventil se pootočil, což znamenalo, že se rozhodil ještě víc. ale ustálit se dokzal zase na +-1 st. Tvoje řešení je asi to nejpochopitelnější, skoro jako PWM :-) a pokud budeš tak hodný, můj mail je má přezdívka @seznam.cz. diky.

Uživatelský avatar
slav3k
Příspěvky: 93
Registrován: 12 čer 2012, 02:00

#20 Příspěvek od slav3k »

Zdravím,

nevím, jeslti jsem měl založit zvláštní téma ? Nicméně stojím také před regulačním úkonem.
Hodlám navrhovat PSD regulátor teploty vody v nádrži, za pomocí topítka, jehož výkon je ovládán PWM.

1) Nejprve dotaz na samotné provedení ovládání výkonu topítka. Jedná se o klasické akvarijní topítko s termostatem. Předpokládám že u přeměny el energie na tepelnou neexistuje jiná varianta než pouštění proudů přes odporový drát, takže zde bude možné jednoduše plynule nastavovat výkon pomocí pulzního spínání SSD relé že? Ovšem v "silnoproudu" se tolik nevyznám, můžu při spínání síťového napětí zvolit frekvenci rovnou síťové frekvenci (50Hz) ? Nebo to z nějakého důodu není vhodné ?

2) Zbastlil jsem si AVR mikrokontroler s teplotním čidlem a seriovou linkou, kde hodlám měřené teploty posílat do PC. Hodlám změřit odezvu na jednotkový skok výkonu za účelem zjištění časových konstant a pokus o identifikaci regulované soustavy (předpokládám soustavu integračního charakteru 2 řádu, kterou jistě půjde aproximovat soustavou 1 řádu)

3) Nastavení parametrů P S D. Hádám že metoda Ziegler–Nichols zde není možná, nebo potom můžu nasimulovat soustavu v matlabu a zjistit Tkrit a Kkrit a mám vymalováno ?

děkuji za rady a postřehy
zdraví

Slávek

Uživatelský avatar
silas15
Příspěvky: 90
Registrován: 09 úno 2013, 01:00

#21 Příspěvek od silas15 »

Ahoj,
s první otázkou bych ti pomohl. Nedovedu si představit, jak bys mohl zkombinovat střídavé napětí a PWM. Podle mě bys nemohl vůbec ovládat výkon pokud, pokud by jsi nesnímal průběh fázové sinusovky a podle toho spínal. Teď jen moje úvaha, místo relé použít triak a napětím přivedeným na řídící elektrodu řídit otevření. Pokud bys spínal relé přes PWM, mohl bys sepnout v případě 50 Hz v nějakém čase kdy je sinusovka na napětí 10 V nebo 250 V. V jiných frekvencích PWM by vůbec začal být zmatek a efektivní hodnotu napětí tzn. jak moc se bude topit bys získal docela těžko.

K dalším otázkám. Ehm, tomu zase nerozumím já a pokud k tomu máš nějakou lit, byl bych vděčen za nějaký odkaz. Já můžu dodat svůj na
http://www.embedded.com/design/embedded ... hout-a-PhD

Uživatelský avatar
peatre
Příspěvky: 39
Registrován: 26 lis 2007, 01:00
Bydliště: Malacky
Kontaktovat uživatele:

#22 Příspěvek od peatre »

Odpoved pro: slav3k.

Takze pokial potrebujes regulovat vykon odporovej akvarijnej trubice tak je moznosti viacej. Pokial ma trubica dostatočne velku tepelnu zotrvačnosť (povedzme že než za rozohreje naplno to trva 20s) tak na plynylu regulaciu ti bude stacit triak v spojeni s napriklad MOC3031m čo je optoizolacny driver pre triak so spinanim v nule. A na vstup tohto drivera privedieš z CPU povedzme riadace impulzy o frekvencii 1-2HZ a ich striedou budes plynule menit vykon trubice. Co pri danej zotrvacnosti bude myslim uplne dostacujuce. A hlavne toto riešenie ti bude produkovas najmenšie rušenie.

Druha možnost je pouzit regulaciu ktora sa pouziva v stmievacoch pre ziarovky, kedze zaťaz je odporova nemal by to byt problem, v tom pripade by si musel snimať prechody nulov na sinusovke a pri kazdej polvlne otvorit triak bud na zaciatku alebo na konci polvlny. typ padom bude triak otvoreny vždy len taky cas aky vykon budeš potrebovať. toto som riešil mam na to aj program tak mozem poskytnut ak by si potreboval.
Ale samozrejme rušenie takejto regulacie je citelne...

Tretia moznost je uspernit napajani pro trubicu a spinat to nejakym IGBT alebo nejakým power MOSFETom a spinať to PWMkom.

Ale myslím ze dana trubica nemá tak malu zotrvacnost aby sa to muselo regulovat neja zlozito. Ja by som volil prvu variantu...
Bezpečnost pri práci je dúležitejší než práca samotná...

Uživatelský avatar
slav3k
Příspěvky: 93
Registrován: 12 čer 2012, 02:00

#23 Příspěvek od slav3k »

Díky za rady, ta první možnost vypadá dobře ... kdybych se rozhodl že to chci přeci jen s větší frekvencí než 1-2 Hz, je to možné ?

díky

Uživatelský avatar
peatre
Příspěvky: 39
Registrován: 26 lis 2007, 01:00
Bydliště: Malacky
Kontaktovat uživatele:

#24 Příspěvek od peatre »

joo verzia 1 je možna aj s vyššou frekvenciou. pri 50HZ v sieti je tych pulperiod kedy moze byt triak zopnuty 100. Cize teoreticky by to malo chodit na 100Hz ale jelikoz to spinani nulou zopne vždy len pri prechode nulou tak by som nad 50HZ moc nesiel. Radšej tak max 10Hz. No pokial si dobre pamatam tie vyhrievacie spirale nemaju moc rychlu odozvu na zmenu tak si myslim že aj tie dva budu vpohode. Jo ono teoreticky ta frekvecia može byť vyššia ale spinanie v 0 si to aj tak urobi po svojom a potom by sa mohlo stavat že by to spinalo nahodne...

Jo a keby ti to nevyhovovalo tak staci len vymenit ten MOC za MOC3010 alebo 3020 ktore nemaju spinanie v nule a zmenou programu to mozes spinat plynulo, teda by si musel dorobit obvodik na snimanie prechodu 0, čo nieje problem...
Bezpečnost pri práci je dúležitejší než práca samotná...

Uživatelský avatar
slav3k
Příspěvky: 93
Registrován: 12 čer 2012, 02:00

#25 Příspěvek od slav3k »

dik za info,
zkusim to trochu nastudovat :) Zdá se mi že těch 10 Hz by měla být taková jistotka, zkusim si sehnat vzorky a zbastlim si prototyp a zkusim se na to mrknout na osciloskopu co z toho poleze ... Bohužel ten obvod nemužu najít v kamenných prodejnách (GM, GES, ...) pouze na farnellu jsem našel. Jsem z Brna, takže GES, GM by pro mě bylo ideální

Uživatelský avatar
peatre
Příspěvky: 39
Registrován: 26 lis 2007, 01:00
Bydliště: Malacky
Kontaktovat uživatele:

#26 Příspěvek od peatre »

Noo maju v GM parametrovo podobne, ktore mozes bez problemov pouzit na budenie triaku a maju spinanie v nule.

http://www.gme.sk/moc3041-p523-095
http://www.gme.sk/moc3061-p523-143
http://www.gme.sk/moc3062-p523-034
http://www.gme.sk/moc3083-p523-127

Toto nieje reklama, je kopec inych lepšich obchodov xixi :)
Bezpečnost pri práci je dúležitejší než práca samotná...

Odpovědět

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