直流電動機轉速N的表達式為:N=U-IR/Kφ
由上式可得,直流電動機的轉速控制方法可分為兩類:調節勵磁磁通的勵磁控制方法和調節電樞電壓的電樞控制方法。其中勵磁控制方法在低速時受磁極飽和的限制,在高速時受換向火花和換向器結構強度的限制,并且勵磁線圈電感較大,動態響應較差,所以這種控制方法用得很少。現在,大多數應用場合都使用電樞控制方法。
對電動機的驅動離不開半導體功率器件。在對直流電動機電樞電壓的控制和驅動中,對半導體器件的使用上又可分為兩種方式:線性放大驅動方式和開關驅動方式。
線性放大驅動方式是使半導體功率器件工作在線性區。這種方式的優點是:控制原理簡單,輸出波動小,線性好,對鄰近電路干擾?。坏枪β势骷诰€性區工作時由于產生熱量會消耗大部分電功率,效率和散熱問題嚴重,因此這種方式只用于微小功率直流電動機的驅動。絕大多數直流電動機采用開關驅動方式。開關驅動方式是使半導體器件工作在開關狀態,通過脈寬調制PWM來控制電動機電樞電壓,實現調速。
?
在PWM調速時,占空比α是一個重要參數。以下3種方法都可以改變占空比的值。
(1)定寬調頻法
這種方法是保持t1不變,只改變t2,這樣使周期T(或頻率)也隨之改變。
(2)調頻調寬法
這種方法是保持t2不變,只改變t1,這樣使周期T(或頻率)也隨之改變。
(3)定頻調寬法
這種方法是使周期T(或頻率)保持不變,而同時改變t1和t2。
前兩種方法由于在調速時改變了控制脈沖的周期(或頻率),當控制脈沖的頻率與系統的固有頻率接近時,將會引起振蕩,因此這兩種方法用得很少。目前,在直流電動機的控制中,主要使用定頻調寬法。
直流電動機雙極性驅動可逆PWM控制系統
雙極性驅動則是指在一個PWM周期里,作為在電樞兩端的脈沖電壓是正負交替的。
雙極性驅動電路有兩種,一種稱為T型,它由兩個開關管組成,采用正負電源,相當于兩個不可逆控制系統的組合。但由于T型雙極性驅動中的開關管要承受較高的反向電壓,因此只用在低壓小功率直流電動機驅動。
另一種稱為H型。
H型雙極性驅動
1. 電動機控制電路模塊
H橋電動機驅動電路的工作原理:
A:當單片機的P0.0腳輸出高電平,而P0.1腳輸出低電平時,通過光電耦合器后仍然輸出為高電平,使Q4管導通,此時Q1也處于導通狀態,但Q2管的基極的電位被強行拉低,Q2管處于截止狀態。由于單片機的P0.1腳輸出低電平,
Q8處于截止狀態,而此時Q7因為Q5的截止而處于導通狀態,從而使電動機形成回路,電機正常工作。
B:同理可得,當P0.0腳輸出低電平,而P0.1腳輸出高電平時,三極管的狀態與上述相反,電機同樣處于正常工作狀態。
C:當P0.0腳和P0.1同時為高電平或低電平,由于Q4與Q8和Q3與Q7的工作狀態相同,同時處于導通或截止,使電機兩斷電位相同,無法使電機形成閉和回路,電機不工作,著就是所謂本設計所提及的剎車狀態。
由于電路中在驅動功率管的發射極各添加了一個小電感,目的是為了使電機驅動電壓更加穩定,得到較為平滑的驅動電壓,從而增加了剎車時動作的準確性,減少電機的在起動和停止的瞬間產生過大的電壓對功率管的沖擊,導致功率管的損壞。同時也提高了電機的剎車控制可靠性和準確性,不至于因慣性而導致控制上產生較大的誤差。
該橋的優點是電路的原理簡單、易控制、功耗低帶負載能力強、剎車的精度很高而且價格低廉。在驅動電路的控制信號輸入斷采用了光電隔離技術,減小H橋電機驅動電路對單片機的干擾,實現模擬電路與數字電路的隔離。在單片機的配合下,通過PWM調節脈寬的方法,實現了對驅動電機的輕松調速,通過鍵盤的配置可以對體的參數進行修改,可以使電機適應各種不同的工作狀態,而實現智能控制的目的。正因為采取了PWM該技術,使我們完成基本要求的過程變得簡單易行。
在電路中所采取的功率管為中功率管,其中將驅動功率管設計為靈活替換方式,可以根據實際驅動電路的需要,從而調整功率管的型號而不用另行更改電路,就可以滿足電路控制的要求
2、軟件模塊部分
在速度控制方面,一般是能通過改變加在電機兩端的電壓來實現的,可以是連續改變(加直流電壓),也可以是斷續改變(加脈沖電壓)。為了簡單用,我們采用了脈寬調速,脈寬的變化可以通過硬件或軟件來實現。
方案一 硬件實現是通過改變振蕩電路中RC參數來調整充放電時間。若用硬件電路來實現,在穩定性方面得不到保證。
方案三 用軟件的作法是通過設置高電平及低電平的保持時間來達到PWM的脈寬調制目的。
就比較而言,軟件調整量化指標更高、調整更可靠、更方便、更準確。因此在設計時,常考慮方案二。
脈沖頻率對電機轉機也有影響,脈沖頻率高連續性好,但帶負載能力差,頻率低則反之。經實驗發現,脈沖頻率在15━20HZ效果最佳。在本設計中采用了20HZ進行設計。
脈沖調速實質上是調節加在電機兩端的平均功率,通過計算可發現電機的速度與脈寬成正比。
軟件編程的考慮是設置脈寬這個變量。在P0.0,P0.1的輸出控制信號來產生20HZ可調脈寬方波。
下面是51單片機的實驗程序
#include 《 reg51.h 》
#include 《 intrins.h 》
sbit K1 =P1^4 ; //增加鍵
sbit K2 =P1^5 ; //減少鍵
sbit P00 =P0^1;
sbit BEEP =P3^7 ; //蜂鳴器
unsigned char PWM=0xe7; //賦初值
void Beep();
void delayms(unsigned char ms);
void delay(unsigned char t);
/*********************************************************/
void main()
{
P1=0xff;
TMOD=0x21 ;
TH0=0xff ; //50us延時常數
TL0=0xce ; //頻率調節
TH1=PWM ; //脈寬調節
TL1=0 ;
EA=1;
ET0=1;
ET1=1;
TR0=1 ;
while(1)
{
do{
if(PWM!=0xff)
{PWM++ ;delayms(10);}
else Beep() ;
}
while(K1==0);
do{
if(PWM!=0xce)
{PWM-- ;delayms(10);}
else Beep() ;
}
while(K2==0);
}
}
void timer0() interrupt 1
{
TR1=0 ;
TH0=0xff ;
TL0=0xce ;
TH1=PWM ;
TR1=1 ;
P00=0 ; //啟動輸出
}
void timer1() interrupt 3
{
TR1=0 ;
P00=1 ; //結束輸出
}
/*********************************************************/
//蜂鳴器子程序
/*********************************************************/
void Beep()
{
unsigned char i ;
for (i=0 ;i《100 ;i++)
{
delay(100) ;
BEEP=!BEEP ; //Beep取反
}
BEEP=1 ; //關閉蜂鳴器
delayms(100);
}
/*********************************************************/
// 延時子程序
/*********************************************************/
void delay(unsigned char t)
{
while(t--) ;
}
/*********************************************************/
// 延時子程序
/*********************************************************/
void delayms(unsigned char ms)
{
unsigned char i ;
while(ms--)
{
for(i = 0 ; i 《 120 ; i++) ;
}
}
來源;21ic
評論
查看更多