ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP BÁO CÁO TỔNG KẾT ĐỀ TÀI KHOA HỌC VÀ CÔNG NGHỆ CẤP ĐẠI HỌC NGHIÊN CỨU, THIẾT KẾ VÀ CHẾ TẠO CARD ĐIỀU KHIỂN SỐ ỨNG DỤNG TRONG ĐIỀU
Trang 1ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP
BÁO CÁO TỔNG KẾT
ĐỀ TÀI KHOA HỌC VÀ CÔNG NGHỆ CẤP ĐẠI HỌC
NGHIÊN CỨU, THIẾT KẾ VÀ CHẾ TẠO CARD ĐIỀU KHIỂN SỐ ỨNG DỤNG TRONG ĐIỀU KHIỂN THỜI GIAN THỰC
Mã số: ĐH2015-TN02-09
Chủ nhiệm đề tài: TS Đỗ Trung Hải
Thái Nguyên, 9/2018
Trang 2ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP
BÁO CÁO TỔNG KẾT
ĐỀ TÀI KHOA HỌC VÀ CÔNG NGHỆ CẤP ĐẠI HỌC
NGHIÊN CỨU, THIẾT KẾ VÀ CHẾ TẠO CARD ĐIỀU KHIỂN SỐ ỨNG DỤNG TRONG ĐIỀU KHIỂN THỜI GIAN THỰC
Trang 3DANH SÁCH NHỮNG THÀNH VIÊN THAM GIA ĐỀ TÀI
TT Họ và tên Đơn vị công tác và
lĩnh vực chuyên môn
Nội dung nghiên cứu cụ thể
được giao
Ghi chú
1 Đỗ Trung Hải Khoa Điện, Trường
Đại học Kỹ thuật Công nghiệp
- Xây dựng đề cương chi tiết của dự án
- Thử nghiệm card trong việc điều khiển một số hệ thống
- Hoàn thiện đề tài
2 Nguyễn Ngọc
Kiên
Khoa Điện, Trường Đại học Kỹ thuật Công nghiệp
- Thiết kế phần cứng
- Thử nghiệm card trong việc điều khiển một số hệ thống
- Hoàn thiện đề tài
3 Trần Đức Quân Khoa Điện, Trường
Đại học Kỹ thuật Công nghiệp
- Thiết kế phần cứng
- Lập trình phần mềm cho Matlab
- Lập trình phần mềm cho card
- Thử nghiệm card trong việc điều khiển một số hệ thống
Trang 4iv
ĐƠN VỊ PHỐI HỢP CHÍNH
TT Tên đơn vị
trong và ngoài nước
Nội dung phối hợp nghiên cứu Họ và tên người
đại diện đơn vị
Trưởng Khoa
TS Đỗ Trung Hải
Trang 5v
MỤC LỤC
THÔNG TIN VỀ KẾT QUẢ NGHIÊN CỨU x
1 Thông tin chung x
2 Mục tiêu x
3 Tính mới và sáng tạo x
4 Kết quả nghiên cứu x
5 Sản phẩm xi
5 1 Sản phẩm khoa học xi
5.2 Sản phẩm đào tạo xi
5.3 Sản phẩm ứng dụng xii
6 Phương thức chuyển giao, địa chỉ ứng dụng, tác động và lợi ích mang lại của kết quả nghiên cứu xii
1 General information xiii
2 Objective (s) xiii
3 Creativeness and innovativeness xiii
4 Research results xiii
5 Products xiv
6 Transfer alternatives, application institutions, impacts and benefits of research results xv
PHẦN MỞ ĐẦU 1
1 Tính cấp thiết của đề tài 1
2 Tổng quan tình hình nghiên cứu thuộc lĩnh vực của đề tài 2
3 Mục tiêu đề tài 3
4 Đối tượng, phạm vi nghiên cứu 4
5 Cách tiếp cận, phương pháp nghiên cứu 5
6 Bố cục báo cáo 5
NGHIÊN CỨU THIẾT KẾ CARD ĐIỀU KHIỂN 6
1.1 Nghiên cứu, thiết kế phần cứng 6
1.2 Nghiên cứu, xây dựng phần mềm cho vi xử lý trung tâm 22
CHƯƠNG 2 26
XÂY DỰNG TOOLBOX CARD ĐIỀU KHIỂN 26
TRONG MATLAB – SIMULINK 26
2.1 Khối cài đặt – CardTNUT Setup 27
2.2 Khối đọc tín hiệu tương tự 28
2.3 Khối xuất tín hiệu tương tự 29
2.4 Khối đọc tín hiệu số 30
2.5 Khối xuất tín hiệu số 30
Trang 6vi
2.6 Khối xuất tín hiệu PWM 31
2.7 Khối đọc tín hiệu từ bộ mã hóa xung encoder 32
2.8 Khối xuất tín hiệu điều khiền động cơ servo một chiều 33
2.9 Khối ghép nối module điều khiển 16 kênh PWM 12bits 33
2.10 Khối ghép nối module điều khiển 32 servo 34
2.11 Khối giao tiếp nối tiếp 35
2.12 Khối bộ điều khiển PID online 35
2.13 Khối cài đặt tham số bộ điều khiển PID trên Card 36
CHƯƠNG 3 38
KIỂM NGHIỆM CARD ĐIỀU KHIỂN 38
3.1 Sử dụng Card trong điều khiển hệ truyền động động cơ một chiều 38
3.2 Sử dụng Card trong điều khiển hệ chuyển động robot nhện (Spider Robot) 41
3.3 Hệ thống điều khiển robot đi theo quỹ đạo mê cung 50
3.4 Hệ thống điều khiển thiết bị gia nhiệt 54
KẾT LUẬN VÀ KIẾN NGHỊ 59
1 Kết luận 59
2 Kiến nghị 59
TÀI LIỆU THAM KHẢO 60
Tiếng Việt 60
Tiếng Anh 60
Trang 7vii
DANH MỤC HÌNH VẼ
Hình 1 1 Mô hình khối mạch điều khiển 7
Hình 1 2 Bộ vi xử lý Cortex-M3 9
Hình 1 3 Sơ đồ mạch vi xử lý trung tâm 11
Hình 1 4 Mạch khuếch đại vi sai 12
Hình 1 5 Mạch khuếch đại đảo 12
Hình 1 6 Mạch khuếch đại không đảo 13
Hình 1 7 Mạch khuếch đại lặp lại 13
Hình 1 8 Sơ đồ nguyên lý mạch nhận tín hiệu tương tự 14
Hình 1 9 Sơ đồ nguyên lý mạch xuất tín hiệu tương tự 16
Hình 1 10 Sơ đồ nguyên lý mạch nhận/xuất tín hiệu số 17
Hình 1 11 Sơ đồ nguyên lý mạch nguồn nuôi 18
Hình 1 12 Mạch điều khiển trung tâm 19
Hình 1 13 Mặt trước mạch xử lý tín hiệu tương tự 19
Hình 1 14 Mặt sau mạch xử lý tín hiệu tương tự 20
Hình 1 15 Mặt trước mạch xử lý tín hiệu số 20
Hình 1 16 Mặt sau mạch xử lý tín hiệu số 21
Hình 1 17 Card điều khiển sau khi lắp ráp 21
Hình 1 18 Giao diện phần mềm Atmel Studio 22
Hình 1 19 Lưu đồ thuật toán chương trình chính 23
Hình 1 20 Lưu đồ thuật toán chương trình con xử lý dữ liệu từ Simulink 24
Hình 2 1 Thư viện CardTNUT được cài vào Simulink 27
Hình 2 2 Khối CardTNUT Setup 27
Hình 2 3 Khối đọc tín hiệu tương tự 28
Hình 2 4 Khối xuất tín hiệu tương tự 29
Hình 2 5 Khối đọc tín hiệu số 30
Trang 8viii
Hình 2 6 Khối xuất tín hiệu số 30
Hình 2 7 Khối xuất tín hiệu PWM 31
Hình 2 8 Khối đọc tín hiệu từ bộ mã hóa xung encoder 32
Hình 2 9 Khối điều khiền động cơ 33
Hình 2 10 Khối điều khiển module 16PWM 33
Hình 2 11 Khối điều khiển module 32RC SERVO 34
Hình 2 12 Khối hỗ trợ giao tiếp nối tiếp 35
Hình 2 13 Khối PID online 35
Hình 2 14 Khối cài đặt tham số PID 36
Hình 3 1 Sơ đồ nguyên lý hệ truyền động động cơ một chiều 38
Hình 3 2 Mô hình hệ truyền động động cơ một chiều 39
Hình 3 3 Cấu trúc điều khiển hệ thống động cơ một chiều trên Simulink 40
Hình 3 4 Đáp ứng tốc độ hệ truyền động động cơ một chiều 40
Hình 3 5 Hình vẽ mô tả robot nhện 41
Hình 3 6 Lưu đồ thuật toán động tác Đứng tại vị trí cơ bản 43
Hình 3 7 Lưu đồ thuật toán động tác Tiến 45
Hình 3 8 Lưu đồ thuật toán động tác Quay trái 46
Hình 3 9 Lưu đồ thuật toán động tác di chuyển sang sang phải 48
Hình 3 10 Giao diện điều khiển Robot nhện 48
Hình 3 11 Cấu trúc điều khiển Robot nhện trên Simulink 49
Hình 3 12 Khối điều xuất tín hiệu điều khiển chân Robot nhện 49
Hình 3 13 Mô hình robot nhện 50
Hình 3 14 Mô hình robot đi theo quỹ đạo mê cung 50
Hình 3 15 Cấu tạo robot đi theo quỹ đạo mê cung 51
Hình 3 16 Sơ đồ nguyên lý dạng khối robot đi theo quỹ đạo mê cung 51 Hình 3 17 Sơ đồ nguyên lý mạch đệm 52
Hình 3 18 Cảm biến đo khoảng cách GP2D12 52
Trang 9ix
Hình 3 19 Minh họa robot đi theo quỹ đạo mê cung 53
Hình 3 20 Sơ đồ cấu trúc điều khiển robot đi theo quỹ đạo mê cung 53 Hình 3 21 Cấu trúc điều khiển robot đi theo quỹ đạo mê cung 54
Hình 3 22 Sơ đồ nguyên lý hệ thống điều khiển thiết bị gia nhiệt 55
Hình 3 23 Mô hình hệ thống điều khiển thiết bị gia nhiệt 56
Hình 3 24 Cấu trúc điều khiển thiết bị gia nhiệt trên Simulink 56
Hình 3 25 Đáp ứng nhiệt độ hệ thống 57
Trang 10x
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP THÔNG TIN VỀ KẾT QUẢ NGHIÊN CỨU
1 Thông tin chung:
- Tên đề tài: Nghiên cứu, thiết kế và chế tạo card điều khiển số ứng dụng trong điều khiển thời gian thực
- Mã số: ĐH2015-TN02-09
- Chủ nhiệm đề tài: TS Đỗ Trung Hải
- Tổ chức chủ trì: Trường Đại học Kỹ thuật Công nghiệp, Đại học Thái Nguyên
- Thời gian thực hiện: 10/2015 – 10/2017
2 Mục tiêu:
- Nghiên cứu, thiết kế card có thể nhận được tín hiệu vào dạng tương tự 0-10VDC, 0-20mA và tín hiệu số 0-24VDC; xuất tín hiệu ra dạng tương tự 0-10VDC, 0-20mA và tín hiệu số, PWM 0-24VDC
- Nghiên cứu, xây dựng phần mềm trên Matlab để thu thập tín hiệu từ card và xuất tín hiệu điều khiển ra card
- Nghiên cứu, xây dựng phần mềm cho card để truyền nhận tín hiệu với Matlab
- Kiểm nghiệm card trong điều khiển thời gian thực
3 Tính mới và sáng tạo:
- Nghiên cứu thiết kế chế tạo card điều khiển số
- Xây dựng thư viện Card điều khiển số trong toolbox của Simmulink
Matlab-4 Kết quả nghiên cứu:
- Tìm hiểu cấu trúc và ngôn ngữ lập trình cho vi xử lý AT91SAM3X8E của hãng Atmel
Trang 11xi
- Nghiên cứu và thiết kế phần cứng
+ 8 đầu vào tương tự: tín hiệu vào dạng tương tự có thể là đại lượng vật
lý điện áp 0-10v DC hoặc dòng điện 0-20mA
+ 8 đầu ra tương tự: tín hiệu ra dạng tương tự có thể là đại lượng vật lý điện áp 0-10v DC hoặc dòng điện 0-20mA
+ 16 đầu vào số: tín hiệu vào logic với mức điện áp 0-24VDC
+ 16 đầu ra số: tín hiệu ra logic với mức điện áp 0-24VDC (Trong đó
có 12 đầu ra số xuất tín hiệu PWM 12 bit với mức 0-24VDC)
- Nghiên cứu thuật toán và lập trình cho card điều khiển số để sử dụng các chức năng phần cứng của card
- Nghiên cứu, xây dựng phần mềm trên Matlab để thu thập tín hiệu từ card và xuất tín hiệu điều khiển ra card
- Nghiên cứu, xây dựng phần mềm cho card để truyền nhận tín hiệu với Matlab
- Thực nghiệm sử dụng card điều khiển số trong việc điều khiển thời gian thực một số hệ thống: Hệ truyền động động cơ một chiều kích từ độc lập;
Hệ chuyển động robot nhện (Spider Robot); Hệ thống điều khiển robot đi theo quỹ đạo mê cung; Hệ thống điều khiển thiết bị gia nhiệt
Nguyễn Văn Thành, Mè Tiến Dũng, Lục Thị Mai, Nguyễn Thị Hồng
Anh (2015), Nghiên cứu, thiết kế module tương tự trong card điều khiển thời
gian thực, Đề tài NCKH Sinh viên trường Đại học Kỹ thuật Công nghiệp
Trang 12xii
Trần Đức Quân (2016), Nghiên cứu chế tạo và kiểm nghiệm card điều
khiển thời gian thực trong điều khiển hệ truyền động, báo cáo luận văn thạc
sĩ, trường Đại học Kỹ thuật Công nghiệp
5.3 Sản phẩm ứng dụng:
Card điều khiển;
Chương trình cho card điều khiển;
Kết quả kiểm chứng điều khiển đối tượng thực sử dụng Matlab và card điều khiển
6 Phương thức chuyển giao, địa chỉ ứng dụng, tác động và lợi ích mang lại của kết quả nghiên cứu:
Tăng cường năng lực nghiên cứu của nhóm nghiên cứu
Kết quả nghiên cứu của đề tài có thể được phát triển và ứng dụng tại phòng thí nghiệm - Bộ môn Tự động hóa – Khoa Điện
Thái Nguyên, ngày tháng năm 2018
Trang 13Coordinator: Dr Do Trung Hai
Implementing institution: TNU, Thai Nguyen University of Technology Duration: from October 2015 to October 2017
2 Objective (s):
- Research on card design which is received the input of 10VDC, 20mA analog signals and 0-24VDC digital signals; the outputs of the card are 0-10VDC, 0-20mA, 0-24VDC PWM digital signals
0 Design and simulate in Matlab software to collect the signals from the card and perform control signals on the card
- Implementation of the card design in real time control
3 Creativeness and innovativeness:
- Design and manufacture the digital control card
- Programing to set up a Digital Control Card library in Simmulink toolbox
Matlab-4 Research results:
- Study of the structure and programming language for AT91SAM3X8E processor of Atmel brand
Trang 14xiv
- Study and design the hardware implementation:
+ 8 analog inputs: the range of 0-10VDC or 0-20mA
+ 8 analog outputs: the range of 0-10VDC or 0-20mA
+16 digital inputs: the range of 0-24VDC
+16 digital outputs: the range of 0-24VDC (12 signal outputs deliver 12-bit PWM signal of 0-24VDC)
- Study of algorithms and programmable digital control cards to use the hardware functions of the card
- Design and simulate in Matlab software to collect the signals from the card and perform control signals on the card
- Experimental results of digital control card for real-time control for some systems as: Control the DC motor; Spider-robot movement; The robot control system follows the maze orbit; Heating Device Control System
Nguyen Van Thanh, Me Tien Dung, Luc Thi Mai, Nguyen Thi Hong
Anh (2015), Research, manufacture and testing of real-time controller card in
Trang 15xv
drive control, Scientific research students of Thai Nguyen University of
Technology
Tran Duc Quan (2016), Research, manufacture and testing of real-time
controller card in drive control, Subject engineering master’s thesis, Thai
Nguyen University of Technology
5.3 Application Products:
The control card;
The program for control card;
The verification of real object control using Matlab and card
6 Transfer alternatives, application institutions, impacts and benefits of research results:
Strengthening the research ability of the project team
Research results can be developed and applied in Department of Automation, Faculty of Electrical Engineering, Thai Nguyen University of Technology
Trang 16PHẦN MỞ ĐẦU
1 Tính cấp thiết của đề tài
Tại các trường đại học, cao đẳng đào tạo về kỹ thuật nhu cầu về thí nghiệm, thực hành các bài toán từ đơn giản đến phức tạp là cần thiết để góp phần đạt chuẩn đầu ra của chương trình đào tạo Trong lĩnh vực điều khiển tự động hóa để kiểm chứng các thuật toán điều khiển đã thiết kế, ngoài việc trang bị các modul, mô hình thí nghiệm còn phải có thêm các card điều khiển hiện đại, đắt tiền Nguồn kinh phí để đáp ứng cho nhu cầu này lại rất hạn chế không phải đơn vị nào cũng có thể đáp ứng với số lượng phù hợp với yêu cầu được
Mặt khác, trong lĩnh vực điêu khiển và tự động hóa, có rất nhiều thuật toán điều khiển từ kinh điển đến hiện đại đòi hỏi bộ điều khiển phải xử lý khối lượng công việc lớn, tính toán phức tạp Hiện nay, một phần mềm thông dụng trong kỹ thuật đó là phần mềm Matlab, trong điều khiển nó là một phần mềm có khả năng tính toán và thực hiện các thuật toán điều khiển Vì vậy, việc kết hợp Matlab và card thu thập dữ liệu sẽ tạo ra bộ điều khiển rất linh hoạt, có khả năng thực hiện các thuật toán điều khiển trong lĩnh vực kỹ thuật điều khiển và tự động hóa
Thông qua việc thực hành, thí nghiệm kiểm chứng các luật điều khiển giúp người thiết kế thấy được tính đúng đắn của phương pháp xây dựng luật điều khiển cũng như phân tích, đánh giá sự ảnh hưởng của cấu trúc và tham
số bộ điều khiển đến chất lượng của hệ Vì vậy đề xuất nghiên cứu thiết kế chế tạo card có khả năng thu thập dữ liệu và xuất tín hiệu ra đối tượng điều khiển rất cần thiết
Trang 172 Tổng quan tình hình nghiên cứu thuộc lĩnh vực của đề tài
2.1 Ngoài nước
Trên thế giới có hãng dSPACE đã thiết kế, chế tạo card điều khiển ứng dụng cho hệ thống điều khiển tự động:
- dSPACE, DS1103 PPC Controller Board
- dSPACE, DS1104 R&D Controller Board
Có nhiều công trình sử dụng card điều khiển đó để thực hiện thuật toán điều khiển:
- Rios, J.D.; Alanis, A.Y.; Rivera, J.; Hernandez-Gonzalez, M.,
“Real-time discrete neural identifier for a linear induction motor using a dSPACE
DS1104 board”, Neural Networks (IJCNN), The 2013 International Joint
Conference on, pp 1-6
- Ghani, Z.A.; Hannan, M.A.; Mohamed, A., “Development of
three-phase photovoltaic inverter using dSPACE DS1104 board”, Research and
Development (SCOReD), 2009 IEEE Student Conference on, pp 242 - 245
- Ghani, Z.A.; Hannan, M.A.; Mohamed, A.; Subiyanto, “Three-phase photovoltaic grid-connected inverter using dSPACE DS1104 platform”,
Power Electronics and Drive Systems (PEDS), 2011 IEEE Ninth International
Conference on, pp 447 – 451
- Haizai Peng, Tingting Du, Wei Gu, “Application design of a
sun-tracking system”, Control and Decision Conference (CCDC), 2013 25th
Chinese, pp 5094 - 5098
- Paez, I.S.D.; Pico, H.O.; Villalobos, M.A.M.; Suarez, J.F.P.,
“Electrical signals parameter estimation using adaptive filtering: A
comparative study”, Transmission and Distribution Conference and
Exposition, Latin America (T&D-LA), 2010 IEEE/PES, pp 745 - 750
Trang 18Tuy nhiên, giá thành card điều khiển đó rất cao, khả năng trang bị cho các trường để thực hành còn rất hạn chế
2.2 Trong nước
Theo hiểu biết của nhóm tác giả, hiện tại trong nước chưa có đề tài nghiên cứu về nội dung này Tuy nhiên, trong nước việc ứng dụng card điều khiển phục vụ mục đích nghiên cứu là rất nhiều, ở đây đưa ra 3 ví dụ thuộc 3 nhóm Nghiên cứu sinh, thạc sĩ và bài báo khoa học có sử dụng card điều khiển:
- Lê Thị Thu Hà (2012), Một số giải pháp nâng cao chất lượng hệ
truyền động có khe hở trên cơ sở điều khiển thích nghi, bền vững, Luận án
Tiến sĩ Kỹ thuật điều khiển và Tự động hoá, Đại học Thái Nguyên
- Đinh Văn Nghiệp (2009), Nghiên cứu và ứng dụng card điều khiển số
DSP để thiết kế bộ điều khiển số trong điều khiển chuyển động, Luận văn
Thạc sĩ Tự động hoá, Đại học Thái Nguyên
- Đoàn Quang Vinh, Diệp Xuân An (2010), “ Ứng dụng thiết bị xử lý tín hiệu số trong điều khiển hệ thống truyền động điện sử dụng động cơ điện 1
chiều kích từ độc lập”, Tạp chí khoa học và công nghệ, Đại học Đà nẵng, 4
(39), tr 317-323
Qua đây, một lần nữa khẳng định việc nghiên cứu thiết kế card thu thập
dữ liệu và kết hợp với phần mềm Matlab có thể thực hiện các thuật toán điều khiển là cần thiết và có ý nghĩa khoa học và thực tiễn
3 Mục tiêu đề tài
3.1 Mục tiêu chung
Nghiên cứu thiết kế, chế tạo card điều khiển số dùng để kiểm nghiệm thuật toán điều khiển
Trang 193.2 Mục tiêu cụ thể
- Nghiên cứu, thiết kế card có thể nhận được tín hiệu vào dạng tương tự 0-10VDC, 0-20mA và tín hiệu số 0-24VDC; xuất tín hiệu ra dạng tương tự 0-10VDC, 0-20mA và tín hiệu số, PWM 0-24VDC
- Nghiên cứu, xây dựng phần mềm trên Matlab để thu thập tín hiệu từ card và xuất tín hiệu điều khiển ra card
- Nghiên cứu, xây dựng phần mềm cho card để truyền, nhận tín hiệu với Matlab
- Kiểm nghiệm card trong điều khiển thời gian thực
4 Đối tượng, phạm vi nghiên cứu
4.1 Đối tượng nghiên cứu
- Lý thuyết: Lý thuyết điều khiển tự động
- Thiết kế phần cứng: Phần cứng thu thập dữ liệu
- Lập trình phần mềm: Phần mềm thực hiện trao đổi thông tin giữa phần cứng và Matlab
Trang 205 Cách tiếp cận, phương pháp nghiên cứu
5.1 Cách tiếp cận
Từ card điều khiển đang sử dụng trong thực tế đi phân tích từ đó nghiên cứu, thiết kế, chế tạo card điều khiển
1.5.2 Phương pháp nghiên cứu
- Nghiên cứu lý thuyết
- Thiết kế, chế tạo và thử nghiệm trên thiết bị thực tế
6 Bố cục báo cáo
Phần mở đầu: Trình bày tính cấp thiết của đề tài, tổng quan tình hình nghiên cứu thuộc lĩnh vực của đề tài trong và ngoài nước, mục tiêu của đề tài, đối tượng và phạm vi nghiên cứu của đề tài, cách tiếp cận và phương pháp nghiên cứu
Chương 1: Trình bày về thiết kế và chế tạo phần cứng cho từng mạch chức năng của card điều khiển Trình bày về xây dựng thuật toán và lập trình cho vi xử lý trung tâm trên card điều khiển
Chương 2: Trình bày về xây dựng thuật toán lập trình các khối chức năng trong toolbox trên Matlab/Simulink dành riêng cho card điều khiển
Chương 3: Trình bày về kết quả kiểm nghiệm card điều khiển trong ứng dụng điều khiển thời gian thực
Kết luận và kiến nghị của đề tài
Trang 21CHƯƠNG 1 NGHIÊN CỨU THIẾT KẾ CARD ĐIỀU KHIỂN 1.1 Nghiên cứu, thiết kế phần cứng
1.1.1 Yêu cầu về thiết kế phấn cứng
Một card ứng dụng trong điều khiển thời gian thực trước tiên yêu cầu vi
xử lý trung tâm trên card phải có khả năng tính toán nhanh, dung lượng bộ nhớ lớn Bên cạnh đó, card điều khiển cũng phải có khả năng giao tiếp với nhiều đối tượng và thiết bị cảm biến khác nhau, hiển thị các tham số chế độ hoạt động đồng thời có khả năng giao tiếp với máy tính thực hiện chức năng điều khiển, giám sát Trên cơ sở đó việc thiết kế card điều khiển trong đề tài được nghiên cứu thiết kế với yêu cầu sau:
- Card có thể nhận/xuất các tín hiệu tương tự theo các chuẩn điện áp 10VDC, 0-20mA;
0 Card có thể nhận/xuất các tín hiệu số có mức điện áp 0/24VDC, cho phép thu thập các giá trị logic, đếm xung, nhận tín hiệu ngắt từ bên ngoài và xuất tín hiệu báo trạng thái, tín hiệu điều chế độ rộng xung PWM (Pulse-width modulation);
- Card có chức năng giao tiếp với máy tính, ở đề tài này giao tiếp với máy tính qua phần mềm Matlab:
- Card có chức năng hiện thị chế độ hoạt động, hoặc thông số, trạng thái;
- Card có khả năng mở rộng các chân vào/ra cho phép kết nối một số module chức năng khác…
Trang 221.1.2 Cấu trúc card điều khiển
Hình 1 1 Mô hình khối mạch điều khiển
1.1.2.1 Khối vi xử lý trung tâm
Khối vi xử lý trung tâm là trái tim của card điều khiển, có nhiệm vụ quản lý, giám sát, điều khiển hoạt động toàn bộ các module sử dụng trong card có nghĩa là việc điều khiển hoạt động trong hệ thống được thực hiện nhờ
vi xử lý trung tâm Để đáp ứng yêu cầu đó, vi xử lý trung tâm được chọn là vi
xử lý AT91SAM3X8E do hãng Atmel chế tạo sản xuất dựa trên bộ xử lý ARM Cortex-M3 (Advanced RISC Machine)
Cấu trúc ARM (viết tắt từ tên gốc là Advanced RISC Machine) là một loại cấu trúc vi xử lý 32 bit và 64 bit kiểu RISC (Reduced Instructions Set Computer - Máy tính với tập lệnh đơn giản hóa) được sử dụng rộng rãi trong các thiết kế nhúng Ngày nay, hơn 75% CPU nhúng 32-bit là thuộc họ ARM, điều này khiến ARM trở thành cấu trúc 32-bit được sản xuất nhiều nhất trên thế giới CPU ARM được tìm thấy khắp nơi trong các sản phẩm thương mại điện tử, từ thiết bị cầm tay cho đến các thiết bị ngoại vi máy tính, các hệ
Đầu vào
số
Đầu vào tương tự
Cài đặt tham số
Hiển thị (Led,…)
Trang 23thống điều khiển Một nhánh nổi tiếng của họ ARM là các vi xử
lý Xscale của Intel
Đặc điểm Bộ vi xử lý Cortex-M3
- Hiệu suất cao: Trung tâm của bộ vi xử lý Cortex-M3 là một lõi có cấu trúc đường ống tiên tiến 3 tầng Instruction Fetch, Instruction Decode và Instruction Execute, dựa trên kiến trúc Harvard, kết hợp nhiều tính năng mới mạnh mẽ như suy đoán việc rẽ nhánh, phép nhân được thực thi trong một chu
kỳ và phép chia được thực hiện bằng phần cứng tạo nên một hiệu năng vượt trội Khi gặp một lệnh nhánh, tầng decode chứa một chỉ thị nạp lệnh suy đoán
có thể dẫn đến việc thực thi nhanh hơn Bộ xử lý nạp lệnh dự định rẽ nhánh trong giai đoạn giải mã Sau đó, trong giai đoạn thực thi, việc rẽ nhánh được giải quyết và bộ vi xử lý sẽ phân tích xem đâu là lệnh thực thi kế tiếp Nếu việc rẽ nhánh không được chọn thì lệnh tiếp theo đã sẵn sàng Còn nếu việc rẽ nhánh được chọn thì lệnh rẽ nhánh đó cũng đã sẵn sàng ngay lập tức, hạn chế thời gian rỗi chỉ còn một chu kỳ
- Dễ sử dụng, phát triển ứng dụng nhanh chóng, hiệu quả: Tiêu chí quan trọng trong việc lựa chọn bộ vi xử lý là giảm thời gian và chi phí phát sinh, đặc biệt là khả năng phát triển ứng dụng phải thật nhanh chóng và đơn giản Bộ vi xử lý Cortex-M3 được thiết kế để đáp ứng mục tiêu trên Người lập trình không cần phải viết bất kì mã hợp ngữ nào (assembler code) hoặc cần phải có kiến thức sâu về kiến trúc để tạo ra một ứng dụng đơn giản
- Giảm chi phí và năng lượng tiêu thụ: Bộ vi xử lý được thiết kế trên một diện tích nhỏ sẽ giảm chi phí đáng kể Bộ vi xử lý Cortex-M3 thực hiện điều này bằng cách cài đặt các lõi ARM nhỏ nhất từ trước đến nay, chỉ với 33.000 cổng (cổng có thể là NAND hoặc NOR… tuỳ vào công nghệ sản xuất) trong lõi trung tâm (0.18um G) và bằng cách kết hợp hiệu quả, chặt chẽ các thành phần trong hệ thống vi xử lý Bộ nhớ được tối giản bằng cách cài đặt bộ
Trang 24nhớ không thẳng hàng (unaligned), thao tác bit dễ dàng với kĩ thuật bit banding
Hình 1 2 Bộ vi xử lý Cortex-M3
- Tích hợp khả năng dò lỗi và theo vết trong lập trình: Công nghệ gỡ lỗi của bộ vi xử lý Cortex-M3 được cài đặt trong chính phần cứng của nó (kết hợp với một vài thành phần khác) giúp gỡ lỗi nhanh hơn với các tính năng trace & profiling, breakpoints, watchpoints và bản vá lỗi giúp rút ngắn thời gian phát triển ứng dụng Ngoài ra, bộ vi xử lý còn cung cấp một mức nhìn cao hơn vào hệ thống thông qua cổng JTAG truyền thống hoặc cổng SWD (Serial Wire Debug) chỉ sử dụng 2 đường tín hiệu, thích hợp cho các thiết bị
Trang 25Đầu vào tương tự 12 (12bits)
Đầu ra tương tự 2 (DAC, 12bits)
Dòng điện vào/ra số 130 mA
Bộ nhớ chương trình (Flash) 512 KB
Tần số xung hoạt động 84 MHz
Truyền thông: USB, USARTs, SPIs, I2C (TWIs)
Sơ đồ nguyên lý mạch xử lý trung tâm như hình 1.3
1.1.2.2 Khối xử lý tín hiệu tương tự
Khối xử lý tín hiệu tương tự gồm hai phần: mạch nhận tín hiệu tương
tự, và mạch xuất tín hiệu tương tự Các tín hiệu tương tự này được xử lý bằng phương pháp số Khối ADC của AT91SAM3X8E có độ phân giải 12bits, có khả năng nhận điện áp từ 0÷3.3V, đặc biệt hỗ trợ DMA giúp tăng tốc độ trích mẫu ADC lên đến 80Msps, có khả năng nhận tín hiệu tương tự lên đến 42Mhz
DMA (Direct memory access) là một kỹ thuật chuyển dữ liệu từ bộ nhớ đến ngoại vi hoặc từ ngoại vi đến bộ nhớ mà không yêu cầu đến sự thực thi của CPU, có nghĩa là CPU sẽ hoàn toàn độc lập với ngoại vi được hỗ trợ DMA mà vẫn đảm bảo ngoại vi thực hiện công việc được giao, tùy vào từng loại ngoại vi mà DMA có sự hỗ trợ khác nhau
Để có thể xử lý được tín hiệu tương tự dạng điện áp 0÷10VDC (hoặc tín hiệu dòng điện 0÷20mA) cần phải sử dụng các mạch khuếch đại chuẩn hóa thành tín hiệu điện áp 00÷3.3V đưa vào AT91SAM3X8E
Một số mạch khuếch đại tín hiệu dùng khuếch đại thuật toán:
- Mạch khuếch đại vi sai:
Trang 26TST 51 XOUT 35 XIN 36 XOUT32 49 XIN32 48 DHSDM 38 DFSDM 43 DHSDP 37 DFSDP 42 VBG 40
PA0 23 PA1 24 PA2 85 PA3 84 PA4 83 PA5 25 PA6 82 PA7 26 PA8 27 PA9 2 PA10 3 PA11 4 PA12 5 PA13 6 PA14 7 PA15 8 PA16 78 PA17 9 PA18 70 PA19 71 PA20 72 PA21 107 PA22 81 PA23 80 PA24 79 PA25 108 PA26 109 PA27 110 PA28 111 PA29 112
R4 1k R5 1k
D-XIN XOUT XOUT32 XIN32
VBG CANTX0 AD7 AD5 AD4 EXTINT PIN31 RX TX RXD2 TXD1 PIN24 AD0 SDA1 SCL1 PIN42 TXL AD2 MISO SPCK SS0/PWM10 SS1/PWM4
GND
PIN32 PWM11
PIN25 PIN27
PIN29 TXD0
RXL SS0/PWM10 PWM3 SS1/PWM4 SS1/PWM5
PWM5 PWM7 PWM9 PIN44 PIN46 PIN48 PIN50
PIN33 PIN35 PIN37 PIN39 PIN41
3V3
VDDOUTMI VDDANA
L2 150mH C4 104 C3 10uF
Trang 27Hình 1 4 Mạch khuếch đại vi sai
Mạch điện này dùng để xác định hiệu số, hoặc sai số giữa 2 điện áp mà mỗi điện áp có thể được nhân với một vài hằng số nào đó Các hằng số này xác định nhờ các điện trở
Điện áp ra của mạch:
Hệ số khuếch đại của mạch, nếu và :
- Mạch khuếch đại đảo:
Hình 1 5 Mạch khuếch đại đảo
Trang 28Mạch này dùng để đổi dấu và khuếch đại một điện áp (nhân với một số âm)
Điện áp ra của mạch:
- Mạch khuếch đại không đảo:
Dùng để khuếch đại một điện áp (nhân với một hằng số lớn hơn 1) Điện áp ra của mạch:
(1.4)
Hình 1 6 Mạch khuếch đại không đảo
- Mạch khuếch đại lặp lại:
Hình 1 7 Mạch khuếch đại lặp lại
Mạch này được sử dụng như một bộ khuếch đại đệm, để giới hạn những ảnh hưởng của tải hay để phối hợp tổng trở (nối giữa một linh kiện có tổng trở nguồn lớn với một linh kiện khác có tổng trở vào thấp) Do có hồi
Trang 29tiếp âm sâu, mạch này có khuynh hướng không ổn định khi tải có tính dung cao Điều này có thể ngăn ngừa bằng cách nối với tải qua 1 điện trở
Điện áp ra của mạch:
Mạch nhận tín hiệu tương tự (thể hiện các đại lượng vật lí của hệ
thống) có thể nhận được tín hiệu điện áp 0÷10VDC hoặc 0÷20mA rồi biến đổi thành điện áp 0÷3.3VDC để đưa vào bộ ADC của vi điều khiển AT91SAM3X8E
Tín hiệu điện áp 0÷10VDC được đưa vào chân (V+) và (V-), tín hiệu dòng điện 0÷20mA được đưa vào chân (AI) và (V-) điện áp rơi trên R5 (0÷5VDC) được khuếch đại qua mạch vi sai (IC LM358-A) rồi qua mạch khuếch đại không đảo dấu (IC LM358-B) thành tín hiệu điện áp 0÷3.3VDC đưa vào chân nhận tín ADC của AT91SAM3X8E
Hình 1 8 Sơ đồ nguyên lý mạch nhận tín hiệu tương tự
Điện áp ra của mạch khuếch đại được xác định:
(1.6)
Trang 30(1.7)
Do dải điện áp đầu vào của mạch là 10VDC và dải điện áp của AT91SAM3X8E là 3,3VDC nên hệ số khuếch đại của mạch nhận tín hiệu tương tự:
(1.8)
(1.9)
Mạch xuất tín hiệu tương tự có thể xuất được tín hiệu điện áp
0÷10VDC hoặc 0÷20mA để đưa đến các cơ cấu chấp hành.Vi điều khiển AT91SAM3X8E có sẵn 02 bộ ngoại vi DAC bên trong nhưng trong hệ thống vẫn sử dụng IC DAC chuyên dụng MCP4822 MCP4822 là IC chuyển đổi DAC 12bit (0÷4095), tín hiệu vào dạng giao tiếp nối tiếp chuẩn 3 dây ISP (CSI, SCK, SDI), 02 tín hiệu ra (VOUTA, VOUTB) dạng điện áp 0÷4095mV Tín hiệu điện áp này được đưa qua mạch khuếch đại tạo tín hiệu điện áp 0÷10VDC trên chân (VO1, VO2) và (GND); tín hiệu dòng điện 0÷20mA (trên chân (I+) và (I-)
Trang 31Hình 1 9 Sơ đồ nguyên lý mạch xuất tín hiệu tương tự
Điện áp ra được xác định:
Do dải điện áp đầu ra của MCP4822 là 4,095VDC và dải điện áp đầu ra của mạch xuất tín hiệu tương tự 10VDC nên hệ số khuếch đại của mạch xuất tín hiệu tương tự:
Trang 32(1.13)
1.1.2.3 Khối xử lý tín hiệu số
Khối xử lý tín hiệu số có hai nhiệm vụ chuyển đổi tín hiệu logic có mức điện áp 0/24VDC thành tín hiệu locgic có mức điện áp 0/3.3VDC của AT91SAM3X8E và ngược lại.Các tín hiệu logic có thể là tín hiệu cao tần như tín hiệu từ bộ mã hóa xung (encoder), tín hiệu PWM nên các mạch chuyển đổi tín hiệu phải đáp ứng được tần số cao IC cách ly quang 4N35 được chọn để thực hiện chuyển đổi mức logic, 4N35 có thể đáp ứng được xung có tần số 1MHz và điện áp UBE = 30V
Hình 1 10 Sơ đồ nguyên lý mạch nhận/xuất tín hiệu số
Trang 331.1.2.4 Khối mạch nguồn nuôi
Hình 1 11 Sơ đồ nguyên lý mạch nguồn nuôi
Mạch nguồn nuôi sử dụng IC nguồn xung kiểu Buck, nguồn 24V được biến đổi thành các nguồn 12V, 5V và 3.3V phục vụ cho card
1.1.3 Thiết kế mạch in của card
Từ sơ đồ nguyên lý các module ta thiết kế mạch in và gia công được phần cứng của card điều khiển
Mạch điều khiển trung tâm:
Trang 34Hình 1 12 Mạch điều khiển trung tâm
Mạch xử lý tín hiệu tương tự:
Hình 1 13 Mặt trước mạch xử lý tín hiệu tương tự
Trang 35Hình 1 14 Mặt sau mạch xử lý tín hiệu tương tự
Mạch xử lý tín hiệu số:
Hình 1 15 Mặt trước mạch xử lý tín hiệu số
Trang 36Hình 1 16 Mặt sau mạch xử lý tín hiệu số
Hình 1 17 Card điều khiển sau khi lắp ráp
Trang 371.2 Nghiên cứu, xây dựng phần mềm cho vi xử lý trung tâm
1.2.1 Ngôn ngữ lập trình cho AT91SAM3X8E
Để lập trình cho AT91SAM3X8E ta sử dụng trình biên dịch Atmel Studio do hãng Atmel phát triển Atmel Studio hỗ trợ lập trình bằng ngôn ngữ
C và ASM, biên dịch và gỡ lối cho các vi điều khiển của hãng Atmel
Hình 1 18 Giao diện phần mềm Atmel Studio
Chương trình AT91SAM3X8E trong card điều khiển được lập trình bằng ngôn ngữ C và theo cấu trúc gồm chương trình chính và các chương trình con
Trang 381.2.2 Thuật toán chương trình chính
Hình 1 19 Lưu đồ thuật toán chương trình chính
BEGIN
Khởi tạo các khối: RS232, PWM, TIMER, ngắt, …
Khởi tạo các giá trị ban đầu
Kiểm tra có dữ liệu từ Matlab?
Đọc và xử lý tín hiệu đầu vào tương tự
Đọc tín hiệu đầu vào số
Cập nhật dữ liệu, Thực hiện các chức năng theo yêu cầu từ Matlab
Trang 391.2.3 Thuật toán chương trình con xử lý dữ liệu từ Matlab/Simulink
Hình 1 20 Lưu đồ thuật toán chương trình con xử lý dữ liệu từ Simulink
BEGIN Nhận dữ liệu, lưu vào xâu str
Str = “1x” Đọc đầu vào số “x”
END
1
0 str = “2xy” 1 Xuất giá trị “y” ra đầu ra số “x”
0 str = “3x” 1 Đọc đầu vào tương tự “x”
0 str = “4xy” 1 Xuất giá trị “y” ra đầu ra tương tự “x”
0 str = “5xy” Xuất giá trị PWM “y” ra
đầu ra số “x”
1
0 str = “8xy” Xuất giá trị góc “y” ra
servo “x”
1
0 str = “Exyz” Cài đặt encoder “x” với 2 pha nối vào đầu vào
“y” và “z”
1
0 str = “Gx” Đọc giá trị từ encoder
“x”
1
0 str = “Kx” Điều khiển module 32
Trang 40Kết luận: Nội dung chính của chương 1 đó là
Nghiên cứu và thiết kế được phần cứng cho card điều khiển với các khối chức năng:
- Khối xử lý trung tâm: dùng vi xử lý AT91SAM3X8E
- Khối vào ra tương tự: có thể nhận được tín hiệu điện áp 0÷10VDC hoặc 0÷20mA rồi biến đổi thành điện áp 0÷3.3VDC đưa vào bộ ADC của vi điều khiển AT91SAM3X8E Có thể xuất được tín hiệu điện áp 0÷10VDC hoặc 0÷20mA để đưa đến các cơ cấu chấp hành
- Khối vào ra số: Chuyển đổi tín hiệu logic có mức điện áp 0/24VDC thành tín hiệu locgic có mức điện áp 0/3.3VDC của AT91SAM3X8E
và ngược lại
Xây dựng thuật toán chương trình cho vi xử lý AT91SAM3X8E