PID REGULATOR MED PIC
PID REGULATOR MED PIC
Går det att bygga en pid regulator med en pic krets. Hur går man till väga att göra detta i sådana fall. Är det bara att börja att programmera eller hur gör man. Finns det några enkla regulator block som man kan programmera. Finns det någon bra ställe att börja att läsa angående detta.
jodå det går utmärkt och är tämligen enkelt. Det svåra är att ställa in P,I resp D korrekt.
Lite länkar:
http://www.google.se/search?hl=sv&q=sit ... +pic&meta=
Edit: Allt är enkelt om man gjort det ett par ggr
Lite länkar:
http://www.google.se/search?hl=sv&q=sit ... +pic&meta=
Edit: Allt är enkelt om man gjort det ett par ggr

Senast redigerad av Henrik 2 februari 2006, 23:33:26, redigerad totalt 1 gång.
Markus: Vilket språk skall du använda? assembler, basic eller C?
Eftersom du är relativt ny på microcontrollers så är nog PID-regulering kanske inget du skall börja med. Berorende på språk du tänker använda kan det vara mer eller mindre komplicerat att göra.
Jag rekommenderar dig att i första hand bekanta dig med den microcontroller du har skaffat genom enklare övningar. Blinka led, läsa ingångar, timers o.s.v. När du har en större överblick hur en microcontroller fungerar och det språk du tänker använda kan du börja kasta dig över PID-projekt och liknande.
Eftersom du är relativt ny på microcontrollers så är nog PID-regulering kanske inget du skall börja med. Berorende på språk du tänker använda kan det vara mer eller mindre komplicerat att göra.
Jag rekommenderar dig att i första hand bekanta dig med den microcontroller du har skaffat genom enklare övningar. Blinka led, läsa ingångar, timers o.s.v. När du har en större överblick hur en microcontroller fungerar och det språk du tänker använda kan du börja kasta dig över PID-projekt och liknande.
PID regulatorer är ett mycket tungt (enl. lilla mig iaf) matematiskt område. Har du inte läst reglerteknik/linjära system så kommer du inte att kunna ta fram vettiga PID parametrar. Det är tyvärr inget man lär sig på en dags googlande :/. Har du å andra sidan koll på reglerbiten och diskret signalbehandlig är det relativt enkelt att implementera i en uC, då skulle du komma på det själv misstänker jag 
Här har du några hints hur det kan implementeras
http://www.csee.ltu.se/userfiles/kursda ... approx.pdf
En mer brussäker (map. beräkningsbrus) metod för implementering med endast integratorblock. Detta är bättre då deriveringar förstärker brus.
http://www.csee.ltu.se/userfiles/kursda ... cture9.pdf

Här har du några hints hur det kan implementeras
http://www.csee.ltu.se/userfiles/kursda ... approx.pdf
En mer brussäker (map. beräkningsbrus) metod för implementering med endast integratorblock. Detta är bättre då deriveringar förstärker brus.
http://www.csee.ltu.se/userfiles/kursda ... cture9.pdf
pagge: jag har aldrig läst reglerteknik eller sånt och jag har programmerat en PID-styrning av en "besvärlig" enhet och det har till råga på allt visat sig att fungera alldeles utmärkt. Men visst har det varit en del fibblande med att trimma in parametrarna.
Det är den första PID-styrning jag har använd till råga på allt.
Men sant är det att det vill vara vettigt att först lära sig lite om µC och när man står torrskodd i det ämne kan man leka med de tyngre delarna...
Det är den första PID-styrning jag har använd till råga på allt.
Men sant är det att det vill vara vettigt att först lära sig lite om µC och när man står torrskodd i det ämne kan man leka med de tyngre delarna...
- EagleSpirit
- Inlägg: 1288
- Blev medlem: 27 maj 2003, 23:15:48
- Ort: Västerås
- Kontakt:
Jag har för mig att det finns en app note på microchips hemsida om PID-reglering i en PIC.
Men ett tips till dig marcus är att göra som de föregående talare säger, lär dig programmering och PIC först. Det finns lite att tänka på när man gör en PID-reglering. Själv har jag försökt lära mig ganska länge nu och jag förstår fortfarande inte riktigt hur man ska jobba med alla parametrar.
Men ett tips till dig marcus är att göra som de föregående talare säger, lär dig programmering och PIC först. Det finns lite att tänka på när man gör en PID-reglering. Själv har jag försökt lära mig ganska länge nu och jag förstår fortfarande inte riktigt hur man ska jobba med alla parametrar.
går det inte ens att fråga
Jag är bara intresserad och se om man kan applicera tidigare kunskaper inom reglerteknik som man läste på universiteteti en pic processor. Det går tydligen.
länken som paggen http://www.csee.ltu.se/userfiles/kursda ... approx.pdf
värkade vara rätt bra.följer man denna så borde det mynna ut i en färdig regulator block.
Det är bara roligt att lära sig hur man gör.
Finns det annars färdiga pid regulator att köpa annars Vart får man tag i dessa i sådana fall. Har aldrig jobbat med pid bara läst en jävla massa reglerteknik. Skulle bara vara roligt att få lite erfarenhet.
Så nu ska jag börja att läsa dessa sidor med figurer till.
Detta gör jag bara för att kunna svara på en fråga som en kompis oxh jag diskuterade i går.
Vi ska nämerligen bygga ett framtida byggprojekt en ubåt som det sitter en kamra inbygg i .Denna ska vi kunna fjärrstyra sedan med en fjärrkontroll.
Lägena ska vara upp,ner,vänster,höger. tre dimensioner alltså.
x,y,z.
Tänkte bara kolla upp en del innan jag kan ge honom ett vetigt svar om det går och hur svårt det är att göra.
Vi tänkte ha en lufttank som vi reglerar med hjälp av en syrgas tuv fastmonterad på ubåten. Fill/från luft reglerning. Vet ni om några bra luftventiler man kan andvända så det blir en jämn reglerning. Som man kunde andvända regulatorn pid att styra. Ska på något sätt inte öppnas till eller från lägen utan finskjusterar med hjälp av pid regulatorn. Som styr ett spjäll på något vis.
länken som paggen http://www.csee.ltu.se/userfiles/kursda ... approx.pdf
värkade vara rätt bra.följer man denna så borde det mynna ut i en färdig regulator block.
Det är bara roligt att lära sig hur man gör.
Finns det annars färdiga pid regulator att köpa annars Vart får man tag i dessa i sådana fall. Har aldrig jobbat med pid bara läst en jävla massa reglerteknik. Skulle bara vara roligt att få lite erfarenhet.
Så nu ska jag börja att läsa dessa sidor med figurer till.
Detta gör jag bara för att kunna svara på en fråga som en kompis oxh jag diskuterade i går.
Vi ska nämerligen bygga ett framtida byggprojekt en ubåt som det sitter en kamra inbygg i .Denna ska vi kunna fjärrstyra sedan med en fjärrkontroll.
Lägena ska vara upp,ner,vänster,höger. tre dimensioner alltså.
x,y,z.
Tänkte bara kolla upp en del innan jag kan ge honom ett vetigt svar om det går och hur svårt det är att göra.
Vi tänkte ha en lufttank som vi reglerar med hjälp av en syrgas tuv fastmonterad på ubåten. Fill/från luft reglerning. Vet ni om några bra luftventiler man kan andvända så det blir en jämn reglerning. Som man kunde andvända regulatorn pid att styra. Ska på något sätt inte öppnas till eller från lägen utan finskjusterar med hjälp av pid regulatorn. Som styr ett spjäll på något vis.
Jag väll bara lägga till att begreppet "PID" ibland används lite slarvigt
för reglering i allmänhet. En av de första frågorna man ska ställa sig är,
behöver jag "PID" alls ? Kanske att "PI" eller "PD" eller eventuellt en ren
"P" regulator fungerar helt OK i det aktuella fallet. Dessa blir betydligt
enklare att implementera och "trimma"...
Sen är det ju även väldigt beroende på vad som skall regleras.
Dykfunktionen på en modellubåt är ett (i detta samanhang) *väldigt*
långsamt system.
> Vi ska nämerligen bygga ett framtida byggprojekt en ubåt...
En sådan här skulle kunna hjälpa till att hålla den "på rätt köl" :
http://www.tradera.com/auction/aid_23684793
(Den sista jag har kvar, för övrigt...
)
för reglering i allmänhet. En av de första frågorna man ska ställa sig är,
behöver jag "PID" alls ? Kanske att "PI" eller "PD" eller eventuellt en ren
"P" regulator fungerar helt OK i det aktuella fallet. Dessa blir betydligt
enklare att implementera och "trimma"...
Sen är det ju även väldigt beroende på vad som skall regleras.
Dykfunktionen på en modellubåt är ett (i detta samanhang) *väldigt*
långsamt system.
> Vi ska nämerligen bygga ett framtida byggprojekt en ubåt...
En sådan här skulle kunna hjälpa till att hålla den "på rätt köl" :
http://www.tradera.com/auction/aid_23684793
(Den sista jag har kvar, för övrigt...

Använd inte lufttankar på en modellubåt, det är att krångla till det i onödan utan att få en enda fördel däremot ger det gott om nackdelar. Kör istället med två cylindrar (typ två jättesprutor), en i fram och en i bak som kan suga in eller trycka ut vatten.
En PID skrivs på några få rader i C, inga problem.
En PID skrivs på några få rader i C, inga problem.
Icecap: Heder åt dig, själv tycker jag det är grisbökit fast jag läst nån kurs om det :)
Markus: I ditt fall räcker nog P reglering bra eftersom ubåtens massa antagligen gör den mycket långsammare än alla andra saker i reglerloopen och du på det sättet får en dominant pol automatiskt.
P regulator gör enkelt genom att läsa från AD omvandlaren, dra bort detta från börvärdet, multiplicera med en konstant, och skicka ut på DA omvandlaren (eller PWM utgången eller vad som nu används som DA på din prolle).
Ut = K * (In - börvärde)
Du får pröva dig fram till lämpligt K värde, eftersom det bara är en enda parameter funkar trial and error ganska bra :)
Har du läst (och förstått :) massa reglerteknik instämmer jag med alla andra att det är bit av kaka. Programmeringen i microkontrollern är den enkla biten om du bara har programmerat nån liten rad C tidigare (Jag undviker ASM så långt det bara är möjligt själv). Jag vet inte hur dina microkontroller skillz är. Har du just börjat skulle jag rekomendera följande steg.
1) Få igång en blinkande lysdiod så att du vet att utvecklingsmiljön och uCn funkar
2) Få igång ADn (som du kommer att koppla din givare till sen) och läs in lite testvärden
3) Få ut en analog utsignal på nån pinne. Då DA brukar inte finnas på uC av nån anledning kan PWM utgången vara ett hyffsat substitut. Se till att du kan få ut en analog styrsignal iaf.
4) Koppla ihop och börja labba fram lämpliga reglerparametrar (antagligen duger P regulator)
Det kan även vara bra att få igång UARTen och koppla den till en PC COM port så att du kan få ut debugutskrifter på ett praktiskt sätt. Tycker jag underlättar en hel del.
Markus: I ditt fall räcker nog P reglering bra eftersom ubåtens massa antagligen gör den mycket långsammare än alla andra saker i reglerloopen och du på det sättet får en dominant pol automatiskt.
P regulator gör enkelt genom att läsa från AD omvandlaren, dra bort detta från börvärdet, multiplicera med en konstant, och skicka ut på DA omvandlaren (eller PWM utgången eller vad som nu används som DA på din prolle).
Ut = K * (In - börvärde)
Du får pröva dig fram till lämpligt K värde, eftersom det bara är en enda parameter funkar trial and error ganska bra :)
Har du läst (och förstått :) massa reglerteknik instämmer jag med alla andra att det är bit av kaka. Programmeringen i microkontrollern är den enkla biten om du bara har programmerat nån liten rad C tidigare (Jag undviker ASM så långt det bara är möjligt själv). Jag vet inte hur dina microkontroller skillz är. Har du just börjat skulle jag rekomendera följande steg.
1) Få igång en blinkande lysdiod så att du vet att utvecklingsmiljön och uCn funkar
2) Få igång ADn (som du kommer att koppla din givare till sen) och läs in lite testvärden
3) Få ut en analog utsignal på nån pinne. Då DA brukar inte finnas på uC av nån anledning kan PWM utgången vara ett hyffsat substitut. Se till att du kan få ut en analog styrsignal iaf.
4) Koppla ihop och börja labba fram lämpliga reglerparametrar (antagligen duger P regulator)
Det kan även vara bra att få igång UARTen och koppla den till en PC COM port så att du kan få ut debugutskrifter på ett praktiskt sätt. Tycker jag underlättar en hel del.
ok, vet inte hur mycket reglerteknik ni kan men jag kan bara
Undrar en del frågor angående framtida projektet ubåt 3000.
Mina frågor kommer nedan.
Min första fråga lyder.
G(s) själva systemet överförningfunktion hur får jag fram den. Man har ju ingen aning vad den är. Jag kommer ju andvända luftventiler och liknande som styrande organ för att reglera luft volym där med höjden på ubåten.
andra frågan:
Finns det några luftventiler som man kan styra med olika spänningar som öpnnar och stänger luftflödet olika mycket?
tredje frågan:
Finns det några färdiga pid regulatorer att köpa som man kan bara utnytja i min koppling.
fjärde fråga:
Vart började ni läsa angående regulatorer. Jag har läst angående regulatorn men det jag menar hur började ni lära er att programmera en. Finns det någon bra bok hur man programmerar pid regulator med hjälp av pic.?
Fick en del adresser ovan som jag ska gå i genom och sedan får jag se hur mycket man förstår?
femte frågan?
Vilket programspråk ska jag andvända tycker ni. Fundera på Basic eller pascal. Bara för att vara riktig klassiker. Sedan ska editorn gärna vara mer simuleringmöjligheter än vad MPLAB kan erbjuda. Skulle gärna kunna kolla momentanvärden på signaler och se när bör och air värde blir lika. och e(s) försvinner .
Mina frågor kommer nedan.
Min första fråga lyder.
G(s) själva systemet överförningfunktion hur får jag fram den. Man har ju ingen aning vad den är. Jag kommer ju andvända luftventiler och liknande som styrande organ för att reglera luft volym där med höjden på ubåten.
andra frågan:
Finns det några luftventiler som man kan styra med olika spänningar som öpnnar och stänger luftflödet olika mycket?
tredje frågan:
Finns det några färdiga pid regulatorer att köpa som man kan bara utnytja i min koppling.
fjärde fråga:
Vart började ni läsa angående regulatorer. Jag har läst angående regulatorn men det jag menar hur började ni lära er att programmera en. Finns det någon bra bok hur man programmerar pid regulator med hjälp av pic.?
Fick en del adresser ovan som jag ska gå i genom och sedan får jag se hur mycket man förstår?
femte frågan?
Vilket programspråk ska jag andvända tycker ni. Fundera på Basic eller pascal. Bara för att vara riktig klassiker. Sedan ska editorn gärna vara mer simuleringmöjligheter än vad MPLAB kan erbjuda. Skulle gärna kunna kolla momentanvärden på signaler och se när bör och air värde blir lika. och e(s) försvinner .
Återigen, varför använda tryckluft?
Inga fördelar, massor av nackdelar.
Den är komprimerbar vilket ställer till det när vattenventilerna till dyktankarna öppnas på ett annat djup än när de stängdes. (Inget litet problem)
Vattnet kan röra sig i tankarna eftersom där också finns luft, vilket påverkar balansen.
Komplicerad teknik med luft och vattenventiler samt flera tryckmätare.
HÖGT tryck behövs vilket kan rent av vara farligt.
Luftmängden är väldigt begränsad och kräver kompressor för påfyllnad.
Ska du ändå köra med luft så behövs knappast någon avancerad ventil, till/från duger gott.
Inga fördelar, massor av nackdelar.
Den är komprimerbar vilket ställer till det när vattenventilerna till dyktankarna öppnas på ett annat djup än när de stängdes. (Inget litet problem)
Vattnet kan röra sig i tankarna eftersom där också finns luft, vilket påverkar balansen.
Komplicerad teknik med luft och vattenventiler samt flera tryckmätare.
HÖGT tryck behövs vilket kan rent av vara farligt.
Luftmängden är väldigt begränsad och kräver kompressor för påfyllnad.
Ska du ändå köra med luft så behövs knappast någon avancerad ventil, till/från duger gott.