Luận án Nghiên cứu xây dựng phương pháp điều khiển thích nghi, bền vững hệ euler - Lagrange thiếu cơ cấu chấp hành và áp dụng cho cẩu treo
Hệ Euler-Lagrange (EL) nói chung và cẩu treo nói riêng với mô hình biến
khớp là lớp hệ thường gặp nhất trong thực tế ở các lĩnh vực cơ khí, cơ điện tử.
Giống như ở các hệ có mô hình trạng thái, mô hình hệ EL cũng mang đầy đủ các
tính chất khách quan như không tuyệt đối chính xác, thường được lý tưởng hóa là
không có nhiễu khi xây dựng mô hình. Bởi vậy bài toán thiết kế, xây dựng bộ điều
khiển cho hệ EL trên nền tảng không có được sự chính xác của mô hình, cũng như
phải tính tới sự tác động của nhiễu, mà vẫn đảm bảo chất lượng điều khiển đặt ra,
luôn có ý nghĩa ứng dụng lớn.
Cẩu treo là thiết bị công nghiệp được sử dụng rất rộng rãi trong nhiều lĩnh vực
như các công trình xây dựng, ở các nhà máy hay tại các bến cảng. Tại Việt Nam
hiện nay phần lớn các cẩu treo này được vận hành bằng tay bởi người sử dụng. Khi
mà kích thước của cẩu treo lớn hơn và yêu cầu vận chuyển nhanh hơn, cường độ
làm việc cao hơn, thì việc vận hành chúng sẽ trở nên khó khăn nếu chưa tự động
hóa quá trình này. Cẩu treo di chuyển theo quỹ đạo không cứng nhắc, nhưng nó
hoạt động trong điều kiện hết sức khắc nghiệt nên một hệ điều khiển trong vòng kín
là thích hợp nhất. Cẩu treo là một thiết bị quan trọng sử dụng rộng rãi trong công
nghiệp để vận chuyển các vật nặng và hàng hóa (gọi chung là tải trọng) từ nơi này
đến một nơi khác, nó luôn có kết cấu vững chắc để nâng và di chuyển các vật nặng
trong nhà máy, trong công trường xây dựng, trên boong tầu đặc biệt là tại các bến
cảng. Trong nhà máy, cẩu treo gia tăng quá trình sản xuất bằng cách vận chuyển
nguyên liệu với khối lượng rất nặng từ vị trí này đến vị trí khác cũng như di chuyển
các sản phẩm ở một dây chuyền sản xuất hay dây chuyển lắp ráp. Ví dụ, trong nhà
máy luyện kim cẩu treo vận chuyển cuộn thép, phôi thép hay thùng kim loại nóng
chảy để đổ vào khuôn đúc
Tóm tắt nội dung tài liệu: Luận án Nghiên cứu xây dựng phương pháp điều khiển thích nghi, bền vững hệ euler - Lagrange thiếu cơ cấu chấp hành và áp dụng cho cẩu treo
BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC THÁI NGUYÊN
-----------------***-----------------
NGUYỄN THỊ VIỆT HƢƠNG
NGHIÊN CỨU XÂY DỰNG PHƢƠNG PHÁP
ĐIỀU KHIỂN THÍCH NGHI, BỀN VỮNG HỆ
EULER - LAGRANGE THIẾU CƠ CẤU CHẤP HÀNH
VÀ ÁP DỤNG CHO CẨU TREO
LUẬN ÁN TIẾN SĨ KỸ THUẬT
THÁI NGUYÊN, NĂM 2016
BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC THÁI NGUYÊN
-----------------***-----------------
NGUYỄN THỊ VIỆT HƢƠNG
NGHIÊN CỨU XÂY DỰNG PHƢƠNG PHÁP
ĐIỀU KHIỂN THÍCH NGHI, BỀN VỮNG HỆ
EULER - LAGRANGE THIẾU CƠ CẤU CHẤP HÀNH
VÀ ÁP DỤNG CHO CẨU TREO
Chuyên ngành: Kỹ thuật điều khiển và tự động hóa
Mã số: 62 52 02 16
LUẬN ÁN TIẾN SĨ KỸ THUẬT
NGƯỜI HƯỚNG DẪN KHOA HỌC
1. GS.TS. NGUYỄN DOÃN PHƢỚC
2. TS. ĐỖ TRUNG HẢI
THÁI NGUYÊN, NĂM 2016
i
Lời cam đoan
Tôi xin cam đoan: Luận án “Nghiên cứu xây dựng phƣơng pháp điều khiển
thích nghi, bền vững hệ Euler Lagrange thiếu cơ cấu chấp hành và ứng dụng
cho cẩu treo” là công trình nghiên cứu của riêng tôi được hoàn thành dưới sự chỉ
bảo tận tình của hai thầy giáo hướng dẫn.
Các kết quả nghiên cứu trong luận án là trung thực, một phần được công bố
trên các tạp chí khoa học chuyên ngành với sự đồng ý của các đồng tác giả, phần
còn lại chưa được ai công bố trong bất kỳ công trình nào khác.
Ngày 12 tháng 6 năm 2016
Tác giả luận án
Nguyễn Thị Việt Hƣơng
ii
Lời cảm ơn
Trong quá trình thực hiện Luận án với tên đề tài: “Nghiên cứu xây dựng
phƣơng pháp điều khiển thích nghi, bền vững hệ Euler Lagrange thiếu cơ cấu
chấp hành và ứng dụng cho cẩu treo” tôi đã nhận được sự giúp đỡ tận tình của
các thầy giáo, GS.TS. Nguyễn Doãn Phước – Trưởng Bộ môn Điều khiển tự động,
Viện Điện, trường Đại học Bách Khoa Hà Nội; TS. Đỗ Trung Hải – Trưởng khoa
Điện, trường Đại học Kỹ thuật Công nghiệp Thái Nguyên cùng tập thể các thầy cô
giáo của bộ môn Điều khiển tự động trường Đại học Bách Khoa Hà Nội, tập thể các
thầy cô của Khoa Điện, Phòng Đào tạo trường Đại học Kỹ thuật Công nghiệp Thái
Nguyên, sự giúp đỡ tạo điều kiện về thời gian của lãnh đạo trường cao đẳng Công
nghiệp Thái Nguyên. Tôi xin bày tỏ lòng cảm ơn sâu sắc đến tập thể cán bộ hướng
dẫn đã tâm huyết hướng dẫn tôi trong suốt thời gian qua.
Với kiến thức chuyên môn có hạn trong quá trình nghiên cứu và viết luận án,
không thể tránh khỏi thiếu sót, rất mong nhận được ý kiến đóng góp của các thầy cô
và các nhà khoa học.
Tôi xin trân trọng cảm ơn!
Nghiên cứu sinh
Nguyễn Thị Việt Hương
iii
Mục lục
Các ký hiệu được sử dụng ....................................................................................... v
Bảng các ký hiệu viết tắt ......................................................................................... vii
Bảng danh mục các hình vẽ ................................................................................... viii
Bảng danh mục các bảng biểu ................................................................................. x
PHẦN MỞ ĐẦU ........................................................................................................ 1
1. Giới thiệu về công trình nghiên cứu, lý do lựa chọn đề tài ............................... 1
2. Mục tiêu của đề tài .......................................................................................... 3
3. Đối tượng nghiên cứu ..................................................................................... 4
4. Phương pháp nghiên cứu ............................................................................... 4
5. Nội dung nghiên cứu ....................................................................................... 4
6. Phạm vi nghiên cứu ........................................................................................ 5
7. Ý nghĩa khoa học và thực tiễn ......................................................................... 5
CHƢƠNG 1 TỔNG QUAN VỀ CÁC PHƢƠNG PHÁP ĐIỀU KHIỂN HỆ THIẾU
CƠ CẤU CHẤP HÀNH 6
1.1 Điều khiển tuyến tính hóa từng phần ............................................................... 8
1.1.1 Điều khiển để thành phần hệ con cưỡng bức, đủ cơ cấu chấp hành là bám ổn định .. 9
1.1.2 Điều kiện đủ để thành phần hệ con tự do là ổn định ............................................ 11
1.2 Điều khiển truyền thẳng (input shaping) ........................................................ 12
1.3 Bộ điều khiển backstepping........................................................................... 13
1.4 Điều khiển nội suy mờ ................................................................................... 15
1.5 Một số phương pháp điều khiển khác ........................................................... 16
1.5.1 Điều khiển PD ................................................................................................. 16
1.5.2 Điều khiển tối ưu ............................................................................................. 16
1.5.3 Điều khiển thích nghi và bền vững .................................................................... 17
1.6 Một số phương pháp điều khiển thích nghi điển hình cho hệ EL đủ cơ cấu
chấp hành ..................................................................................................... 19
1.6.1 Phương pháp PD thích nghi .............................................................................. 19
1.6.2 Phương pháp điều khiển trượt ........................................................................... 20
1.6.3 Phương pháp Li-Slotine ................................................................................... 22
1.7 Kết luận chương 1 ........................................................................................ 22
CHƢƠNG 2 MỘT SỐ ĐỀ XUẤT BỔ SUNG TÍNH THÍCH NGHI BỀN VỮNG CHO
BỘ ĐIỀU KHIỂN HỆ THIẾU CƠ CẤU CHẤP HÀNH 24
2.1 Điều khiển bám ổn định ISS thích nghi nhờ tín hiệu bù ................................. 25
iv
2.1.1 Bộ điều khiển thích nghi ISS với tín hiệu bù ...................................................... 25
2.1.2 Chất lượng thành phần của hệ con thứ hai ......................................................... 31
2.2 Điều khiển trượt bậc cao ............................................................................... 32
2.2.1 Khái niệm điều khiển trượt cơ bản và trượt bậc cao ............................................ 33
2.2.2 Thiết kế bộ điều khiển trượt bậc hai cho hệ EL bất định thiếu cơ cấu chấp hành ... 40
2.3 Kết luận chương 2 ........................................................................................ 46
CHƢƠNG 3 ỨNG DỤNG TRONG ĐIỀU KHIỂN HỆ CẨU TREO 3D 48
3.1 Mô hình hoá hệ cẩu treo ............................................................................... 48
3.1.1 Cấu trúc vật lý hệ cẩu treo ................................................................................ 48
3.1.2 Mô hình EL hệ cẩu treo 3D .............................................................................. 49
3.1.3 Mô hình EL hệ cẩu treo 2D .............................................................................. 52
3.2 Điều khiển thích nghi ISS .............................................................................. 54
3.2.1 Bộ điều khiển thích nghi ISS cho hệ cẩu treo ..................................................... 54
3.2.2 Kết quả mô phỏng ........................................................................................... 55
3.3 Điều khiển trượt bậc hai ................................................................................ 59
3.3.1 Bộ điều khiển trượt bậc hai cho hệ cẩu treo ....................................................... 59
3.3.2 Kết quả mô phỏng ........................................................................................... 63
3.4 Điều khiển trượt siêu xoắn ............................................................................ 67
3.4.1 Thiết kế bộ điều khiển trượt siêu xoắn cho hệ cẩu treo ........................................ 67
3.4.2 Kết quả mô phỏng ........................................................................................... 76
3.5 Xây dựng bàn thí nghiệm cẩu treo 3D ........................................................... 83
3.5.1 Vật tư thiết bị .................................................................................................. 83
3.5.2 Xây dựng bản vẽ cơ khí về mô hình thí nghiệm thực .......................................... 83
3.5.3 Thiết kế mạch vòng trong ................................................................................. 85
3.5.4 Cảm biến vị trí ................................................................................................ 87
3.5.5 Cảm biến góc .................................................................................................. 87
3.5.6 Truyền thông ................................................................................................... 90
3.5.7 Thiết kế mạch vòng ngoài ................................................................................ 91
3.5.8 Lập trình ......................................................................................................... 92
Hình 3.31. Giao diện GUI điều khiển và thu thập số liệu .............................................. 94
3.5.9 Quy trình vận hành bàn thí nghiệm và kết quả ................................................... 94
3.6 Kết luận chương 3 ........................................................................................ 97
KẾT LUẬN, KIẾN NGHỊ VÀ HƢỚNG NGHIÊN CỨU TIẾP THEO 99
4.1 Kết luận chung .............................................................................................. 99
4.2 Kiến nghị và hướng nghiên cứu tiếp theo .................................................... 100
Tài liệu tham khảo ................................................................................................ 101
DANH MỤC CÁC CÔNG TRÌNH KHOA HỌC CÓ LIÊN QUAN ĐẾN LUẬN ÁN 110
PHỤ LỤC ............................................................................................................. 112
v
Các ký hiệu đƣợc sử dụng
q vector các biến khớp của hệ
vector các tham số hằng
( , )mG col I ma trận điều khiển
mI ma trận đơn vị m hàng m cột
ma trận có tất cả các phần tử bằng 0
m số các tín hiệu điều khiển
u vector các tín hiệu điều khiển
( )n t vector của tạp nhiễu tác động vào hệ thống
( , )g q vector lực ma sát và gia tốc trọng trường
( , , )C q q
ma trận liên quan lực hướng tâm, ma trận hệ số
coriolis
( , )M q ma trận quán tính, đối xứng xác định dương
( , , )F q q q ma trận hàm xác định
( )D q , ( , )D D q ma trận đối xứng xác định dương giống như ( )M q
v vector tín hiệu điều khiển
r
q quỹ đạo đặt trước mà
1
q phải bám theo
1 2, K K hai ma trận đối xứng xác định dương
e sai lệch quỹ đạo, sai lệch bám
A ma trận Hurwitz
1 2, các ma trận hồi quy
1 2, các ma trận bất định hằng
d
tham số hằng được chọn trước thay cho thành phần
bất định
( , , )q q t
tổng các thành phần nhiễu ( )n t kết hợp với sai lệch
mô hình sinh ra bởi việc thay bằng d
( )w t tín hiệu mẫu
bộ chỉnh định tham số
vi
( )s t tín hiệu bù sai lệch
( , )n q t ,n nhiễu tác động ở đầu vào
, , , 1,2, 1,2ij ij iM C g i j các ma trận và vector hàm bất định
, x col e e vector động học sai lệch bám
1
chuẩn bậc nhất của ánh xạ tuyến tính
,Q P ma trận đối xứng xác định dương
( )x ,
1
( , )s q q mặt trượt
equ thành phần tín hiệu giữ ( )x t ở lại trên mặt trượt
Nu
thành phần tín hiệu làm cho ( )x t tiến về mặt trượt
trong khoảng thời gian hữu hạn T
miền compact
cm khối lượng xe cẩu
rm khối lượng xà đỡ
m khối lượng tải trọng
lu lực tạo ra bởi tời quay
l độ dài dây cáp buộc tải trọng
, y xu u
lực đẩy lần lượt cho xe cẩu chạy dọc trên xà đỡ và
cho xà đỡ cùng xe cẩu di chuyển theo trục ox được
lấy từ động cơ như một cơ cấu chấp hành.
, y x
lần lượt là góc giữa dây buộc trọng tải với mặt
phẳng và xoz và góc giữa hình chiếu của dây buộc
lên mặt phẳng xoz với mặt phẳng yoz .
vii
Bảng các ký hiệu viết tắt
ADC Analog-to-digital converter
CLF control-Lyapunov function
DCS Distributed control system
EL Euler-Lagrange
eq Equipvalence principle
FC Fuzzy control
GAS global asymptotically stable
GUI Graphical user interface
ISS Input to state stable
I2C Inter-Integrated Circuits
PD Proportional Derivative
PWM Pulse Width Modulation
QEI Quadrature Encoder Interface
RBF Radial Basis Function
SCP Small control property
SMC System Management Controller
UART Universal Asynchronous Receiver/Transmitter
viii
Bảng danh mục các hình vẽ
Hình 1.1. Tuyến tính hóa từng phần 9
Hình 1.2. Ứng dụng input shaping vào điều khiển cẩu treo 11
Hình 1.3. Điều khiển cẩu treo bằng nội suy mờ 14
Hình 2.1. Hệ sẽ mất ổn định nếu quỹ đạo trạng thái chỉ tiệm cận về mặt trượt 30
Hình 2.2. Hiện tượng rung (chattering). Nguyên nhân a) và hiệu ứng b). 34
Hình 3.1. Cấu trúc vật lý hệ cẩu treo 3D 46
Hình 3.2. Cấu trúc hệ cẩu treo 2D 51
Hình 3.3. Sơ đồ cấu trúc mô phỏng bộ điều khiển thích nghi bền vững 55
Hình 3.4. Đáp ứng vị trí cẩu treo theo trục x 54
Hình 3.5. Đáp ứng vị trí cẩu treo theo trục z 54
Hình 3.6a. Đáp ứng góc lắc của dây cáp theo các phương ,x y khi chưa có
bất định mô hình 54
Hình 3.6b. Đáp ứng góc lắc của dây cáp theo các phương ,x y khi đã có bất
định mô hình (tại thời điểm 50 giây)
Hình 3.7. Sơ đồ mô phỏng trên nền Simulink hệ cẩu treo 3D sử dụng điều
khiển trượt bậc hai 59
Hình 3.8. Kết quả mô phỏng với 1 4 và 2 3.5 60
Hình 3.9: Kết quả mô phỏng với 1 0.2 và 2 0.2 . 61
Hình 3.10. Kết quả mô phỏng với 1 2 0.5 62
Hình 3.11. Kết quả mô phỏng với 1 2 4 63
Hình 3.12. Phân tích quỹ đạo trạng thái dưới tác động bộ điều khiển siêu xoắn 70
Hình 3.13. Mô hình mô phỏng hệ cẩu treo 3D 72
Hình 3.14. Mô hình mô phỏng bộ điều khiển trượt siêu xoắn 72
Hình 3.15. Sơ đồ mô phỏng bộ điều khiển trượt bậc cao siêu xoắn theo mô
hình đối tượng cẩu treo 3D gốc 73
Hình 3.16. Sơ đồ xác định vị trí trọng tải từ các biến trạng thái [ST2] 73
Hình 3.17. Quỹ đạo di chuyển của tải 75
Hình 3.18. Đáp ứng của các biến trạng thái , ,x y l 75
Hình 3.19. Đáp ứng góc x 76
ix
Hình 3.20. Đáp ứng góc y 76
Hình 3.21. Lực điều khiển 76
Hình 3.22. Mặt trượt s 77
Hình 3.23. Đạo hàm của mặt trượt s 77
Hình 3.24. Quỹ đạo s ds 77
Hình 3.25. Kết cấu cơ khí bàn thí nghiệm cẩu treo 3D 79
Hình 3.26. Hệ thống điều khiển 81
Hình 3.27. Cảm biến đo dòng điện 81
Hình 3.28. Sơ đồ mạch vòng trong 82
Hình 3.29. Cảm biến góc 83
Hình 3.30. Sơ đồ mạng truyền thông trong hệ thống 86
Hình 3.31. Giao diện GUI điều khiển và thu thập số liệu 88
Hình 3.32. Hình ảnh hệ thực nghiệm 1 89
Hình 3.33. Hình ảnh hệ thực nghiệm 2 89
Hình 3.34. Tọa độ xà đỡ nằm ngang 90
Hình 3.35. Tọa độ của xe cẩu trên xà đỡ nằm ngang 90
Hình 3.36. Góc x 91
Hình 3.37. Góc y 91
Hình 3.38. C ...
function eTransmitter_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in bConnect.
function bConnect_Callback(hObject, eventdata, handles)
global i;
global adc adc1;
global s;
global s1;
IsConnect = handles.status_com;
if (IsConnect == 0),
IsConnect = 1;
s = serial(get_stringPopup(handles.pComPort));
s.BaudRate = get_doublePopup(handles.pBaudRate);
s.DataBits = get_doublePopup(handles.pDataBit);
s.Parity = get_stringPopup(handles.pParityBit);
s.StopBit = get_doublePopup(handles.pStopBit);
s.BytesAvailableFcnCount = 4;
s.BytesAvailableFcnMode = 'terminator';
s.BytesAvailableFcn = @BytesAvailable_Callback;
s.OutputEmptyFcn = @OutputEmpty_Callback;
s.BreakInterruptFcn = @BreakInterrupt_Callback;
s.ErrorFcn = @Error_Callback;
s.PinStatusFcn = @PinStatus_Callback;
125
s.BreakInterruptFcn = @BreakInterrupt_Callback;
%s.TimerPeriod = 1;
s.TimerFcn = @Timer_Callback;
fopen(s);
s1 = serial(get_stringPopup(handles.pComPort1));
s1.BaudRate = get_doublePopup(handles.pBaudRate);
s1.DataBits = get_doublePopup(handles.pDataBit);
s1.Parity = get_stringPopup(handles.pParityBit);
s1.StopBit = get_doublePopup(handles.pStopBit);
s1.BytesAvailableFcnCount = 4;
s1.BytesAvailableFcnMode = 'terminator';
s1.BytesAvailableFcn = @BytesAvailable1_Callback;
s1.OutputEmptyFcn = @OutputEmpty1_Callback;
s1.BreakInterruptFcn = @BreakInterrupt1_Callback;
s1.ErrorFcn = @Error1_Callback;
s1.PinStatusFcn = @PinStatus1_Callback;
s1.BreakInterruptFcn=@BreakInterrupt1_Callback;
%s1.TimerPeriod = 0.1;
s1.TimerFcn = @Timer1_Callback;
fopen(s1);
temp = s.status;
temp1= s1.status;
if ((temp == 'open')&(temp1=='open')),
set(handles.bConnect,'String','Disconnect');
set(handles.eStatusConnect,'String','Connected');
set(handles.pComPort,'Enable','off');
set(handles.pComPort1,'Enable','off');
set(handles.pBaudRate,'Enable','off');
set(handles.pDataBit,'Enable','off');
set(handles.pStopBit,'Enable','off');
set(handles.pParityBit,'Enable','off');
set(handles.eRecordName,'Enable','off');
else
set(handles.eStatusConnect,'String','A Problem occour..');
end;
126
else
%s=handles.com;
set(handles.bConnect,'String','Connect');
set(handles.eTranferStatus,'String','');
IsConnect = 0;
set(handles.eStatusConnect,'String','Disconnected');
record(s,'off');
record(s1,'off');
%s=handles.com;
save('data.mat','adc');
save('data1.mat','adc1');
fclose(s);
fclose(s1);
delete(s);
delete(s1);
set(handles.pComPort,'Enable','on');
set(handles.pComPort1,'Enable','on');
set(handles.pBaudRate,'Enable','on');
set(handles.pDataBit,'Enable','on');
set(handles.pStopBit,'Enable','on');
set(handles.pParityBit,'Enable','on');
set(handles.eRecordName,'Enable','on');
%%%%clearvars global adc ;
end
global hand;
hand = handles;
handles.file=get(handles.eRecordName,'String');
handles.com = s;
handles.status_com = IsConnect;
guidata(hObject,handles);
function BytesAvailable_Callback(obj,event)
global hand;
global adc;
global i;
ind = fscanf(obj);
dau=1;
a(1)='0';
127
k=1;
z=1;
m=1;
for k=1:length(ind)
if ((ind(k)>='0')&&(ind(k)<='9'))
a(z)=ind(k);
z=z+1;
end;
switch ind(k)
case '+'
dau=1;
case '-'
dau=-1;
end;
if(ind(k)==' ')
z=1;
adc(i,m)=dau*str2num(a);
dau=1;
m=m+1;
clear a;
a(1)='1';
end;
if (k==length(ind))
adc(i,m)=dau*str2num(a);
end;
end;
% evalin('base',['plot(adc(:,2),adc(:,1),adc(:,2),adc(:,3))']);
% plot(adc(:,2),adc(:,1),adc(:,2),adc(:,3))
set(hand.eReceiver,'String',ind);
i=i+1;
%{
global nhans
nhans=1;
if (nhans1)
controlvongtron();
end;
%}
function BytesAvailable1_Callback(obj,event)
128
global adc1;
global hand;
global i1;
ind = fscanf(obj);
dau=1;
a(1)='0';
k=1;
z=1;
m=1;
for k=1:length(ind)
if ((ind(k)>='0')&&(ind(k)<='9'))
a(z)=ind(k);
z=z+1;
end;
switch ind(k)
case '+'
dau=1;
case '-'
dau=-1;
end;
if(ind(k)==' ')
z=1;
adc1(i1,m)=dau*str2num(a);
dau=1;
m=m+1;
clear a;
a(1)='0';
end;
if (k==length(ind))
adc1(i1,m)=dau*str2num(a);
end;
end;
% evalin('base',['plot(adc(:,2),adc(:,1),adc(:,2),adc(:,3))']);
% plot(adc(:,2),adc(:,1),adc(:,2),adc(:,3))
%set(hand.eReceiver,'String',ind);
% if (mod(i1,100)==0)
% plot(adc(:,1),adc(:,3));
% end;
i1=i1+1;
% control();
% global nhans1 nhans
129
% nhans1=1;
% control();
% if (nhans) controlvongtron();
%end
% if (adc(:,1)>20) fprintf(handles.com,)
%Specify the M-file callback function to execute when the output buffer
is empty
function OutputEmpty_Callback(obj,event)
global hand;
function OutputEmpty1_Callback(obj,event)
global hand;
%Specify the M-file callback function to execute when an error event
occurs
function Error_Callback(obj,event)
global hand;
set(hand.eTranferStatus,'Send Fail');
function Error1_Callback(obj,event)
global hand;
set(hand.eTranferStatus,'Send Fail');
%Specify the M-file callback function to execute when the CD, CTS, DSR,
or
%RI pins change state
function PinStatus_Callback(obj,event)
global hand;
function PinStatus1_Callback(obj,event)
global hand;
%Specify the M-file callback function to execute
%when a predefined period of time passes
function Timer_Callback(obj,event)
%{
global s;
fprintf(s,num2str('BZE'));
130
%}
function Timer1_Callback(obj,event)
%{
global s1;
fprintf(s1,'BZE');
%}
% --- Executes on button press in bExit.
function bExit_Callback(hObject, eventdata, handles)
global s
global adc adc1
IsConnect = handles.status_com;
user_response = modaldlg('Title','Exit tut4');
switch lower(user_response)
case 'no'
% do nothing
case 'yes'
if (IsConnect == 1)
%s = handles.com;
save('data.mat','adc');
save('data1.mat','adc1');
fclose(s);
clear s;
end;
close(tut4chuto);
clear all;
end
function bSend_Callback(hObject, eventdata, handles)
global s;
IsConnect = handles.status_com;
%s = handles.com;
if (IsConnect == 1)
set(handles.eTranferStatus,'String','Sending... ');
strTX = get(handles.eTransmitter,'String');
fprintf(s,strTX);
set(handles.eTranferStatus,'String','Success ');
end
%handles.com = s;
131
guidata(hObject,handles);
function stringPopup = get_stringPopup(hObject,handles)
val = get(hObject,'Value');
str = get(hObject, 'String');
stringPopup = str{val}; % convert from cell array
% to string
% Function to
function doublePopup = get_doublePopup(hObject,handles)
val = get(hObject,'Value');
str = get(hObject, 'String');
string = str{val};
doublePopup = str2double(string);
% --- Executes on button press in button_ClearTX.
% --- Executes during object deletion, before destroying properties.
function figure1_DeleteFcn(hObject, eventdata, handles)
% hObject handle to figure1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global adc adc1
IsConnect = handles.status_com;
if (IsConnect == 1),
%s = handles.com;
record(s,'off')
save('data.mat','adc');
save('data1.mat','adc1');
fclose(s);
delete(s);
clear s;
end
delete(hObject);
% --- Executes when user attempts to close figure1.
function figure1_CloseRequestFcn(hObject, eventdata, handles)
132
% hObject handle to figure1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global adc adc1;
IsConnect = handles.status_com;
if (IsConnect == 1),
%s = handles.com;
save('data.mat','adc');
save('data1.mat','adc1');
fclose(s);
delete(s);
clear s;
end
% Hint: delete(hObject) closes the figure
delete(hObject);
% --- Executes during object creation, after setting all properties.
%empty - handles not created until after all CreateFcns called
% --- Executes on selection change in pComPort1.
function pComPort1_Callback(hObject, eventdata, handles)
% hObject handle to pComPort1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: contents = cellstr(get(hObject,'String')) returns pComPort1
contents as cell array
% contents{get(hObject,'Value')} returns selected item from
pComPort1
% --- Executes during object creation, after setting all properties.
function pComPort1_CreateFcn(hObject, eventdata, handles)
% hObject handle to pComPort1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns
133
called
% Hint: popupmenu controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on key press with focus on pcomport1 and none of its
controls.
function pComPort1_KeyPressFcn(~, eventdata, handles)
% hObject handle to pcomport1 (see GCBO)
% eventdata structure with the following fields (see
MATLAB.UI.CONTROL.UICONTROL)
% Key: name of the key that was pressed, in lower case
% Character: character interpretation of the key(s) that was pressed
% Modifier: name(s) of the modifier key(s) (i.e., control, shift)
pressed
% handles structure with handles and user data (see GUIDATA)
function text_x_Callback(hObject, eventdata, handles)
% hObject handle to text_x (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of text_x as text
% str2double(get(hObject,'String')) returns contents of text_x
as a double
function text_y_Callback(hObject, eventdata, handles)
% hObject handle to text_x (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of text_x as text
134
% str2double(get(hObject,'String')) returns contents of text_x
as a double
% --- Executes during object creation, after setting all properties.
function text_x_CreateFcn(hObject, eventdata, handles)
% hObject handle to text_x (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns
called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes during object creation, after setting all properties.
function text_y_CreateFcn(hObject, eventdata, handles)
% hObject handle to text_y (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns
called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in bx.
function bx_Callback(hObject, eventdata, handles)
% hObject handle to bx (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
%s = handles.com;
135
global hand
global s
x_ref = get(handles.text_x,'String');
if (x_ref(1)~='-')
x_gui=strcat('B1+',x_ref,'E');
else
x_gui = strcat('B1',x_ref,'E');
end
fprintf(s,x_gui);
set(hand.eTransmitter,'String',x_gui);
%handles.com = s;
% --- Executes on button press in bxy.
function by_Callback(hObject, eventdata, handles)
% hObject handle to by (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global hand
global s
y_ref =get(handles.text_y,'String');
if (y_ref(1)~='-')
y_gui = strcat('B2+',y_ref,'E');
else
y_gui = strcat('B2',y_ref,'E');
end
fprintf(s,y_gui);
set(hand.eTransmitter,'String',y_gui);
function control()
global s1 s
global x_ref
global p_u err_p0 err_p1
global adc i adc1 i1
global hand
err_p0=err_p1;
err_p1=x_ref-adc1(i1-1,1);
p_u=(p_u+err_p1*0.3754-err_p0*0.3700);
if (p_u>2800) p_u=2800;
end
136
if (p_u<-2800)p_u=-2800;
end
if (p_u<0)
dienap_gui=strcat('Bu',num2str(p_u),'E');
else
dienap_gui=strcat('Bu+',num2str(p_u),'E');
end
tic;
fprintf(s1,'%d',1234567);
toc
% set(hand.eTransmitter,'String',dienap_gui);
%function controlvongtron()
% --- Executes on button press in bPloty.
function bPloty_Callback(hObject, eventdata, handles)
% hObject handle to bPloty (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global adc;
plot(adc(:,1),adc(:,5),adc(:,1),adc(:,6));
% --- Executes on button press in bPlotx.
function bPlotx_Callback(hObject, eventdata, handles)
% hObject handle to bPlotx (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global adc;
plot(adc(:,1),adc(:,2),adc(:,1),adc(:,3));
% --- Executes on button press in bsendy.
function bsendy_Callback(hObject, eventdata, handles)
% hObject handle to bsendy (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global s;
IsConnect = handles.status_com;
global s1
%s = handles.com;
137
if (IsConnect == 1)
set(handles.eTranferStatus,'String','Sending... ');
strTX = get(handles.eTransmitter,'String');
fprintf(s1,strTX);
set(handles.eTranferStatus,'String','Success ');
end
%handles.com = s;
guidata(hObject,handles);
% --- Executes on button press in bplotxy.
function bplotxy_Callback(hObject, eventdata, handles)
% hObject handle to bplotxy (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global adc
plot(adc(:,2),adc(:,5),adc(:,3),adc(:,6));
File đính kèm:
luan_an_nghien_cuu_xay_dung_phuong_phap_dieu_khien_thich_ngh.pdf

