Xây dựng bộ vi xử lý chuyên dụng:
- Một bộ vi xử lý có thể chia thành 2 phần chính: đường dữ liệu (datapath) và đơn vị điều
khiển (control unit). Đường dữ liệu biến đổi dữ liệu đầu vào thành dữ liệu mới ở đầu ra,
đơn vị điều khiển sẽ điều khiển quá trình đó.
- Một bộ vi xử lý chuyên dụng đôi khi còn gọi là mạch tích hợp ứng dụng cụ thể ASIC.
Nó được tạo ra với mục đích chỉ để thực hiện một nhiêm vụ, do vậy các lệnh được nối
cứng bên trong tức là không cần bộ nhớ chương trình. Các quá trình đọc lệnh, giải mã
lệnh không được cần đến. Giải thuật điều khiển được xây dựng ngay bên trong mạch.
- Bộ vi xử lý được thiết kế dựa trên cấu trúc MAC (multiplier/accumulator) kết hợp với
giải thuật được trình bày ở hình 4
5 trang |
Chia sẻ: netpro | Lượt xem: 2642 | Lượt tải: 5
Bạn đang xem nội dung tài liệu Đề tài Bộ điều khiển PID số cho động cơ DC ứng dụng ASIC, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Tuyển tập Báo cáo “Hội nghị Sinh viên Nghiên cứu Khoa học” lần thứ 6 Đại học Đà Nẵng - 2008
43
BỘ ĐIỀU KHIỂN PID SỐ CHO ĐỘNG CƠ DC ỨNG
DỤNG ASIC
APPLICATIONS OF ASIC TECHNOLOGY IN DESGINING A DIGITAL PID
CONTROLLER FOR DC MOTOR
SVTH: VŨ TÚ ANH - O3ĐT2
Khoa Điện Tử Viễn Thông, Trường Đại Học Bách Khoa
GVHD: KS. NGUYỄN KHÁNH AN,
ThS. NGUYỄN BÁ HỘI,
KS. NGUYỄN TRUNG KIÊN
Khoa Điện Tử Viễn Thông, Trường Đại Học Bách Khoa
TÓM TẮT:
Đề tài nghiên cứu thiết kế một ứng dụng của công nghệ ASIC. Sử dụng FPGA thực hiện bộ
điều khiển PID số cho động cơ DC. Nhân điều khiển là một bộ vi xử lý chuyên dụng được thiết
kế dựa trên cấu trúc MAC (multiplier/accumulator). Với cấu trúc MAC, phương trình sai phân
bậc 2 được thực hiện trong 4 chu kỳ xung clock hệ thống, nhờ kết hợp phép cộng dồn và phép
nhân trong một chu kỳ xung clock đơn. Thử nghiệm với FPGA Spartan-3AN cho phép tần số
clock hệ thống đến 62MHz.
ABSTRACT:
This final year project aims at using one of applications of ASIC technology in desgining a
digital PID controller for DC motor. The controller core is an application specific microprocessor
based on MAC (multiplier/accumulator). With this MAC architecture, the second order
differential equation is able to be executed in 4 clock cycles, due to accumulating and
multiplying during a single clock cycle. Testing on FPGA Spartan-3AN allows clock frequency
up to 62MHz.
1. Mở đầu
Cùng với sự phát triển nhanh chóng của khoa học công nghệ, kỹ thuật điều khiển tự
động được ứng dụng rộng rãi và đóng vai trò quan trọng trong nhiều lĩnh vực, theo đó đòi hỏi
về chất lượng, cũng như tốc độ của các bộ điều khiển ngày càng cao. Trong nhiều trường hợp
các bộ điều khiển thông thường không đáp ứng được, chúng ta thường phải trả giá cao cho
những tiêu chí này. Có một hướng giải quyết vấn đề này đó là ứng dụng các công nghệ mới.
Với công nghệ ASIC chúng ta có thể phát triển các bộ điều khiển theo hướng chuyên dụng cho
các ứng dụng cụ thể. Và tạo ra các bộ điều khiển với giá thành thấp hơn, năng lượng tiêu thụ ít
hơn. Các giải thuật điều khiển được xử lý bằng phần cứng sẽ có tốc độ cao hơn hẳn với cùng
một công nghệ. Khả năng lập trình lại, khả năng tích hợp hệ thống trên một chíp cho ta sự linh
hoạt, độ tin cậy cao, tiết kiệm không gian hệ thống.
Trong giới hạn, đề tài phát triển một ứng dụng mang tính thử nghiệm đó là thiết kế bộ
điều khiển PID số cho động cơ DC. Trong thực tế các bộ điều khiển động cơ thường sử dụng
vi điều khiển. Các bộ điều khiển chất lượng cao có thể sử dụng DSP. Ngày nay đã xuất hiện
thế hệ chip lai mới như ADI's Blackfin và TI's MSP430 kết hợp các ưu điểm của vi điều khiển
và khả năng tính toán, xử lý tín hiệu nhanh với chu kỳ vòng lặp xác định của DSP. Tuy nhiên
một bộ điều khiển chuyên dụng vẫn cho ta nhiều lợi ích hơn.
2. Tổng quan
Động cơ DC là một đối tượng điều khiển thường gặp trong thực tế, nó ứng dụng rộng
rãi trong công nghiệp, dân dụng, quốc phòng... Thiết kế bộ điều khiển PID số cũng là một bài
toán khá quen thuộc nhờ tính đơn giản nhưng khá hiệu quả của nó. Vấn đề là các bộ điều
khiển này thường bị giới hạn về tốc độ, độ chính xác (do độ rộng bit dữ liệu giới hạn) nếu sử
Tuyển tập Báo cáo “Hội nghị Sinh viên Nghiên cứu Khoa học” lần thứ 6 Đại học Đà Nẵng - 2008
44
dụng vi điều khiển. Sử dụng DSP, PC hay các bộ vi xử lý thế hệ mới có thể giải quyết được
các vấn đề trên nhưng thường không hiệu quả do giá thành cao, cồng kềnh, tiêu tốn nhiều năng
lượng… Để giải quyết vấn đề này, đề tài tập trung xây dựng bộ điều khiển chuyên dụng, thiết
kế, kiểm tra và thử nghiệm trên FPGA (Spartan III).
3. Nội dung
3.1. Bộ điều khiển PID số cho động cơ DC
Động cơ DC:
Áp dụng định luật Kirchoff và định luật Newton cho phần điện và phần cơ của động cơ DC:
)(
)(
)()( tE
dt
tdi
LtRitU
, với
)()( tKE
dt
td
JtBtMtM t
)(
)()()(
, với
)()( tiKtM
Trong đó:
LR,
: điện trở và điện cảm của động cơ
K
: là hệ số;
B
: là hệ số ma sát;
J
: moment quán tính
Qua phép biến đổi Laplace ta có mô hình toán học đầy đủ của động cơ DC như hình 1
Hình 1. Mô hình toán học của động cơ DC
Bộ điều khiển PID:
Phương trình toán học:
dt
tde
KdtteKteKtU DIP
)(
)()()(
Ảnh Laplace:
sK
s
K
KsG D
I
PC )(
Rời rạc hóa bằng biến đổi Z:
z
z
T
K
z
zTK
KzG DIPC
1
1
1
2
)(
2
2
1
1
2
2
1
10
1
zbzb
zazaa
Bộ lọc số:
Phương trình sai phân:
m
j
j
n
i
i jkybikxaky
10
)()()(
Với n, m = 2:
)2()1()2()1()()( 21210 kybkybkxakxakxaky
(*)
Tuyển tập Báo cáo “Hội nghị Sinh viên Nghiên cứu Khoa học” lần thứ 6 Đại học Đà Nẵng - 2008
45
D
D
D
D
a0
a1
a2
+
b0
b1
x(k) y(k)
Hình 2. Biễu diễn bằng sơ đồ cấu trúc
Hàm truyền (biến đổi Z): 1 2
0 1 2
1 2
1 2
( )
( )
( ) 1
a a z a zY z
G z
X z b z b z
Kết luận:
- Về mặt toán học bộ điều khiển PID số tương tự một bộ lọc IIR bậc 2
- Thiết kế bộ điều khiển chính là thực hiện giải thuật giải phương trình sai phân (*)
3.2. Thiết kế bộ điều khiển số trên FPGA
Sơ đồ khối hệ thống:
Hình 3. Sơ đồ hệ thống
Giải thuật điều khiển: giải phương trình sai phân bậc 2
)2()1()2()1()()( 21210 kybkybkxakxakxaky
1- acc = 0; // reset
2- Input M(0) = x(k); // Bộ nhớ M lưu các biến x(k), y(k); Bộ nhớ K lưu các hệ số ai , -bj
3- count = 5;
4- while (count
0) {
5- count = count -1;
6- multi = M(count)* K(count);
7- acc = acc + multi; }
8- result = f(acc); // hiệu chỉnh lại số bit
9- M(2) = M(1);
10- M(1) = M(0);
11- M(4) = M(3);
FPGA
TB ngoài
PWM Contoller
(PID) +
Register
Giao tiếp Decoder
Motor
DC
Encoder
Driver
Tuyển tập Báo cáo “Hội nghị Sinh viên Nghiên cứu Khoa học” lần thứ 6 Đại học Đà Nẵng - 2008
46
12- M(3) = result;
13- Output y(k) = result;
Xây dựng bộ vi xử lý chuyên dụng:
- Một bộ vi xử lý có thể chia thành 2 phần chính: đường dữ liệu (datapath) và đơn vị điều
khiển (control unit). Đường dữ liệu biến đổi dữ liệu đầu vào thành dữ liệu mới ở đầu ra,
đơn vị điều khiển sẽ điều khiển quá trình đó.
- Một bộ vi xử lý chuyên dụng đôi khi còn gọi là mạch tích hợp ứng dụng cụ thể ASIC.
Nó được tạo ra với mục đích chỉ để thực hiện một nhiêm vụ, do vậy các lệnh được nối
cứng bên trong tức là không cần bộ nhớ chương trình. Các quá trình đọc lệnh, giải mã
lệnh không được cần đến. Giải thuật điều khiển được xây dựng ngay bên trong mạch.
- Bộ vi xử lý được thiết kế dựa trên cấu trúc MAC (multiplier/accumulator) kết hợp với
giải thuật được trình bày ở hình 4.
datapath
Q
Q
SET
CLR
D
Q
Q
SET
CLR
D
Q
Q
SET
CLR
D
Data_in
a0
*
A B
+
A B
Q
Q
SET
CLR
D
Hiệu chỉnh
sel1
load1
sel2
load2
Control unit
(FSM)
Data_outEnable
Reset
l ck
Start
a1 a2
Hình 4. Bộ vi xử lý chuyên dụng
Tuyển tập Báo cáo “Hội nghị Sinh viên Nghiên cứu Khoa học” lần thứ 6 Đại học Đà Nẵng - 2008
47
- Phương trình sai phân bậc 2 cho bộ PID có hệ số
02 b
nên chúng ta chỉ cần 3
thanh ghi lưu
)(kx
,
)1( kx
,
)2( kx
và một thanh ghi lưu biến acc (biến tạm lưu các
kết quả trung gian) được dùng chung với
)(ky
và
)1( ky
do chúng không xuất hiện
đồng thời.
- Ngoài ra
11 b
nên thành phần
)1( ky
được nạp trực tiếp cho acc ngay thời điểm đầu
tiên. Điều này cho phép dùng chung thanh ghi cho
)1( ky
và acc, quá trình nạp do đó
cũng được thực hiện đồng thời với việc nạp
)(kx
,
)1( kx
,
)2( kx
tiết kiệm một chu
kỳ máy.
- Bộ nhân sử dụng kỹ thuật Pipelining kết hợp với bộ cộng trong một chu kỳ máy đơn,
tăng tốc độ xử lý.
- Dựa trên các trạng thái của máy trạng thái (FSM), các từ điều khiển được đơn vị điều
khiển (control unit) tạo ra sẽ điều khiển datapath xử lý dữ liệu theo giải thuật. Thời gian
hoàn thành giải thuật luôn luôn là 4 chu kỳ xung clock, đây là đặc điểm quan trọng
trong bài toán điều khiển động cơ tốc độ cao, bởi chúng cần chu kỳ lấy mẫu Ts không
đổi. Các bộ vi xử lý thông thường có thể không đáp ứng đuợc điều này do chúng thường
chứa bộ nhớ Cache.
Các khối chức năng tích hợp:
Với ASIC chúng ta có thể tích hợp nhiều khối chức năng trên một chip. Trong ứng dụng
này các khối chức năng PWM (điều chế độ rộng xung), khối giao tiếp theo chuẩn
UART (truyền thông nối tiếp bất đồng bộ) đều được tích hợp.
4. Đánh giá kết quả
Quá trình thiết kế, kiểm tra và thử nhiệm trên Kit Spartan-3AN đã cho kết quả tốt. Với
chip FPGA xc3s700an, xung đồng hồ hệ thống có thể lên 62MHz (tần số thử nghiệm là
50MHz), tần số lấy mẫu đạt đến 10MHz.
5. Kết luận
Bộ điều khiển PID số này có thể được ứng dụng cho các đối tượng điều khiển khác
nhau (các hệ số Kp, Ki, Kd có thể thay đổi). Thiết kế và sử dụng các chip ASIC thay thế chip
FPGA, với việc sản xuất hàng loạt sẽ cho giá thành thấp. Có thể tích hợp thêm bộ tự chỉnh
định (Self-Tuning Controller), tự động điều chỉnh các hệ số Kp, Ki, Kd bằng cách áp dụng các
thuật toán điều khiển hiện đại như điều khiển thích nghi, điều khiển mờ.
TÀI LIỆU THAM KHẢO
[1] Tống Văn On, Nguyên Lý Mạch Tích Hợp (tập 1, tập 2). Nhà xuất bản Thống Kê, 2004
[2] Nguyễn Thị Phương Hà - Huỳnh Thái Hoàng, Lý Thuyết Điều Khiển Tự Động. NXB Đại
Học Quốc Gia Tp.HCM.
[3] Nguyễn Quốc Trung, Xử Lý Tín Hiệu Số. NXB Khoa Học và Kỹ Thuật, 1998.
[4] Các tài liệu kỹ thuật của Xilinx.
[5] L.Perry, VHDL Programming by Example. 2002…
Các file đính kèm theo tài liệu này:
- Bộ điều khiển pid số cho động cơ dc ứng dụng asic.pdf