PID-reglering med uc

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
björn
EF Sponsor
Inlägg: 2570
Blev medlem: 29 mars 2004, 23:09:55

PID-reglering med uc

Inlägg av björn »

Är det någon som har gjort PID-reglering med uc? Kollade runt lite på nätet och hittade http://www.embedded.com/2000/0010/0010feat3.htm.
Användarvisningsbild
EagleSpirit
Inlägg: 1288
Blev medlem: 27 maj 2003, 23:15:48
Ort: Västerås
Kontakt:

Inlägg av EagleSpirit »

Vad ska du använda den till? Vad har du för ingångsvärden och vad ska du få ut?

Lite att läsa: http://www.microchip.com/stellent/idcpl ... lterID=521

Har för mig att jag hittade en massa information om det när jag lärde mig förut. Kommer dock inte ihåg vad jag sökte på.
Användarvisningsbild
björn
EF Sponsor
Inlägg: 2570
Blev medlem: 29 mars 2004, 23:09:55

Inlägg av björn »

Nej, jag skall inte använda det just nu. Tänkte mest kolla upp lite om hur svårt det är att göra.
Så det är bara lite "allmän info" jag e ute efter.

Tack för länkaen.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Jätte svårt att svara på utan ett konkret "fall".
Det beror så mycket på t.ex hur "snabb" loppen behöver vara och med vilken noggranhet den skall köras. I många fall behövs inte heller alla tre (P, I och D) komponenterna.

Det är väll inte det allra enklaste, men inte heller något omöjligt...
Användarvisningsbild
MicaelKarlsson
Inlägg: 4669
Blev medlem: 18 juni 2004, 09:16:07
Ort: Aneby
Kontakt:

Inlägg av MicaelKarlsson »

Låter intressant, har inte implementerat PID i uC mest för att jag inte behövt det, eller inte lyckats komma på ett projekt som jag kan klämma in lite PID-reglering.

Om du vill ha mer inspiration/information så ta en titt på :http://www.avrfreaks.com oc sök i forumen efter PID så får du en mängd träffar.

Glöm inte att berätta vad det är på gång :)
Lycka till!
macgyver
Inlägg: 321
Blev medlem: 8 juni 2005, 00:24:09
Ort: Göteborg
Kontakt:

Inlägg av macgyver »

I det enklaste fallet med PID kan man t.ex använda denna formeln:
ut(t) = Pk*e(t) + Ik*sum(e(t)) + Dk(e(t)-e(t-1))

där e(t) är reglerfelet i nuvarande tidpunkt t d.v.s utsignalen(t) - insignalen(t)
Pk = Proportionella konstanten
Ik = Integreringskonstanten
Dk = Deriveringskonstanten

sum(et(t)) ger summan av alla tidigare insignaler d.v.s integralen

Hur man ska ställa in dessa konstanter och hur hur snabbt man ska sampla insignalen beror helt på vilket system man vill reglera
Ett sätt att få ett humm om konstantvärdena är att använda ziegler nichols metod:
http://www.chem.mtu.edu/~tbco/cm416/zn.html
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Vilket sammanträffande! Jag håller på att implementera PID i en AVR i skrivande stund! Inte för att hela systemet fungerar just nu, men det är bara en kalibreringsfråga, själva regulatorn verkar fungerar kalasbra.
Användarvisningsbild
björn
EF Sponsor
Inlägg: 2570
Blev medlem: 29 mars 2004, 23:09:55

Inlägg av björn »

Ja ziegler nichols känner jag ju sen reglertekniken :).

$tiff : vad är det du skall reglera med "pid-avren"?
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Den här. Fast med AVR och C istället (det där var ett tag sedan jag försökte sist).
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Jag har faktisk just gjort en PI-reg i C men jag har inte hunnit testa den då hårdvaran är under tillverkning så jag antar att den fungerar alldeles strålande såklart ;-)
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

I de PID-trådar som jag har följt i andra forum, verkar en vanlig missuppfattning vara att man *måste* köra floating point. Med lite analys av det faktiska fallet, så duger offta fixed point (vilket är mycket snabbare samt enklare att implementera i assembler) eller ibland t.o.m enkla "table lookups" för vissa värden...
Lajo
Inlägg: 20
Blev medlem: 28 juli 2005, 19:43:53
Ort: Gbg

Inlägg av Lajo »

Detta kankse kan hjälpa dig lite på traven. Iosf för PICar men dock

PID-reg
Användarvisningsbild
Henrik
Inlägg: 661
Blev medlem: 26 maj 2003, 23:39:14
Ort: Göteborg
Kontakt:

Inlägg av Henrik »

Om det går att matematiskt beskriva det som ska regleras, kan du göra massa roliga grejer. Till exempel simulera hela systemet med olika sorters regulatorer och dödtider. Matlab och simulink använde vi i skolan för just sånt, för att sedan implementera PID i en pic och jämföra mot verkligheten. Vi styrde pumpen till en vattentank, vilket kanske inte var det mest sexuella men ganska intressant var det ändå.
Användarvisningsbild
björn
EF Sponsor
Inlägg: 2570
Blev medlem: 29 mars 2004, 23:09:55

Inlägg av björn »

Ja, vi använde också matlab för simuleringar. Dock gjorde jag aldrig pumpstyrningen som var en av alternativen av våra labbar.

Orsaken i till tråden var mest att kolla hur svårt det var att implementera det på en uc.

Vill tacka alla för alla länkar och ideer, Tack.

I mitt nästa projekt kommer nog PI(D) regleringa att testas.

EDIT: skönt att höra att det kan implementeras utan floating point.
Användarvisningsbild
MicaelKarlsson
Inlägg: 4669
Blev medlem: 18 juni 2004, 09:16:07
Ort: Aneby
Kontakt:

Inlägg av MicaelKarlsson »

Henrik skrev: vilket kanske inte var det mest sexuella men ganska intressant var det ändå.
Nu fattar jag ingenting :shock: förklaring uppskattas.


Simulink är bra men lite långsamt i mitt tycke, kör simuleringen i Matlab och presentera det visuellt efteråt istället.
Skriv svar