PID Regulator

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Danish to

Threaded View
Hej

Jeg tror jeg skal til at lave sådan noget, og jeg har sku ikke meget
forstand på det endnu..

Det skal puttes i en uC.... Jeg har de basic principper på plads og kan
finde lidt source kode...

Nogle der har nogle fif etc. PT er jeg modtagelig over for alt...

Problemet ligger også lidt i jeg ikke er så hardcore til det integral
regning :(

Kasper



Re: PID Regulator
Quoted text here. Click to load it

Det er også mange år siden jeg gik i skole, men så er det jo godt vi har
   det her inderweb:

http://www.google.com/search?q=pid+algorithm


Lad os sige du skal til at regulere i din kode, noget som du gør 1 gang
i sekundet, gør noget i stil med at beregne:

0.0) Set-punktet, s: Den værdi du gerne vil ramme.
0.1)   Feedback,  f: Den værdi du lige har målt.

1.0) Fejlen, e = f-s
1.1) Summen af fejlen over tid, ei += e
1.2) Ændingen i fejl siden sidste gang, ed = e-eo

2) P = Kp * e
    Kp kunne f.eks. være 0.1, så med en fejl på 10 giver det en
    regulering af outputet på 1

3) I = Ki * ei
    Ki er typisk meget, meget lille, noget i stil med 0.0001

4) D = Kd * eo

5) Output o += P + I + D

6) Husk e som eo til næste iteration.


PID står for proportional, Integral, Differential.

P delen betyder bare at justeringen er lig en eller anden del af fejlen,
så hvis der er en stor fejl så skal der reguleres meget for at komme
nærmere setpunktet.

I delen er til for at give fejlen det sidste lille nøk så feedback
rammer setpunktet, det er nødvendigt fordi P bliver meget tæt på nul og
dermed kunne man jo risikere at man slet ikke rammer.

D delen er til for at man kan reagere hurtigt på ændringer.

Tricket består i at fedte med Kp, Ki og Kd ind til skidtet virker (i den
rækkefølge).

Re: PID Regulator

Quoted text here. Click to load it

Hej

Tak, Tror sku jeg fattede største delen af det du skrev :)




Re: PID Regulator

Quoted text here. Click to load it

Punkt 1.1, skal den aldrig resetes ? når man når punktet ?

Kasper



Re: PID Regulator
Quoted text here. Click to load it

Nej, ikke så vidt jeg husker, men jeg kan ikke lige se noget galt i at
gøre det.

Ki er meget, meget lille og der er relativt få loops til at akkumulere
fejl på inden man rammer setpunktet, så I betyder ikke ret meget.

Re: PID Regulator

Quoted text here. Click to load it

Hej

Yderligere spørgsmål:

Hvordan håndtere man dødbånd ?

Hvis der er et område omkring 0 action punktet der heller ikke sker noget,
så den kommer pænt på plads ?

Kasper



Re: PID Regulator
Quoted text here. Click to load it

Det gør man måske slet ikke...

PID skulle jo netop bruges til at ramme nøjagtigt det man gerne vil,
uden nogen bang-bang regulering eller hysterese.

Med mindre det er for at spare el så pumpen bliver stoppet helt når du
har ramt så er det ikke noget jeg ville tænke videre over.

Re: PID Regulator

Quoted text here. Click to load it

Hej..

Det er nu mere det dødbånd der er på den ventil jeg regulere på, der er ca
1V på hver side af no action punktet hvor den ikke åbner ?
men måsje bare PID parameterne styrer det ?

Jeg har et andet problem med I værdien jeg regner ud...

Når jeg vil kører den ene vej, så kører den faktisk for langt pga af den, da
jo bliver meget høj når der er en stor fejl, og når fejlen bliver mindre er
den meget længere tid om at blive lille, og dermed udligner den P værdien så
den stopper et forkert sted ??

Kasper



Re: PID Regulator
Kasper skrev:
Quoted text here. Click to load it

Der må du lave et hack. Hvis outputtet er positivt plus en, hvis negativ
minus en eller nul intet.

Quoted text here. Click to load it

Det er det der hedder overshoot, dvs for stort I-gain.
Quoted text here. Click to load it

Har du lavet en fejl. Du skal gange p med fejlen og så integrere den.
Husk p mindst 10 gang størrer end i-gain.


--
Hilsen Mikkel Lund
"Sund fornuft, har aldrig stoppet en tosse"
We've slightly trimmed the long signature. Click to see the full one.
Re: PID Regulator
Quoted text here. Click to load it

"Den" er her fejlen over tid.

Du kan selvfølgelig også integrere P, det eneste der sker ved det er at
Ki skal være Kp større end hvis det er fejlen der bliver integreret.

Re: PID Regulator
Quoted text here. Click to load it

Aaah, right, det er vel bare et spørgsmål om at eliminere den døde zone
i ventilen så den makker ret, noget i stil med:

outputVold = output > 0 ? output + deadbandPos : output - deadbandNeg;

output er den værdi du gerne vil have ventilen styret efter.
outputVold er den værdi som ventilen får.

deadbandPos og deadbandNeg skal så kalibreres så du undgår crossover
forvrængning i ventilen.



Quoted text here. Click to load it

Du husker på at Ki skal være meget, meget mindre end Kp, ikke?

En anden ting at huske på er at det ikke er et normalt problem at fejlen
starter med at være meget stor, så I når ikke at blive stor før fejlen
er forsvundet.

Re: PID Regulator
Kasper skrev:
Quoted text here. Click to load it

Hvad skal du regulere? Hvad er kravene?

--
Hilsen Mikkel Lund
"Sund fornuft, har aldrig stoppet en tosse"
We've slightly trimmed the long signature. Click to see the full one.
Re: PID Regulator

Quoted text here. Click to load it

I første omgang er det en Danfoss ventil med 6-18V input der styrer noget
hydralik, hvor der sidder et potmeter til FB.

Men regulatoren skal gerne kunne fungere lidt generalt til flere typer
signaler, men til ca samme applikationer...

Så det er noget med en sampletid hurtigere en 100ms

Kasper



Re: PID Regulator
Kasper skrev:
Quoted text here. Click to load it

Det var ikke helt det jeg fiskede efter. For at bestemme hvilken
regulator af PID typen der skal til, skal skal man have viden om
systemet der skal reguleres. Man kan ikke bare sætte en hvilken som
helst regulator på, systemet kan gå hen og blive ustabil.

Skal du positions eller hastigheds regulere?  Og hvilke krav er der til
det? Hvilke sensorer har systemet?
Hvis der ikke er nogen særlige krav ("den skal bare kører op og ned")
hvad skal du så bruge en regulator til?

--
Hilsen Mikkel Lund
"Sund fornuft, har aldrig stoppet en tosse"
We've slightly trimmed the long signature. Click to see the full one.
Re: PID Regulator

Quoted text here. Click to load it
Posistions regulere en hydralisk arm.

 Og hvilke krav er der til
Quoted text here. Click to load it
Den må abselut ikke hunte, og gerne være rimelig hurtig på plads.


 Hvilke sensorer har systemet?
Som regel potmeter fb, i form af et stang potmeter der følger den hydraliske
arn


Quoted text here. Click to load it
Den skal køre til en bestemt possition,


Quoted text here. Click to load it

Kasper



Re: PID Regulator
Kasper skrev:
Quoted text here. Click to load it


Hmm, det er ikke så videnskabeligt...
Byg en PI regulator den har ikke steady state fejl, så hydraulikken vil
ramme det du sigter efter. Tilføj så D hvis det skal gå hurigere og med
mindre overshot.
Jeg gad nok ikke lave en regulator hvis det bare skulle gå rimeligt
hurtigt :-)

--
Hilsen Mikkel Lund
"Sund fornuft, har aldrig stoppet en tosse"
We've slightly trimmed the long signature. Click to see the full one.
Re: PID Regulator

Quoted text here. Click to load it

Så sig frem :)

Jeg skal bare have et system der aldrig pendler, som står stille når det har
ramt possitionen
Kasper



Re: PID Regulator
Quoted text here. Click to load it

Det skal vel modvirke drift i hydreulikken ?

Jeg har været med til at regulere på "mellemstore" hydrulikstempler (med
200 bars tryk), de kunne godt finde på at drive lidt, under belastning.

Klaus
--
  Modelbane Europas hjemmeside: http://www.modelbaneeuropa.hadsten.dk
  Modeltog, internet, gratis spambekæmpelse, elektronik og andet:
We've slightly trimmed the long signature. Click to see the full one.
Re: PID Regulator

Quoted text here. Click to load it

Det er vel sandt ja.

Kasper



Re: PID Regulator
Kasper skrev:

Quoted text here. Click to load it

Nå så der var krav alligevel :-)
Så ville jeg bruge PI, der er over dæmpet. Husk P ledet ti gange større
end I ledet.

--
Hilsen Mikkel Lund
"Sund fornuft, har aldrig stoppet en tosse"
We've slightly trimmed the long signature. Click to see the full one.

Site Timeline