Thiết kế chế tạo và thử nghiệm bộ điều khiển LinDrive

Trình bày những tìm hiểu xung quanh đối tượng động cơ thực tế sử dụng. Lý do của việc này là: Khi mua động cơ từ hãng cung cấp LinMot, bộ truyền động động cơ tuyến tính đã bao gồm compact một hệ thống động cơ+drive+phần mềm. Do vậy, các tài liệu hãng cung cấp chủ yếu trên quan điểm dành cho người sử dụng, lập trình ứng dụng (application). Các thông số về điện của động cơ là hết sức khiêm tốn, gây khó khăn nhất định cho công việc tiến hành thiết kế chế tạo và thử nghiệm bộ điều khiển LinDrive.

pdf29 trang | Chia sẻ: lvbuiluyen | Lượt xem: 2221 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Thiết kế chế tạo và thử nghiệm bộ điều khiển LinDrive, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
- 1 - LUẬN VĂN Thiết kế chế tạo và thử nghiệm bộ điều khiển LinDrive - 2 - GIỚI THIỆU Báo cáo sẽ bao gồm 03 phần:  Phần I: Trình bày những tìm hiểu xung quanh đối tượng động cơ thực tế sử dụng. Lý do của việc này là: Khi mua động cơ từ hãng cung cấp LinMot, bộ truyền động động cơ tuyến tính đã bao gồm compact một hệ thống động cơ+drive+phần mềm. Do vậy, các tài liệu hãng cung cấp chủ yếu trên quan điểm dành cho người sử dụng, lập trình ứng dụng (application). Các thông số về điện của động cơ là hết sức khiêm tốn, gây khó khăn nhất định cho công việc tiến hành thiết kế chế tạo và thử nghiệm bộ điều khiển LinDrive.  Phần II: trình bày những thao tác thực hiện thực nghiệm đối với mạch thiết kế theo phiên bản lần 1. Tuy nhiên, thực nghiệm cho thấy thiết kế này là không phù hợp với điều kiện nghiên cứu ban đầu. Thiết kế này sẽ phù hợp hơn trong điều kiện các nghiên cứu trước đó đã cho kết quả ổn định, cần tinh giảm linh kiện, hạ giá thành phù hợp cho thương phẩm. Phần III trình bày các cải tiến trong mạch thiết kế lần 2, trong đó bổ xung các mạch bảo vệ điện tử công suất, mạch CPLD để thay đổi linh hoạt phương thức kết hợp giao hoán các kênh điều khiển, các kết quả đo thực tế. - 3 - PHẦN I: THÔNG SỐ ĐỘNG CƠ VÀ CẢM BIẾN ĐI KÈM Các thông số được kèm theo catalog sản phẩm có như sau: Thông số Giá trị Đơn vị Lực tác động 39 (8,77) (Ibf/A) Dòng điện cực đại 15 A Điện trở pha 25/80°C 3.1/3.7 Ω Điện cảm pha 3.1 mH Loại sensor vị trí Sine/cosine Tốc độ cực đại 1.7 m/s Đường kính stator 48 mm Chiều dài stator 290 Mm Chiều dài slider 630 mm Các thông số trên đây rất khiêm tốn. Đặc biệt gần như không có thông tin về cảm biến vị trí gắn liền với động cơ. Thông tin cảm biến có được là:  Cảm biến dạng cách ly hiệu ứng Hall  Là dạng có chu kỳ lặp lại sin/cos  Được cấp điện áp vào là 5V. Có hai kênh điện áp ra, không có tín hiệu zero - 4 - Để có thể tìm hiểu cảm biến, nhóm nghiên cứu đã nối động cơ vào bộ điều khiển của chính hãng, lập trình để slider chuyển động theo quỹ đạo lặp lại với một tốc độ không đổi. Sử dụng chức năng quan sát bằng đồ thị (dữ liệu thu thập qua cổng COM RS232), thu được kết quả sau: Hình 1.1: Thí nghiệm cảm biến vị trí Trong đó  Đường 1: Tín hiệu Sine  Đường 2: Tín hiệu Cosine  Đường 3: Góc chuyển mạch  Đường 4: Vị trí tính toán - 5 - Phương pháp thử nghiệm: - Cấp nguồn 5V cho mạch sensor của động cơ - Dịch chuyển động cơ về cực hạn trái (điểm lấy mốc, khuyên sắt) - Dịch chuyển từ từ rotor sang trái (hướng người nhìn), đo max, min, bước của hai tín hiệu sensor 0.5V 2.5V 4.5V 0.3V 60mm (60/540mm length)Hướng trái Cực hạn trái (cơ khí) Sine_s = 2.5V Cosine_s=0.5V Sine Cosine Hình 1.2: Tương quan tín hiệu cảm biến và vị trí thực Từ các thí nghiệm, có kết luận về cảm biến vị trí như sau:  Điện áp nguồn nuôi 5V, điện áp ra là tín hiệu sine theo vị trí, có giá trị min = 0.5V, max=4.5V. Điểm zero của tín hiệu sine là điện áp 2.5V  Tín hiệu sine và cosine đúng lệch pha nhau π/2.  Chu kỳ của tín hiệu sine/cosine phản ánh bước cực nam châm trên thanh slider.  Mỗi cặp cực nam châm có chiều dài 60mm, tổng hành trình là 540mm (09 cặp). Từ thông số cảm biến có được, mạch phần cứng để nhận tín hiệu vị trí được tính toán như sau: - 6 - Hình 1.3: Trị số linh kiện cho mạch nhận tín hiệu cảm biến Tầng khuếch đại đầu bao gồm hai khuếch đại thuật toán U701A và U701B tạo thành mạch khuếch đại vi sai, hệ số khuếch đại là 1:1, mục đích tạo trở kháng cao đầu vào. Tầng thứ hai là tầng khuếch đại với hệ số khuếch đại là 5:3. Trong đó giá trị cực đại điện áp vào chọn là 5V, giá trị điện áp ra cực đại là 3V. Chọn R705 và R706 là điện trở 10k, vậy R hồi tiếp cần có là 6k. Tuy nhiên, điện trở 6k là loại linh kiện hiếm nên chọn giải pháp mắc song song hai điện trở 12k. Tụ C705 đóng vai trò chính trong mạch lọc thông thấp. Điện trở R713 và diode zener D704 đóng vai trò mạch bảo vệ điện áp vào kênh ADC của DSP. //ADCINA2, Sensor Sine RawData = (AdcRegs.ADCRESULT4>>4)&0x0FFF; // Remove 4 LSB unused bits Tmp = (float)(RawData*3.0)/4095.0; // Scale to 0-3V, integer calculating Tmp = Tmp*5/3; // Scale to 0-5V, float calculating Tmp = Tmp - 2.5; // Zero point is 2.5V if (Tmp>2.0) Tmp=2.0; // high limit - 7 - if (Tmp<-2.0) Tmp=-2.0; // low limit Tmp=Tmp/2.0; // Scale to [-1;1] p->fSinValue=Tmp; //ADCINB2, Sensor Cosine RawData = (AdcRegs.ADCRESULT5>>4)&0x0FFF; // Remove 4 LSB unused bits Tmp = (float)(RawData*3.0)/4095.0; // Scale to 0-3V, integer calculating Tmp = Tmp*5/3; // Scale to 0-5V, float calculating Tmp = Tmp - 2.5; // Zero point is 2.5V if (Tmp>2.0) Tmp=2.0; // high limit if (Tmp<-2.0) Tmp=-2.0;// low limit Tmp=Tmp/2.0;// Sclae to [-1;1] p->fCosValue=Tmp; Hình 1.4: Đoạn chương trình tính toán với cảm biến vị trí PHẦN II: THỰC HIỆN MẠCH LINDRIVE, V1.2 1. Vấn đề tụ boostrap: Điểm nổi bật của mạch điều khiển động cơ tuyến tính này là mạch công suất sử dụng hai cầu H (H-bridge) với phương án điều khiển van bằng kiểu mạch boostrap. - 8 - Hình 2.1: Mạch điều khiển van Boostrap Căn cứ vào tài liệu “AN-978: HV Floating MOS-Gate driver ICs”, trang 6, tính toán tụ boostrap như sau Tụ bootstrap trong mạch trên là tụ C532, tác dụng tạo ra một điện áp chênh so với VBUS để có thể mở van phía áp cao hơn Q531. Tụ được nạp trong thời gian van Q531 off, với giả thiết lúc đó van Q532 on, kéo thế chân Vs của IC U504 xuống GND (cho phép chênh thế 5V Vs-GND). Dòng nạp chảy từ Vcc(15V) qua diode D531 và trở R531 (Diode xung). Các yếu tố sau ảnh hưởng đến giá trị điện dung tụ bootstrap:  Điện áp ngưỡng mở cửa Gate của van  IQBS Dòng tiêu thụ tĩnh quiescent current khi không có xung PWM  Dòng của mạch nâng áp  Dòng rò tiếp giáp gate-source  Dòng rò tụ bootstrap Riêng dòng rò tụ bootstrap chỉ đáng để ý khi dùng tụ hóa. Trong trường hợp không cần thiết, không nên dùng tụ hóa. Loại tụ không-hóa (gốm…) có thể bỏ qua Công thức tính như sau: - 9 - ( ax) ( )2 2 qbs m Cbs leakg ls cc f LS Min I I Q Q f f C V V V V            Qg = Điện tích nạp high-side FET, IRF37100 là 130nC f = tần số điều chế, dự kiến f=10kHz ICbs(leak)= Dòng rò tụ. Bỏ qua vì dùng tụ dán Iqbs(max) = Dòng tĩnh cực đại của IC driver, IR2101 là 55uA Vcc = Điện áp nguồn nạp tụ, thiết kế 15V Vf = Điện áp rơi trên diode nạp. Trong trường hợp mạch trên khó xác định vì bao gồm cả điện áp rơi trên trở R531. Tạm lấy Vf là 1V VLS = Điện áp giữa chân 6 của driver IC với GND. Trong trường hợp mạch trên là điện áp rơi trên FET IR3710: RDS x IDSmax = 23mΩ x 57A ≈ 1.3 V VMin = Hiệu điện thế tối thiểu giữa VB và VS, IR2101 là 9V Qls= Điện tích để dịch mức (thường 5nC với loại dùng VBUS 600V, 20nC với loại 1200V). Lấy 5nC Kết luận: 6 9 9 3 55 102 2 130 10 5 10 10 10 146 15 1 1.3 9 C nF                Dùng tụ nhỏ hơn: Không mở được van  Dùng tụ lớn hơn nhiều: Hỏng diode xung  Chọn tụ: 224 hoặc 474 hoặc 105 2. Vấn đề kỹ thuật nạp trình lên flash on-chip của TMS320F2812: TMS320F2812 có 03 vùng nhớ để chứa chương trình do người dùng viết và nạp vào là:  Vùng nhớ SRAM-H0 (8k x 16): Nạp chương trình chạy tạm thời, bị xóa khi ngắt nguồn cung cấp - 10 -  Vùng nhớ Flash (128k x 16): Không bị hủy chương trình khi ngắt nguồn  Vùng nhớ ngoài XINTF: Giống như ROM ngoài với vi điều khiển 8 bit truyền thống. Việc DSP chọn vùng nhớ nào để lấy chương trình khởi động phụ thuộc vào một số chân chọn của chip. Trên thiết kế, các chân này đã được nối với các jumper chuyển để người dùng có thể chuyển chế độ boot. Khi nạp chương trình vào Flash, người dùng phải chuyển jumper sang vị trí chạy như sau để DSP có thể khởi động khi cấp nguồn Để nạp chương trình xuống DSP vào vùng Nhớ Flash hoặc SRAM-H0, phải thông qua giao diện JTAG. Có 02 phương thức để thực hiện việc này:  Dùng bộ “XDS510 USB JTAG Emulator” và các phần mềm SDConfig, SDFlash. Bộ “XDS510 USB JTAG Emulator” có một jack cắm vào cổng USB của máy tính, một jack 7x2 chân cắm vào card (xem trên trang  Trên card đã tích hợp sẵn chip JTAG để người dùng có thể nạp chương trình, debug thông qua giao diện LPT (máy in) trên PC bằng phần mềm Code Composer Studio (CCS) do Texas cung cấp. Tuy nhiên để CCS (của Texas) có thể giao tiếp với card ezDsp (của hãng Spectrum Digital) cần có driver riêng, được download từ trang web - 11 - Chú ý: phải download đúng version giữa CCS và driver. Ví dụ, CCS có version là 3.1 thì driver lấy tại Sau khi download, người dùng cần cài đúng vào vị trí cài đã cài CCS. Ngoài ra, cần download plugins tại https://www- a.ti.com/downloads/sds_support/C2000-3.1-SA-to-UA-TI- FLASH2X.htm Sau khi cài đặt plugins, có thể kiểm tra trực tiếp sự tồn tại của thư mục mới Flash28xx như dưới đây: Thiết lập môi trường cho Code Composer: CCS là phần mềm giao diện phát triển cho nhiều loại chip của Texas. Vì vậy, trước khi chạy phải thiết lập loại chip cần thiết. Bước thực hiện: Chạy Code Composer Setup (từ Start Menu hoặc Desktop) - 12 - Từ tab “Factory Boards”, chọn mục “F2812 eZdsp” sau đó nhấn nút “<<Add”. Nếu mục “F2812 eZdsp” không tồn tại trên danh sách, điều đó nghĩa là chưa cài đặt driver cung cấp bởi Spectrum Digital. Sau khi làm đúng, trên danh sách “My System” sẽ có tên board cần lập trình. Cuối cùng, nhấn nút “Save & Quit”. Cách viết chương trình để có thể nạp lên Flash: Chương trình viết chạy từ SRAM và chương trình chạy từ Flash Memory có gì khác nhau ? Câu trả lời: Khác nhau cơ bản là việc định nghĩa vùng nhớ chương trình cho các hàm và biến (dữ liệu). Theo cách lập trình của Code Composer, việc định nghĩa này được thực hiện thông qua file có đuôi - 13 - *.cmd. Một project có thể có một hoặc nhiều file *.cmd định nghĩa tên các vùng nhớ và địa chỉ cho các struct. Chương trình viết để chạy từ SRAM và chạy từ Flash về cơ bản không có khác biệt (ngoại trừ file *.cmd). Tuy nhiên, nếu hàm trong chương trình dùng tác động lên chính bộ nhớ Flash (ví dụ: khởi tạo các thanh ghi cho bộ nhớ Flash), bắt buộc phải chạy từ SRAM. Khi ấy, cần viết đoạn chương trình để copy code đoạn chương trình từ Flash sang SRAM để chạy (chi tiết xin tham khảo tài liệu SPRC097 của Texas). Các bước thực hiện nạp chương trình lên bộ nhớ Flash: Bước 1: Thêm file “f2812.cmd” vào chương trình  Mở chương project chương trình, loại bỏ tất cả các file *.cmd (nếu có) khỏi project bằng cách trỏ chuột chọn sau đó nhấn phím DEL trên bàn phím.  Dùng chức năng Project/Add Files to Project... để thêm file F2812.cmd vào project. File này được cung cấp theo các ví dụ về điều khiển động cơ (download từ trang của Texas). Bước 2: Kết nối với board DSP Dùng chức năng Debug/Connect hoặc nhấn Alt-C để Code Composer nối với card thông qua cổng LPT (chuyển thành JTAG nhờ chip JTAG). Nếu kết nối thành công, giao diện như sau - 14 - Các biểu tượng Run và Animate sẽ được active (màu xanh). Khi đó, board eZdsp đã sẵn sàng nhận chương trình. Bước 3: Nạp chương trình  Biên dịch chương trình để có được file đuôi *.out  Dùng chức năng Tool/F28xx On-chip Flash Programer hoặc nhấn nút tương ứng trên Toolbar để xuất hiện cửa sổ nạp trình Các thông số của cửa sổ này nên giữ nguyên như mặc định, trong đó chú ý: - 15 -  Tốc độ thạch anh OSCCLK là: 30MHz  Thông số PLLCR là: 10  Chế độ nạp là : “Erase, Program, Verify”  Nhấn nút “Flash Programer Setting...” để xuất hiện cửa sổ sau Để nạp được chương trình xuống Flash, Code Composer không nạp được trực tiếp mà phải thông qua một chương trình khác nạp trước xuống SRAM. Chương trình này tiếp nhận file *.out người dùng muốn nạp xuống Flash và ghi chúng xuống Flash. Vì vậy, quá trình này yêu cầu thao tác xóa/ghi/kiểm tra Flash. Texas Instrument gọi đó là Algorithm. Người nạp phải xác định file này cho chương trình thông qua cửa sổ “Flash Programmer Settings” trên đây. Nhấn vào nút “Browse...” để trỏ đến file algorithm (cũng là một file *.out). Trong trường hợp kiểm tra không thấy thư mục: CCS Dir\ plugins\Flash28xx\Algorithms\2812\ nghĩa là Plugins cho eZdsp chưa được cài đặt hoặc cài đặt không đúng. Nhấn OK để quay lại cửa sổ “On-chip Flash Programer”, nhấn nút “Execute Operation” và đợi đến khi quá trình nạp kết thúc. Chú ý: Trong quá trình nạp nếu mất điện sẽ khó có khả năng truy cập lại bộ nhớ Flash, do vùng Password bị ghi mọt giá trị bất kỳ. - 16 - 3. Các tồn tại của thiết kế LinDrive, v1.2: Sau khi lập chương trình thử nghiệm điều chế đơn giản, nạp xuống flash on-chip để đo đạc thử nghiệm, nhóm nghiên cứu phát hiện thấy rằng thiết kế có rất nhiều khiếm khuyết. Cụ thể như sau: Sử dụng IR2101 làm IC driver cho van công suất theo kiểu mạch boostrap là không hợp lý. Các van mở không được khóa chéo, hậu quả dẫn đến thông mạch VBUS-GND mỗi khi điều chế sai, kích thích nhiễu, sự cố nguồn.. Nên sử dụng thêm một IC CPLD, ví dụ như GAL16V08. Các tụ cùng loại CF611, C532 sai kích cỡ linh kiện trên mạch in Các IC PC817, phần mạch digital input, chân 3-4 bị chéo (nhầm từ bản vẽ nguyên lý) Các driver không dùng nguồn cách ly mà sử dụng kỹ thuật boostrap. Khi thử nghiệm không an toàn, điện áp cao có thể xâm nhập vào IC driver khi van bị đánh thủng dẫn đến điện áp cao xâm nhập phần mạch logic, phá hỏng hàng loạt linh kiện. Thực tế đã phá hỏng 03 card ezDsp. Kênh sin/cos encoder không cần thiết có diode phía đầu khuếch đại thuật toán vì ngưỡng điện áp tối thiểu đã là 0.5V (tối đa 4.5V) Việc đưa tín hiệu PWM ra theo dạng đảo, thông qua IC 74HCT14 (mục đích đảm bảo mức zero khi bị trạng thái “treo”) là không hợp lý. Nguyên nhân: tuy chân PWM của DSP có thể định nghĩa mức tích cực là high hoặc low. Tuy nhiên, phần deadtime chỉ được tính là một số dương, nghĩa là cho phép kênh sau (ví dụ PWM2) mở sau kênh trước (VD PWM1). Nếu nghịch đảo, xung kênh trước và sau trở thành chồng nên nhau (ngắn mạch DC bus). - 17 - Hình 2.2: Overlap xung điều khiển Phần nguồn sử dụng mạch ngoài không được hợp lý. Khi cấp nguồn, phần DSP cấp riêng, phần Driver cấp riêng dẫn đến không biết trước nguồn nào được cấp trước, nguồn nào sau dẫn đến có thể có trạng thái không xác lập không mong muốn, có thể dẫn đến sự cố. Phần cấp nguồn cho cảm biến dòng điện pha chưa có chân GND (Lỗi thiết kế). Chính vì những khiếm khuyết cơ bản trên của mạch nên nhóm quyết định thiết kế lại, bổ xung thêm các chức năng hợp lý và sửa chữa các khuyết tật của mạch LinDrive v1.2 - 18 - PHẦN III: PHẦN THỬ NGHIỆM MẠCH LINDRIVE V2.1 Các thay đổi trên thiết kế mới:  Thiết kế lại phần nguồn cấp.  Chuyển phương án mạch drive cho các van công suất từ phương án kiểu boostrap sang phương án dùng IC drive có bảo vệ quá dòng.  Bổ xung vào mạch điều chế phần tử logic lập trình được CPLD làm nhiệm vụ khóa chéo kênh điều chế (interlock), hoán đổi kênh điều chế linh hoạt.  Bổ xung các sai sót thiết kế cũng như sai sót thực hiện layout mạch. 1. Thiết kế lại phần nguồn: Bao gồm:  Nguồn cấp cho board mạch DSP, các IC logic họ TTL  Nguồn cách ly cho từng van riêng biệt  Phần nguồn cấp cho các IC họ CMOS và tạo áp chuẩn cho ADC giữ nguyên phương án cũ. Hình 3.1: Mạch phía sơ cấp các cuộn biến áp Mạch nguồn thiết kế theo phương án push-pull half-bridge (kéo/đẩy) Tính toán tần số: - 19 - 4 9 1 1 71.5 1.4 ( 150) 1.4 (10 150) 10T T f kHz R C          Thực tế kiểm tra: Hình 3.2: Điện áp sơ cấp biến áp push-pull Phần mạch tạo nguồn vi sai +/-15V cho các IC loại Op-Amp và nguồn 5V cho các IC TTL, đồng thời cấp cho mạch DSP như sau: Hình 3.3: Nguồn cho Op-Amp và TTL - 20 - Thực hiện mạch trong thực tế: Hình 3.4: Hình ảnh phần mạch nguồn Khi thực hiện thử nghiệm phiên bản LinDrive1.2 thấy rằng: Việc cách ly tín hiệu điều khiển đến van (xung PWM) là không đủ. Khi có sai sót thí nghiệm, van bị đánh thủng và ở trạng thái ba cực G-S-D thông nhau. Điện áp cao từ mạch lực, theo đường nguồn cấp cho IC drive đưa vào phá hủy các phần khác trong mạch. Phiên bản LinDrive2.1 thiết kế phần nguồn cách ly cho từng van riêng biệt và cũng sử dụng duy nhất một IC tạo xung push-pull phía sơ cấp. Phần tử công suất chịu dòng lớn sử dụng 02 van MOSFET loại IRF640. - 21 - Hình 3.5: Nguồn cách ly cho từng IC khiển van công suất Vì nguồn nuôi cho IC khiển van có thể nằm trong dải rộng từ 8V đến 30V nên chỉ cần một cầu chỉnh lưu phía thứ cấp biến áp là đủ, không cần IC ổn áp gây phức tạp mạch nguồn. 2. Mạch khiển van: Chuyển từ phương án Boostrap sang sử dụng IC khiển có chức năng bảo vệ cao hơn. Dùng nguồn cách ly hoàn toàn. Cụ thể trên mạch có 08 van công suất (hai cầu H), sử dụng 08 IC drive và 08 nguồn riêng biệt. IC HPCL316J có các đặc điểm chính sau:  Cách ly hoàn toàn phía logic và phía lực. Phía logic sử dụng nguồn riêng 4.5-5.5V, tương thích cả CMOS/TTL. Phía lực sử dụng nguồn riêng, chính bằng điện áp sẽ cấp đến chân van công suất.  Bảo vệ quá dòng, ngắt tín hiệu khiển đến van nếu phát hiện quá dòng. Nguyên tắc của việc này là chip nhận biết điện áp rơi trên lớp tiếp giáp D-S. Khi quá cao chính là khi quá dòng, chip ngắt tín hiệu mở tại chân G, khóa drive, báo lỗi nên rất an toàn trong điều kiện tiến hành thử nghiệm. - 22 - Hình 3.6: Mạch khiển van công suất Hình 3.7: Tín hiệu mở van tại chân Gate 3. Mạch bảo vệ logic và phối hợp tín hiệu PWM: Dựa trên kinh nghiệm thí nghiệm thi công thiết kế cũ, LinDrive v1.2 thấy rằng cần thiết có các mạch như sau:  Mạch Enable xung điều chế bằng khóa cứng (dù trong phần mềm đã có thể làm điều này). Điều này giúp cho mạch công suất thêm một tầng an toàn.  Phương án mạch công suất bao gồm 4 nhánh van song song, nối vào mạch một chiều trung gian. Điều này cho phép thực hiện linh hoạt nhiều phương án điều chế (đơn cực, lưỡng cực, vector không gian cho ba pha). Tuy nhiên, khi đó tín hiệu tự các chân PWM của chip DSP đưa ra đến các IC drive của van sẽ có sự thay đổi thứ tự. Điều này sẽ - 23 - được thực hiện tương đối đơn giản và thuận lợi nếu ta đặt giữa tầng DSP và Drive một IC khả trình kiểu CPLD.  Các tín hiệu PWM cần được khóa chéo nhau tránh trường hợp ngắn mạch một chiều. Đây là tầng bảo vệ cơ sở, trước tầng bảo vệ dòng được thực hiện trên mạch drive. Vì vậy, trong thiết kế LinDrive2.1, nhóm đưa vào thêm một cụm mạch dùng chip “trắng” CPLD để lập trình các logic cần thiết Hình 3.8: Mạch dùng CPLD EPM7064 Tín hiệu vào gồm có:  Toàn bộ 12 đường tín hiệu PWM từ DSP. Việc chọn tín hiệu nào xuất ra kênh đầu ra phụ thuộc vào việc cấu hình chip CPLD  08 kênh báo lỗi từ các IC drive  Tín hiệu Reset. Khi các IC drive chuyển sang chế độ bảo vệ quá dòng, các IC này sẽ chốt (latch) trạng thái bảo vệ cho đến khi có xung reset.  Tín hiệu Enable cho các kênh PWM. - 24 - Thực hiện phần khóa lỗi. Một trong các IC drive báo lỗi sẽ tạo thành xung ngắt, đưa về DSP: Hình 3.10: Config ngắt lỗi Thực hiện khóa chéo: Hình 3.11: Khóa chéo tín hiệu điều chế bằng phần cứng, phối hợp PWM_EN Kết quả thực nghiệm cho thấy mạch hoạt động rất hiệu quả. Các sai sót trong quá trình thử nghiệm được loại trừ hậu quả tối đa. 4. Kết quả thi công và thử nghiệm: Trang bên là một số hình ảnh của thiết bị và các đặc tính - 25 - Hình 4.1: Toàn bộ mạch thực hiện, từ góc trái Hình 4.2: Mạch LinDrive 2.1 nhìn từ trên xuống - 26 - Hình 4.3: Cận ảnh phần mạch drive van và bảo vệ Hình 4.4: Tín hiệu ra của chip CPLD, đưa đến IC drive - 27 - Hình 4.5: Tín hiệu điều chế tại chân IC drive, đo trên một nhánh cầu H Hình 4.6: Tín hiệu tại chân G-S, đo trên một nhánh cầu H - 28 - Hình 4.7: Điện áp trên cuộn dây pha A và