Driva borstlösa DC-motorer

Robot, CNC, Pneumatik, Hydraulik, mm
Beffo
Inlägg: 114
Blev medlem: 30 januari 2004, 12:00:12
Kontakt:

Driva borstlösa DC-motorer

Inlägg av Beffo »

Jag ska driva en borstlös dc-motor helst utan halleffekt-sensorer. Har förstått att man kan använda hallsensorer för att bestämma rotorns position och styra motorn lite likt en stegmotor. Och motorer utan hallsensorer styr man med hjälp av att mäta "back-EMF" alltså den emk som induceras i lindningarna, och på så sätt bestämma rotorpositionen.

Mitt problem är: Det finns en hel del färdiga kretsar som utnyttjar hallsensorer, men för motorer utan halsensorer verkar det bara finnas ett par philips som fixar biffen. FINNS DET FLER??

EX:
http://www.semiconductors.philips.com/a ... 5145_2.pdf

Kom gärna med allmänna tips eller idéer om du har erfarenhet av sådana motorer.

Vet att många föreslår PIC eller DSP, men det är inte ett alternativ här.
Användarvisningsbild
Henry
Inlägg: 24511
Blev medlem: 20 april 2005, 02:52:47
Ort: Lund

Inlägg av Henry »

Du kan annars köpa färdiga kompletta kretsar för drivning av den typ av motorer som finns i modellflyg och modellhelikoptrar, som i dag är just av 3-fas typ. Vet dock inte om dessa är tillräckliga för dina behov men dom går för det mesta att modifiera för tex högre ström om man har köpt en som inte klarar av så mycket.

Bla så har mft.nu en hel del att välja mellan.

Köpte själv en där ifrån i somras.
Beffo
Inlägg: 114
Blev medlem: 30 januari 2004, 12:00:12
Kontakt:

Inlägg av Beffo »

Nja, det är inte riktigt vad jag söker. Det handlar om en mer industriell tillämpning där driftspänningen kommer ligga på 24 V. Jag antar att de motorer som drivningarna (på mft.nu) är tänkta för utnyttjar halleffektsensorer, vilket inte är möjligt i mitt fall.

Fler tips på IC-kretsar...?
jonas2307
Inlägg: 479
Blev medlem: 11 juni 2005, 08:48:33
Ort: Älvsjö

Inlägg av jonas2307 »

Nja, alla motorer som mft.nu säljer är sensorlösa.
Styrningarna till dem hanterar motorer både med och utan sensorer.

Jag håller på och bygger en styrning till en borstlös motor, utan sensorer, men min lösning bygger på en PIC.

-- Jonas
PeotryD
EF Sponsor
Inlägg: 188
Blev medlem: 11 november 2005, 13:24:44
Ort: Umeå
Kontakt:

Inlägg av PeotryD »

Håller på och bygger en styrning för borstlösa motorer med, min byger på en Atmel. Programmerar den för ATmega 162, men som det ser ut nu kommer den rymmas på en ATiny.
kort beskrivning av koden:
*Vid uppstart beräknas så många sinusvärden man har valt att bygga upp sin sinusvåg av, och skrivs in i en array(måste vara delbart med 3).
detta för att microkontrollen snabbt skall kunna hämta sina sinusvärden.
*sidor reckommenderar att man inte pwm:ar snabbare än 10K, klockan är prescalad till 1024.
*använder en klocka.
*Alla tre kanaler slås på samtidigt.
*beräkning för vilken kanal som skall stängas av först, näst och sist.
*kortaste kanalen stängs av.
*näst kortast kanalen stängs av.
*längsta kanalen stängs av.

Förhopningen är att projektet kommer vara färdigt på ca 1månad+, kommer lägga upp det här då.
macgyver
Inlägg: 321
Blev medlem: 8 juni 2005, 00:24:09
Ort: Göteborg
Kontakt:

Inlägg av macgyver »

precale på 1024 blir väl inte rätt?
om du kör med 16Mhz systemklocka, 8-bits PWM, och 1024 i prescale borde PWM switchfrekvensen bli (16000000 / 1024) / 256 = ca 61 Hz
PeotryD
EF Sponsor
Inlägg: 188
Blev medlem: 11 november 2005, 13:24:44
Ort: Umeå
Kontakt:

Inlägg av PeotryD »

Min PWM:ning är mjukvarukodad, använder mig inte av den inbygda. Den arbetar på följande sätt:
Bild
Där varje steg i 8-bitars klockan är 16MHz/1024(Prescalning av klockan) = 15 625 Hz =ca 15KHz
Teoretiskt kan den kortaste kanalen bara vara en klockcykel av 8-bitars timern.
Så kanalerna kan i extremfallena bli 15KHz kort, eller 61Hz lång

Detta är lite intressant med, genom att minska på spannet här, minskar man på amplituden på sinusvågen, och där med energin till vridmomentet, så t.ex en el-moped kan få längre räckvidd på bekostnad av vridmomentet.....men det viktigaste man kommer hem :)
macgyver
Inlägg: 321
Blev medlem: 8 juni 2005, 00:24:09
Ort: Göteborg
Kontakt:

Inlägg av macgyver »

håller själv på med PWM till AVR, i detta fall en ATMEGA32 med 16MHz klockfrekvens, och jag stör mig på att timrarna bara går att sätta på prescale 1, 8, 64, 256, 1024. Jag vill kunna dela med 2 och 4 men icke då.
är det möjligt att få kika på din kod? verkar smidigare än den inbyggda PWM:en
Användarvisningsbild
arvidb
Inlägg: 4537
Blev medlem: 8 maj 2004, 12:56:24
Ort: Stockholm

Inlägg av arvidb »

PeotryD skrev:*snip*
Där varje steg i 8-bitars klockan är 16MHz/1024(Prescalning av klockan) = 15 625 Hz =ca 15KHz
Teoretiskt kan den kortaste kanalen bara vara en klockcykel av 8-bitars timern.
Så kanalerna kan i extremfallena bli 15KHz kort, eller 61Hz lång
*snip*
Det du beskriver här är väl just 61 Hz PWM med pulskvot som kan varieras på en 1/256-del när... alltså 8-bitars 61 Hz PWM.

Om du vill köra 10 kHz PWM så ska det hinnas med 10 000 cykler per sekund, oavsett vad varje cykel har för pulskvot. Med 8-bitars PWM behövs det alltså en räknare som räknar 10000*2^8 steg per sekund. Prescaler = 6 ger ca 10.4 kHz PWM i ditt fall.

Arvid
Användarvisningsbild
bengt-re
EF Sponsor
Inlägg: 4829
Blev medlem: 4 april 2005, 16:18:59
Skype: bengt-re
Ort: Söder om söder
Kontakt:

Inlägg av bengt-re »

Men... inte måste man hålla sig så väl till sinus... Testa och mät på ett färdigbyggt steg till en borstlös driver.... Visst är det säkert bättre på alla vis att få till fin sinus, men man måste inte för att få det att fungera
PeotryD
EF Sponsor
Inlägg: 188
Blev medlem: 11 november 2005, 13:24:44
Ort: Umeå
Kontakt:

Inlägg av PeotryD »

Jag hade alldeles för brottom när jag skrev mitt första inlägg.
Jag använder drivkrets IR2136(finns på elfa), för att styra mina (IGBT eller MOSFET).
Antingen var det i detta datablad eller på IR's hemsida jag läste att man inte bör switcha snabbare än 10KHz, så det är här ifrån 10KHz, en reckommendation att man bör ligga under detta.
Det kan även ha stått i databladet för mina IGBT.

bengt-re:Du har helt rätt, man behöver inte ligga på perfekta sinus-våger, var mera att jag ville testa hur bra jag kunde göra dom, och att jag ville försöka få det gjort med en klocka :-)

macgyver:Här har du min kod, den är som sagt var inte färdig, jag är i läget där jag skall börja testa den i kretsen (ATmega8515), jag hoppas att du kan följa koden någorlunda och se hur jag använder interruptet på 8-bitarsklockan för att skapa min PWM-kod som bygger upp 3 sinusvåger, fasförskjutna 120grader.

Kodexempel

Jag har tänkt hastighets reglera genom att lägga in en delay som gör att PWM_head_channel räknas upp olika fort, i detta kodexcempel går motorn på sin max-hastighet.

Jag har extremt mycket kod i interruptet för klockan, men jag hoppas :-) att på grund av min prescaling på 1024 att jag inte får problem.
*hoppas och håller tummarna:-)*
om det inte stämmer kommer jag skriva om interrupt delen i asembler som första försök.
Beffo
Inlägg: 114
Blev medlem: 30 januari 2004, 12:00:12
Kontakt:

Inlägg av Beffo »

Tack för att ni intresserat er för min styrning men jag är som sagt ute efter en ren enchipslösning där endast en transistorkoppling behövs kopplas till.

ska helst styras med dc-insignal. går bra med PWM också
macgyver
Inlägg: 321
Blev medlem: 8 juni 2005, 00:24:09
Ort: Göteborg
Kontakt:

Inlägg av macgyver »

PeotryD: Mycket bra kommenterad kod!
Men som du själv sa är det extremt mycket kod i ISR:en, kanske går att flytta ut en del till main? eller använda lookuptables istället för if-satser för att sätta/nollställa portpinnar
Användarvisningsbild
Jeppsson
EF Sponsor
Inlägg: 810
Blev medlem: 3 oktober 2005, 18:00:43
Ort: Karlskrona

Inlägg av Jeppsson »

Fick den senaste Allt Om Elektronik idag och om man tittar på utsidan av tidningen så verkar den handla om just borstlösa motorer och hur man driver dessa... :)

Ett nummer som kanske är värt att köpa???
Användarvisningsbild
Jonaz
Inlägg: 2358
Blev medlem: 4 november 2003, 22:06:33
Ort: Huddinge

Inlägg av Jonaz »

Skriv svar