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
Didn't find your answer? Ask the community — no account required.
F
Flemming Frandsen
Det er også mange år siden jeg gik i skole, men så er det jo godt vi har det her inderweb:
formatting link
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).
K
Kasper
Hej
Tak, Tror sku jeg fattede største delen af det du skrev :)
M
Mikkel Lund
Kasper skrev:
Hvad skal du regulere? Hvad er kravene?
Hilsen Mikkel Lund
"Sund fornuft, har aldrig stoppet en tosse"
Jokeren i "Mænds ruin"
K
Kasper
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
M
Mikkel Lund
Kasper skrev:
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"
Jokeren i "Mænds ruin"
K
Kasper
Posistions regulere en hydralisk arm.
Og hvilke krav er der til
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
Den skal køre til en bestemt possition,
Kasper
K
Kasper
Punkt 1.1, skal den aldrig resetes ? når man når punktet ?
Kasper
M
Mikkel Lund
Kasper skrev:
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"
Jokeren i "Mænds ruin"
K
Kasper
Så sig frem :)
Jeg skal bare have et system der aldrig pendler, som står stille når det har ramt possitionen Kasper
K
Klaus D. Mikkelsen
Kasper skriver:
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:
http://home6.inet.tele.dk/moppe
K
Kasper
Det er vel sandt ja.
Kasper
M
Mikkel Lund
Kasper skrev:
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"
Jokeren i "Mænds ruin"
F
Flemming Frandsen
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.
K
Kasper
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
F
Flemming Frandsen
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.
K
Kasper
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
M
Mikkel Lund
Kasper skrev:
Der må du lave et hack. Hvis outputtet er positivt plus en, hvis negativ minus en eller nul intet.
Det er det der hedder overshoot, dvs for stort I-gain.
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"
Jokeren i "Mænds ruin"
F
Flemming Frandsen
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:
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.
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.
F
Flemming Frandsen
"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.
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required
Report Content
You are reporting this content to the moderators. They will look at it
ASAP.