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