PDA

View Full Version : Điều khiển động cơ BLDC dùng IR2110 cần được giúp đỡ


mtuankct
07-04-2009, 10:17 PM
Em đang làm cái đề tài điều khiển động cơ BLDC dùng dsPIC
Động cơ của em là cái Hub motor công suất khoảng 250W, nguồn 24V
Mạch lực em sử dụng mosfet 60N06 với IR2110 để làm drive
Sơ đồ em attach luôn ở đây
Thuật toán đk ban đầu chưa có gì vì em chỉ mới làm nó quay mà chưa được
Đơn giản là đọc tín hiệu Hall về và đưa xung ra IR để mở van
PWM ở phía lowside hoạt động ở chế độ Override còn phía highside tương tự nhưng sẽ được AND với một xung pwm tần số 1kHz để duty khoảng 90% trở lại để đảm bảo chu kỳ phóng nạp của IR (em đang dùng con diode xung mua ở chợ trời nên chỉ chạy được 1kHz, em đã thử con schottky 1A thì có thể nâng tần số lên nhưng thỉnh thoảng lại thấy cháy con diode nên đi luôn cả con IR)
Em thử với cái động cơ nhỏ hơn công suất khoảng vài chục W thì mạch chạy tương đối ổn nhưng cứ cắm con độg cơ 250W vào là lại đi vài chú fet hoặc IR
PWM em đã thêm deadtime maximum rồi mà vẫn cứ cháy nổ ầm ầm
mà chẳng hiểu sao cháy luôn cả con IR, khi cháy thì thường là bị ngắn mạch giữa chân Vcc và LO, điện trở cực Gate em đang dùng con 8.2R nhưng đo thì toàn thấy là 9.5R
Bác nào giải thích hộ em cái là sai ở đâu?
Có gì em viết chưa rõ các bác cứ hỏi em sẽ bổ sung thêm
Thanks các bác :D

namqn
07-04-2009, 10:35 PM
Bạn có đo được dạng sóng dòng điện không?

ACSx là những linh kiện gì? Bạn đưa tín hiệu như thế nào vào các chân PHASEx?

Tại sao lại dùng duty cycle = 90 % mà không dùng giá trị nhỏ hơn?

Thân,

mtuankct
07-04-2009, 10:42 PM
ACS là con cảm biến dòng điện loại ACS714 dòng 30A nhưng em chưa hàn con này vào, còn dòng điện thì không quá lớn đâu, trước đây em đã làm con động cơ này quay được với so đồ tương tự nhưng thay con IR2110 bằng IR2103, chạy một lúc con fet hơi nóng nên em đổi sang con IR2110
Duty thi em đang đặt nhỏ thôi có 1/4 tức 25% à nên dòng điện khởi động cũng không quá lớn vậy mà vẫn cháy hixhix, còn cái 90% là cái duty max mà em thấy con diode này có thể đáp ứng được (bằng thực nghiệm)

nhatson.elec
07-04-2009, 10:45 PM
hiện tại bác chỉ xuất PWM fix, chưa có current control???

nhatson.elec
07-04-2009, 10:46 PM
áp driver cấp cho Ir hiện tại là bao nhiêu?

em nghĩ bị quá dòng, PWM base 1khz , độ rộng xung 25% là thời gian khá dài ah. Cục nguồn cho motor bác dùng nguồn dì. bao lớn ah?

mtuankct
07-04-2009, 10:50 PM
Em mới chỉ làm cho nó quay mà chưa được, nên chưa hàn cảm biến dòng vào, hàn vào tháo ra không được à, con này em phải nhờ đứa bạn mua hộ hixhix
còn mạch vòng đk thì em đã làm với con động cơ nhỏ rồi, thuật toán tương tự nhau thôi, vấn đề bây giờ là cái mạch lực nó không chạy
còn áp cấp cho IR là 12V, logic là 5V

nhatson.elec
07-04-2009, 10:54 PM
mình nghĩ dùng dien trỡ shunt là đủ, ko cần tới hall sensor làm dì ( cách ly, nhưng tốc độ chậm )

nhatson.elec
07-04-2009, 10:54 PM
bác có thể tham khảo cái mạch này của microchip

http://ww1.microchip.com/downloads/en/DeviceDoc/51554b.pdf

mtuankct
07-04-2009, 11:03 PM
Em đã làm được cái động cơ này quay với con IR2103
con IR2110 thì chỉ khác con IR2103 là nó cả 2 đầu vào HI và LI đề là đầu vào tích cực cao, nó cũng không có bộ tạo deadtime bên trong, không có phần logic chống ngắt mạch do mở 2 van cùng lúc
Em post đoạn code config pwm lên đây các bác xem có đúng không hộ em


_PTSIDL = 0; // pwm time base run in idle mode
_PTOPS = 0; // pwm time base postscale select bit 1:1
_PTCKPS = 0; // pwm time base input clock prescale select bit
// 11 -> 1:64
// 10 -> 1:16
// 01 -> 1:4
// 00 -> 1:1
// PTMR config (PWM time base register)

// PTPER config (PWM time base priod register)
PTPER = (Fcy/Fpwm - 1);
// SEVTCMP config (special event compare register)
SEVTCMP = PTPER;
// PWMCON1 config
_PMOD3 = 0; // PMODx = 1 pwm I/0 pin pair is in the independent ouput mode
// PMODx = 0 pwm I/0 pin pair is in the complementary output mode
_PMOD2 = 0;
_PMOD1 = 0;

_PEN3H = 1; // =1 to enable for pwm output
_PEN3L = 1;
_PEN2H = 1;
_PEN2L = 1;
_PEN1H = 1;
_PEN1L = 1;
// PWMCON2 config

// DTCON1 config (dead time control register)
_DTAPS = 3; // Dead time unit A prescale select bit
// = 3 -> 1:8
// = 2 -> 1:4
// = 1 -> 1:2
// = 0 -> 1:1
_DTA = 63; // Unsigned 6 bit Dead time value bits for dead time unit A
// FLTACON config (Fault A control register)
// FLTBCON config
// OVDCON config (Override control register)
OVDCON = 0x0000; // all pwm pin are control by the value in the corresponding POUTxx bit
// POUTxx = 0
PDC1 =(unsigned int) (PTPER *0.4);
PDC2 =(unsigned int) (PTPER *0.4);
PDC3 =(unsigned int) (PTPER *0.4);
PWMCON2 = 0x0F00; //Postscale = 1:16

PTCON = 0x8000; //Kich hoat module PWM
Delay_ms(10);
SD = 0; // day la chan shutdown của IR
Delay_ms(1);
_POUT1L = 1;// bat may chan Lowside để nạp điện đầy cho tụ, sẵn sàng chạy
_POUT2L = 1;
_POUT3L = 1;

còn đây là chương trình em dùng để test cái động cơ nó quay

void BLDC_test_forward(void){

if((HallA == 0) & (HallB == 1) & (HallC == 1)){ // CASE 1
OVDCON = (1 << BL) + (1 << CH_P); // BL & CH
return;
}
if((HallA == 0) & (HallB == 0) & (HallC == 1)){ // CASE 2
OVDCON = (1 << BL) + (1 << AH_P); // BL & AH
return;
}
if((HallA == 1) & (HallB == 0) & (HallC == 1)){ // CASE 3
OVDCON = (1 << CL) + (1 << AH_P); // CL & AH
return;
}
if((HallA == 1) & (HallB == 0) & (HallC == 0)){ // CASE 4
OVDCON = (1 << CL) + (1 << BH_P); // CL & BH
return;
}
if((HallA == 1) & (HallB == 1) & (HallC == 0)){ // CASE 5
OVDCON = (1 << AL) + (1 << BH_P); // AL & BH
return;
}
if((HallA == 0) & (HallB == 1) & (HallC == 0)){ // CASE 6
OVDCON = (1 << AL) + (1 << CH_P); // AL &CH
return;
}
}

em xin giải thích một tẹo ở đây các hằng số được định nghĩa như sau:

#define AL 0
#define AH 1
#define BL 2
#define BH 3
#define CL 4
#define CH 5

#define AL_P 8
#define AH_P 9
#define BL_P 10
#define BH_P 11
#define CL_P 12
#define CH_P 13

có nghĩa là nếu muốn pha A dẫn phía L và pha C dẫn phía H thì em sẽ ghi giá trị 1 vào POUT1L và đặt 3H ở chế độ xung pwm

mtuankct
07-04-2009, 11:07 PM
Nguồn ở đây em dùng nguồn 24V lấy từ 2 cái acquy 12V nối nối tiếp, mỗi con dung lượng khoảng 4Ah thôi

nhatson.elec
08-04-2009, 01:42 PM
với động cơ nhỏ>> R coil lớn nên dùng PWM base 1khz độ rộng 25% ko sao, nhưng động cơ cs lớn >> R coil thường nhỏ>> 25% là thơi gian dài>>> quá dòng>> dứt fet

b/r

mtuankct
08-04-2009, 02:37 PM
Mình đã thử với nhiều duty cycle khác nhau nhưng kết quả vẫn tuơng tự
Một điểm nữa mình không hiểu là sao IR2110 lại chết (ngắn mạch giữa Vcc và LO)

nhatson.elec
08-04-2009, 02:42 PM
thêm 1 vấn đề nữa khi dứt thì dứt con fet trên hay con fet dưới nhi?

mtuankct
08-04-2009, 02:55 PM
haha cái này thì chưa tìm ra quy luật, đứt cả trên cả dưới luôn tùy lúc
Không phải nó bị hỏng do quá nóng, thường là nó bị hỏng xong rồi mơi bắt đầu nóng cả cặp fet lên. Chắc là nó bị hỏng do một xung quá lớn nào đó, mà mình chẳng hiểu là xung gì
Cho mình hỏi là khi con Fet bị hỏng thì làm sao biết được nó bị cháy con diode hay là hỏng phần mosfet nhỉ? Mình chỉ biết là nó bị ngắn mạch D và S thôi

nhatson.elec
08-04-2009, 05:10 PM
Nếu Fet chưa hõng, thì đo sẽ thấy khi diode nội phân cực thuận hay ko

còn fet đã tèo... thì phải vứt đi, ko cần đo nữa đâu ah :)

bác thử nói với motor nhỏ với mạch chạy 2119 thử xem sao

b/r

mtuankct
08-04-2009, 05:14 PM
Không ý mình là con fet nó có 2 phần, phần mosfet và phần diode ngược, nếu một trong 2 phần này bi hỏng thì đều dẫn đến ngắn mạch D và S, vậy làm sao xác định được nó bị hỏng con diode ngược hay là hỏng con mosfet

nhatson.elec
08-04-2009, 05:23 PM
nếu diode hỏng, nó sẽ ko dẫn mới đúng chứ nhi???

mtuankct
08-04-2009, 05:33 PM
Nếu diode hỏng nó sẽ ngắn mạch chứ
Mình nghĩ thế này với các acquy 4Ah thì không thể làm cháy con mosfet này được kể cả là dòng khởi động của động cơ có lớn đi nữa trừ khi là bị ngắn mạch 2 con fet trong cùng một pha. Từ đó em nghĩ là con IR2110 là con bị hỏng trước dân đến lowside của pha đó luôn dẫn nên mới gây ra hiện tượng cháy mosfet.
Điện trở cực Gate em đang dùng trở 8.2R nhưng về đo bằng đồng hồ thì toàn ra 9.5R
Điện áp cấp cho IR là 12V vậy dòng mở con mosfet max củng chỉ khoảng 1.3A trong khi con IR2110 này lại cho dòng Output đến 2A vậy sao nó lại hỏng được nhỉ?

nhatson.elec
08-04-2009, 05:40 PM
Oái, nguồn acqqy là bộ nguồn ác nhất đấy, dòng ngắn mạch của accquy chịu dược rất lớn đấy ah, gấp 10 lần dòng danh định thì phải.

bác làm con điện trỡ shunt lowside đo dòng khi chạy xem sao.



b/r

mtuankct
08-04-2009, 05:49 PM
Em đã thay mấy con điện trở gate bằng 19R cắm con động cơ nhỏ vào chạy ngon ơ
Chưa dám cắm con 250W vào vì lại sợ đi vài con IR nữa thì nhịn ăn cả tuần mất hixhix
Em đo dòng bằng Hall vì dùng sun thì gặp vấn đề với việc sử dụng opam rail to rail
hoặc phải làm nhiều bộ nguồn khác nhau opam mà làm thế này lại phải thêm một tầng cách ly giữa vdk và IR
Em cần đo dòng cả 3 pha chứ không phải chỉ đo DC bus (cái này là do thuật toán đk yêu cầu)

nhatson.elec
08-04-2009, 06:07 PM
vậy vấn đề là ở chỗ lái fet khi dòng lớn . chắc phải làm cái current control rồi hãy thự với motor cs lớn, làm thêm cái overcurrent detec roi dưa về chân Pdint ủa PIC cho an tâm

opam rail to rial thì dùng con này thử xem

http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010455

ở vieltek có bán, cũng đắt, nhưng chẳc vẫn rẻ hơn ASC , 1 con đủ cho 3Phase rồi.

con này có vẻ okies hơn

http://vieltek.com/microchip/analog-va-giaotiep/mcp6024-i-p.vieltek

mà thường chỉ cần đo 2 pha thôi chứ nhi?

b/r

mtuankct
08-04-2009, 06:24 PM
Con ấy ở vieltek hết hàng rồi, bác biết chỗ nào khác bán không?
Đúng là chỉ cần đo 2 pha thật từ đó thì tất nhiên tính được cái thứ 3 hehe

nhatson.elec
08-04-2009, 06:27 PM
hết hảng rồi ah, căng nhỉ, phải kiếm con khác thoai icic

mtuankct
08-04-2009, 06:31 PM
mà thực ra thì dùng con Hall cũng không đắt, nếu tính chi phí thật chỉ khoảng 3$ một con là cùng. Hôm trước mua mấy con Sun ở chợ trời mất 50k một con hixhix chém đắt vãi, hàng sản xuất từ năm 1970 :))

nhatson.elec
08-04-2009, 06:34 PM
:) 1 số người đã dùng qua than phiền con này khá noise, nếu dùng với ADC 12bit thì ko ổn, dspic adc 10bit chắc okies

current sensor xịn của LEM thì đắt lắm, trong các thiết bị dùng low vol đa phần cũng dùng shunt với con diện trở 0.05 hoặc 0.01ohm của DALE

b/r

mtuankct
08-04-2009, 06:39 PM
em cũng đã dùng thử với con ACS này rồi, đúng là nhiễu thật. Bác có biết con opam rail to rail nào dùng được nữa không? Em chỉ biết code chứ mấy khoản điện tử này cũng không được ok lắm. Thanks bác!

nhatson.elec
08-04-2009, 06:42 PM
thế đơn giản dùng LM358, con này ko rail to rial nhưng có thể dùng single supplier 5V, làm áp ref cho ADC 3V là được :)

bác làm FOC driver cho BLDC ah ?

bác kiếm thử con này xem có ko? TLC2274

con nay dung cho shunt sense cũng tốt ah

b/r

mtuankct
08-04-2009, 09:42 PM
Em đang định làm DTC nhưng đang mắc chỗ này quá
vừa đi thêm môt em IR nữa hixhix

nhatson.elec
08-04-2009, 09:52 PM
Bác thử với fet khác xem sao, irf540 chẳng hạn, em xem datasheet conc ủa bác đang xài, thông số tốt, điện dung ngõ vào thâp. có điều con này do hãng taiwian chế tạo . thử đồ của tây xem sao ah :)

mtuankct
08-04-2009, 10:53 PM
Em sẽ thử xem sao
nhưng em vẫn không hiểu nổi sao con IR lại cháy được nhỉ, đã dùng điện trở cực gate đến 19R

nhatson.elec
08-04-2009, 10:58 PM
Làm mí cài mạch power này, phải có oxilo thì mới biết được ah. oxilo digital thì mới đảm bảo hiệu quả khảo sát ah. em chưa dùng thấp thế bao giờ, tầm 33ohm là thấp lắm rồi. khi đó phải găn thêm 1 con diode xung song song vơi Rgate để tăng tốc độ xả Cin khi đóng fet.

thường Fet die do trùng dẫn như bác nói đấy con dưới chưa đóng con trên đã mở thế là tèo, mấy mạch công suất như máy hàn, máy EDM người ta phải đóng fet hợac IGBT bằng áp ÂM để đảm bảo tốc độ đóng ah

b/r

mtuankct
08-04-2009, 11:13 PM
Em cũng thấy một số mạch người ta gắn thêm một con diode + điện trở song song với con điện trở cực Gate.
Em không hiểu làm thế có ý nghĩa gì? vì con IR2110 này cho dòng I/O bằng nhau và bằng 2A thế sao mình không làm luôn một con điện trở nhỏ vào cực Gate để giúp đóng nhanh và mở cũng nhanh hơn?

nhatson.elec
08-04-2009, 11:13 PM
IR bị dứt có thể là do bác để IR chạy khi fet đã bị dứt lâu quá ah. trước em bị dứt fet khá nhiều, nhưng ít khi dứt IR vì dứt fet là dứt cầu chì . trước ko gắn cầu chì tèo vài con ir rồi, vì fet dứt nhưng ko phát hiện ra

nhatson.elec
08-04-2009, 11:16 PM
Em cũng thấy một số mạch người ta gắn thêm một con diode + điện trở song song với con điện trở cực Gate.
Em không hiểu làm thế có ý nghĩa gì? vì con IR2110 này cho dòng I/O bằng nhau và bằng 2A thế sao mình không làm luôn một con điện trở nhỏ vào cực Gate để giúp đóng nhanh và mở cũng nhanh hơn?

thời gian đóng lúc nào cũng chậm hơn thời gian mở, nên người ta thường làm sao cho đóng nhanh lên , để đuổi kịp mở ah. dễ nhất là dùng diode xung, chân A nối vào G, chân K nối vào out của IR, coi như khi đóng fet cực G và Chân out của R ngăn mạch, ko mất thời gian xả tụ ký sinh qua R nữa ah.

dòng điện lớn đi qua Cực gate thời gian quá dài thì làm tèo luôn fet ah

mtuankct
08-04-2009, 11:17 PM
Vừa rồi em bị đi một chú IR mà chẳng có chú Fet nào đi cả hixhix không hiểu nổi

nhatson.elec
08-04-2009, 11:20 PM
oạch, dám IR đểu lắm ah , bác xài thử ir2104 hoặc 2101 thử xem sao, với irf540 có thể chạy 7A 80V tốt ah. PWM base 20khz

2 con này có thể kiếm ở chipletran, rẻ hơn 2110 đấy ah. cháy nhiều có huôn rồi, đổi mới xem sao ah. trong mấy bo evelution của các hãng, em thấy nó cũng dùng 2 con đó thôi ah. vẫn chạy phà phà ah

mtuankct
08-04-2009, 11:20 PM
Nối trực tiếp thế liệu nó có hỏng con IR do quá dòng khi khóa van không?
Chắc để mai em thử làm lại cái mạch vậy. Thanks anh nhiều!

nhatson.elec
08-04-2009, 11:24 PM
Nối trực tiếp thế liệu nó có hỏng con IR do quá dòng khi khóa van không?
Chắc để mai em thử làm lại cái mạch vậy. Thanks anh nhiều!

ko hòng được vì nó chí phóng điện trong cái tụ kí sinh cực G thôi mà

b/r

nhatson.elec
09-04-2009, 12:19 PM
Ah, con tụ bostrap theo tài liệu cần có điện trở tương đương thấp , ko kiếm được thì mác thêm con tụ 104 , loại Polyetylen (tụ như hộp nhựa) để hạ điện trở tương đượng xuống, cải thiện tốc độ nạp tụ

b/r

truongqt
27-04-2009, 10:28 AM
Không biết chủ đề còn hoạt động ko. Các bác cho mình hỏi: sơ đồ Ir2110 mình nối giống như sơ đồ (mình up lên dưới đây). Mình test thế này: cho chân input lên +5V, đo đầu ra tuơng ứng mà không thấy thay đổi trạng thái, input là 0V hay +5V thì đầu ra cũng vẫn là 0V. Không biết sai sót chỗ nào. Mong được tiền bối chỉ bảo. Thanks.

nhatson.elec
27-04-2009, 12:16 PM
phải lắp vào mạch có fet thì mạch bootrap mởi thấy hoat dộng. và Vcc cấp nguồn cho Ir2110 phải >10V .

b/r

truongqt
27-04-2009, 05:10 PM
Mình muốn test từng công đoạn, vì mình sợ nếu mạch IR2110 ko tốt rồi cháy mất mấy con IGBT thì toi. Mình muốn chắc chắn rằng mạch IR2110 hoạt động tốt rồi mới gắn vào với IGBT. Phía thấp (LIN) mình test thì thấy tốt, đã khuếch đại đc đầu vào. Phía cao (HIN), mình thay đổi trạng thái Logic vào (0 và +5V) nhưng đầu ra mình đo điện áp trên 2 chân HO và VS thì thấy ko có tín hiệu j cả (=0V). Các giá trị của các linh kiên như trong sơ đồ mình vẽ có sai ko vậy bạn.

nhatson.elec
27-04-2009, 06:07 PM
bác phải gắn vào mạch, ko gắn thì con high side ko hoạt động, trước khi kích con highside cần mở con lowside để nạp tụ bootstrap

nguồn cấp cho IR phải trên 10V

b/r

truongqt
28-04-2009, 02:58 PM
Mình sẽ gắn mạch thử xem. À, mạch IR2110 của minh ko có phần cách ly với PIC (vì ko mua đc con cách ly HCPLxxxx), mình ko biết là nó có ảnh hưởng j ko.

nhatson.elec
28-04-2009, 07:15 PM
ko vấn đề dì, nều muốn cách ly có thẻ dùng 6n137, ở chợ nhật tảo có bán con này tốc độ cao 10mhz, nhưng cứ xài thẳng, dùng áp trực tiếp sau chỉnh luu từ điện lưới thì mới cần thiết ah

b/r

truongqt
28-04-2009, 11:04 PM
ko vấn đề dì, nều muốn cách ly có thẻ dùng 6n137, ở chợ nhật tảo có bán con này tốc độ cao 10mhz, nhưng cứ xài thẳng, dùng áp trực tiếp sau chỉnh luu từ điện lưới thì mới cần thiết ah

b/r

Uh, cảm ơn bạn nha. Mình ở Đà Nẵng ko mua đc con cách ly đó. Mình đã làm xong, chạy ổn rồi, nhưng tải chỉ là mấy con led (test trước cho chắc). Ko biết nếu tải cỡ vài trăm oát thì thế nào.

nhatson.elec
29-04-2009, 07:11 AM
Khi lắp mạch với fet, lái công suất sẽ khác, khi đó sẽ xuất hiện rise time và falll time cho xung đóng mở fet>> chú ý die time

narutoluffy
05-12-2014, 10:16 PM
Em đang làm cái đề tài điều khiển động cơ BLDC dùng dsPIC
Động cơ của em là cái Hub motor công suất khoảng 250W, nguồn 24V
Mạch lực em sử dụng mosfet 60N06 với IR2110 để làm drive
Sơ đồ em attach luôn ở đây
Thuật toán đk ban đầu chưa có gì vì em chỉ mới làm nó quay mà chưa được
Đơn giản là đọc tín hiệu Hall về và đưa xung ra IR để mở van
PWM ở phía lowside hoạt động ở chế độ Override còn phía highside tương tự nhưng sẽ được AND với một xung pwm tần số 1kHz để duty khoảng 90% trở lại để đảm bảo chu kỳ phóng nạp của IR (em đang dùng con diode xung mua ở chợ trời nên chỉ chạy được 1kHz, em đã thử con schottky 1A thì có thể nâng tần số lên nhưng thỉnh thoảng lại thấy cháy con diode nên đi luôn cả con IR)
Em thử với cái động cơ nhỏ hơn công suất khoảng vài chục W thì mạch chạy tương đối ổn nhưng cứ cắm con độg cơ 250W vào là lại đi vài chú fet hoặc IR
PWM em đã thêm deadtime maximum rồi mà vẫn cứ cháy nổ ầm ầm
mà chẳng hiểu sao cháy luôn cả con IR, khi cháy thì thường là bị ngắn mạch giữa chân Vcc và LO, điện trở cực Gate em đang dùng con 8.2R nhưng đo thì toàn thấy là 9.5R
Bác nào giải thích hộ em cái là sai ở đâu?
Có gì em viết chưa rõ các bác cứ hỏi em sẽ bổ sung thêm
Thanks các bác :D
bác đã làm đc rồi ak/ bác có thể mail em(narutoluffy3810@gmail.com) file proteus với code đc ko? em chân ướt chân ráo đọc cái mạch của bác nhiều cái ko hiểu ko biết nối ntn?
em cảm ơn ak