Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 144 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
144
Dung lượng
2,24 MB
Nội dung
Bộ giáo dục đào tạo Trờng Đại học Bách khoa Hà Nội Bïi ChÝnh Minh NGHIÊN CỨU NÂNG CAO CHẤT LƯỢNG HỆ TRUYỀN ĐỘNG KHỚP MỀM LuËn ¸n tiÕn sÜ kỹ thuật H NI - 2007 Bộ giáo dục đào tạo Trờng Đại học Bách khoa Hà Nội *** Bïi ChÝnh Minh NGHIÊN CỨU NÂNG CAO CHT LNG H TRUYN NG KHP MM Chuyên ngành: TĐH M· sè: 62.52.60.01 LuËn ¸n tiÕn sÜ kü thuËt h−íng dÉn khoa häc: GS.TS Ngun C«ng HiỊn PGS TS Nguyễn Văn Liễn Thay đổi tập thể hớng dẫn: PGS TS Nguyễn Văn Liễn TS Võ ViƯt S¬n HÀ NỘI – 2007 LỜI CAM ĐOAN Tơi xin cam đoan cơng trình nghiên cứu riêng Các số liệu, kết luận án hoàn toàn trung thực chưa cơng bố cơng trình Tác giả luận án Bùi Chính Minh MỤC LỤC MỞ ĐẦU Chương Hệ truyền động khớp mềm công nghiệp 12 1.1 Khái niệm hệ thống truyền động khớp mềm 11 1.1.1 Khớp nối hệ thống truyền động 11 1.1.2 Khớp nối mềm 11 1.1.3 Độ cứng khớp nối 13 1.2 Những nghiên cứu hệ thống truyền động khớp mềm 15 1.3 Mô tả toán học hệ truyền động nối khớp mềm 17 1.3.1 Khi xét hệ tuyến tính 18 1.3.2 Xét hệ phi tuyến 23 1.4 Khảo sát tượng cộng hưởng học hệ khớp nối mềm 24 1.4.1 Cộng hưởng học cấu truyền động khớp nối mềm 24 1.4.2 Một số vấn đề cộng hưởng học hệ thống điều khiển servo 27 1.5 Một số giải pháp khắc phục ảnh hưởng cộng hưởng học điều khiển servo 29 1.5.1 Các giải pháp mặt học khắc phục tượng cộng hưởng 29 1.5.2 Các giải pháp mặt điều khiển khắc phục tượng cộng hưởng 31 Chương Điều khiển hệ truyền động khớp mềm với điều khiển truyền thống 33 2.1 Điều khiển hệ truyền động nối khớp mềm PID 33 2.2 Điều khiển hệ truyền động nối khớp mềm điều khiển PID hai bậc tự 34 2.2.1 Bộ điều khiển I-P 34 2.2.2 Bộ điều khiển I-PD 36 2.3 Thuật giải di truyền ứng dụng hệ truyền động khớp mềm 38 2.3.1 Giới thiệu khái quát thuật giải di truyền 38 2.3.2 Các tốn tử thuật giải di truyền 38 2.3.3 Các bước giải toán tối ưu sử dụng thuật toán gen 39 2.3.4 Ứng dụng thuật giải di truyền để xác định tham số tối ưu điều khiển PID 40 2.4 Điều khiển hệ truyền động khớp mềm PID kết hợp với quan sát mô men xoắn 43 Chương Tổng hợp hệ truyền động khớp mềm điều khiển phản hồi trạng thái tuyến tính 48 3.1 Bộ điều khiển phản hồi trạng thái quan sát trạng thái 48 3.2 Điều khiển hệ truyền động khớp mềm điều khiển phản hồi trạng thái dùng phương pháp áp đặt cực 3.2.1 Xác định ma trận hồi tiếp trạng thái K 49 49 3.2.2 Tổng hợp điều khiển phản hồi trạng thái phương pháp áp đặt cực cho khớp nối mềm 50 3.3 Hệ điều khiển phản hồi trạng thái dùng quan sát trạng thái Kalman Filter 55 3.3.1 Tổng hợp điều khiển tối ưu phản hồi trạng thái 55 3.3.2 Tổng hợp quan sát trạng thái Kalman toán LQG 59 3.3.3 Tổng hợp quan sát trạng thái Kalman cho hệ truyền động khớp mềm 61 3.3.4 Tổng hợp điều khiển phản hồi trạng thái phương pháp tối ưu hàm mục tiêu dùng lọc Kalman điều khiển khớp mềm 3.3.5 Thực nghiệm mô điều khiển tổng hợp 63 68 Chương Phát triển lý thuyết tổng hợp điều khiển phi tuyến thích nghi bền vững hệ truyền động khớp mềm 74 4.1 Điều khiển thích nghi phi tuyến phản hồi trạng thái 74 4.1.1 Đặt toán 74 4.1.2 Những phương pháp 75 4.1.3 Điều khiển thích nghi hệ truyền ngược chặt 78 4.1.4 Điều khiển thích nghi hệ tam giác 82 4.2 Điều khiển thích nghi bền vững cho hệ tam giác dùng trạng thái tham 86 khảo 4.2.1 Đặt toán sở tốn học 86 4.2.2 Q trình tổng hợp 88 4.2.3 Kết luận 93 4.3 Áp dụng vào điều khiển thích nghi hệ khớp nối mềm 94 4.3.1 Mơ hình toán học khớp mềm 94 4.3.2 Tổng hợp điều khiển bền vững 95 4.3.3 Tổng hợp điều khiển thích nghi bền vững 101 Chương Xây dựng mơ hình thực nghiệm kết thực nghiệm 111 5.1 Xây dựng mơ hình thí nghiệm 111 5.1.1 Xây dựng phần cứng 111 5.1.2 Các chương trình phần mềm dùng thí nghiệm 112 5.2 Các kết thí nghiệm 113 5.2.1 Hệ truyền động khớp mềm với điều khiển PI thông thường 113 5.2.2 Hệ truyền động khớp mềm điều khiển bù mô men xoắn 114 5.2.3 Hệ truyền động khớp mềm điều khiển phản hồi trạng thái với quan sát dùng lọc Kalman 5.2.4 Hệ truyền động khớp mềm vói điều khiển phi tuyến thích nghi bền vững 115 Kết luận chung luận án 116 118 Danh mục công trình tác giả 120 Tài liệu tham khảo 121 Phụ lục 125 DANH MỤC CÁC HÌNH VẼ Hình 1.1 Các sai lệch khớp nối 12 Hình 1.2 Chi tiết trục 12 Hình 1.3 Chi tiết trục 14 Hình 1.4 Mơ hình hệ truyền động khớp mềm 18 Hình 1.5 Sơ đồ khối hệ truyền động khớp mềm 19 Hình 1.6 Mơ hình hệ thống khớp mềm hai khối 22 Hình 1.7 Sơ đồ hệ truyền thống động khớp mềm đơn giản 24 Hình 1.8 Khớp mềm đăng 25 Hình 1.9 Các kiểu đặt khớp nối 25 Hình 1.10 Hệ truyền động khớp mềm đặt lệch góc 25 Hình 1.11 Đặc tính biên độ tần số với K=1,5 26 Hình 1.12 Khớp nối dài hệ thống máy xeo giấy 27 Hình 1.13 Truyền động nối cáp dài máy nâng vận chuyển 27 Hình 1.14 Mô tả kết nối cứng vững động tải 28 Hình 1.15 Đặc tính tải – động Ks = 0,28[Nm/rad] 30 Hình 1.16 Đặc tính tải – động Ks = 2[Nm/rad] 30 Hình 1.17 Đặc tính tải – động Jm = 7,455.10-5 [kgm2] 31 Hình 1.18 Đặc tính tải – động Jm=15*7,455.10-5 31 Hình 1.19 Tác dung lọc thơng thấp 31 Hình 2.1 Cấu trúc hệ truyền động khớp mềm với điều chỉnh PI thông thường 33 Hình 2.2 Đặc tính động tải 34 Hình 2.3 Cấu trúc điều khiển I-P 34 Hình 2.4 Đặc tính tốc độ tải tốc độ động 35 Hình 2.5 Cấu trúc điều khiển I-PD 36 Hình 2.6 Đặc tính tải – động 37 Hình 2.7 Trước sử dụng thuật tốn gen 41 Hình 2.8 Sau sử dụng thuật tốn gen 41 Hình 2.9 Trước sử dụng thuật tốn gen 42 Hình 2.10 Sau sử dụng thuật tốn gen 42 Hình 2.11 Trước sử dụng thuật tốn gen 43 Hình 2.12 Sau sử dụng thuật tốn gen 43 Hình 2.13 Đặc tính tốc độ động 43 Hình 2.14 Đặc tính tốc độ tải 43 Hình 2.15 Điều khiển hệ truyền động có phản hồi mơ men xoắn kết hợp với lọc thông cao 45 Hình 2.16 Đặc tính tải động 46 Hình 2.17 Đặc tính mơ men xoắn 46 Hinh 3.1 Ngun tắc hoạt động quan sát trạng thái 49 Hình 3.2 Sơ đồ cấu trúc khớp nối bỏ qua bs 50 Hình 3.3 Sơ đồ cấu trúc hệ thống điều khiển phản hồi trạng thái hệ truyền động khớp nối mềm 52 Hình 3.4 Tốc độ động tải hệ thống khớp mềm áp dụng phản hồi trạng thái 54 Hình 3.5 Tốc độ động tải áp dụng phản hồi trạng thái cho khớp nối mềm có nhiễu tải 55 Hình 3.6 Sơ đồ nguyên lý tổng hợp điều khiển phản hồi âm trạng thái 56 Hình 3.7 Kết tổng hợp điều khiển phản hồi âm trạng thái theo tiêu chuẩn tối ưu hàm mục tiêu tuyến tính bình phương(LQ) 59 Hình 3.8 Sơ đồ quan sát trạng thái Kalman 63 Hinh 3.9 Sơ đồ mơ lọc Kalman 64 Hình 3.10 Bộ điều chỉnh LQG 65 Hình 3.11 Hệ thống điều khiển LQG để điều khiển khớp mềm 65 Hình 3.12 Đặc tính tốc độ động thực tốc độ động quan sát 70 Hình 3.13 Đặc tính tốc độ tải thực tốc độ tải quan sát 70 Hình 3.14 Đặc tính mơ men xoắn thực mơ men xoắn quan sát 71 Hình 3.15 Đặc tính mơ men tải thực mơ men tải quan sát 72 Hình 3.16 Đáp ứng tốc độ tải tốc độ động hệ điều khiển phản hồi trạng thái dùng lọc Kalman theo tiêu chuẩn tối ưu hàm mục tiêu 72 Hình 4.1 Tốc độ tải 100 Hình 4.2 Góc xoắn 100 Hình 4.1 Tốc độ tải 107 Hình 4.2 Góc xoắn 107 Hình 5.1 Sơ đồ tổng thể thể hệ thí nghiệm khớp mềm 109 Hình 5.2 Module IGBT đóng cắt phần chỉnh lưu xung điện áp 110 Hình 5.3 Card dSPASE 1103 111 Hình 5.4 Bàn thí nghiệm hệ truyền động khớp mềm 111 Hình 5.5 Mơ hình thực nghiệm phần động lực 111 Hình 5.6 Khởi động khơng tải 113 Hình 5.7 Đóng thời điểm 6,5s 113 Hình 5.8 Khởi động khơng tải 114 HÌnh 5.9 Đóng thời điểm 5,5s 114 Hình 5.10 Khởi động khơng tải 115 Hình 5.11 Đóng thời điểm 10s 115 Hình 5.12 Khởi động khơng tải 116 Hình 5.13 Đóng tải thời điểm 13s 116 MỞ ĐẦU Đặt vấn đề Trong hệ thống sản xuất công nghiệp nay, truyền động động điện sử dụng rộng rãi Từ động cơ, mô men tốc độ truyền đến tải để thực mục đích sản xuất Chỉ có số truyền động động nối trực tiếp với tải đại đa số truyền động thực thông qua truyền như: hộp số, dây đai, trục nối dài, trục vít Do không cứng vững truyền kể trên, kỹ thuật gọi khớp nối mềm Cũng khơng cứng vững khớp tạo thành hai khối qn tính, q trình hoạt động có trao đổi lượng khớp gây rung động, tiếng ồn, làm xuất thành phần mô men xoay chiều động tải Việc xuất rung động gây ảnh hưởng cho chất lượng hệ truyền động, khó khăn cho việc điều khiển mà tần số định, gây nên tượng cộng hưởng học, biên độ rung động trục truyền động tăng lên đột ngột phá hủy kết cấu khí trục truyền động động Với lý việc nghiên cứu tượng cộng hưởng hệ truyền động khớp nối mềm biện pháp khắc phục tượng vấn đề có ý nghĩa lớn thực tiễn sản xuất Vấn đề đặt hệ thống điều khiển phải áp dụng luật điều khiển cho tốc độ tải tốc độ động bám sát phải loại trừ tượng cộng hưởng học Vì vậy, nghiên cứu có việc khắc phục ảnh hưởng khớp nối mềm, nâng cao chất lượng cho hệ truyền động vấn đề nghiên cứu luận án Mục đích nghiên cứu Ứng dụng phát triển thuật toán điều khiển (với điều khiển truyền thống đại) vào điều khiển truyền động khớp mềm cho số lớp đối tượng khác sản xuất công nghiệp nhằm khắc phục tượng dao động học, cộng hưởng để nâng cao chất lượng cho hệ Các giải pháp điều khiển phải phù hợp 127 axis off axes(handles.axes3) t = 0:0.01:10; y = sin(t).*t+t; plot(t,y);grid %axis off global chonbdk chonhtn global Jm K Ks global Kp Ki Kd global x x(1) = 0; x(2) = 0; % Mo men dong co Jm = str2double(get(handles.Jm,'String'));% [Kgm2] Quan tinh cua dong co % Ty le quan tinh K = str2double(get(handles.K,'String')); % Do cung truc noi Ks = str2double(get(handles.Ksh,'String')); % Kp = str2double(get(handles.Kp,'String')) Ki = str2double(get(handles.Ki,'String')) Kd = str2double(get(handles.Kd,'String')) % Mac dinh ban dau la bo dieu khien PID, ham thich nghi ITAE chonbdk = 1;chonhtn = 1; % - Outputs from this function are returned to the command line function varargout = GA_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; function Jm_Callback(hObject, eventdata, handles) % hObject handle to Jm (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 Jm as text % str2double(get(hObject,'String')) returns contents of Jm as a double 128 % - Executes during object creation, after setting all properties function Jm_CreateFcn(hObject, eventdata, handles) % hObject handle to Jm (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 set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function K_Callback(hObject, eventdata, handles) % hObject handle to K (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 K as text % str2double(get(hObject,'String')) returns contents of K as a double % - Executes during object creation, after setting all properties function K_CreateFcn(hObject, eventdata, handles) % hObject handle to K (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 set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function Ksh_Callback(hObject, eventdata, handles) % hObject handle to Ksh (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 Ksh as text % str2double(get(hObject,'String')) returns contents of Ksh as a double % - Executes during object creation, after setting all properties 129 function Ksh_CreateFcn(hObject, eventdata, handles) % hObject handle to Ksh (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 set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function Kp_Callback(hObject, eventdata, handles) % hObject handle to Kp (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 Kp as text % str2double(get(hObject,'String')) returns contents of Kp as a double % - Executes during object creation, after setting all properties function Kp_CreateFcn(hObject, eventdata, handles) % hObject handle to Kp (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 set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function Ki_Callback(hObject, eventdata, handles) % hObject handle to Ki (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 Ki as text % str2double(get(hObject,'String')) returns contents of Ki as a double % - Executes during object creation, after setting all properties 130 function Ki_CreateFcn(hObject, eventdata, handles) % hObject handle to Ki (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 set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function Kd_Callback(hObject, eventdata, handles) % hObject handle to Kd (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 Kd as text % str2double(get(hObject,'String')) returns contents of Kd as a double % - Executes during object creation, after setting all properties function Kd_CreateFcn(hObject, eventdata, handles) % hObject handle to Kd (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 set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end % - Executes on button press in Batdau function Batdau_Callback(hObject, eventdata, handles) % hObject handle to Batdau (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global chonbdk chonhtn global Jm Jl K Ks wa wo time global Kp Ki Kd 131 % Nhan thong so mo hinh truyen dong khop mem % Mo men dong co Jm = str2double(get(handles.Jm,'String'));% [Kgm2] Quan tinh cua dong co % Ty le quan tinh K = str2double(get(handles.K,'String')); % Do cung truc noi Ks = str2double(get(handles.Ksh,'String')); % Do nhot cua truc bs = 0; %.003 % Quan tinh tai Jl = K*Jm ; % [Kgm2] Quan tinh tai wa = sqrt(Ks/Jl); % Tan so chong cong huong wo = wa*sqrt(1+K); % Tan so cong huong % Thoi gian tinh toan time = 0:0.1:20; % Cai dat thuat toan gen promp1 = {' Kich thuoc quan the ',' So bien ',' Xac suat lai ghep ',' Xac suat dot bien ',' So the he toi da '}; title1 = ' Cai dat thong so cho thuat toan Gen '; lines1 = 1; def1 ={'8','2','0.9','0.012','8'}; kq = inputdlg(promp1,title1,lines1,def1); Pop_size = str2num(kq{1}); %Number of Variables nvars = str2num(kq{2}); Cross_prob = str2num(kq{3}); Mut_prob = str2num(kq{4}); Max_num = str2num(kq{5}); %Fitness function fitnessFunction = @fitness; %Number of Variables %nvars = 3; %Start with default options options = gaoptimset; %%Modify some parameters options=gaoptimset('PopulationSize',Pop_size); options = gaoptimset(options,'CrossoverFraction' ,Cross_prob); options = gaoptimset(options,'Generations' ,Max_num); 132 options = gaoptimset(options,'StallGenLimit' ,100); options = gaoptimset(options,'StallTimeLimit' ,100); options = gaoptimset(options,'SelectionFcn' ,@selectionroulette); options = gaoptimset(options,'CrossoverFcn' ,@crossoversinglepoint); options = gaoptimset(options,'MutationFcn' ,{ @mutationuniform Mut_prob }); options = gaoptimset(options,'Display' ,'off'); options = gaoptimset(options,'PlotFcns' ,{ @gaplotbestf }); %%Run GA [X,FVAL,REASON,OUTPUT,POPULATION,SCORES] = ga(fitnessFunction,nvars,options); % Ket qua sau chay x=X w1 = wa*x(1); n1 = x(2); w2 = sqrt(2*wa^2-w1^2); n2 = w1*n1/w2; switch chonbdk case % Bo dieu khien PID num = [x(1) x(2) x(1)*wa^2 x(2)*wa^2]; den = [Jm x(1) (x(2)+Jm*wo^2) x(1)*wa^2 x(2)*wa^2]; sys_controlled = tf(num,den); % Kp = x(1); Ki = x(2); Kd = 0; case % Bo dieu khien I_P Kp = 4*n1*w1*Jm Ki = (w1*w2)^2*Jm/wa^2 num = [1 wa^2]; den = [Jm Kp (Ki+Jm*wo^2) Kp*wa^2 Ki*wa^2]; sys_controlled = Ki*tf(num,den); % num1 = [0 wa^2]; den1 = [Jm Kp (Ki+Jm*wo^2) Kp*wa^2 Ki*wa^2]; sys_controlled1 = Ki*tf(num1,den1); % case % Bo dieu khien I_PD Kd = wa^4*Jl/(wa^2*(w1^2+w2^2+4*(w1*n1)^2)-(w1*w2)^2-wa^4)-Jm 133 Kp = 4*n1*w1*(Jm + Kd) Ki = (w1*w2)^2*(Jm+Kd)/wa^2 num = [1 wa^2]; den = [(Kd+Jm) Kp (Ki+Kd*wa^2+Jm*wo^2) Kp*wa^2 Ki*wa^2]; sys_controlled = Ki*tf(num,den); % num1 = [0 wa^2]; den1 = [(Kd+Jm) Kp (Ki+Kd*wa^2+Jm*wo^2) Kp*wa^2 Ki*wa^2]; sys_controlled1 = Ki*tf(num1,den1); % end % set(handles.Kp,'String',Kp); set(handles.Ki,'String',Ki); set(handles.Kd,'String',Kd); % Dap ung qua t = 0:0.0001:1; step(sys_controlled,t);grid %step(sys_controlled,sys_controlled1,t);grid %axes(handles.axes3) %plot(t,y);grid % - Executes on button press in pushbutton2 function Gioithieu_Callback(hObject, eventdata, handles) % hObject handle to Gioithieu (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) HelpPath = which('gioithieu.html'); web(HelpPath); % - Executes on button press in Trogiup function Trogiup_Callback(hObject, eventdata, handles) % hObject handle to Trogiup (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) HelpPath = which('trogiup.html'); web(HelpPath); % - Executes on button press in Thoat function Thoat_Callback(hObject, eventdata, handles) 134 % hObject handle to Thoat (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) delete(handles.GA); % - Executes on button press in Chaythuc function Chaythuc_Callback(hObject, eventdata, handles) % hObject handle to Chaythuc (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % -function uipanel2_SelectionChangeFcn(hObject, eventdata, handles) % hObject handle to uipanel2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global chonbdk selection = get(hObject,'Tag'); switch selection case 'PID' chonbdk = 1; case 'I_P' chonbdk = 2; case 'I_PD' chonbdk = 3; end % -function uipanel5_SelectionChangeFcn(hObject, eventdata, handles) % hObject handle to uipanel5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global chonhtn selection = get(hObject,'Tag'); switch selection case 'ITAE' chonhtn = 1; case 'IAE' chonhtn = 2; case 'ISE' 135 chonhtn = 3; case 'MSE' chonhtn = 4; end % - Executes on button press in Open function Open_Callback(hObject, eventdata, handles) % hObject handle to Open (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % global chonbdk chonhtn global Jm K Ks wa wo global Kp Ki Kd [FileName,PathName] = uigetfile('*.mat','Select the M-file'); % Nhan duoc du lieu tu file p = load(FileName); Jm = p.m1(1); K = p.m1(2); Ks = p.m1(3); wa = p.m1(4); wo = p.m1(5); Kp = p.m2(1); Ki = p.m2(2); Kd = p.m2(3); chonbdk = p.mode(1) chonhtn = p.mode(2) % set(handles.Kp,'String',Kp); set(handles.Ki,'String',Ki); set(handles.Kd,'String',Kd); % set(handles.Jm,'String',Jm); set(handles.K,'String',K); set(handles.Ksh,'String',Ks); % switch chonhtn case 136 set(handles.ITAE,'Value',1) case set(handles.IAE,'Value',1) case set(handles.ISE,'Value',1) case set(handles.MSE,'Value',1) end % switch chonbdk case set(handles.PID,'Value',1) case set(handles.I_P,'Value',1) case set(handles.I_PD,'Value',1) end % x = [Kp Ki Kd]; switch chonbdk case % Bo dieu khien PID num = [x(1) x(2) x(1)*wa^2 x(2)*wa^2]; den = [Jm x(1) (x(2)+Jm*wo^2) x(1)*wa^2 x(2)*wa^2]; sys_controlled = tf(num,den); case % Bo dieu khien I_P num = [1 wa^2]; den = [Jm x(1) (x(2)+Jm*wo^2) x(1)*wa^2 x(2)*wa^2]; sys_controlled = x(2)*tf(num,den); % num1 = [0 wa^2]; den1 = [Jm x(1) (x(2)+Jm*wo^2) x(1)*wa^2 x(2)*wa^2]; sys_controlled1 = x(2)*tf(num1,den1); case % Bo dieu khien I_PD num = [1 wa^2]; den = [(x(3)+Jm) x(1) (x(2)+x(3)*wa^2+Jm*wo^2) x(1)*wa^2 x(2)*wa^2]; sys_controlled = x(2)*tf(num,den); % 137 num1 = [0 wa^2]; den1 = [(x(3)+Jm) x(1) (x(2)+x(3)*wa^2+Jm*wo^2) x(1)*wa^2 x(2)*wa^2]; sys_controlled1 = x(2)*tf(num1,den1); end t = 0:0.0001:1; y = step(sys_controlled,t); %step(sys_controlled,sys_controlled1,t);grid axes(handles.axes3) plot(t,y);grid % - Executes on button press in Save function Save_Callback(hObject, eventdata, handles) % hObject handle to Save (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global chonbdk chonhtn global Jm K Ks wa wo global Kp Ki Kd m1 = [Jm K Ks wa wo]; m2 = [Kp Ki Kd]; mode = [chonbdk chonhtn] [file,path] = uiputfile('lan_chay1.mat','Save file name'); save(file,'m1','m2','mode'); PHỤ LỤC Chương trình tìm hệ số L lọc Kalman % Tham so ban dau cua khop Ks=0.28 Jm=7.455e-5 Jl=8.878e-5+8*1.932e-5 Kt=0.35/5.5 A=[0 -1/Jm 0 1/Jl -1/Jl Ks -Ks 0 0000] B=[1/Jm 0 0] C=[1 0 0] D=0 %Nhap vao Nu: Nu=0.24*[8 0 0 50 0 138 0060 0 1] %Nhap vao Ny Ny=0.3; %Giai phuong trinh Riccati %[H,L,G]=care(A',C',Nu,Ny) %He so phan hoi Kalman %Kk=(1/Ny)*C*H Kk=lqr(A',C',Nu,Ny) l1=Kk(1) l2=Kk(2) l3=Kk(3) l4=Kk(4) Chương trình tìm hệ số phản hồi K cho điều chỉnh LQG %thong so khop mem Ks=0.28 Jm=7.455e-5 Jl=8.878e-5+1.932e-5 Kt=0.35/5.5 A=[0 -1/Jm 0 1/Jl Ks -Ks 0] B=[1/Jm 0] C=[1 0] D=0 % Vao cac he so de toi uu hoa theo tieu chuan LQG anpha=0.0000006; beta=0.00000097; delta=0.0012; gama=1; Qc=[anpha -anpha 0 -anpha anpha+beta 0 0 0 0 delta] Rc=gama; % Tinh he so phan hoi toi uu bang cach giai phuong trinh riccati A_e=[0 -1/Jm , 0 1/Jl 0, Ks -Ks 0 0 0] B_e=[1/Jm 0 0] % Giai phuong trinh Riccati tinh ma tran he so Riccati H=care(A_e,B_e,Qc,Rc); % tinh he so phan hoi toi uu Kq=(1/Rc)*B_e'*H; % Tinh cac he so phan hoi cho cac trang thai uoc luong k1=K(1) % cho wm k2=K(2) % cho wl k3=K(3) % cho Ts Ki=K(4)% cho bo tich phan 139 PHỤ LỤC Mô hệ truyền động khớp mềm phi tuyến bền vững function dx = ben_vung_ham_mo_phong(t,x) dx = zeros(3,1); % a column vector JM=7.455/10^5;JL=JM*0.75;Ks1=0.28;Ks3=0.5*Ks1;Ks5=0.5*Ks3; k1=15;k2=100;k3=10^5;esp=0.5; %k1=5;k2=10;k3=20;esp=0.5; x1=x(1);x2=x(2);x3=x(3); D=1; JL=D*JL;JM=JM*D; if(t>=2) TL=-0.28; else TL=0; end d_bar=abs(1*TL/JL); %change x1r to suit your task x1r=300;x1r_dot=0;x1r_2dot=0;x1r_3dot=0; x1e=x1-x1r; anfa1=-k1*x1e+x1r_dot-d_bar*tanh(x1e/esp); FL=1/JL*(Ks1*x2+Ks3*x2^3+Ks5*x2^5); x2e=FL-anfa1; d_FL_x2=1/JL*(Ks1+3*Ks3*x2^2+5*Ks5*x2^4); d_anfa1_x1e=-k1-0*d_bar/esp/cosh(x1e/esp)^2; d_anfa1_x1r_dot=1; anfa2=x1/D+1/d_FL_x2*(-k2*x2e-x1e+d_anfa1_x1e*(-k1*x1e+x2e-d_bar*tanh(x1e/esp))d_bar*d_anfa1_x1e*tanh(d_anfa1_x1e*x2e/esp)+ d_anfa1_x1r_dot*x1r_2dot); x3e=x3-anfa2; %x3=anfa2; %ignore all complicated terms induced by partial derivatives of anfa2 FM=1/JM*(Ks1*x2+Ks3*x2^3+Ks5*x2^5); TM=JM*(-k3*x3e-d_FL_x2*x2e+FM); dx(1)=FL+TL/JL; dx(2)=x3-x1; dx(3)=-FM+TM/JM; – Mô hệ truyền động khớp mềmphi tuyến thích nghi bền vững clear clc x1=0;x2=0;x3=0; JM=7/10^5;JL=JM*0.75;Ks1=0.28;Ks3=0.5*Ks1;Ks5=0.5*Ks3; TL=0; k1=3;k2=40;k3=50;esp1=1;esp2=1;esp3=1; %k1=10;k2=20;k3=40;esp1=1;esp2=1;esp3=1; GL=10; GM=10^5; gD1=5; AL=1/JL*[Ks1;Ks3;Ks5]; AM=1/JM*[Ks1;Ks3;Ks5]; ALH=0.5*AL; AMH=0.5*AM; D1H=0; D2_BAR=abs(TL); h=0.002; tem=0; for j=1:5000 140 %change x1r to suit your task x1r=300;x1r=x1r;x1r_dot=0; t=(j-1)*h; xx1(j)=x1;xx2(j)=x2;xx3(j)=x3;tt(j)=t;xxr(j)=x1r; if(t>5) TL=-0.28/10; else TL=0; end D2_BAR=abs(TL); x1e=x1-x1r; anfa1=-k1*x1e+x1r_dot-D1H-D2_BAR*tanh(x1e/esp1); d_anfa1_x1=-k1-D2_BAR/esp1/cosh(x1e/esp1)^2; d_anfa1_D1H=-1; d_anfa1_x1r=k1+D2_BAR/esp1/cosh(x1e/esp1)^2; d_anfa1_x1r_dot=1; fx2=[x2;x2^3;x2^5]; d_fx2_x2=[1;3*x2^2;5*x2^4]; x2e=ALH'*fx2-anfa1; D1H_dot=gD1*projection(1.5*TL/JL,0.5*TL/JL,D1H,(x1e-d_anfa1_x1*x2e)); ALH_tem=(x1e*fx2-d_anfa1_x1*fx2*x2e); ALH_dot1=GL*projection(0.5*AL(1),1.5*AL(1),ALH(1),ALH_tem(1)); ALH_dot2=GL*projection(0.5*AL(2),1.5*AL(2),ALH(2),ALH_tem(2)); ALH_dot3=GL*projection(0.5*AL(3),1.5*AL(3),ALH(3),ALH_tem(3)); ALH_dot=[ALH_dot1;ALH_dot2;ALH_dot3]; anfa2=x1+1/(ALH'*d_fx2_x2)*(-k2*x2e-x1e+d_anfa1_x1*(ALH'*fx2+D1H)+d_anfa1_x1r*x1r_dotd_anfa1_x1*D2_BAR*tanh(d_anfa1_x1*x2e/esp2)+ d_anfa1_D1H*D1H_dot-ALH_dot'*fx2); %instead of calculating all partial derivative terms of anfa2, let's take the numerical approach for anfa2_dot anfa2_dot=(anfa2-tem)/h; tem=anfa2; x3e=x3-anfa2; TM=JM*(-k3*x3e+AMH'*fx2+anfa2_dot); AMH_tem=-(x3e*fx2); AMH_dot1=GM*projection(0.5*AM(1),1.5*AM(1),AMH(1),AMH_tem(1)); AMH_dot2=GM*projection(0.5*AM(2),1.5*AM(2),AMH(2),AMH_tem(2)); AMH_dot3=GM*projection(0.5*AM(3),1.5*AM(3),AMH(3),AMH_tem(3)); AMH_dot=[AMH_dot1;AMH_dot2;AMH_dot3]; x1_dot=AL'*fx2+TL/JL; x2_dot=x3-x1; x3_dot=-AM'*fx2+TM/JM; x1=x1+h*x1_dot; x2=x2+h*x2_dot; x3=x3+h*x3_dot; D1H=D1H+h*D1H_dot; ALH=ALH+h*ALH_dot; AMH=AMH+h*AMH_dot; TTM(j)=TM; ALH1(j)=ALH(1);ALH2(j)=ALH(2);ALH3(j)=ALH(3); AMH1(j)=AMH(1);AMH2(j)=AMH(2);AMH3(j)=AMH(3); end subplot(2,2,1), plot(tt,xx1), hold on, plot(11,xxr,'r'), xlabel('time [s]'), ylabel('x_1, x_r [rad/s]') %load velocity subplot(2,2,2), plot(tt,xx3), xlabel('time [s]'), ylabel('x_3 [rad/s]')%motor velocity subplot(2,2,3), plot(tt,xx2), xlabel('time [s]'), ylabel('x_2 [rad]')% deflecting angle subplot(2,2,4), plot(tt,TTM), xlabel('time [s]'), ylabel('T_M')%motor torque 141 PHỤ LỤC Các sơ dồ Simulink điều khiển thực hệ thí nghiệm truyền động khớp mềm ... động nhằm nâng cao chất lượng hệ thống truyền động điện 1.3 Mô tả toán học hệ truyền động nối khớp mềm Hệ truyền động khớp mềm thực chất hệ phi tuyến, phần tử phi tuyến chủ yếu hệ khớp nối mềm Trong... số động học cho hệ Vấn đề quan trọng hệ thống truyền động chất lượng cao hệ truyền động Servo máy CNC, truyền động Rôbot… Với yêu cầu trên, thiết kế khớp nối cho hệ truyền động chất lượng cao. .. 1.1 Khái niệm hệ thống truyền động khớp mềm 11 1.1.1 Khớp nối hệ thống truyền động 11 1.1.2 Khớp nối mềm 11 1.1.3 Độ cứng khớp nối 13 1.2 Những nghiên cứu hệ thống truyền động khớp mềm 15 1.3 Mơ