Current controller design based on FPGA

In closed-loop control systems for motors, a current controller is usually designed as the inner loop

while the outers are the speed and the position controllers. Therefore, the current controller usually does not need

boundary conditions. Most of these controllers are currently operated on software, resulting in lots of computational

volumes, complex algorithms and slow responses. To overcome these drawbacks, the current controller should be

hardened to increase the responsiveness and reduce the load on the CPU. The goal of this paper is to present the

allowance of FPGA technology for users to design hardening of the flow controller regardless of the CPU scan

cycles. Experimental and simulation results show that the design of current controllers based on FPGA response

meets the response requirements.

Current controller design based on FPGA trang 1

Trang 1

Current controller design based on FPGA trang 2

Trang 2

Current controller design based on FPGA trang 3

Trang 3

Current controller design based on FPGA trang 4

Trang 4

Current controller design based on FPGA trang 5

Trang 5

Current controller design based on FPGA trang 6

Trang 6

Current controller design based on FPGA trang 7

Trang 7

Current controller design based on FPGA trang 8

Trang 8

pdf 8 trang duykhanh 18320
Bạn đang xem tài liệu "Current controller design based on FPGA", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Current controller design based on FPGA

Current controller design based on FPGA
 trị đầu vào 
đặt r = 100. Nếu so sánh với việc mô phỏng trên 
Matlab thì số chu kỳ để đạt được giá trị xác lập 
ổn định thì ở đây đáp ứng nhanh hơn nhiều. Điều 
đó nhờ vào hoạt động độc lập của bộ điều khiển 
được thiết kế cứng, chúng không phụ thuộc vào 
các vòng quét của CPU. 
Trước tiên, chúng ta xây dựng bộ điều 
khiển dòng điện trên phần mềm Matlab cho đối 
tượng điều khiển trên. Bộ điều khiển số với chu 
kỳ trích mẫu T
s
 =0.1ms, T
F
 = 0.142 kích thích đầu 
vào là hàm bước nhảy (Step), giá trị đặt là r =1.
Kết quả mô tả trên Hình 5 là hệ chưa có 
bộ điều khiển số nên đáp ứng đầu ra 0.05/1 (đầu 
vào là 1) hệ chưa xác lập ổn định.
Hình 5. Kết quả mô phỏng khi chưa có bộ PID
Bộ điều khiển dòng điện cụ thể khâu P số 
được đưa thêm vào hệ thống, kết quả này được 
thể hiện trên Hình 6. Đáp ứng đầu ra 0.63 so với 
kích thích đầu vào 1, hệ chưa ổn định ở trạng 
thái xác lập.
Hình 6. Kết quả mô phỏng khi sử dụng P
1 1
1 1
( )( )
( )
− −
− −P I
z z zz
z z
 ( ) 
r : 
; ;
; ;
s
P P I I
s F
s F s F
 ( ) ( ) 
r ti , t i i 
 i tr tl i t 
i i tr . i i s i trí 
 s . s, F . í t í l 
 ( t ), i trị t l r . 
t t tr ì l i 
i s r . / ( l ) 
 l ị . 
ì . ết ả i c a c I 
 i i i t s 
 t t , t t i 
tr ì . r . s i í 
t í , ị tr t i 
l . 
ì . ết ả i s 
 t , i i I, I s 
 t i t . t 
t i i i I s tr tl , t tì 
 i ị t i i ì 
 i I s ì i 
I s . t i tr ị 
 l t i t i i . s i trị t 
 s ; i ; . ; s 
. s. 
ì . ết ả i s I 
ì . ết ả i s I 
 t: i t i t t t i i 
( ì ) tr , t i i 
I s i i t t t t t t, 
 t ị i t i s 
, i, . 
i i i t 
, I, I ỉ r r i i i 
 tr t t i I 
t ị , r t t i i t 
i i s i I i 
tr . 
. . i i i t 
 tr , i i s 
 tr t i 
t i t t t t , 
t i i 
i. i t tr tl i i 
 i ỉ I I 
l i t ị tr . ì , 
i i i I t i 
 tr t t trì s i 
. 
 ( ), trì s i t tr 
tr s : 
7 4 3. ( ) . ( ) . ( )
( ) ( ) ( )
 ( ) 
r : ( ) ( ) ( )r ( ) 
r ì l t t t 
i i tr t 
tr trì s i ( ) i t 
i i tr ( ) i i 
s I, l trì l 
ril . 
ì . t ầ cấ tr c ệ iề iể s I s â trê ề tả 
 i t i i i 
i i s I tr , t i ti 
 t tr 
l i lt r i l 
, s (tr t t t 
 l s), i trị t r (s 
i t i tr í ). t ỉ r tr 
ì ( -t t , l l ) t 
t ị l t i i s i i trị 
 r l t i trị 
t r . s s i i tr 
tl t ì s t i trị l 
 ị t ì i . i 
 t l i i 
 t i t , t 
 t . 
75
QUY NHON UNIVERSITY
SCIENCEJOURNAL OF
Journal of Science - Quy Nhon University, 2020, 14(1), 71-78
Tương tự, các bộ điều khiển PI, PID số 
cũng được thực hiện cho hệ thống này. Bằng kết 
quả tối ưu bộ điều khiển PID số trên Matlab, ta 
tìm được điểm ổn định cho hệ thống điều khiển 
Hình 7 ứng với khâu PI số và Hình 8 ứng với 
khâu PID số. Kết quả cả hai trường hợp đều 
ổn định xác lập tại thời điểm 1.6s và giá trị đạt 
được các hệ số Kp = 35; Ki = 102; Kd = 0.29; 
Ts = 0.0001s.
Hình 7. Kết quả mô phỏng khi sử dụng PI
Hình 8. Kết quả mô phỏng khi sử dụng PID
Nhận xét: Khi thực hiện thuật toán điều 
khiển (Hình 4) trên phần mềm, hệ thống điều 
khiển PID số với đối tượng tổng quát cho kết quả 
tốt, hệ thống đáp ứng ổn định khi tối ưu hóa các 
hệ số Kp, Ki, Kd.
Việc mô phỏng ở các chế độ của bộ điều 
khiển từ P, PI, PID để chỉ ra rằng bộ điều khiển 
dòng điện nằm trong cùng có thể thực hiện khâu 
PI vẫn có thể bảo đảm độ ổn định, rút ngắn thời 
gian thực hiện và giảm bộ nhớ so với bộ PID khi 
xây dựng trên phần cứng.
2.4. Xây dựng bộ điều khiển dòng điện trên 
phần cứng của FPGA
Như đã đề cập trong phần đầu, bộ điều khiển số 
được xây dựng trên nền tảng FPGA nhằm giảm 
tải vòng quét của CPU ở các thuật toán mềm, 
tăng khả năng đáp ứng cho các vòng điều khiển 
ngoài. Như đã diễn tả trên Matlab bộ điều khiển 
dòng điện chỉ cần khâu PI hoặc PID cũng mang 
lại hệ thống ổn định cho vòng trong. Vì vậy, 
khâu điều khiển dòng điện PI được thực hiện 
cứng hóa dựa trên nền tảng FPGA theo phương 
trình sai phân.
Từ (12), phương trình sai phân được mô tả 
trong trường số nguyên của FPGA: 
Trên Hình 9 là một phần kết quả của hệ 
thống điều khiển xây dựng trên nền tảng FPGA 
dựa trên phương trình sai phân (16) gồm đối 
tượng điều khiển được cho trong (12) và bộ điều 
khiển số PI, ngôn ngữ lập trình phần cứng cho 
FPGA là Verilog.
4 
1 1
1 1
( ) 1 1( )
(z) 1 1
− −
− −
+ +
= = + +
− −P I D
U z z zH z G G G
E z Cz
 (14) 
Trong đó: 
; ;
2
22 ; ;
2 2
= =
−
= =
+ +
s
P P I I
s FD
D
s F s F
TG K G K
T TKG C
T T T T
 (15) (15) 
Trước tiên, chúng ta xây dựng bộ điều khiển 
dòng điện trên phần mềm Matlab cho đối tượng 
điều khiển trên. Bộ điều khiển số với chu kỳ trích 
mẫu Ts =0.1ms, TF = 0.142 kích thích đầu vào là 
hàm bước nhảy (Step), giá trị đặt là r =1. 
Kết quả mô tả trên Hình 5 là hệ chưa có bộ điều 
khiển số nên đáp ứng đầu ra 0.05/1 (đầu vào là 1) 
hệ chưa xác lập ổn định. 
Hình 5. Kết quả mô phỏng khi chưa có bộ PID 
Bộ điều khiển dòng điện cụ thể khâu P số được 
đưa thêm vào hệ thống, kết quả này được thể hiện 
trên Hình 6. Đáp ứng đầu ra 0.63 so với kích 
thích đầu vào 1, hệ chưa ổn định ở trạng thái xác 
lập. 
Hình 6. Kết quả mô phỏng khi sử dụng P 
Tương tự, các bộ điều khiển PI, PID số cũng 
được thực hiện cho hệ thống này. Bằng kết quả 
tối ưu bộ điều khiển PID số trên Matlab, ta tìm 
được điểm ổn định cho hệ thống điều khiển Hình 
7 ứng với khâu PI số và Hình 8 ứng với khâu 
PID số. Kết quả cả hai trường hợp đều ổn định 
xác lập tại thời điểm 1.6s và giá trị đạt được các 
hệ số Kp = 35; Ki = 102; Kd = 0.29; Ts = 
0.0001s. 
Hình 7. Kết quả mô phỏng khi sử dụng PI 
Hình 8. Kết quả mô phỏng khi sử dụng PID 
Nhận xét: Khi thực hiện thuật toán điều khiển 
(Hình 4) trên phần mềm hệ, thống điều khiển 
PID số với đối tượng tổng quát cho kết quả tốt,
hệ thống đáp ứng ổn định khi tối ưu hoá các hệ số 
Kp, Ki, Kd. 
Việc mô phỏng ở các chế độ của bộ điều khiển từ 
P, PI, PID để chỉ ra rằng bộ điều khiển dòng điện 
nằm trong cùng có thể thực hiện khâu PI vẫn có 
thể bảo đảm độ ổn định, rút ngắn thời gian thực 
hiện và giảm bộ nhớ so với bộ PID khi xây dựng 
trên phần cứng. 
2.4. Xây dựng bộ điều khiển dòng điện trên 
phần cứng của FPGA 
Như đã đề cập trong phần đầu, bộ điều khiển số 
được xây dựng trên nền tảng FPGA nhằm giảm 
tải vòng quét của CPU ở các thuật toán mềm, 
tăng khả năng đáp ứng cho các vòng điều khiển 
ngoài. Như đã diễn tả trên Matlab bộ điều khiển 
dòng điện chỉ cần k âu PI hoặc PID cũng mang
lại hệ thống ổn định cho vòng trong. Vì vậy, khâu 
điều khiển dòng điện PI được thực hiện cứng hoá 
dựa trên nền tảng FPGA theo phương trình sai 
phân. 
Từ (12), phương trình sai phân được mô tả trong
trường số nguyên của FPGA: 
7 4 310. ( ) 1903.10 ( 1) 9048.10 ( 2)
238 ( ) 476 ( 1) 238 ( 2)
= − − − +
+ + − + −
y k y k y k
u k u k u k
 (16) 
Trong đó: e( ) ( ) ( )= −k r k y k (17) 
Trên Hình 9 là một phần kết quả của hệ thống 
điều khiển xây dựng trên nền tảng FPGA dựa 
trên phương trình sai phân (16) gồm đối tượng 
điều khiển được cho trong (12) và bộ điều khiển 
số PI, ngôn ngữ lập trình phần cứng cho FPGA là 
Verilog. 
Hình 9. Một phần cấu trúc hệ điều khiển sử dụng bộ PI số xây dựng trên nền tảng FPGA 
Sau khi xây dựng hệ thống điều khiển với khâu 
điều khiển số PI cứng hoá trên FPGA, tác giả tiến 
hành mô phỏng kết quả trên phần mềm 
ModelSim của Altera với chu kỳ CLOCK là 
0,1ms (trong thực tế hệ thống này cho phép mô 
phỏng lên đến 1ps), giá trị đặt r = 100 (số nguyên 
khi thực hiện trên chíp). Kết quả được chỉ ra trên 
Hình 10 (a-tổng thể, b là phóng lớn) cho thấy hệ 
thống ổn định xác lập ở thời gian 41ms với giá trị 
đầu ra xác lập y = 100 tương ứng giá trị đầu vào 
đặt r = 100. Nếu so sánh với việc mô phỏng trên 
Matlab thì số chu kỳ để đạt được giá trị xác lập 
ổn định thì ở đây đáp ứng nhanh hơn nhiều. Điều 
đó nhờ vào hoạt động độc lập của bộ điều khiển 
được thiết kế cứng, chúng không phụ thuộc vào 
các vòng quét của CPU. 
76
TRƯỜNG ĐẠI HỌC QUY NHƠN
KHOA HỌCTẠP CHÍ
Tạp chí Khoa học - Trường Đại học Quy Nhơn, 2020, 14(1), 71-78
Sau khi xây dựng hệ thống điều khiển với 
khâu điều khiển số PI cứng hóa trên FPGA, tác 
giả tiến hành mô phỏng kết quả trên phần mềm 
ModelSim của Altera với chu kỳ CLOCK là 
0,1ms (trong thực tế hệ thống này cho phép mô 
phỏng lên đến 1ps), giá trị đặt r = 100 (số nguyên 
khi thực hiện trên chíp). Kết quả được chỉ ra trên 
Hình 10 (a-tổng thể, b là phóng lớn) cho thấy hệ 
Hình 9. Một phần cấu trúc hệ điều khiển sử dụng bộ PI số xây dựng trên nền tảng FPGA
thống ổn định xác lập ở thời gian 41ms với giá trị 
đầu ra xác lập y = 100 tương ứng giá trị đầu vào 
đặt r = 100. Nếu so sánh với việc mô phỏng trên 
Matlab thì số chu kỳ để đạt được giá trị xác lập 
ổn định thì ở đây đáp ứng nhanh hơn nhiều. Điều 
đó nhờ vào hoạt động độc lập của bộ điều khiển 
được thiết kế cứng, chúng không phụ thuộc vào 
các vòng quét của CPU.
Hình 10. Kết quả mô phỏng hệ thống khi xây dựng bộ điều khiển số trên FPGA
77
QUY NHON UNIVERSITY
SCIENCEJOURNAL OF
Journal of Science - Quy Nhon University, 2020, 14(1), 71-78
Như vậy, ta thấy thực hiện bộ điều khiển 
trên phần cứng và phần mềm đều cho kết quả 
của hệ thống ổn định và xác lập trạng thái đáp 
ứng đầu ra. Đồng thời tốc độ làm việc của bộ 
điều khiển PI số được xây dựng trên phần cứng 
(Hardware) phụ thuộc vào tốc độ Clock của 
FPGA mà không phụ thuộc vào chu kỳ vòng 
quét của CPU như trước đây. 
2.4. Xây dựng hệ thống thực nghiệm
Ưu điểm của FPGA trong việc thiết kế phần 
cứng một cách dễ dàng và khả năng tái cấu trúc 
phần cứng nhiều lần hay cho phép người dùng 
thay đổi cấu trúc bộ điều khiển ngay cả khi đang 
hoạt động. Trong nội dung mục này, tác giả thực 
hiện cấu hình thực nghiệm bộ điều khiển dòng 
điện (PI) trên nền tảng FPGA chíp Cyclone V 
5CSEMA5F31C6 của hãng Altera. Thực nghiệm 
này được thực hiện trên KIT De1SoC. Sau khi 
thiết kế bằng ngôn ngữ Verilog, ta tiến hành biên 
dịch để tạo file.sof chứa chuỗi Bitstream (nhị 
phân) cấu hình cho FPGA. Đối với KIT De1SoC 
cấu trúc 5CSEMA5F31C6 chia làm hai phần: 
một là lõi mềm ARM, hai là FPGA ở đây file.
sof chỉ cấu hình cho phần FPGA (phần bên phải 
của Hình 11).
Hình 11. Cấu hình phần cứng trên chíp Cyclone V 
5CSEMA5F31C6 - KIT De1SoC Altera
Sau khi cấu hình thành công trên phần 
cứng FPGA, hệ thống được chạy thực trên 
KITDe1Soc và đo đạt đầu ra trên oscilloscope 
thông qua các chân đáp ứng đầu ra “y”. Kết quả 
Hình 12 là quá trình tổng thể và thời điểm quá 
trình quá độ Hình 13. 
Hình 12. Kết quả thực nghiệm hệ thống điều khiển
Hình 13. Quá trình quá độ của thực nghiệm
Để dễ dàng biểu diễn trạng thái đáp ứng 
đầu ra, ta tiếp tục tiến hành thay đổi tần số hiển 
thị biểu diễn các kết quả thực nghiệm khi truy 
xuất các số liệu thực nghiệm từ file.xls trên 
oscilloscope điện tử và xây dựng biểu đồ như 
Hình 14.
Hình 14. Biểu diễn hệ thống đáp ứng đầu ra “y” và 
kích thích đầu vào từ các số liệu thực nghiệm
Một lần nữa, kết quả thực nghiệm cho thấy 
việc xây dựng bộ điều khiển dòng điện trên nền 
78
TRƯỜNG ĐẠI HỌC QUY NHƠN
KHOA HỌCTẠP CHÍ
Tạp chí Khoa học - Trường Đại học Quy Nhơn, 2020, 14(1), 71-78
tảng FPGA là hoàn toàn phù hợp hướng nghiên 
cứu trong tương lai và tiến đến ứng dụng trên các 
thiết bị điều khiển thương mại. 
3. KẾT LUẬN
Với nội dung thực hiện ở trên, bài báo đã đưa ra 
được các vấn đề sau đây: Đề xuất xây dựng bộ 
điều khiển dòng điện (cụ thể PI, hoặc PID) trên 
nền FPGA là hoàn toàn hợp lý. Việc xây dựng bộ 
điều khiển dòng điện trên phần cứng giúp giảm 
tải cho CPU và tăng khả năng đáp ứng, rút ngắn 
thời gian thực hiện điều khiển. 
Bằng kết quả mô phỏng trên phần mềm 
ModelSim và thực nghiệm trên KITDe1SoC cho 
kết quả đáp ứng tốt, thời gian xác lập nhanh, 
không phụ thuộc vào chu trình phần mềm.
TÀI LIỆU THAM KHẢO
1. W. Wang and P. Zhao. Application of kalman 
filter in the CNC servo control system, Symp. 
Secur. Detect. Inf. Process., 2010, 7, 442-446.
2. Y. C. Xiaohong Wang, Zhiffeng Pan, Thi Thu 
Giang Hoang, Liafang Tian. New Repetitive 
curent controller for PWM Rectifier, IFAC 
International Fed. Autom. Control., 2018, 154-
159.
3. E. R. Alphonsus and M. O. Abdullah. A review 
on the applications of programmable logic 
controllers (PLCs), Renew. Sustain. Energy Rev., 
2016, 60, 1185-1205.
4. P. Ponce, A. Molina, G. Tello, L. Ibarra, B. 
MacCleery, and M. Ramirez. Experimental 
study for FPGA pid position controller in CNC 
Micro-machines, IFAC Proc. Vol., 2015, 48(3), 
2203-2207.
5. M. Aboelaze and M. G. Shehata. Implementation 
of Multiple PID Controllers on, 978-1-5090-
0246-7/15/2015 IEEE, 2015, 446-449.
6. L. Kong, L. Zhu, L. Zhang, H. Bao, and C. 
Rao. Real-Time Controller Based on FPGA and 
DSP for Solar Ground Layer Adaptive Optics 
Prototype System at 1-m NVST, IEEE Photonics 
J., 2017, 9(2), 1-11.
7. B. D. Reddy, N. K. Anish, M. P. Selvan, and 
S. Moorthi. Embedded control of n-level DC-
DC-AC inverter, IEEE Trans. Power Electron., 
2015, 30(7), 3703-3711.
8. J. Karttunen, S. Kallio, J. Honkanen, P. 
Peltoniemi, and P. Silventoinen. Stability and 
performance of current harmonic controllers for 
multiphase PMSMs, Control Eng. Pract., 2017, 
65, 59-69.
9. M. R. Stanković, S. M. Manojlović, S. M. Simić, 
S. T. Mitrović, and M. B. Naumović. FPGA 
system-level based design of multi-axis ADRC 
controller, Mechatronics, 2016, 40, 146-155.
10. Q. Tang, L. Jiang, X. X. Liu, and Q. Dai. A real-
time updatable FPGA-based architecture for fast 
regular expression matching, Procedia Comput. 
Sci., 2014, 31(2014), 852-859. 
11. J. V. Frances-Villora, A. Rosado-Muñoz, J. 
M. Martínez-Villena, M. Bataller-Mompean, 
J. F. Guerrero, and M. Wegrzyn. Hardware 
implementation of real-time Extreme Learning 
Machine in FPGA: Analysis of precision, 
resource occupation and performance, Comput. 
Electr. Eng., 2016, 51, 139-156.
12. Y. Chen, B. Xie, and E. Mao. Electric Tractor 
Motor Drive Control Based on FPGA, IFAC-
PapersOnLine, 2016, 49(16), 271-276.
13. M. Curkovic, K. Jezernik, and R. Horvat. FPGA-
based predictive sliding mode controller of a 
three-phase inverter, IEEE Trans. Ind. Electron., 
2013, 60(2), 637-644.
14. J. Cigánek, M. Kocúr, and Š. Kozák. Hardware 
Realization of Advanced Controller Design 
Methods using FPGA, IFAC-PapersOnLine, 
2016, 49(5), 163-168.
15. M. Hanifzadegan and R. Nagamune. Contouring 
Control of CNC Machine Tools Based on Linear 
Parameter-Varying Controllers, IEEE/ASME 
Trans. Mechatronics, 2016, 21(5), 2522-2530.
16. Nguyen Phung Quang. Điều khiển tự động 
truyền động điện xoay chiều 3 pha, Nxb Giáo 
Dục, 1998.
17. V. B. Patel and R. H. Acharya. Design of FPGA-
based All Digital PID Controller for Dynamic 
Systems, Int. J. Adv. Res. Electr. Electron. 
Instrum. Eng. Vol. 1, Issue 2, 2012, 1(2), 64-72.
18. G. Zhao, Y. Zhao, A. Dong, and L. Zhang. 
Research on Nonlinear PID Position Controller 
of CNC System, 2007 IEEE Int. Conf. Autom. 
Logist., 2007, 2446-2450.

File đính kèm:

  • pdfcurrent_controller_design_based_on_fpga.pdf