Hjälp med formel för reaktans i elmotor
-
- Inlägg: 72
- Blev medlem: 8 augusti 2010, 21:47:21
Hjälp med formel för reaktans i elmotor
Hej!
Jag håller på och konstruerar en motormodell i Matlab av en BLDC elmotor och har kört fast vid beräkningen av induktiv reaktans. Hade det varit sinusformad spänning så hade XL=2*pi*f*L funkat men det är PWM:ad spänning på 10kHz och kommuteringsfrekvens som varierar med varvtalet. Påverkan vid varje kommutering kanske är försumbar men det är bäst att kolla för säkerhets skull.
Output från modellen är PWM'ns DCY för olika motorströmmar som ska användas som förstyrningsvärde i ett styrsystem som jag bygger.
Tacksam för hjälp!
/Goethe
Jag håller på och konstruerar en motormodell i Matlab av en BLDC elmotor och har kört fast vid beräkningen av induktiv reaktans. Hade det varit sinusformad spänning så hade XL=2*pi*f*L funkat men det är PWM:ad spänning på 10kHz och kommuteringsfrekvens som varierar med varvtalet. Påverkan vid varje kommutering kanske är försumbar men det är bäst att kolla för säkerhets skull.
Output från modellen är PWM'ns DCY för olika motorströmmar som ska användas som förstyrningsvärde i ett styrsystem som jag bygger.
Tacksam för hjälp!
/Goethe
Re: Hjälp med formel för reaktans i elmotor
Du får nog köra med sambandet u = L*di/dt istället. När du modellerar upp din krets lär du få ett gäng med kopplade diff-ekvationer som du får lösa numeriskt och där PWM-vågformen är invärde.
Re: Hjälp med formel för reaktans i elmotor
Hänger inte riktigt med på vad du menar med förstyrningsvärde...
Grovt borde gälla att pulskvoten som funktion av axelvinkeln kommer vara ungefär D(v) = V_out(v) / V_in
V_out(v) är motorns EMF som funktion av vinkeln, och V_in är batterispänningen. Det förutsätter att kommuteringsfrekvens är låg i förhållande till switchfrekvensen, och att motorinduktansen är hög i förhållande till batterispänning/switchfrekvens.
Grovt borde gälla att pulskvoten som funktion av axelvinkeln kommer vara ungefär D(v) = V_out(v) / V_in
V_out(v) är motorns EMF som funktion av vinkeln, och V_in är batterispänningen. Det förutsätter att kommuteringsfrekvens är låg i förhållande till switchfrekvensen, och att motorinduktansen är hög i förhållande till batterispänning/switchfrekvens.
-
- Inlägg: 72
- Blev medlem: 8 augusti 2010, 21:47:21
Re: Hjälp med formel för reaktans i elmotor
Kontrollern jag bygger ska ta emot signalen från gashantag, mappa om den i en momentmodell och sedan skicka vidare till befintlig motorkontroller. Det är inte säkert att jag kommer ha någon aktiv reglering av ström i den burken därav kallade jag det för förstyrning. Min Matlabmodell ska generera kalibreringsdata till min momentmodell i kontrollern.
För nuvarande ser min modell ungefär ut så här. Som output från mitt skript får jag DCY eller Vmot sfa Imot. Men då tar jag inte hänsyn till motorns induktans vilket jag vill göra.

Är mitt resonemang riktigt?
-Vid kommutering når delta I full amplitud men endast över en fas eftersom sekvensen är A-B, C-B, C-A, osv... (om kommuteringsfrekvensen är tillräckligt låg)
-Delta I vid PWM växer med minskande DCY.
-För att beräkna delta I vid PWM måste strömmens avklingning under avperioden beräknas med hänsyn till t, L, Rmot och Vdiode (spänningsfall mosfet diod).
Det verkar som att jag är beroende av vågformen som invärde som Andax sa men det blir knepigt eftersom det är min output...
/Goethe
För nuvarande ser min modell ungefär ut så här. Som output från mitt skript får jag DCY eller Vmot sfa Imot. Men då tar jag inte hänsyn till motorns induktans vilket jag vill göra.

Är mitt resonemang riktigt?
-Vid kommutering når delta I full amplitud men endast över en fas eftersom sekvensen är A-B, C-B, C-A, osv... (om kommuteringsfrekvensen är tillräckligt låg)
-Delta I vid PWM växer med minskande DCY.
-För att beräkna delta I vid PWM måste strömmens avklingning under avperioden beräknas med hänsyn till t, L, Rmot och Vdiode (spänningsfall mosfet diod).
Det verkar som att jag är beroende av vågformen som invärde som Andax sa men det blir knepigt eftersom det är min output...

/Goethe
Re: Hjälp med formel för reaktans i elmotor
Jag tror inte det kommer gå att använda ett förstyrningsvärde. Någon typ av återkopplad reglering måste användas. Det beror på att strömmen varierar starkt när pulskvoten varierar mycket lite.
Om man ser kretsen som ideell är det skillnaden mellan D*Vmotor och EMF som tillsammans med resistansen bestämmer strömmen. Säg att skillnaden förprogrammeras till att vara 1V, och att resistansen i kretsen är 10mOhm. Då blir strömmen 100A. När grejerna blir varma kommer resistansen öka till t.ex. 20mOhm, vilket ger 50A. Liten ändring i pulskvot kommer ge stor skillnad i spänning, d.v.s stor skillnad i ström.
I verkligheten, med induktanser överallt, och resonanser med kapacitanser, omslagsförluster i transistorer,och en starkt dynamisk EMF för motorn, verkar det ännu svårare med ett förstyrningsvärde. Jag tror som sagt att det måste vara en återkopplad regulator.
Den där bilden innehåller ett fel, tror jag. Motorstyrningarna använder (så vitt jag vet) synkron likriktning, d.v.s att övre och undre transistor i bryggan leder omväxlande. Frihjulsdioderna leder bara under dödtiden mellan omslagen.
Om man ser kretsen som ideell är det skillnaden mellan D*Vmotor och EMF som tillsammans med resistansen bestämmer strömmen. Säg att skillnaden förprogrammeras till att vara 1V, och att resistansen i kretsen är 10mOhm. Då blir strömmen 100A. När grejerna blir varma kommer resistansen öka till t.ex. 20mOhm, vilket ger 50A. Liten ändring i pulskvot kommer ge stor skillnad i spänning, d.v.s stor skillnad i ström.
I verkligheten, med induktanser överallt, och resonanser med kapacitanser, omslagsförluster i transistorer,och en starkt dynamisk EMF för motorn, verkar det ännu svårare med ett förstyrningsvärde. Jag tror som sagt att det måste vara en återkopplad regulator.
Den där bilden innehåller ett fel, tror jag. Motorstyrningarna använder (så vitt jag vet) synkron likriktning, d.v.s att övre och undre transistor i bryggan leder omväxlande. Frihjulsdioderna leder bara under dödtiden mellan omslagen.
-
- Inlägg: 72
- Blev medlem: 8 augusti 2010, 21:47:21
Re: Hjälp med formel för reaktans i elmotor
Tanken är att förstyrningen ska underlätta för en aktiv reglering så den inte behöver ta hand om så stora fel. Tror du att det räcker med endast strömåterkoppling och att förstyrning är onödigt?
Temperatur på lindningarna ska jag ta med som input.
I den motorstyrning som jag använder så switchas nedre transistor under PWM och övre är konstant öppen. Vid PWM låg så frihjulas strömmen via ena fasens övre mosfet. Och som du sa så är verkar det vara fel i bilden, vid PWM hög så passerar inte strömmen genom någon diod. Till mitt försvar så har jag inte implementerat det så i mitt skript....
Jag har fortfarande inte kommit på hur jag ska gå vidare med induktansen i mitt skript, några mer förslag?
/Goethe
Temperatur på lindningarna ska jag ta med som input.
I den motorstyrning som jag använder så switchas nedre transistor under PWM och övre är konstant öppen. Vid PWM låg så frihjulas strömmen via ena fasens övre mosfet. Och som du sa så är verkar det vara fel i bilden, vid PWM hög så passerar inte strömmen genom någon diod. Till mitt försvar så har jag inte implementerat det så i mitt skript....

Jag har fortfarande inte kommit på hur jag ska gå vidare med induktansen i mitt skript, några mer förslag?
/Goethe
Re: Hjälp med formel för reaktans i elmotor
Aha, förstyrningsvärdet ska endast underlätta reglering, då förstår jag. Det verkar vara en bra idé.
Jag hänger inte riktigt med på varför(/hur) induktansen ska (kunna) vara med i förstyrningsvärdet. Induktansen kommer göra att strömmen stiger/sjunker långsamt, så att det blir en "tröghet" i systemet. Trögheter kan kompenseras genom att använda en D-term i en PID-regulatorn, eller motsvarande i andra regleringsprinciper, för att förhindra översväng. Men fordonets tröghet, samt varierande underlag, tror jag kommer vara betydligt mer betydlesfullt, så att ev. induktans blir försumbar. Med tanke på att strömmen i lindningarna ändrar riktning från att vara max i ena riktningen, till max i andra riktningen, under bara en kommuteringscykel, handlar det ju om ett stegsvar i storleksordningen några millisekunder, medan fordonet har ett stegsvar på flera sekunder.
Hur ofta samplar motorstyrningen gashandtaget? jag gissar att den samplingsperioden är högre än stegsvaret för induktorn.
Hur ska din låda påverka motorstyrningen?
Om D=EMF/V_batt används som förstyrningsvärde kommer det i teorin ge 0 ström. Borde inte det duga som förstyrningsvärde?
Jag hänger inte riktigt med på varför(/hur) induktansen ska (kunna) vara med i förstyrningsvärdet. Induktansen kommer göra att strömmen stiger/sjunker långsamt, så att det blir en "tröghet" i systemet. Trögheter kan kompenseras genom att använda en D-term i en PID-regulatorn, eller motsvarande i andra regleringsprinciper, för att förhindra översväng. Men fordonets tröghet, samt varierande underlag, tror jag kommer vara betydligt mer betydlesfullt, så att ev. induktans blir försumbar. Med tanke på att strömmen i lindningarna ändrar riktning från att vara max i ena riktningen, till max i andra riktningen, under bara en kommuteringscykel, handlar det ju om ett stegsvar i storleksordningen några millisekunder, medan fordonet har ett stegsvar på flera sekunder.
Hur ofta samplar motorstyrningen gashandtaget? jag gissar att den samplingsperioden är högre än stegsvaret för induktorn.
Hur ska din låda påverka motorstyrningen?
Om D=EMF/V_batt används som förstyrningsvärde kommer det i teorin ge 0 ström. Borde inte det duga som förstyrningsvärde?
-
- Inlägg: 72
- Blev medlem: 8 augusti 2010, 21:47:21
Re: Hjälp med formel för reaktans i elmotor
Signalvägen i mitt styrsystem kommer att se ut så här i stora drag:
in Thr 0-5V -> momentbegäran -> begäran Imot -> Umot -> DCY -> ut Thr 0-5V (Den nya Thr signalen går in i befintlig Kina motorkontroller som mappar 0-5V till 0-100% PWM DCY.)
..................................................................^.........................................................^
...................................................................|_______Återkoppling mätt Imot_____|
• Moment översätts till Imot med motorkonstanten.
• Mätt Imot är Ibat / DCY.
• Umot = Uemf + (Imot*(Rmot + XL + XC)
• DCY = Umot / Ubat
• Rmot justeras mot lindningstemperatur.
Det kan hända att induktansens bidrag är försumbart och inte behövs ta hänsyn till i mitt reglersystem men, jag vill ändå kunna simulera det i Matlab för att avgöra om det är så.
Styrsystemet ska även utföra en del andra saker vad det gäller körbarhet såsom startfunktion, filter, hastighetsreglering, Thr mappning sfa hastighet. Den ska även ha en tempmodell av motorn med tempåterkoppling. Tempmodellen ger input till momentmodellen om tillåten maxström.
Det hela byggs runt en Arduino Uno för tillfället som jag laddar med kod genererad från simulink. Fungerar men lite buggigt, kanske skriver koden i C istället. Jag är inte jätteerfaren inom programmering så det hade varit skönt om Simulinkspåret funkar.
/Goethe
in Thr 0-5V -> momentbegäran -> begäran Imot -> Umot -> DCY -> ut Thr 0-5V (Den nya Thr signalen går in i befintlig Kina motorkontroller som mappar 0-5V till 0-100% PWM DCY.)
..................................................................^.........................................................^
...................................................................|_______Återkoppling mätt Imot_____|
• Moment översätts till Imot med motorkonstanten.
• Mätt Imot är Ibat / DCY.
• Umot = Uemf + (Imot*(Rmot + XL + XC)
• DCY = Umot / Ubat
• Rmot justeras mot lindningstemperatur.
Det kan hända att induktansens bidrag är försumbart och inte behövs ta hänsyn till i mitt reglersystem men, jag vill ändå kunna simulera det i Matlab för att avgöra om det är så.
Styrsystemet ska även utföra en del andra saker vad det gäller körbarhet såsom startfunktion, filter, hastighetsreglering, Thr mappning sfa hastighet. Den ska även ha en tempmodell av motorn med tempåterkoppling. Tempmodellen ger input till momentmodellen om tillåten maxström.
Det hela byggs runt en Arduino Uno för tillfället som jag laddar med kod genererad från simulink. Fungerar men lite buggigt, kanske skriver koden i C istället. Jag är inte jätteerfaren inom programmering så det hade varit skönt om Simulinkspåret funkar.
/Goethe
Re: Hjälp med formel för reaktans i elmotor
Det är inte XL + XC som ska användas, den formeln gäller vid sinusformad inspänning. Strömmen i induktansen varierar enligt formeln som presenterats tidigare:
u_L = L*di/dt
Under på-tiden av switchperioden är u_Lon = U_batt - i_batt*R_batt - U_emf - i_mot*(R_transistor+R_mot), och dt_on=D/10kHz
Under av-tiden av switchperioden är u_Loff = -(U_emf + i_mot*R_mot + i_mot*R_transistor (alternativt ett diodframspänningsfall)), och dt_off=(1-D)/10kHz
EDIT: ändrade i formlerna
Eftersom att motorströmmen finns på ena sidan av ekvationen, och derivatan av motorströmmen på andra sidan, blir det som Andax sagt en differentialekvation. Ifall u_Lon*dt_on är större än u_Loff*dt_off kommer strömmen öka tills de når jämnvikt.
Här är en mycket enkel simulering av en likströmsmotor med 50V EMF som drivs av en ideal 100V PWM-signal med 51% resp 52% pulskvot:
EDIT: spänningskällorna i LTspice har visst 1mOhm inre resistans som standard, det är därför strömmarna landar på 90 resp. 180 A istället för 100 resp 200A.
u_L = L*di/dt
Under på-tiden av switchperioden är u_Lon = U_batt - i_batt*R_batt - U_emf - i_mot*(R_transistor+R_mot), och dt_on=D/10kHz
Under av-tiden av switchperioden är u_Loff = -(U_emf + i_mot*R_mot + i_mot*R_transistor (alternativt ett diodframspänningsfall)), och dt_off=(1-D)/10kHz
EDIT: ändrade i formlerna
Eftersom att motorströmmen finns på ena sidan av ekvationen, och derivatan av motorströmmen på andra sidan, blir det som Andax sagt en differentialekvation. Ifall u_Lon*dt_on är större än u_Loff*dt_off kommer strömmen öka tills de når jämnvikt.
Här är en mycket enkel simulering av en likströmsmotor med 50V EMF som drivs av en ideal 100V PWM-signal med 51% resp 52% pulskvot:
EDIT: spänningskällorna i LTspice har visst 1mOhm inre resistans som standard, det är därför strömmarna landar på 90 resp. 180 A istället för 100 resp 200A.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
-
- Inlägg: 72
- Blev medlem: 8 augusti 2010, 21:47:21
Re: Hjälp med formel för reaktans i elmotor
Nu börjar jag komma på spår, tack för hjälpen! Jag hade målat in mig i ett hörn så jag har fått skriva om skriptet från början, men nu ser det mycket enklare och bättre ut.
Ökningen av impedans sfa kommuteringsfrekvens är avsevärd, impedansen från PWM är jag inte klar med än. Om man bara behöver bry sig om impedansen från kommuteringen så behöver jag inte simulera fram kalibreringsdata till förstyrningen utan det borde kunna beräknas direkt i kontrollern....neat!
/Goethe
Ökningen av impedans sfa kommuteringsfrekvens är avsevärd, impedansen från PWM är jag inte klar med än. Om man bara behöver bry sig om impedansen från kommuteringen så behöver jag inte simulera fram kalibreringsdata till förstyrningen utan det borde kunna beräknas direkt i kontrollern....neat!
/Goethe