Biến tần, bộ chuyển đổi Switched-mode power supply (SMPS), bộ điều khiển tốc độ, … đều có điểm chung: Là bao gồm nhiều công tắc điện tử, các công tắc này là các thiết bị điện tử công suất như MOSFET, insulated-gate bipolar transistor (IGBT), TRIAC v.v …
- Để điều khiển các van công suất điện tử này, chúng ta thường sử dụng tín hiệu PWM (điều chế độ rộng xung PWM).
- Ngoài ra, tín hiệu PWM cũng được sử dụng để điều khiển động cơ servo, tốc độ động cơ một chiều.
- Cũng cho các nhiệm vụ đơn giản khác như điều khiển độ sáng của đèn LED (light-emitting diode).
Trong bài viết này, mời các bạn cùng Bachkhoatech tìm hiểu:
- PWM là gì?
- Cách điều khiển tốc độ động cơ một chiều bằng PWM?
- Cuối cùng là một số vi dụ về điều khiển động cơ một chiều sử dụng: 8051, arduino.
Tóm tắt nội dung
Xung PWM là gì?
PWM là một loại tín hiệu ở dạng một xung đơn, sóng vuông. Tức là, tín hiệu xung PWM sẽ ở hai mức cao hoặc thấp. Ví dụ, chúng ta hãy xem xét tín hiệu 5V PWM, trong trường hợp này tín hiệu PWM là 5V (cao) hoặc nối đất 0V (thấp).
Điều chế độ rộng xung PWM là gì?
Điều chế độ rộng xung PWM là phương pháp điều chỉnh điện áp đầu ra, theo sự thay đổi độ rộng xung vuông. Khiến điện áp thay đổi. Xung PWM được chuyển đổi có cùng một tần số và chỉ khác nhau về độ rộng của mặt dương. Phương pháp PWM chủ yếu được sử dụng cho các ứng dụng điều khiển động cơ một chiều motor DC. Phương pháp này giúp điều chỉnh tốc độ động cơ và ổn định tốc độ động cơ. Khác với các động cơ điện xoay chiều hay động cơ AC. Điều khiển tốc độ bằng phương pháp thay đổi tần số nguồn điện cấp. Thông thường trong công nghiệp sử dụng các bộ biến tần.
Điều khiển tốc độ động cơ một chiều bằng PWM, là phương pháp điều chế độ rông xung PWM, để thay đổi giá trị điện áp trung bình. Cung cấp điện áp cho động cơ, được kiểm soát bằng cách thay đổi việc đóng cắt giữa nguồn và động cơ với một tốc độ rất nhanh (tần số xung cỡ khoảng một vài kHZ). Các bạn xem video dưới đây, để hiểu kỹ hơn.
Như vậy, giá trị điện áp mà chúng ta đo được từ 0-12V (xem hình bên dưới) chính là giá trị điện áp trung bình Utb (theo công thức 1). Bằng cách thay đổi thời gian ON-OFF trong một chu kỳ mà ta có giá trị điện áp trung bình khác nhau .
Kết luận:
Vậy, điều khiển tốc độ động cơ một chiều bằng PWM, là phương pháp: Thay vì điều khiển điện áp liên tục, ta điều khiển điện áp bằng các xung có tần số cố định, nhưng có độ rộng xung thay đổi. Khi đó giá trị trung bình điện áp cũng thay đổi, để điều khiển được tốc độ động cơ một chiều.
Ta có công thức tính điện áp trung bình:
Utb=Uđm*Thi/T (công thức 1)
Trong đó:
- Utb: Điện áp trung bình
- Thi: Thời gian xung mức cao
- T : Chu kỳ xung
- Uđm: Điện áp cung cấp cho động cơ.
Ứng dụng
Phương pháp điều chế độ rộng xung PWM để điều khiển tốc độ động cơ một chiều (DC motor). Vi dụ: Dùng vi điều khiển IC 89C51 (thộc dòng vi điều khiển 8051) để điều khiển (xem sơ đồ nguyên lý bên dưới).
Động cơ một chiều là gì?
Đối tượng điều khiển là động cơ điện một chiều (DC motor), với đầu vào là điện áp đặt vào phần ứng, tín hiệu ra là góc quay và vận tốc quay trên trục động cơ. Kích từ cho động cơ là kích từ độc lập (nam châm vĩnh cữu) có từ thông =const.
Các thông số động cơ:
- J: là phụ tải quán tính
- B: Hệ số ma sát
- L: Điện cảm phần ứng
- Em Sức điện động của động cơ
- Km Hệ số tỷ lệ mômen
- Ke: Hệ số tỷ lệ với sức phản điện động
- Em=ke. với ke=const.
- Phụ tải có quán tính J được động cơ kéo trên bề mặt có hệ số ma sát B;
- Phương trình cân bằng mômen điện áp phần ứng;
- Phương trình cân bằng mô men (theo định luật 2 Niwton);
- Hàm truyền laplace.
(Sơ đồ nguyên lý điều khiển tốc độ động cơ một chiều bằng PWM, dùng vi điều khiển 89C51)
Video hướng dẫn
Code 89c51
int dem=0;
int phantramxung=50; //do rong xung de mac dinh = 50%
//Ham phuc vu ngat ngoai 0
void ngat_int0(void) interrupt 0
{
if(phantramxung<100) phantramxung+=5;
}
//Ham phuc vu ngat ngoai 1
void ngat_int1(void) interrupt 2
{
if(phantramxung>0) phantramxung-=5;
}
//Ham phuc vu ngat timer 0
void ngat_t0(void) interrupt 1
{
dem++;
if(dem<phantramxung) PWM=1;//P3_0=1
else
{
PWM=0;//P3_0=0
if(dem==100) dem=0;
}
TR0=1;//Khoi dong lai timer 0
}
/*====== Ham chinh ==========*/
void main(){
//Khai bao ngat INT0
EX0=1;//Cho phep ngat ngoai 0
IT0=1;//Cho phep ngat theo suon am
//Khai bao ngat INT1
EX1=1;//Cho phep ngat ngoai 0
IT1=1;//Cho phep ngat theo suon am
//Khai bao ngat timer 0
TMOD=0x02;//0000 0020: Che do 2, 8 bit, tu dong
TH0=0xCE;//Ngat 50us
TR0=1; //Start timer 0
//Cho phep ngat toan cuc
EA=1;
while(1)
{
if(P1_0==0) on=1; //bat dong co
else
on=0; //tat dong co
if (P1_7==0) thuan=1;//DK dong co theo chieu thuan
else
thuan=0; //Dao chieu dong co
}
}
Liên hệ với chúng tôi để được giải đáp các thắc mắc!
Trận trọng!
By Bachkhoatech!