Buggfix Plus
Aktuellt datum och tid: 05.25 2019-09-22

Alla tidsangivelser är UTC + 1 timme




Svara på tråd  [ 28 inlägg ]  Gå till sida Föregående  1, 2
Författare Meddelande
 Inläggsrubrik:
InläggPostat: 07.28 2003-10-17 
Användarvisningsbild

Blev medlem: 21.24 2003-05-30
Inlägg: 214
Ort: Göteborg
Har du lust att beskriva en PI-regulator lite utförligare?
Förstod inte så mycket :)


Upp
 Profil  
 
 Inläggsrubrik:
InläggPostat: 09.16 2003-10-17 
Användarvisningsbild

Blev medlem: 09.21 2003-08-27
Inlägg: 380
Det är ganska enkelt....
P är proposonelt mot felet delvis felet * konstant = styrsingnal (= sp)
för delen med detta system hyffsat snabbt och enkelt, nackdel är att systemet blir instabilt om konstanten är för stor, delvis självsvänger eller går sönder

I är Intgrerade felet för att minmera felet delvis integralen av felet ( * konstant) = styrsingnal (= si)
fördeln med detta sytem är att felet går mot noll med tiden
nakdel blir instabilt om integral verkan är för stor, så händer samma sak som åvan

man får en bättre regulator om man kombinera dessa två
sp+si = styrsingnal

felet är helt enkelt bör - ärvärdet....


Upp
 Profil  
 
 Inläggsrubrik:
InläggPostat: 22.25 2003-10-29 
Användarvisningsbild

Blev medlem: 21.24 2003-05-30
Inlägg: 214
Ort: Göteborg
Ursäkta en tids frånvaro, va mycket annat att göra.
Ledsen, förstår fortfarande inte vad en PI-regulator gör :(
Men men, jag undrar om någon vet om man kan reglera en PWM-signal från en microdator, är just nu inne på Atmel, men om någon har en ide om hur man kan reglera en PWM med någon microdator skall jag byta :). Börjar bli desperat. Har försökt att kolla lite faktablad från Atmel (mega8515), men förstår inte hur det skulle gå till.


Upp
 Profil  
 
 Inläggsrubrik:
InläggPostat: 22.48 2003-10-29 
EF Sponsor

Blev medlem: 13.21 2003-06-02
Inlägg: 19630
Ort: Östergötland
Vad är det du vill bygga? Är det en regulator som styr ett modellservo eller en PWM regularot till en dc motor/servo?
Jag antar att det är mickrokontroller du syftar på. är inte mega8515 en mickrokontroller det med?
Jag förstår inte vad du är ute efter.

I en digital PI-regulator har du:
P * (felet i senaste samplet) + I * (summan av felen i alla sampel)

Där P och I är reglerparametrarna
Det är bra om man har skydd för integrator uppvridning, i form av villkorlig integration eller liknande. Med det är grundformen.


Upp
 Profil  
 
 Inläggsrubrik:
InläggPostat: 00.16 2003-10-31 
Användarvisningsbild

Blev medlem: 21.24 2003-05-30
Inlägg: 214
Ort: Göteborg
Jag är ledsen för min oklarhet.
Jag vill bygga en "manick" som jämför varvtalet från en glödstiftsmotor med en PWM-signal som kommer från en vanlig R/F hobby-mottagare. Jag vill sedan skapa en utgående PWM-signal som styr ett modellservo (kopplad mekaniskt till motorn) till det läget som gör att varvtalet ändras till det som PWM-signalen motsvarar (så nära som det är möjligt).
Anledningen till att jag tog upp att det är en ATmega8515 var att det känndes som folk blev "avskräckta" när jag sade att jag endast hade kunskaper om motorola-processorer. Det antagande var kanske dumt av mig.
Åter igen, min fråga är hu man får ut en PWM-signal från en microkontroller. Det står i faktabladet att det går, men jag lyckas inte hitta hur man gör :)
Hoppas att dina funderingar reder ut sig


Upp
 Profil  
 
 Inläggsrubrik:
InläggPostat: 10.52 2003-10-31 
Användarvisningsbild

Blev medlem: 21.17 2003-10-28
Inlägg: 117
Ort: Uppsala
Vilken motorola? HC12 eller?

Fredrik


Upp
 Profil  
 
 Inläggsrubrik:
InläggPostat: 13.44 2003-10-31 
EF Sponsor
Användarvisningsbild

Blev medlem: 21.52 2003-05-28
Inlägg: 1571
Ort: Skåne - Lund
Du blandar i hop begreppen lite :?
Vad datablad menar med PWM är inte vad du menar med PWM.

Databladen PWM: (Tidhög*n) +(TidLåg*(1-n)) = En period [0=< n =<1]

Servosignal: (Tidhög*n) + (TidLåg*(1-n)) = En period [0=< n =<0,1]

Det är stor skillnad. Sen servosignal är visserligen också en PWM signal men det är ett specialfall som inte benämns som PWM.

Att skapa servosignaler är inte svårt. Ett Bascom exempel:
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
Servo =1500
do
Pulseout Portb , 1 , Servo             ;Pin1b är hög i 1500 us [1,5 ms]
Waitms 20
loop 

Detta program kommer att centrera servot. Om man vill styra servor så är det bara att ändra Servo. [1000<=servo<=2000] Gränserna kan variera lite beroende på RC-system.

Om du vill använda atmels kretsar så rekommenderar jag AT90s2313.


Upp
 Profil  
 
 Inläggsrubrik:
InläggPostat: 15.04 2003-10-31 
EF Sponsor

Blev medlem: 13.21 2003-06-02
Inlägg: 19630
Ort: Östergötland
RDX* fick till en bra förklaring. Det är det som har rört till diskusionen lite. Det som gör det lite svårare är att man vill mäta motorns RPM och insignalens pulslängd samtidigt. Att göra en av sakerna är inte svårt. men att göra alla samtidigt är svårt. En förutsättning för att lyckas är nog att ha en mikrokontroller med inbyggd timer. gärna fler. då kan man med hjälp av timern mäta in inpulsens längd och tiden för att varv. Om man lägger en interupt när varvtalsgivaren triggar kan man ta tiden mellan två inteupt. och någon liknande lösning på insignalen. Utsignalen kan man klocka med en timer. (om man har någon kvar) PIC 18F452 har 4 timrar. Det kanske är något att satsa på.


Upp
 Profil  
 
 Inläggsrubrik:
InläggPostat: 16.34 2003-10-31 
Användarvisningsbild

Blev medlem: 22.15 2003-05-27
Inlägg: 1288
Ort: Västerås
nästan alla PIC och AVR kretsar med flash minne har väl timer funktioner i sig?


Upp
 Profil  
 
 Inläggsrubrik:
InläggPostat: 01.58 2003-11-01 
Användarvisningsbild

Blev medlem: 21.24 2003-05-30
Inlägg: 214
Ort: Göteborg
tack RDX och danei. Nu börjar det ljusna lite för mig :)
Skall fundera lite på det hela, Varvtalet hade vi hoppats att lösa genom nån "frekvens till spänning"-krets, har inte tänkt så mycket på det om jag skall vara ärlig :)
Men nu känns det som jag har lite mer kött på benen...
/Kristoffer


Upp
 Profil  
 
InläggPostat: 12.18 2003-11-01 
EF Sponsor
Användarvisningsbild

Blev medlem: 15.55 2003-10-14
Inlägg: 966
Ort: Lund
Om du lägger på ett enkelt lågpassfilter (RC) på PWM-signalen så får du en analog spänning som beror av pulsvidden..

Övre gränsfrekvensen på filtret bör vara ca 100 ggr mindre än repetionsfrekvensen på PWM-signalen.

Testa dig fram lite på värdena på motstånd och kondning...


Upp
 Profil  
 
 Inläggsrubrik:
InläggPostat: 09.45 2003-11-03 
EF Sponsor
Användarvisningsbild

Blev medlem: 21.52 2003-05-28
Inlägg: 1571
Ort: Skåne - Lund
Angående RPM mätningen så skulle man kunna ha en binär-räknare som räknar upp med hjälp av en läsgaffel eller något. Sedan kopplar man MSB till en bistabil vippa. Beroende på hur stor räknare man har dividerar man RPM:en med olika stora tal. Med hjälp av detta borde en mikrocontroller kunna hinna med att avläsa RPM:en

Om man använder en 4-bit räknare på en motor med 10,000 RPM borde man få en signal på lite över 10 Hz. Vilket är kanske lite för låg samplingshastighet. Men det är lätt att ändra på.


Upp
 Profil  
 
 Inläggsrubrik:
InläggPostat: 01.20 2003-11-04 

Blev medlem: 23.29 2003-11-03
Inlägg: 51
Ort: Stockholm
Precis som alla har föreslagit. Apropå mätning av varvtalet kan du enkelt göra med hjälp av en MCU t.ex. PIC. Nästan alla PICar har klockfrekvens från 10Hz (RC krets) till 20MHz(Xtal). Det finns PICar med inbyggd PWM och även ADC. Använder du dessa PICar så behöver du inte skriva någon rutin till PWM. Alla PICar arbeta enligt pipeline metoden och varje instruktion tar 1us att utföra. Detta räcker gått och väl för ditt proj.

Förslag på vartalsmätning. Två metoder. Den ena är induktivt (används i bilar), fördelen är att smuts eller fett hindrar inte mätningsprocessen, kräver lite kringkomponenter på tanken om att signalen du får är analog. Den andra är med hjälp av hallelement och en magnet. En puls genereras varje gång axeln vrider ett varv (då magneten passerar hallelementen. Används i HD, floppy driver mm).
En hallelement klarar en mätning med ca 1us intervall.

En möjlig lösning: Generera en intern interrupt (m.h.a. en intern timer) varje sekund. Under tiden räknar MCUn upp antal inkommande pulser från hallelementen och värdet sparas i en global variabel eller i en specifik adress (i minnet). Efter varje interrupt vet du exakt hur många varv går det per sekund.

Angående programmering. Du kan programmera PICen antingen i assembler eller i C. C är mycket enklare, däremot kan du ha mer kontroll om du använder assembler.
Det finns gratis C kompilatorer på nätet att hämta samt MPLAB (utvecklingsverktyget) från microchips hemsida.
Lycka till


Upp
 Profil  
 
Visa inlägg nyare än:  Sortera efter  
Svara på tråd  [ 28 inlägg ]  Gå till sida Föregående  1, 2

Alla tidsangivelser är UTC + 1 timme


Vilka är online

Användare som besöker denna kategori: danei, Google [Bot] och 8 gäster


Du kan inte skapa nya trådar i denna kategori
Du kan inte svara på trådar i denna kategori
Du kan inte redigera dina inlägg i denna kategori
Du kan inte ta bort dina inlägg i denna kategori
Du kan inte bifoga filer i denna kategori

Sök efter:
Hoppa till:  
   
Drivs av phpBB® Forum Software © phpBB Group
Swedish translation by Peetra & phpBB Sweden © 2006-2010