Nâng cao chất lượng hệ thống điều khiển ứng dụng thuật toán PID-Neural và hiện thực hóa trên cơ sở ARM 32 bít Enhancing the Quality of Controlling System with the Application of PID-Neu
Trang 1Nâng cao chất lượng hệ thống điều khiển ứng dụng thuật toán PID-Neural và hiện thực hóa trên cơ sở ARM 32 bít
Enhancing the Quality of Controlling System with the Application of PID-Neural Algorithm and Its Realization on the Basis of ARM 32 bits
Trịnh Mạnh Tuyên, Nguyễn Văn Xuân, Phan Quốc Thắng
Học viện Kỹ thuật Quân sự e-Mail: tuyentm7584@gmail.com, nguyenvanxuanirf@yahoo.com, thuyquynh9901@yahoo.com
Tóm tắt:
Bài báo trình bày về một giải pháp nâng cao chất lượng hệ thống điều khiển trên cơ sở ứng dụng thuật toán kết hợp PID-Neural Nhóm tác giả đã tiến hành khảo sát, mô phỏng, đánh giá thuật toán điều khiển với các đối tượng khác nhau sử dụng phần mềm Matlab Bài báo cũng trình bày việc hiện thực hóa thuật toán trên cơ sở ARM 32 bit-Cortex M3 của STMicroelectronics, thiết kế xây dựng phần cứng hệ thống, tổ chức chương trình phần mềm điều khiển PID-Neural cùng các kết quả thử nghiệm thực tế với đối tượng điều khiển là động cơ điện một chiều
Abstract:
This paper presents a solution to enhance the quality of controlling system on the basis of applying the PID-Neural algorithm The authors have carried out a survey, simulation and assessment on the controlling algorithm with different objects, utilizing the Matlab software We present the realization of the PID-Neural algorithm on the basis of ARM 32 bits-Cortex M3 manufactured by STMicroelectronics The paper also designs and constructs the hardware and organizes the software programme of PID-Neural controlling along with actual experimental results based on DC motor
Ký hiệu
x
l
ij
Chữ viết tắt
Transmitter
1 Đặt vấn đề
Phương pháp điều khiển kinh điển PID là phương pháp được áp dụng rất phổ biến trong các bộ điều khiển công nghiệp Sở dĩ như vậy là do mức độ yêu cầu về chất lượng điều khiển của hệ thống và
sự đơn giản trong thực hiện cũng như hiệu quả về mặt kinh tế
Khi đặt yêu cầu nâng cao chất lượng hệ thống điều khiển, một trong những hướng nghiên cứu được quan tâm là kết hợp với phương pháp điều khiển thông minh, trong đó có mạng nơron nhân tạo, và đây là nội dung chính được trình bày trong bài báo này
Để xây dựng một bộ điều khiển như vậy, thiết kế phần cứng đòi hỏi việc sử dụng dòng vi điều khiển
có dung lượng nhớ lớn, tần số hoạt động cao và các yêu cầu cần thiết khác về ngoại vi Dòng ARM
32 bit-Cortex M3 là dòng vi điều khiển khá mạnh của STMicroelectronics với nhiều tính năng ưu việt - là sự lựa chọn phù hợp, đáp ứng được yêu cầu
Tuy nhiên, do khối lượng tính toán của mạng nơron trên board ARM 32 bit là rất lớn nên yêu cầu cần thiết kế cấu trúc mạng phù hợp với vi điều khiển và tối ưu thời gian điều khiển được đặt lên hàng đầu Cấu trúc mạng nơron sẽ bao gồm luôn
Trang 2cả đối tượng điều khiển nên không thể sử dụng các
luật học thông thường như luật học lan truyền
ngược mà cần một luật học khác phù hợp Ở đây,
nhóm tác giả đã sử dụng thuật toán Brandt-Lin do
2 nhà khoa học Robert D Brandt và Feng Lin đưa
ra làm giải pháp cho việc huấn luyện mạng nơron
2 Thuật toán điều khiển PID-Nueral
2.1 Thuật toán Brandt-Lin
Tư tưởng của thuật toán Brandt-Lin chia nhỏ một
hệ thống phức tạp thành N hệ thống con gọi là các
ra của các nút được nối với nhau thông qua các
trọng số Đặc tính động học của mỗi trạm được mô
tả bằng một hàm nhân quả:
trình sau: y n (t)=F n (x n (t)), n Є N
Định lý: Đối với một hệ thống có tính động học
cho bởi [4]:
j
1
q
E
1
1
1
1
2
n
i
sẽ giảm
dần theo thời gian, trong đó γ>0 là hệ số thích
nghi
Trong đó wij l là trọng số liên kết của nút thứ j
thuộc lớp l xuất phát từ nút thứ i
l
j
ij ij i
x w y1
là đầu vào của nút thứ j thuộc
lớp l xuất phát từ nút thứ i, q là số lượng nhánh ra
xuất phát từ nút thứ j của lớp l
Chứng minh:
1
1
i
l ' l l
j ij i l
j
d y d x d y
d E d E d E
y
d w d y d x d w d y d x
d E
F ( x ) y
d y
1
1 1
jk 1
1
1
(1)
l q
k
k
q
k
dE dE
dy d F x y
dy
dE E dE
dy y dy dy
E dE
w F x
y dy
1
1
1
1
3
3
1
q l jk
k
mà theo ( ) suy ra :
w
1 1
l + 1
jk q
l l+ 1
jk jk
k
dE
m à w
dw
1
1
1
1
q
k
q
E
E
2.2 Bộ điều khiển PID-Neural chỉnh định thích nghi trọng số theo thuật toán Brandt-Lin
Trong phần này nhóm tác giả trình bày việc vận dụng thuật toán Brandt-Lin vào việc chỉnh định
các trọng số W p, W I, W D của bộ điều khiển PID-Neural Hình H.2 là sơ đồ khối của hệ thống điều khiển với bộ điều khiển PID-Neural Hình H.4 là
sơ đồ bộ điều khiển PID-Neural có chỉnh định thích nghi trọng số của mạng
Trang 3H 2 Hệ thống điều khiển PID-Neural
Mạng nơron được dùng để thiết kế bộ điều khiển
chỉ có 1 nơron với 3 đầu vào, một đầu ra, hàm
Theo thuật toán Brandt-Lin, hệ thống trên được
chia thành 3 lớp, 5 nút Hình H.4 mô tả sự phân
tích hệ thống theo thuật toán này Nút mã số 11 là
khâu P có hệ số khuếch đại bằng 1, nút mã số 12 là
khâu I, nút mã số 13 là khâu D, nút mã số 21 gồm
phần mạng nơron không chứa các trọng số đối
tượng, nút mã số 31 là đối tượng Các trọng số là
3
11
3 3
11 11
còn là:
j
1
Brandt-Lin
E
1
2
m
e
2 1
y z
chính là đạo hàm đầu ra của đối tượng
theo đầu vào
2
1
1
z
t
Chuyển sang miền Laplace:
sY s Y s
sU s U s
Do vậy với một hệ động học ổn định, có thể xấp xỉ
2 1
y z
về 1 hằng số Các kết quả mô phỏng bằng Matlab/Simulink và kết quả điều khiển thực tế cho thấy sự xấp xỉ này không ảnh hưởng xấu đến việc điều khiển Hằng số này được đưa vào trong hệ số bước học nên sai lệch trọng số sẽ là:
2
11 p
w e e
Tính toán tương tự thu được:
2
21 I
w e e
2
w e e
2.3 Kết quả mô phỏng
Dưới đây là các kết quả mô phỏng bộ điều khiển PID-Neural chỉnh định thích nghi trọng số của mạng với các loại đối tượng và điều kiện mô phỏng khác nhau Các kết quả này được so sánh với các kết quả điều khiển từ bộ PID truyền thống Tín hiệu mẫu là tín hiệu mức 1 Các mô phỏng được thực hiện bằng Matlab/Simulink
a) Đối tượng ổn định
Đối tượng điều khiển là đối tượng quán tính bậc 2
ổn định có hàm truyền G(s) là:
1 G( s )
s 1 s 5
Bộ điều khiển PID-Neural: Có hệ số thích nghi γ=1 và các trọng số có giá trị ban đầu là:
Trang 4Mô hình điều khiển:
T I , T D được tính theo phương pháp hằng số thời
gian tổng Kuhn:
Hàm truyền của đối tượng được viết lại như sau:
0.2
G( s )
1 s 1 0.2s
T 10.21.2 s ;
P
2
0.2
0.8 *1.2 0.96
I
T ;T D 0.194 * 1.20.2328
Kết quả mô phỏng:
Nhận xét: So sánh đường đặc tính quá độ trong
hai trường hợp, ta nhận thấy với bộ điều khiển
PID-Neural đối tượng xác lập nhanh hơn và có độ
quá điều chỉnh nhỏ hơn so với khi sử dụng bộ điều
khiển PID truyền thống sử dụng phương pháp tổng
T của Kuhn
b) Đối tượng có nhiễu
Nghiên cứu trường hợp có nhiễu, đưa vào hệ thống
nhiễu ồn trắng có cường độ noise power =0.01 và
nhiễu được cộng thêm vào đầu vào của đối tượng
Đối tượng nghiên cứu không đổi Các tham số bộ
điều khiển vẫn giữ như trường hợp a
Kết quả mô phỏng:
nhiễu
Nhận xét: Xem xét trường hợp khi có nhiễu tác
động ở đầu vào của đối tượng, thì đường đặc tính quá độ bộ điều khiển PID-Neural vẫn duy trì điều khiển tín hiệu đầu ra bám tốt theo tín hiệu đặt và cũng không xẩy ra quá điều chỉnh
c) Đối tượng có trễ
Để tạo ra đối tượng có trễ, ta thêm vào 1 khâu trễ trước đối tượng điều khiển Thời gian trễ là 0.2 giây
Đối tượng điều khiển có hàm truyền là:
0.2 s
e
G s
Bộ điều khiển PID-Neural: Bộ điều khiển có hệ số thích nghi γ=0.3 và các trọng số có giá trị ban đầu là:
Mô hình điều khiển:
T I , T D được tính theo phương pháp hằng số thời gian tổng Kuhn:
Hàm truyền của đối tượng được viết lại như sau:
0.2 s 0.2e G( s )
1 s 1 0.2s
T 10.20.21.4 s ; 2
10 ; 0.8 * 1.4 1.12 0.2
P I
0.194 *1.4 0.2716
D
Trang 5Kết quả mô phỏng:
Nhận xét: Với bộ điều khiển PID-Neural sử dụng
cho đối tượng có trễ thì độ quá điều chỉnh là nhỏ
và thời gian quá độ cũng nhỏ hơn PID truyền
thống Căn cứ vào các kết quả thu được, có thể
thấy thấy bộ điều khiển PID-Neural cho đường đặc
tính điều khiển tốt hơn rõ so với bộ điều khiển PID
truyền thống theo phương pháp tổng T của Kuhn
3 Xây dựng hệ thống điều khiển với ARM 32
bít-STM32F103VCT6 3.1 Giới thiệu vi điều khiển STM32F103VCT6
- Là bộ vi điều khiển có cấu trúc RISC 32 bit,
tần số làm việc lên tới 72MHz, tiêu tốn năng lượng
thấp
- Bộ nhớ chương trình lên tới 256 Kbytes
Flash; dung lượng RAM 64 Kbytes; giao diện bộ
nhớ bên ngoài cho 4 băng của SRAM, PSRAM,
Flash, NOR
- Nguồn cấp: 3.0 đến 3.6V, có ba chế độ tiết
kiệm năng lượng: SLEEP, STOP và STANDBY
- Điều khiển ngắt nhanh với nhiều vector ngắt,
16 vector ngắt ngoài
- Số lượng cổng vào ra lớn: lên tới 80 cổng vào
ra
- Có 11 bộ định thời: 2 bộ định thời watchdog
16 bit; 4 bộ định thời 16 bit ; 2 bộ định thời cho
DAC, 2 bộ định thời cho PWM ; 01 systick timer
- Gồm 13 giao diện truyền thông: 2 giao diện
I2C; 5 giao diện UART không đồng bộ; 3 giao
diện SPI ; giao diện CAN (2.0B tích cực); giao
diện USB với tốc độ tối đa (12 Mbit/s); giao tiếp
SDIO
- 3 kênh chuyển đổi ADC (tương tự/số) 12 bit:
tần số trích mẫu lên tới 1MHz; dải chuyển đổi từ 0
đến 3.6V
3.2 Sơ đồ khối phần cứng hệ thống điều khiển
- Bộ điều khiển trung tâm là vi điều khiển
ARM 32 bít - STM32F103VCT6
- Khối nguồn sử dụng IC AMS1117 (3.3V)
- Bàn phím cho phép nhập các tham số, chế độ điều khiển trực tiếp ngay trên Boad mạch trung tâm
- LCD cho phép hiển thị các tham số trong quá trình điều khiển hệ thống
- Giao diện RS232 giao tiếp Boad mạch trung
tâm với máy tính sử dụng bộ thu phát trung tâm là MAX3232, nguồn cấp (3.3V), tốc độ truyền lên tới
1 Mbps
- DC Motor với các tham số chính: nguồn cấp 12V, tốc độ định mức 4000 vòng/phút, công suất 25W, dòng tiêu thụ ~2A, độ phân giải của encoder
100 xung/vòng
- Driver điều khiển DC Motor sử dụng IC cầu
H là L298, nguồn cấp 12V, khả năng chịu được dòng điện lên tới 4A Ở đây IC74ALVC164245DL được sử dụng để tương thích logic điện áp 5V của mạch L298 với điện áp 3.3V của vi điều khiển ARM 32 bít
- Nhờ thiết kế đa dạng đầu vào và đầu ra theo các chuẩn công nghiệp như trên, bộ điều khiển có khả năng giao tiếp với nhiều loại thiết bị cảm biến
và cơ cấu chấp hành khác nhau
Kết quả thi công thực tế hệ thống điều khiển:
UART
PWM TIMER
Máy tính
RS232
Bộ điều khiển trung tâm (STM32 F103VCT6)
Khối công suất
DC Motor Encoder
Khối nguồn
LCD
Bàn phím
Đầu vào
số, đầu vào tương tự
Đầu ra số, đầu ra tương tự
Trang 64 Thực hiện thuật toán PID-Neural trên ARM
32 bít và kết quả đạt được
4.1 Cấu trúc chương trình điều khiển
- Khối cộng:
Nhiệm vụ của khối cộng là tạo đầu vào e cho
mạng nơron bằng sai lệch giữa tín hiệu đặt và tín
hiệu phản hồi Đầu vào của khối cộng là tín hiệu
đặt nhận từ máy tính và tín hiệu phản hồi nhận từ
đối tượng điều khiển
- Khối xử lý đầu vào của mạng nơron:
Nhiệm vụ của khối xử lý đầu vào là đa dạng hóa
tín hiệu đầu vào cho mạng nơron thành e ,e , eP I D
thông qua các khâu khuếch đại, khâu tích phân,
được tạo ra từ khâu tích phân
s
1 , tín hiệu eD được tạo ra từ khâu vi phân s Đầu vào của khối xử lý
đầu vào là sai lệch e
- Khối tạo cấu trúc mạng nơron:
Nhiệm vụ của khối tạo cấu trúc mạng nơron là tính
toán đầu ra của mạng nơron theo các trọng số mới
nhận từ khối huấn luyện mạng Đầu vào của khối
này là e , e , e nhận từ khối xử lý đầu vào và các P I D
trọng số mới nhất được chỉnh định từ khối huấn
luyện mạng nơron
- Khối huấn luyện mạng nơron:
Nhiệm vụ của khối huấn luyện mạng nơron là
chỉnh định các trọng số của mạng theo hàm mục
tiêu là giảm sai lệch e về 0 Đầu vào của khối này
là sai lệch e
- Khối xử lý đầu ra:
Nhiệm vụ của khối xử lý đầu ra là cung cấp tín
hiệu điều khiển cho đối tượng thông qua bộ điều
chế độ rộng xung Bộ điều chế độ rộng xung được
tích hợp sẵn trong vi điều khiển ARM 32 bít Đối
tượng điều khiển là động cơ nên tín hiệu điều
khiển là các xung số Đầu vào của khối xử lý đầu
ra là giá trị của đầu ra mạng nơron
- Khối giao tiếp máy tính:
Khối này có nhiệm vụ truyền giá trị đầu ra của đối tượng lên máy tính, đồng thời cài đặt tham số điều khiển xuống bộ điều khiển trung tâm Đầu vào của khối này là tín hiệu phản hồi từ đối tượng điều khiển
4.2 Thiết kế vòng điều khiển chương trình
Hình trên mô tả vòng điều khiển chương trình Đầu tiên thực hiện việc đọc giá trị đầu ra của đối
tượng và tính toán sai lệch e, tiếp đó sẽ thực hiện
việc đa dạng hóa đầu vào cho mạng nơron, rồi thực hiện tác vụ tạo cấu trúc mạng, sau đó tác vụ huấn luyện mạng được thực hiện, sau khi huấn luyện mạng thì thực hiện điều chế độ rộng xung tạo tín hiệu điều khiển động cơ một chiều, cuối
cùng là thực hiện việc truyền dữ liệu lên máy tính
Thời gian thực hiện 1 vòng quét là 30ms Việc cố định thời gian này được thực hiện bằng Timer 2 Khi Timer 2 báo hết 30ms sẽ xuất hiện ngắt tràn cho phép thực hiện vòng quét tiếp theo
4.3 Chương trình điều khiển
Chương trình cho vi điều khiển ARM 32 bít được viết trên phần mềm Keil C for ARM V4.0
Trang 7Giao diện người dùng được viết bằng phần mềm
C# (Microsoft)
Chương trình điều khiển được viết theo lưu đồ
thuật toán được đưa ra ở hình dưới đây:
Chương trình điều khiển được tổ chức dưới dạng
module (file) lần lượt thực hiện các công việc:
đếm xung từ encoder; đa dạng hóa đầu vào cho
mạng nơron, huấn luyện mạng, tính đầu ra; điều
chế độ rộng xung PWM; truyền dữ liệu lên máy
tính
4.4 Kết quả thực nghiệm
Ban đầu mức điều khiển là 1000 vòng/phút, sau đó
giảm mức điều khiển xuống 800 vòng/phút và lại
quay lại với tốc độ là 1000 vòng/phút Công thức
tính tốc độ động cơ theo số xung đo được từ
30*100
n
(vòng/phút)
Trong đó: v: tốc độ động cơ (vòng/phút)
n: số xung encoder đo được
chiều
Nhận xét: Ở mức 1000 vòng/phút, động cơ đạt
được xác lập ở giá trị này với sai số trên dưới 1.5%, khi giá trị đặt là thấp thì sai số lớn hơn Thời gian quá độ của hệ thống khoảng 0.6s Nguyên nhân của sự sai lệch này là do độ phân giải
encoder của động cơ thấp
5 Kết luận
Bộ điều khiển được thiết kế dựa trên dòng vi điều khiển ARM 32 bít cho phép tăng hiệu quả tính toán, mặt khác lại có khả năng kết nối vào ra theo các chuẩn công nghiệp phổ biến, qua đó góp phần đem lại khả năng điều khiển đa dạng các đối tượng công nghiệp có chu kỳ điều khiển lớn nhỏ khác nhau
Bộ điều khiển kết hợp PID-Neural có khả năng ứng dụng linh hoạt, cho chất lượng điều khiển tốt khi thay đổi giá trị đặt và ngay cả khi hệ thống chịu ảnh hưởng của nhiễu Điều này khắc phục hạn chế của bộ điều khiển PID kinh điển, thường không đem lại chất lượng mong muốn khi hệ thống có giá trị đặt thay đổi trong khoảng rộng hoặc có nhiễu tác động
Phương pháp điều khiển kết hợp PID-Neural trên nền vi điều khiển mạnh như ARM 32 bít hứa hẹn khả năng xây dựng bộ điều khiển công nghiệp trong tương lại
Tài liệu tham khảo
thuyết điều khiển mờ”, NXB Khoa học và Kỹ
thuật, 2006
trúc và lập trình họ vi điều khiển 8051”,
NXB Khoa học và Kỹ thuật, 2003
dành cho kỹ sư điều khiển tự động”, NXB
Khoa học và Kỹ thuật, 2010
Elsevier, Information Science 121, pp
201-215 1999
[5] F Lin, R D Brandt, G Saikalis, “Self-Tuning
of PID Controllers by Adaptive Interaction”,
IEEE CONTROL SOCIETY, 2000 American Control Conference, Chicago, 2000
Berlin, 1996
Trang 8Trịnh Mạnh Tuyên sinh
năm 1984 Anh nhận bằng Kỹ
sư ngành Điều khiển tự động của trường Đại học Bách Khoa Hà Nội năm 2008 Từ năm 2009 đến nay, anh là giáo viên Bộ môn Tự động và
Kỹ thuật tính, Khoa Kỹ thuật Điều khiển, Học viện
Kỹ thuật Quân sự (HVKTQS) Hiện anh đang làm
luận văn tốt nghiệp cao học chuyên ngành Tự
động hóa tại HVKTQS Hướng nghiên cứu chính
là tự động hóa các quá trình công nghệ, tích hợp
hệ thống điều khiển giám sát, các hệ thống mạng
máy tính và truyền thông công nghiệp
Nguyễn Văn Xuân sinh năm
1981 Năm 2005 anh nhận bằng Kỹ sư ngành Toán tin, năm 2010 anh nhận bằng thạc sỹ ngành Tự động hóa tại HVKTQS Từ năm 2005 đến nay anh là giáo viên Bộ môn Tự động và Kỹ thuật tính, Khoa Kỹ thuật Điều khiển, HVKTQS Hướng
nghiên cứu chính là ứng dụng vi điều khiển cho hệ
thống nhúng, các thuật toán điều khiển phỏng sinh
học, các hệ thống mạng truyền thông công nghiệp
Phan Quốc Thắng sinh năm 1954 Ông nhận
bằng kỹ sư và Tiến sỹ ngành vô tuyến điện năm
1978 và 1990 đều tại Học viện Kỹ thuật quân sự
WAT-Ba Lan Từ năm 1991 đến nay, là giảng viên
Bộ môn Tự động và Kỹ thuật tính, Khoa Kỹ thuật
Điều khiển, HVKTQS Hướng nghiên cứu chính là
các hệ thống xử lý số, điều khiển số, các hệ thống
đo lường tự động, các hệ thống điện tử lập trình,
hệ thống nhúng, các phương pháp điều khiển
thông minh, mạng nơron nhân tạo và hệ nhúng