Hoàng Đức Quỳnh và Đtg<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
106(06): 15 - 21<br />
<br />
NHẬN DẠNG TRẠNG THÁI HỆ CẨU TREO 2 CHIỀU<br />
BẰNG BỘ QUAN SÁT KALMAN RỜI RẠC<br />
Hoàng Đức Quỳnh1*, Nguyễn Thị Việt Hương2, Nguyễn Doãn Phước3<br />
1<br />
<br />
2<br />
<br />
Trường Cao đẳng Công nghệ và Kinh tế Công nghiệp,<br />
Cao đẳng Công nghiệp Thái Nguyên, 3Đại học Bách khoa Hà Nội<br />
<br />
TÓM TẮT<br />
Cẩu treo là thiết bị công nghiệp được ứng dụng rất rộng rãi trong nhiều lĩnh vực công nghiệp;<br />
chính vì vậy, cẩu treo là đối tượng được nghiên cứu khá nhiều về các phương pháp điều khiển nó.<br />
Bài báo đưa ra mô hình toán của hệ cẩu treo ở dạng đơn giản (Dạng mô hình hai chiều đã được<br />
tuyến tính hóa) và kết quả thiết kế bộ quan sát trạng thái Kalman rời rạc nhằm quan sát trạng thái<br />
cho đối tượng, từ đó mở ra hướng thiết kế các bộ điều khiển phản hồi trạng thái để điều khiển hệ<br />
cẩu treo. Việc quan sát, chẩn đoán được trạng thái của hệ thống, vốn thường bỏ qua, sẽ góp phần<br />
nâng cao được chất lượng điều khiển hệ thống mà không làm tăng thêm phần thiết bị cứng cũng<br />
như chi phí thiết bị. Các kết quả mô phỏng trên matlab – simulink nhằm kiểm chứng lại tính đúng<br />
đắn của các thuật toán đã thiết kế.<br />
Từ khóa: Hệ cẩu treo; Hệ cẩu treo 2 chiều, Bộ quan sát Kalman rời rạc; Quan sát trạng thái;<br />
Thuật toán bộ quan sát Kalman.<br />
<br />
Các ký hiệu<br />
x = (x1, … , x n )<br />
<br />
T<br />
<br />
vector của các phần tử x i , i = 1, 2, … , n , trong đó chỉ số T là ký hiệu phép tính<br />
<br />
chuyển vị<br />
A, B , Ad , Bd<br />
<br />
x k , yk , n k , v k<br />
<br />
Ma trận<br />
giá trị trích mẫu của (vector) tín hiệu<br />
<br />
GIỚI THIỆU*<br />
Cẩu treo là thiết bị công nghiệp được ứng<br />
dụng rất rộng rãi trong nhiều lĩnh vực như<br />
trong xây dựng, trong nhà máy hay tại các<br />
bến cảng, ... Những cẩu treo này thường điều<br />
khiển bằng tay. Khi mà kích thước của cẩu<br />
treo trở nên lớn hơn và yêu cầu vận chuyển<br />
nhanh hơn thì quá trình điều khiển chúng sẽ<br />
trở nên khó khăn nếu không được tự động<br />
hoá. Cẩu treo di chuyển theo những quỹ đạo<br />
xác định, nhưng nó hoạt động dưới những<br />
điều kiện hết sức khắc nghiệt và một hệ thống<br />
điều khiển kín là thích hợp nhất.<br />
Cẩu treo là hệ rất phức tạp, trong thời gian qua<br />
đã có khá nhiều các nghiên cứu về cẩu treo<br />
nhằm tìm ra phương pháp vận hành nó một<br />
cách hiệu quả. Trong số các nghiên cứu đó thì<br />
phương pháp điều khiển cẩu treo dựa vào mô<br />
hình tuyến tính đã thu được một vài kết quả<br />
khả quan.<br />
*<br />
<br />
Email: hoangducquynh@gmail.com<br />
<br />
Trong nội dung của bài báo, nhóm tác giả<br />
muốn đề cập đến ở đây là thiết kế một bộ quan<br />
sát trạng thái Kalman dựa trên mô hình cẩu<br />
treo 2 chiều đã được tuyến tính hóa để quan<br />
sát các trạng thái của hệ, từ đó mở ra hướng<br />
thiết kế các bộ điều khiển phản hồi trạng thái<br />
để điều khiển hệ cẩu treo. Những hệ thống<br />
động hiện nay đang sử dụng đều được điều<br />
khiển bằng những thiết bị, cơ cấu chấp hành<br />
hiện đại, các cảm biến đo tinh xảo với chất<br />
lượng điều khiển cao. Tuy nhiên giá thành<br />
thiết bị thay thế, bảo dưỡng là không nhỏ, đó<br />
là còn chưa nói tới khả năng tự điều chỉnh,<br />
linh hoạt trong môi trường làm việc không ổn<br />
định là chưa tốt. Từ những vấn đề đặt ra đó, ta<br />
thấy cần thiết phải áp dụng những lý thuyết<br />
mới: Nghiên cứu triển khai, cài đặt thuật toán<br />
chẩn đoán và quan sát trạng thái có thời gian<br />
quan sát hữu hạn, áp dụng vào nhận dạng các<br />
thông số, trạng thái của các quá trình sản suất.<br />
Đây là mảng nghiên cứu có ý nghĩa ứng dụng<br />
cao. Việc quan sát, chẩn đoán được trạng thái<br />
15<br />
<br />
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên<br />
<br />
http://www.lrc-tnu.edu.vn<br />
<br />
Hoàng Đức Quỳnh và Đtg<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
của hệ thống, vốn thường bỏ qua, sẽ góp phần<br />
nâng cao được chất lượng điều khiển hệ thống<br />
mà không làm tăng thêm phần thiết bị cứng<br />
cũng như chi phí thiết bị.<br />
MÔ HÌNH TOÁN CỦA HỆ CẨU TREO<br />
yc<br />
<br />
u<br />
<br />
mc<br />
F<br />
<br />
ϕ F<br />
<br />
mh yɺɺh + F sin ϕ = 0<br />
<br />
xh<br />
Hình 1. Hệ cẩu treo đơn giản<br />
<br />
Các thông số giả thiết của hệ cẩu treo<br />
đơn giản<br />
Một hệ cẩu treo dạng đơn giản được xây dựng<br />
như trên hình vẽ H1. Cần cẩu có khối lượng<br />
mc di chuyển trên thanh ray treo cao nhờ một<br />
động cơ tạo ra lực đẩy đầu vào u (t ) cho hệ.<br />
Trục Ox nằm ngang dọc theo thanh rầm, trục<br />
Oz thẳng đứng có chiều hướng lên trên. Xe<br />
goòng di chuyển trên thanh rầm với vị trí<br />
được xác định bởi y (t ) là khoảng cách đo<br />
được từ gốc O đến điểm treo của cáp nâng tải<br />
trên xe. Coi tải như một chất điểm có khối<br />
lượng mh .Tải trọng và xe goòng được nối với<br />
nhau bằng một cáp cứng có khối lượng không<br />
đáng kể và có chiều dài l , sự dài ra của dây<br />
cáp là không đáng kể. Trong khi nâng hạ tải<br />
hay di chuyển xe thì tải dao động trong mặt<br />
phẳng thẳng đứng với góc lệch ϕ (t ) . Các<br />
tham số mc , mh , l được xem như hằng số<br />
của mô hình.<br />
<br />
mc yɺɺc = u + F sin ϕ<br />
<br />
(1)<br />
<br />
(3)<br />
<br />
Từ các phương trình trên, sau khi cộng (1) với<br />
(2), cũng như nhân (2) với cos ϕ và nhân (3)<br />
mh<br />
<br />
với<br />
<br />
sin ϕ<br />
rồi trừ các kết quả cho nhau, sẽ khử<br />
mh<br />
<br />
được biến F , tức là từ hệ 3 phương trình 6 ẩn<br />
số sẽ còn hệ 2 phương trình 5 ẩn số:<br />
yɺɺcmc + yɺɺh mh = u<br />
<br />
yɺɺh cos ϕ − xɺɺh sin ϕ = −g sin ϕ<br />
<br />
Để ý tiếp, do có quan hệ hình học<br />
yh = yc + l sin ϕ và x h = l cos ϕ , nên sau khi<br />
thay chúng vào hai phương trình trên để khử<br />
tiếp hai ẩn x h , yh ta sẽ được:<br />
<br />
d 2 (yc + l sin ϕ )<br />
=u<br />
yɺɺc m c + m h<br />
dt 2<br />
<br />
<br />
2<br />
<br />
yɺɺc + l ϕɺɺ cos ϕ − ϕɺ sin ϕ cos ϕ +<br />
<br />
<br />
<br />
+ l ϕɺɺ sin ϕ + ϕɺ 2 cos ϕ = − g sin ϕ<br />
<br />
<br />
<br />
<br />
<br />
(<br />
<br />
)<br />
<br />
(m + m ) yɺɺ + m l ϕɺɺ cos ϕ − ϕɺ 2 sin ϕ = u<br />
h<br />
c<br />
h <br />
<br />
⇔ c<br />
yɺɺc cos ϕ + l ϕɺ 2 = − g sin ϕ<br />
<br />
(<br />
<br />
)<br />
<br />
m + m ) yɺɺ + m l ϕɺɺcosϕ − ϕ 2 sin ϕ = u<br />
h c<br />
h<br />
⇔ ( c<br />
(4)<br />
yɺɺc cos ϕ + lϕɺɺ + g sin ϕ = 0<br />
<br />
Hệ (4) gồm hai phương trình vi phân bậc cao<br />
này tạo thành một mô hình toán học mô tả hệ<br />
thống cần cẩu treo.<br />
Nếu giả thiết góc lệch ϕ là đủ nhỏ,<br />
sin ϕ ≈ ϕ , cos ϕ ≈ 1 , thì ta có mô hình tuyến<br />
tính dừng của hệ:<br />
(m c + m h ) yɺɺc + m h l ϕɺɺ = u<br />
<br />
l ϕɺɺ + g ϕ = −yɺɺc<br />
<br />
Xây dựng phương trình mô tả toán của hệ<br />
và biểu diễn trên không gian trạng thái<br />
Ký hiệu yc là quãng đường cần cẩu đi được,<br />
yh là quãng đường hàng đi được theo phương<br />
nằm ngang, xh là quãng đường hàng đi được<br />
theo phương thẳng đứng và F là lực căng của<br />
dây treo hàng. Khi đó, theo các định luật cân<br />
bằng lực (các định luật của Newton) ta được:<br />
<br />
(2)<br />
<br />
mh xɺɺh + F cos ϕ = mh g<br />
<br />
mh<br />
<br />
yh<br />
<br />
106(06): 15 - 21<br />
<br />
(5)<br />
<br />
Biểu diễn hệ (5) trong không gian trạng thái<br />
với các biến trạng thái:<br />
x1 <br />
x <br />
x 1 = yc , x 2 = yɺc , x 3 = ϕ , x 4 = ϕɺ , x = 2 <br />
x 3 <br />
<br />
x 4 <br />
<br />
16<br />
<br />
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên<br />
<br />
http://www.lrc-tnu.edu.vn<br />
<br />
Hoàng Đức Quỳnh và Đtg<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
thì hệ sẽ có 4 biến trạng thái cần quan sát,<br />
gồm:<br />
x1 (yc ) là quãng đường chuyển động của xe<br />
x 2 (yɺc ) vận tốc chuyển động của xe<br />
x 3 (ϕ ) góc chuyển động của tải (hàng hóa)<br />
x 4 (ϕɺ ) vận tốc góc của tải (hàng hóa)<br />
Suy ra hệ biểu diễn trong không gian trạng<br />
thái:<br />
xɺ = Ax + Bu<br />
<br />
y = Cx + Du<br />
<br />
với<br />
0<br />
<br />
0<br />
<br />
A= <br />
0<br />
<br />
0<br />
<br />
<br />
1<br />
<br />
0<br />
mhg<br />
0<br />
mc<br />
0<br />
0<br />
mc +mh<br />
0 −<br />
g<br />
mcl<br />
<br />
0<br />
<br />
0 <br />
<br />
<br />
<br />
1 <br />
0<br />
m <br />
1 0 0 0<br />
, B = c , C = <br />
<br />
1<br />
0 <br />
0 0 1 0<br />
<br />
1 <br />
−<br />
<br />
0<br />
<br />
mh <br />
<br />
THIẾT KẾ BỘ QUAN SÁT KALMAN RỜI<br />
RẠC CHO HỆ CẨU TREO CÓ NHIỄU HỆ<br />
THỐNG VÀ NHIỄU RA<br />
Xét hệ có tham số hằng chịu tác động của<br />
nhiễu,<br />
xk +1 = Ad x + Bd uk + nk<br />
<br />
yk = Cd xk + Dd uk + vk<br />
<br />
(7)<br />
<br />
trong đó n k , v k được giả thiết là hai tín hiệu<br />
nhiễu egodic, có kỳ vọng bằng 0, không<br />
tương quan với nhau, v k không tương quan<br />
với trạng thái x k của hệ, cũng như x k không<br />
tương quan với tất cả các giá trị trạng thái<br />
trước đó.<br />
Để quan sát được trạng thái của hệ, ta sử dụng<br />
quan sát Kalman rời rạc. Theo tài liệu [1], cấu<br />
trúc bộ quan sát Kalman đó để tạo ra giá trị<br />
⌢<br />
trạng thái quan sát được x k ≈ xk là thuật toán<br />
sau, trong đó N , V lần lượt là hai ma trận<br />
tương quan của nhiễu Gauss n k , v k :<br />
⌢<br />
<br />
1.<br />
2.<br />
<br />
Chọn K 0 và x 0 tùy ý<br />
Thực hiện các bước sau lần lượt với<br />
<br />
a)<br />
<br />
Tính Pk = Ad Kk −1AT + N có sử dụng<br />
từ vòng lặp trước.<br />
<br />
k = 1, 2, …<br />
Kk −1<br />
<br />
106(06): 15 - 21<br />
<br />
(<br />
<br />
Tính Lk = PkCdT Cd PkCdT +V<br />
<br />
b)<br />
<br />
)<br />
<br />
−1<br />
<br />
c)<br />
Tính Kk = (I − LkCd ) Pk cho vòng lặp<br />
sau, trong đó I là ma trận đơn vị<br />
⌢<br />
d)<br />
Tính x k/ = Ad x k −1 + Bd u k −1 có sử dụng<br />
⌢<br />
x k −1 từ vòng lặp trước<br />
⌢<br />
<br />
Tính x k = (I − LkCd )x k/ + Lk (y k − Dd u k )<br />
<br />
e)<br />
<br />
rồi xuất ra bên ngoài làm giá trị quan sát được<br />
cho x k .<br />
(6)<br />
f)<br />
Quay về bước a).<br />
Để sử dụng được thuật toán trên trước tiên ta<br />
phải chuyển mô hình liên tục (6) của hệ cẩu<br />
treo thành không liên tục (7) với chu kỳ trích<br />
mẫu tín hiệu Ts chọn trước, có sử dụng thêm<br />
khâu ZOH ở đầu vào. Các công thức chuyển<br />
đổi đó có trong tài liệu [1], bao gồm:<br />
Ts<br />
<br />
Ts<br />
<br />
0<br />
<br />
0<br />
<br />
Ad = e ATs , Bd = ∫ e At Bdt = ∫ e At dt ⋅ B (8)<br />
Cd = C và Dd = D<br />
<br />
(9)<br />
Ta cũng có thể thực hiện hai công thức<br />
chuyển đổi (8) và (9) trên nhờ lệnh sau trong<br />
phần mềm MatLab:<br />
[Ad,Bd,Cd,Dd]=c2dm(A,B,C,D,Ts,’zoh’)<br />
(10)<br />
trong đó:<br />
Ad = Ad , Bd = Bd , Cd = C d , Dd = Dd<br />
Trong trường hợp không đủ thông tin về<br />
nhiễu n k , v k , ta có thể gán N , V là các ma<br />
trận đơn vị [9].<br />
KẾT QUẢ MÔ PHỎNG<br />
Giả sử hệ cẩu treo có khối lượng xe mc = 2kg ,<br />
khối lượng tải trọng là mh = 0.2kg , chiều dài<br />
cáp buộc hàng là l = 1m , g = 10kgm / s 2 là gia<br />
tốc trọng trường, góc lắc theo phương thẳng<br />
đứng của hàng là đủ nhỏ ϕ < 10° ≈ 0.2rad .<br />
Như vậy thì mô hình liên tục đã được tuyến<br />
tính hóa (6) sẽ có:<br />
0<br />
<br />
0<br />
A = <br />
0<br />
<br />
0<br />
<br />
1 0<br />
0 1<br />
0 0<br />
0 −11<br />
<br />
0 <br />
0<br />
<br />
<br />
<br />
1 0 0 0<br />
0<br />
0<br />
0,5<br />
, B = , C = <br />
, D = <br />
<br />
1<br />
0<br />
0<br />
0<br />
1<br />
0<br />
<br />
<br />
0<br />
<br />
<br />
<br />
<br />
0<br />
−5 <br />
<br />
17<br />
<br />
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên<br />
<br />
http://www.lrc-tnu.edu.vn<br />
<br />
Hoàng Đức Quỳnh và Đtg<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
106(06): 15 - 21<br />
<br />
Giả sử thời gian trích mẫu là Ts = 0.01 . Khi<br />
đó từ các công thức (8) và (9), hoặc sử dụng<br />
lệnh (10) có trong phần mềm MatLab, sẽ<br />
được mô hình không liên tục (7) với:<br />
1 0,01<br />
0<br />
<br />
0<br />
1<br />
0,01<br />
<br />
Ad = <br />
0<br />
0<br />
0,9995<br />
<br />
0<br />
− 0,11<br />
0<br />
<br />
<br />
0<br />
<br />
<br />
0,005<br />
, C =<br />
Bd = <br />
d<br />
− 0,0002 <br />
<br />
<br />
0,05<br />
−<br />
<br />
<br />
<br />
0 <br />
<br />
0 <br />
0, 01 <br />
<br />
0,9995 <br />
1<br />
<br />
0<br />
<br />
0<br />
0 0 0<br />
, D = <br />
0 1 0 d 0 <br />
<br />
Hình 4. So sánh trạng thái x 2 là vận tốc xe cẩu<br />
cho hai trường hợp có và không có nhiễu<br />
<br />
Kết quả mô phỏng cho hệ cẩu treo<br />
<br />
Hình 5. So sánh trạng thái x 3 là góc lắc của tải<br />
cho hai trường hợp có và không có nhiễu<br />
<br />
Hình 2. Sơ đồ Simulink<br />
<br />
Kết quả về các biến trạng thái của hệ:<br />
<br />
x<br />
Hình 6. So sánh trạng thái 4 là vận tốc góc lắc của<br />
tải cho hai trường hợp có và không có nhiễu<br />
<br />
Hình 3. So sánh trạng thái x1 là quãng đường<br />
dịch chuyển của xe cẩu cho hai trường hợp<br />
có và không có nhiễu<br />
<br />
Nhận xét: So sánh các đồ thị trạng thái với cả<br />
hai trường hợp có và khi không có nhiễu cho<br />
ta thấy, nhiễu quá trình, bao gồm nhiễu hệ<br />
thống nk tác động trực tiếp vào trạng thái và<br />
nhiễu đầu ra vk đã làm ảnh hưởng đến tất cả<br />
các đáp ứng của bốn trạng thái của hệ.<br />
<br />
18<br />
<br />
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên<br />
<br />
http://www.lrc-tnu.edu.vn<br />
<br />
Hoàng Đức Quỳnh và Đtg<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
106(06): 15 - 21<br />
<br />
Thiết kế sơ đồ mô phỏng cho bộ quan sát<br />
Kalman rời rạc<br />
<br />
⌢<br />
Hình 9. So sánh trạng thái quan sát được x1 và<br />
trạng thái thực x1<br />
<br />
Phóng to:<br />
<br />
Hình 7. Sơ đồ Simulink bộ quan sát Kalman rời rạc<br />
<br />
Kết quả mô phỏng khi ghép nối bộ lọc Kalman<br />
để quan sát trạng thái cho hệ cẩu treo<br />
<br />
⌢<br />
Hình 10. So sánh trạng thái quan sát được x 2 và<br />
trạng thái thực x 2<br />
<br />
Hình 8. Sơ đồ Simulink<br />
<br />
Cài đặt các thông số:<br />
A=[0 1 0 0;0 0 1 0;0 0 0 1;0 0 -11 0];<br />
B=[0;0.5;0;-5];<br />
C=[1 0 0 0;0 0 1 0]; D=[0;0]; Ts=0.01;<br />
[Ad,Bd,Cd,Dd]=c2dm(A,B,C,D,Ts,'zoh');<br />
N =eye(4); V =eye(2); I=eye(4);<br />
<br />
⌢<br />
Hình 11. So sánh trạng thái quan sát được x 3 và<br />
trạng thái thực x 3<br />
<br />
19<br />
<br />
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên<br />
<br />
http://www.lrc-tnu.edu.vn<br />
<br />