Nó được ứng dụngrộng rãi trong nhiều thiết bị hay hệ thống khác nhau như: cấp nguồn cho máy tính và laptop, các bộ sạc điện thoại, nạp pin từ năng lượng mặt trời… Trên thực tế đó, đồ án
Trang 1ĐỀ CƯƠNG SƠ BỘ ĐỒ ÁN TỐT NGHIỆP Giáo viên hướng dẫn: Ts Phạm Tuấn Anh
Sinh viên: Nguyễn Xuân Tùng MSV: 45861
Tên đề tài: “Nghiên cứu mô phỏng và lập trình điều khiển điện áp bộ biến đổi
3 Đối tượng và phạm vi nghiên cứu
4 Ý nghĩa khoa học và thực tiễn của đề tài
CHƯƠNG 1: GIỚI THIỆU KHÁI QUÁT VỀ ĐỐI TƯỢNG ĐIỀU KHIỂN
1.1 Giới thiệu các dòng chip Texas Instrument
1.2 Giới thiệu chip TI C2000 và ứng dụng
1.3 Giới thiệu các công cụ lập trình
1.4 Giới thiệu về mạch công suất DC – DC Buck
CHƯƠNG 2: LẬP TRÌNH NHÚNG TRÊN MATLAB VÀ CODE COMPOSER STUDIO
2.1 Giới thiệu Matlab
2.2 Khái nhiệm lập trình nhúng trên Matlab và thư viện Texas InstrumentC2000 trên Matlab
2.3 Giới thiệu và lập trình nhúng trên Code Composer Studio
Trang 22.4 Xây dựng ví dụ lập trình nhúng trên Matlab và Code Composer Studiovới vi xử lý C2000
CHƯƠNG 3: CẤU TRÚC BỘ BIẾN ĐỔI DC-DC BUCK, LẬP TRÌNH VÀ
MÔ PHỎNG
3.1 Giới thiệu về bộ thí nghiệm điện tử công suất của hãng TI BuckConverter
3.2 Điều khiển bộ biến đổi DC - DC
3.3 Tổng hợp cấu trúc bộ điều khiển
3.4 Kết quả mô phỏng trên Matlab sử dụng Simulink
3.5 Kết quả theo dõi các thông số thực nghiệm của bộ biến đổi trên phầnmềm CCS chế độ Debug
KẾT LUẬN
TÀI LIỆU THAM KHẢO
Giáo viên hướng dẫn Sinh viên thực hiện
Trang 3MỤC LỤC
BẢNG CÁC CHỮ CÁI VIẾT TẮT TRONG TKMH 5
DANH MỤC CÁC BẢNG 5
DANH MỤC CÁC HÌNH 5
1 Tính cấp thiết của đề tài 9
2 Mục đích nghiên cứu đề tài 9
3 Đối tượng, phạm vi nghiên cứu đề tài 9
4 Phương pháp nghiên cứu 9
5 Ý nghĩa khoa học và thực tiễn của đề tài 10
CHƯƠNG 1: GIỚI THIỆU KHÁI QUÁT ĐỐI TƯỢNG NGHIÊN CỨU 11
1.1 Giới thiệu các dòng chip Texas Instrument 11
1.1.1 Giới thiệu các dòng chip họ C2000 11
1.1.2 Các đặc điểm chính của dòng chip C2000 11
1.2 Các dòng chip TI C2000 và ứng dụng 14
1.3 Giới thiệu các công cụ lập trình 16
1.3.1 Phầm mềm CCS – Code Composer Studio 16
1.3.2 Sử dụng môi trường lập trình đồ họa ViSsim 17
1.3.3 Matlab và gói phần mềm hỗ trợ lập trình cho DSP TIC2000 17
1.4 Giới thiệu về bộ biến đổi công suất DC-DC Buck 18
1.4.1 Mô tả bộ biến đổi DC-DC Buck 18
1.4.2 Nguyên lý hoạt động của bộ biến đổi 18
CHƯƠNG 2: LẬP TRÌNH NHÚNG TRÊN MATLAB VÀ CODE COMPOSER STUDIO 21
2.1 Giới thiệu Matlab 21
2.2 Khái niệm lập trình nhúng trên Matlab và thư viện Texas Instrument C2000 trên Matlab 21
2.2.1 Lập trình nhúng trên Matlab 21
2.2.2 Cài đặt liên kết giữa Matlab và CCS 22
2.2.3 Cài đặt thư viện TI C2000 22
2.2.4 Thư viện Texas Instrument C2000 trên Matlab 25
2.2.5 Các khối trong thư viện C2000 26
CHƯƠNG 3: CẤU TRÚC BỘ BIẾN ĐỔI DC-DC BUCK, LẬP TRÌNH VÀ MÔ PHỎNG 41
3.1 Giới thiệu về bộ thí nghiệm điện tử công suất của hãng TI Buck Converter 41
3.1.1 Mạch Buck và thiết bị điều khiển số xử lý tín hiệu số 41
3.1.2 Cấu trúc mạch lực trên board Buck 42
Trang 43.2 Điều khiển bộ biến đổi DC-DC buck 46
3.2.1 Nguyên lý hoạt động của bộ DC-DC buck 46
3.2.2 Cấu trúc điều khiển bộ DC-DC buck 48
3.3 Tổng hợp cấu trúc điều khiển DC-DC 50
3.3.1 Cấu trúc chung của hệ thống điều khiển điện tử công suất bằng điều khiển số 50
3.3.2 Phân tích đưa bộ điều khiển PID vào miền số 51
3.3.3 Xây dựng chương trình điều khiển bộ biến đổi Buck dựa trên bộ điều khiển PID 53
3.4 Kết quả mô phỏng trên Matlab sử dụng Simulink 55
3.4.1 Mô phỏng bộ điều khiển PID và bộ xử lý dữ liệu điều chế PWM 55
3.4.2 Mô phỏng ghép nối bộ điều khiển vào đối tượng và hoàn thiện hệ thống 57
3.4.3 Kết quả mô phỏng hệ thống 58
3.5 Kết quả theo dõi các thông số thực nghiệm của bộ biến đổi trên phần mềm CCS chế độ Debug 60
KẾT LUẬN 63
TÀI LIỆU THAM KHẢO 64
Trang 5BẢNG CÁC CHỮ CÁI VIẾT TẮT TRONG TKMH
CCS Code Composer Studio Phần mềm lập trình
SFRA Software Frequency Response
Analyzer
Phần mềm phân tích điều khiển
sốDSP Digital signal processing Thiết bị xử lý số
1.5 (a) Sơ đồ mạch lực (b) Sơ đồ khi van S mở
(c) Sơ đồ khi van S đóng
19
2.1 Cài đặt chương trình trình dịch từ Matlab 22
Trang 62.16 Giao diện tạo mới dự án chương trình 322.17 Giao diện đưa chương trình có sẵn vào CCS 332.18 Giao diện cửa sổ Target Configurations 33
Trang 72.25 Thư viện và code sau khi build 37
3.3 Board kết nối với thiết bị điều khiển số 42
3.8 Dòng điện ổn định qua tải bộ dc-dc Buck 47
3.10 Cấu trúc điều khiển Buck ở chế độ điện áp 483.11 Cấu trúc điều khiển dòng điện trung bình bộ dc- dc buck 493.12 Cấu trúc điều khiển dòng điện đỉnh bộ dc- dc buck 493.13 Cấu trúc hệ điều khiển điện tử công suất-số 50
3.17 Sơ đồ chuyển đổi bộ điều khiển PID miền số 543.18 Thể hiện hàm truyền của bộ điều khiển 553.19 Xử lý tín hiệu từ bộ điều khiển và đối tượng 56
Trang 83.20 Bộ điều khiển trên trình mô phỏng Simulink – Matlab 563.21 Bộ biến đổi Buck trên chương trình mô phỏng 563.22 Ghép nối bộ Buck với tải tạo thành đối tượng điều khiển 573.23 Toàn bộ cấu trúc mô phỏng của hệ thống 58
3.28 Điện áp đầu ra hệ thống thực với tải cố định 613.29 Điện áp đầu ra hệ thống thực với tải gián đoạn 62
Trang 9LỜI MỞ ĐẦU
1 Tính cấp thiết của đề tài
Ngày nay, các bộ biến đổi sử dụng trong các hệ thống rất thông dụng bởi hiệusuất va chất lượng điện áp Các bộ biến đổi điện áp một chiều là một trong những
bộ biến đổi được sử dụng nhiều nhất Trong đó, bộ biến đổi giảm áp (BuckConverter) sẽ cho điện áp đầu ra giảm đi so với điện áp đầu vào Nó được ứng dụngrộng rãi trong nhiều thiết bị hay hệ thống khác nhau như: cấp nguồn cho máy tính
và laptop, các bộ sạc điện thoại, nạp pin từ năng lượng mặt trời…
Trên thực tế đó, đồ án này nghiên cứu về bộ biến đổi DC-DC Buck với đề tài
có tên là: “Nghiên cứu mô phỏng và lập trình điều khiển bộ biến đổi DC-DC Buck”
2 Mục đích nghiên cứu đề tài
- Tìm hiểu khái quát về các bộ biến đổi DC – DC
- Thiết kế lập trình và điều khiển số bộ DC – DC Buck
- Tìm hiểu về các công cụ lập trình nhúng với sản phẩm vi xử lý của TexasInstruments
- Mô phỏng bộ biến đổi Buck
3 Đối tượng, phạm vi nghiên cứu đề tài
- Phần mềm Matlab phần lập trình nhúng, phần mềm lập trình CodeComposer Studio, board thí nghiệm biến đổi công suất Buck và bộ điều khiển mạchBuck DSP F28069 của hãng Texas Instruments
- Phạm vi nghiên cứu: tìm hiểu về bộ biến đổi, mô phỏng vòng kín của hệthống trên phần mềm Matlab Simulink, xây dựng chương trình điều khiển hệ thống
4 Phương pháp nghiên cứu
- Tìm hiểu về cấu trúc bộ biến đổi, nguyên lý hoạt động của bộ DC – DCBuck từ đó phân tích và đưa ra hệ thống điều khiển vòng kín
- Tiến hành mô phỏng và chạy thực nghiệm để đánh giá hệ thống
Trang 105 Ý nghĩa khoa học và thực tiễn của đề tài
- Ý nghĩa khoa học: Nghiên cứu điều khiển bộ biến đổi Buck sẽ tăng thêmhàm lượng kiến thức về điều khiển số với các thiết bị điện tử công suất
- Thực tiễn đề tài: Từng bước làm quen với các thiết bị xử lý tín hiệu số củahãng TI cũng như thêm những kinh nghiệm về thiết kế hệ thống điện tử công suất -điều khiển số
Trong quá trình thực hiện đồ án này có nhiều sai sót hi vọng quý thầy côthông cảm và bỏ qua Em xin chân thành cảm ơn!
Sinh viên thực hiện
Nguyễn Xuân Tùng
Trang 11CHƯƠNG 1: GIỚI THIỆU KHÁI QUÁT ĐỐI TƯỢNG NGHIÊN CỨU 1.1 Giới thiệu các dòng chip Texas Instrument
1.1.1 Giới thiệu các dòng chip họ C2000
C2000 Microcontroller là dòng vi điều khiển 32-bit được thiết kế để sử dụngtrong các vòng kín một cách tối ưu
- Điều khiển trong môi trường thời gian thực
Hình 1.1: Hệ thống vòng kín điều khiển điện tử công suất
Xử lý đáp ứng hệ thống, các phản hồi hệ thống, kiểm soát hệ thống với độtrễ tối ưu
Thu thập dữ liệu cảm biến nhanh chính xác, hiệu suất tối đa
Tối ưu độ trễ của điều khiển vòng lặp
Cấu hình mạnh mẽ, tối ưu để thực hiện các chương trình điều khiển với hiệusuất tốt
Ứng dụng điều khiển hệ thống vòng kín như điều khiển động cơ, bộ biến đổiđiện tử công suất, biến tần, hệ điện mặt trời
Trang 12- Khả năng xử lý mạnh mẽ
Hình 1.2: Điều khiển hai bộ biến đổi công suất trong cùng một MCU
Lõi 32bit C28 DSP xử lý các công việc thu thập và xử lý trong một chutrình, cung cấp hiệu suất cao trên mỗi MHz so với MCU thường
Lõi CLA Real-time Coprocessor tăng gấp đôi năng lực xử lý Độc lập điềukhiển nhiều động cơ, nhiều bộ biến đổi, và nhiều thiết bị khác
Accelerators tăng năng suất của việc thu thập xử lý tín hiệu bằng cách tăngtốc phần cứng làm giảm độ trễ
- Giải pháp tối ưu
Hình 1.3: Độ phân giải kênh PWM tối ưu
Công nghệ Micro Edge Positioning tạo ra các cặp PWM ngược nhau chínhxác và tăng hiệu suất hệ thống
Trang 13 Technology-packed PWM modules hỗ trợ thời gian chính xác và kỹ thuậttân tiến để điều khiển các hệ thống phức tạp cao.
PWM trip logic cung cấp hệ thống bảo vệ nhanh nhạy và không đồng bộ vớihiệu quả cảm biến cao
- Cảm biến chính xác với độ phân giải cao
Tối đa độ nhạy và độ chính xác của dòng phản hồi nhờ thời gian trích mẫungắn và độ phân giải cao
Hình 1.4: Thời gian trích mẫu tới 12.5 MSPS
Tăng tần số trích mẫu với kênh đo tương tự ADC lên tới 12.5 mega/s(MSPS)
Bảo vệ hệ thống thời gian thực với bộ so sánh tín hiệu tương tự phản ứngnhanh 50ns thời gian đáp ứng
Cảm biến hiệu suất tăng cường với độ phân giải cao
- Đang được phát triển đầu tư
Đang dần được cải thiện về mặt tính năng và hiệu suất
Tính năng đa dạng và đa dụng trong nhiều hệ thống
Kích thước bộ nhớ flash tích hợp từ 16 KB đến 1 MB
Hoạt động trong dải –40°C to 125°C
Nhiều gói sản phẩm ứng dụng đi kèm (điện tử công suất, điều khiển độngcơ)
Trang 14- Những giải pháp ứng dụng
Những sản phẩm của vi điều khiển C2000 được cung cấp những phần mềmchuyên dụng cũng như tài nguyên phần cứng để dễ dàng thiết kế và tối ưu hóa hiệusuất hệ thống
Phần mềm công nghệ tân tiến, ví dụ như phần mềm instaSPIN điều khiểnđộng cơ, Power Suite thiết kế hệ thống điện tử công suất…
Tham khảo thiết kế các phần cứng thực tế và các nền tảng phát triển ứngdụng cho điều khiển động cơ, điện mặt trời, chiếu sáng LED…
Hướng dẫn kỹ thuật sát với những dự án
Cung cấp thiết bị và ứng dụng học tập theo yêu cầu
1.2 Các dòng chip TI C2000 và ứng dụng
- C2000 Piccolo MCUs
Là dòng chip giá rẻ cho điều khiển thời gian thực như là các thiết bị gia dụng,bơm, các driver điều khiển trong công nghiệp, sạc ắc quy, điện - mặt trời với các
ưu điểm sau:
Hiệu suất mạnh mẽ: Hai lõi xử lý, tích hợp xử lý các phép tính lượng giác, cókhả năng tang tốc độ xử lý lên đến 7 lần
Lõi xử lý CLA phụ trợ: Hoạt động như là một hệ thống kép với một lõi phụtrợ Hệ thống phân vùng các nhiệm vụ nặng nề như vòng lặp tần số cao cho lõiCLA (lõi phụ ) và tăng băng thông của lõi chính CLA có thể truy cập điều khiểncác thiết bị để điều hành các công việc mà không có sự can thiệp từ lõi chính Vìvậy có thể ứng dụng trong các hệ thống có nhiều động cơ, cùng với hệ thống đènLED chiếu sáng đi kèm với đường dây thông tin giao tiếp và hơn thế nữa
Với các thiết bị ngoại vi điều khiển tập trung: Thiết kế hợp lý để làm cho cácứng dụng có độ phản ứng nhanh Kênh PWM hỗ trợ nhiều thuật toán điều khiển và
độ phân giải cao làm cho hệ thống có hiệu suất cao Kệnh PWM có thể kích hoạthoặc tắt trong thời gian rất nhanh trong khoảng 20ns
Trang 15Giảm độ phức tạp của hệ thống với các thiết bị ngoại vi đi kèm cho việc thiết
kế điều khiển thời gian thực: Ba kênh ADC hoạt động động lập thích hợp cho việctheo dõi 3 pha của động cơ Bảo vệ phần mạch lực với kênh so sánh tương tự kếtnối trực tiếp với kênh PWM Kênh DAC 12 bit có thể sử dụng trong nhiều mụcđích
Các mã vi điều khiển tiêu biểu: F28035, F28069, F2807x…
- C2000 Delfino MCUs
Là dòng chip hiệu suất cao tích hợp các thiết bị ngoại vi tương tự cung cấpcho các hệ thống thời gian thực hướng tới các ứng dụng yêu cầu tín hiệu lớn nhưdriver servo, nghịch lưu, bộ công suất điện mặt trời, các bộ UPS công nghiệp, giaotiếp các đường dây điện, radar và hơn thế nữa
Hiệu suất cực mạnh: Lõi C28x DSP 32-bit kết hợp với lõi CLA phụ trợ nhờvậy mà tăng khả năng xử lý kèm theo đó là khả năng xử lý toán học rất tốt
Giảm độ trễ hệ thống: Đẩy mạnh tốc độ xử lý của lõi C28x và đồng thời lõiCLA phụ trợ sẽ giảm bớt gánh nặng đến từ lõi chính Hỗ trợ xử lý toán học lượnggiác…
Cho thấy sự khác biệt với kênh tương tự hiệu suất cao: Hệ thống mạnh củachip được cấu trúc cho tốc độ và hệ thống điều khiển chính xác Đó chính là cáckênh ADC, DAC, PWM Các kênh này được thế kế sao cho khi gặp sự cố chip cóthể bảo vệ các tầng mạch lực hiệu quả
Kiểm soát các thiết bị ngoại vi: Điều khiển hợp lý để cho chương trình phảnứng nhanh hơn Có thể điều khiển chính xác các thiết bị như driver của các bộ biếnđổi, bộ biến đổi điện mặt trời, các bộ điện tử công suất Kênh PWM độ phân giảicao và hỗ trợ nhiều thuật toán điều khiển Hệ thống sẽ phản ứng cực nhanh vớiviệc kích hoạt hoặc tắt kênh PWM trong khoảng 20ns
Mở rộng các giao tiếp: Cung cấp các giao tiếp truyền thông như CAN, SPI,SCI Giao diện USB và cổng song song 16-bit
Các mã vi điều khiển tiêu biểu: F2833x, F2837x, F2834x…
Trang 16- C2000 InstaSPIN MCUs
Hỗ trợ điều khiển bất kì một động cơ ba pha nào một cách nhanh chóng và dễdàng với công nghệ InstaSPIN mà không yêu cầu thông số động cơ Đây là giảipháp thiết kế điều khiển động cơ dễ dàng với cả hệ thống phức tạp và ứng dựngđơn giản Như vậy ứng dụng của loại chip này là vào lĩnh vực điều khiển các động
độ chính xác của các phép tính
Một số sản phẩm hỗ trợ F28235, F2812,F2811…
1.3 Giới thiệu các công cụ lập trình
1.3.1 Phầm mềm CCS – Code Composer Studio
CCS – Code Composer Studio là phần mềm lập trình nhúng của TexasInstruments cho các hệ DSP cũng như MCU của hãng này Bao gồm việc viết codenhúng, trình biên dịch, liên kết và debug chương trình Ưu điểm của CCS là khảnăng kết nối với phần cứng, debug trực tiếp với hệ thống Để kết nối được với hệthống thì cần phải thiết lập kết nối trung gian qua một phần cứng giao tiếp CCS với
hệ thống đó
Để nạp chương trình vào DSP và cho chạy chương trình này, ta làm như sau:
Thực hiện kết nối phần cứng với máy tính qua cổng USB
Kiểm tra kết nối CCS: Chọn View > Target Configurations
Trong Connection chọn Texas instruments XDS100v2 USB Debug Probe(hoặc có thể là thiết bị trung gian khác) Tích chọn TMS320F28069 Click save vàTest Connection để kiểm trả kết nối
Để mở chương trình : Chọn File > Import
Trang 17 Sau khi đã load được chương trình vào trong CCS Click Project > BuildProject Nếu dịch không thành công thì sẽ có thông báo dịch xong chương trình.Nếu báo lỗi sẽ hỗ trợ tìm đến dòng lệnh có lỗi.
Để nạp code vào vi xử lý: Click Run > Debug với chế độ này thì chươngtrình sẽ chạy thử với sự giám sát của người lập trình Có thể nạp thẳng vào bộ nhớFlash hoặc Ram tùy mục đích của người sử dụng
1.3.2 Sử dụng môi trường lập trình đồ họa ViSsim
ViSsim là môi trường phần mềm phát triển tích hợp, cho phép xây dựng mộtcách nhanh chóng bộ điều khiển nhúng trên họ C2000 của Texas Instruments
Người lập trình sử dụng các khối cho bộ điều khiển hay bộ lóc để tạo ra codebiên dịch và liên kết nạp Sau đó có thể dễ dàng so sáng jết quả mô phỏng và thựcnghiệm
VisSim/Embedded Control Developer bao gồm:
VisSim PE: Môi trường để xây dựng các khối chường trình và mô phỏng
VisSim/Fixed Point : Các khối xử lý số học dấu phẩy tĩnh và mô phỏng vàcác phép toán dấu phẩy tĩnh
TI C2000 Digital Motor Control (DMC) Block Set : Các khối thư viện hỗtrợ điều khiển động cơ
Liên kết visSim-Code Composer Studio (CCS)
Tự động tạo mã lệnh TI C2000 DSP target và CCS
Hỗ trợ TI C2000 CAN Bus
1.3.3 Matlab và gói phần mềm hỗ trợ lập trình cho DSP TIC2000
Matlab là một chương trình phần mềm lớn của lĩnh vực tính toán mô phỏng
xử lý số Matlab dung trong các ứng dụng trong khoa học kỹ thuật nhờ khả năng
xử lý toán học mãnh mẽ và có các thư viện toolbox lớn sử dụng để mô phỏng hayđiều khiển trực tiếp từ Matlab
Một tiện ích được phần mềm matlab hỗ trợ và được sử dụng rộng rãi hiện nay
là lập trình nhúng và thu thập dữ liệu từ hệ thống nhúng Matlab có các gói công cụ
Trang 18cho từng loại vi xử lý nhúng và hỗ trợ mạnh cho vi xử lí tín hiệu số của TexasIntrument bao gồm các họ vi xử lý C2000, C5000, C6000.
Các bước để lập trình cho DSPTI C2000
Xây dựng chương trình trên simulink
Mô phỏng
Build code
Nạp chương trình cho C2000 thông qua chương trình CCS
Chạy chương trình và debug
1.4 Giới thiệu về bộ biến đổi công suất DC-DC Buck
1.4.1 Mô tả bộ biến đổi DC-DC Buck
Bộ biến đổi DC-DC Buck (hay còn gọi là bộ biến đổi giảm áp) là một bộ biếnđổi công suất từ điện áp một chiều sang điện áp một chiều với điện áp đầu ra giảm
đi (trong khi tăng dòng giữ nguyên công suất) so với đầu vào (nguồn nuôi) để cấpcho tải Bộ biến đổi sử dụng ít nhất hai phần tử bán dẫn (điốt và transistor hoặc haicặp transistor với thiết kế mới) và ít nhất một phần tử tích lũy năng lượng tụ điện,cuộn cảm hoặc cả hai kết hợp Để tăng chất lượng điện áp, bộ lọc được làm bởi tụđiện thường được thêm vào ở đầu ra và ở đầu vào bộ biến đổi Hiện nay bộ biếnđổi thường thiết kế đi kèm với điều khiển vòng kín
Bộ biến đổi này cho hiệu quả nhiều hơn so với những mạch ổn áp, mạch ổn
áp sẽ cho điện áp thấp hơn bởi tiêu tốn nhiệt năng mà không làm tăng thểm dòngcho đầu ra tải
Bộ biến đổi Buck có thể cho hiệu quả đáng kể để dung trong nguồn máy tính(từ 12v xuống thấp hơn), trong hệ thống biến đổi năng lượng mặt trời (sạc pin vớinăng lượng mặt trời)…
1.4.2 Nguyên lý hoạt động của bộ biến đổi
Nguyên lý hoạt động của bộ biến đổi Buck khá đơn giản, với một cuộn cảmtích lũy dòng điện, hai van bán dẫn (hai transistor hoặc một transistor và một điốt)
để điều khiển bộ biến đổi và các bộ lọc đầu ra
Trang 19Hình 1.5: (a) Sơ đồ mạch lực (b) Sơ đồ khi van S mở.
(c) Sơ đồ khi van S đóng
Khi khóa S được đóng tức là nối nguồn vào mạch thì lúc đó dòng điện đi quacuộn cảm và dòng điện tích lũy trong cuộn cảm tăng lên, lúc này tụ điện được nạpđồng thời đầu ra cung cấp dòng điện qua tải Dòng điện được mô tả như hình vẽ1.5 (b)
Khi khóa S được mở ra nguồn bị ngắt ra khỏi mạch Khi đó cuộn dây tích lũynăng lượng từ trường sẽ phóng dòng điện và tụ điện điện được tích lũy điện áptrước đó sẽ phóng qua tải Cuộn cảm giữ cho dòng điện ngược với chiều biến thiên
Trang 20dòng điện và dòng điện này giảm dần Dòng điện trong thời điểm này như trênhình vẽ 1.5 (c).
Quá trình đóng cắt liên tục tạo cho đầu ra một điện áp trung bình theo quyluật băm xung PWM Dòng điện qua tải sẽ ở dạng xung tam giác do cuộn dây nạp
và phóng hỗ trợ nguồn nuôi đảm bảo cho dòng liên tục qua tải Tần số đóng cắtkhá cao để đảm bảo loại bỏ nhiễu công suất cho mạch Các khóa điện tử thường sửdụng các van như Transistor tốc độ cao, IGBT hoặc Mosfet
Trang 21CHƯƠNG 2: LẬP TRÌNH NHÚNG TRÊN MATLAB VÀ CODE
COMPOSER STUDIO 2.1 Giới thiệu Matlab
Matlab là một phần mềm tính toán kỹ thuật dựa trên cơ sở toán học,được viết tắt từ Matrix Laboratory, là một chương trình phần mềm lớn của lĩnh vựctính toán số Matlab được ứng dụng rộng rãi trong khoa học kỹ thuật nhờ khả năng
xử lý toán học rất mạnh và có số lượng thư viện công cụ lớn để mô phỏng hay điềukhiển thời gian thực từ matlab, cho phép tính toán số học với ma trận, vẽ biểu đồthông tin, đồ thị hàm số hay thực hiện thuật toán, tạo các giao diện người dùng vàliên kết với những chương trình máy tính viết trên nhiều ngôn ngữ lập trình khác.Với những ưu điểm trên Matlab trở thành công cụ tin cậy trong các ngành kỹ thuậtPhần mềm bao gồm ba bộ công cụ quan trọng đó là:
MATLAB Product Family (tính toán số, lập trình, phân tích dữ liệu, hiển thị
Lập trình nhúng trên Matlab thực chất là gói thư viện thêm vào của phần mềm
mô phỏng Simulink trong Matlab Trong gói này thay vì lập trình bằng các ngônngữ lập trình truyền thống như Assembly, C/C++, Matlab cho chúng ta khả nănglập trình bằng khối Ta có thể lần lượt kéo các khối như GPIO, ADC, PWM… ra
và lập trình với các thuật toán bằng cách kéo các khối logic, toán học khác Góinày có tên là TI C2000 Support form Embedded Coder, cho phép tạo ra các file
Trang 22ngôn ngữ C để nhúng vào vi điều khiển thông qua phần mềm Code ComposerStudio Vì vậy, ta có trình tự lập trình nhúng trên Matlab: Đưa các khối vào file lậptrình; nhờ gói hỗ trợ dịch sang ngôn ngữ C; dịch và nạp chương trình vào vi điềukhiển
Như vậy lập trình nhúng trên Matlab sẽ hỗ trợ về mặt mô phỏng, tính toán các
bộ điều khiển và phương pháp lập trình trực quan, gần gũi
2.2.2 Cài đặt liên kết giữa Matlab và CCS
Tiến hành mở Matlab tại cửa sổ Command Window Từ dấu nhắc gõ lệnh:
Hình 2.1: Cài đặt chương trình trình dịch từ Matlab
Trang 232.2.3 Cài đặt thư viện TI C2000
Từ cửa sổ Command Window, nhập lệnh để cài đặt gói TI C2000 cho thư
viện Simulink:
- targetupdater
Sau khi gửi yêu cầu chương trình sẽ hiện ra cửa sổ cài đặt gói hỗ trợ
Hình 2.2: Cài đặt gói hỗ trợ C2000 TIChọn gói Texas Instruments C2000 (Embedded Coder) và ấn Next
Hình 2.3: Chọn công cụ liên kết
Trang 24Tại Toolchain chọn bản Code Composer Studio giống với bản đã chọn trong càiđặt liên kết giữa Matlab với Code Composer Studio Click next để tiếp tục Tiếptheo là cài đặt phần mềm thứ ba hỗ trợ gói TI C2000 Embedded là ControlSUITE
và trình biên dịch của Code Composer Studio Với controlSUITE là phần mềm hỗtrợ người sử dụng các sản phẩm của Texas Instruments với các hướng dẫn và đưa
ra các công cụ giúp ích cho việc học tập, làm việc Liên kết Matlab với hai phầnmềm trên sẽ đảm bảo gói hỗ trợ trên hoạt động
Hình 2.4: Cài đặt phần mềm bên thứ 3
Trang 25Hình 2.5: Cài đặt biên dịch codeTìm đến tools\compiler để cài đặt biên dịch code Nhờ chương trình này màMatlab có thể dùng để dịch ngôn ngữ lập trình theo khối sang ngôn ngữ C đưasang CCS nạp vào các dòng vi điều khiển của TI
Tiếp theo, chỉ cần ấn các thanh next và confirm là có thể hoàn thành việc càiđặt trên
2.2.4 Thư viện Texas Instrument C2000 trên Matlab
Để sử dụng thư viện sử dụng Matlab – Simulink cho dòng DSP C2000 ta làm
theo các bước:
Bước 1: Khởi động thư viện c2000lib: Từ cửa sổ Command Window gõ lệnh
“C2000lib” để mở thư viện , bao gồm các khối thư viện được xây dựng dòngC2000 lập trình trên Matlab
Trang 26Hình 2.6: Thư viện TI C2000
a Khái quát chung về các khối trong thư viện c2000lib
C2000 RTDX intrumentation : khối này thêm kênh truyền thông RTDX vào
Trang 27 C2834x (c2834xlib) — Blocks to configure the C2834x eZdsp DSK or onC2834x-based custom boards
c Các thư viện tối ưu hóa
Các thư viện tối ưu hóa bao gồm
C28x IQ math library ( tiiqmathlib) : Bao gồm các khối toán học dấu phẩytĩnh cho C28x Target
28x DMC Library ( c28xdmclib) : Bao gồm các khối toán học dấu phẩy tĩnhphục vụ cho điều khiển số động cơ cùng với C28x DSP
2.2.5 Các khối trong thư viện C2000
a GPIO
Hình 2.7: Khối GPIOKhối GPIO có mục đích chung kiểm soát thanh ghi MUX để chia các đầu vào
ra số Mỗi cổng I/O có một thanh ghi MUX được dùng để chọn hoạt động các thiết
bị ngoại vi hoặc đầu vào ra số Khi đầu vào là tín hiệu số thì đầu ra có thể là tínhiệu số hoặc thiết bị ngoại vi 1 chân chọn làm đầu vào thì ko thể làm đầu ra
Kiểu dữ liệu đầu vào là số nguyên 16 bit và sau đó được biến đổi thành kiểu
dữ liệu đã chọn
b Watchdog
Trang 28Hình 2.8: Khối WatchdogKhối này thiết lập bộ đếm cho modul watchdog để reser DSP.
Hình 2.9: Cài đặt khối WatchdogWatchdog couter reset source :
Input : Tạo ra một cổng đầu vào trên khối watchdog Đầu vào tín hiệu reset
Trang 29Thiết lập khối ADC của C2803x thực hiện chuyển đổi tương tự sang số củacác tín hiệu kết nối với các chân ADC đầu vào được chọn Giá trị đầu ra các khốiADC được lưu trữ trong thanh ghi.
Mỗi khói ADC cho phép đọc 1 kênh ADC Sử dụng nhiều khối ADC để đọcnhiều kênh ADC
Các chế độ kích hoạt ADC phụ thuộc vào các thiết lập bên trong singlesource start of conversion (SOC) Trong chế độ không đồng bộ các ADC thườngđược kích hoạt bằng phần mềm tại mỗi khoảng thời gian lấy mẫu quy định tại cáckhối ADC
Trong chế độ đồng bộ các bộ quản lý được liên kết với ADC và kích hoạtADC Trong trường hợp này ADC được đồng bộ với các bộ điều biến độ rộngxung PWM
ADC không thể đồng bộ cùng bới PWM nếu ADC hoạt động ở chế độcascaded
d ePWM – Điều biến độ rộng xung
Sử dụng khối này dể tạo ra xung ePWM Nhiều module có sẵn trên các thiết
bị C28x Mỗi module có hai kết quả đầu ra ePWMA và ePWMB Mô hình có thểchứa 16 khôi ePWM sao cho cấu hình mỗi khối là một muodul riêng biệt ePWMAđược kích hoạt thì ePWMB không kích hoạt
Trang 30ePWMLink TBPRD : Liên kết đến một module ePWM khác trong mô hình.Khi liên kết thời gian của các ePWM với nhau, Các đơn vị thời gian, chu kỳ đếm
và các thông số không xuất hiện khi chọn module ePWM để liên kết
Timer period units : Để có kết quả tốt nhất, chọn Clock cycles Như vậy sẽlàm giảm tính toán và lỗi làm tròn số
Counting mode : Module PWM này có thể hoạt động ở ba chế độ đếm riêngbiệt Up, Down và Up-Down Các tùy chọn Down là không tương thích vớiHRPWM Để tránh lỗi khi xây dựng mô hình, không đặt tham số chế độ đếm đểDown và chọn Enable HRPWM
e eQEP – Bộ mã hóa xung encoder
Hình 2.12: Khối eQEPCác bộ mã hóa xung encoder (QEP) giải mã vã đếm các xung encoder ở đầu vàochân capture Xung QEP là 2 chuỗi xung tần số thay đổi và lệch nhau ¼ chu kỳ Mạch đếm cả hai cạnh lên và xuống của xung QEP vì vậy tần số clock QEP là 4lần tần số của mỗi kênh đầu vào
QEP kết hợp với các encoder quang rất hữu ích để đo tốc độ và thông tinđịnh vị của đĩa quay Mạch logic trong QEP xác định chiều quay căn cứ trên 2 tínhiệu xung encoder Nếu QEP1 nhận tín hiệu trước thì các bộ định thời đếm lên vànếu QEP2 nhận tín hiệu thì các bộ định thời đếm xuống Số xung đến và tần số xácđịnh vị trí và tốc độ
f Software interrupt trigger
Trang 31Hình 2.13: Khối Software interrupt triggerKích hoạt các ngắt từ phần mềm.
Khi nối thêm khối này vào mô hình , khối này kiểm tra giá trị đầu vào Khigiá trị đầu vào lớn hớn giá trị trong phần mềm thì kích hoạt ngắt phần mềm, khốinày tác động đến các khối ngắt phần cứng trong mô hình
Để sử dụng khối này, thêm khối ngắt phần cứng vào mô hình để quá trìnhkích hoạt ngắt phần mềm từ khối này đi đến ngắt trên vi xử lí Đặt số hiệu của ngắtvào một khối ngắt phần cứng ( hardware interrup) để giá trị đặt này vào trong CPUinterrupt number Các ngắt CPU và số hiệu ngắt PIE cùng xác địng một ngắt duynhất cho một modul ngoại vi hay một ngoại vi
g Hardware interrupt
Khối thực hiện dựa trên bộ đếm thời gian ngắt để đáp ứng các sự kiện bênngoài Chỉ có một phần cứng ngắt trong mô hình Để xử lý nhiều ngắt đặt một khốidemux trước đầu ra của khối ngắt
Hình 2.14: Khối Hardware interrupt
2.3 Giới thiệu và lập trình nhúng trên Code Composer Studio
2.3.1 Giới thiệu về Code Composer Studio
Trang 32Hình 2.16 Giao diện của Code Composer StudioCode Composer Studio (CCS) là phần mềm lập trình cung cấp cho các lậptrình viên môi trường tích hợp gồm nhiều công cụ khác nhau như chương trình viết
mã lệnh nhúng, chương trình dịch, chương trình mô phỏng hệ thống, ứng dụng khichạy thực tế, hỗ trợ cho các sản phẩm của hãng Texas Insruments, bao gồm cácDSP, vi điều khiển, hệ thống nhúng
Code Composer Studio bao gồm chương trình viết ngôn ngữ lập trình, trìnhbiên dịch C/C++ cho nhiều thiết bị của hãng Texas Insruments, thư viện mã nguồn,xây dựng tạo lập các dự án, tìm sửa lỗi, mô phỏng, và những tính năng khác
Code Composer Studio sử dụng và kết hợp những yếu tố ưu điểm của phầnmềm Eclipse (công cụ lập trình phát triển hỗ trợ bởi IBM) với khả năng kiểm soátchỉnh sửa lỗi từ hãng TI tạo ra một môi trường lập trình phát triển giàu tính năng,hấp dẫn với những nhà phát triển hệ thống nhúng
2.3.2 Lập trình nhúng trên Code Composer Studio
Những thao tác cơ bản trên Code Composer Studio:
Trang 33- Tạo một dự án mới: Vào Project, chọn mở New CCS Project, sau đó mộtcửa sổ thiết lập hiện ra, tùy chọn cấu hình các cài đặt phù hợp với board và phùhợp với yêu cầu sử dụng, sau đó chọn thanh Finish, dự án chương trinh mới được
tạo ra.
Hình 1.16 Giao diện tạo mới dự án chương trình
- Nhập một chương trình vào phần mềm: Vào Project, chọn thanh “ImportCCS Project”, chọn Browse dẫn đưa tới thư mục chưa trương chình, chọn thanh
“Finish” sau đó chương trình sẽ được đưa vào CCS
Trang 34Hình 1.17 Giao diện đưa chương trình có sẵn vào CCS
Hình 1.18 Giao diện cửa sổ Target Configurations
- Cài đặt kết nối giữa board và CCS: Chọn thanh “View”, chọn ô “TargetConfigurations”, giao diện cửa sổ Target Configurations xuất hiện ở cột bên phải,nhấn vào giao diện để tạo một cấu hình kết nối mới ta chọn “New TargetConfigurations” hoặc nhập một cấu hình kết nối có sẵn ta chọn ô “TargetConfigurations”, sau đó cấu hình kết nối theo mục đích, yêu cầu sử dụng
Trang 352.4 Xây dựng ví dụ lập trình nhúng trên Matlab và Code Composer Studio cho vi xử lý C2000
Hình 2.19: Mô hình ADC - PWM
Hình 2.20: Mô hình ADC - PWMTrước khi build code thì ta cài đặt Hardware Implementation trongConfiguration Parameters Tại Hardware board chọn Ti Piccolo F2806x (boot fromflash) là tên kit mà ta sử dụng để nạp code