Thông tin tài liệu
Bài XÂY DỰNG MƠ HÌNH HĨA MƠ PHỎNG HÊ THỐNG GIẢM SĨC TRÊN CƠNG CỤ GUIDE CỦA PHẦN MỀM MATLAB I Mục đích - Giúp sinh viên hiểu phương pháp xây dựng mơ hình hóa mơ hệ thống vật lý - Thu thập phân tích bảng liệu hệ thống - Đánh giá kết mô phỏng, so sánh độ tương đồng kết mơ mơ hình với tính chất đối tượng thực - Đưa kết luận phương án điều chỉnh cho đối tượng thực dựa kết mơ sau phân tích chúng II Yêu cầu thực hành - Máy vi tính cài đặt sẵn phần mềm Matlab với đầy đủ ứng dụng Math Work cung cấp - Yêu cầu sinh viên trang bị phần lý thuyết môn Tin học chun ngành, hết chương mơn Mơ hình hóa - Tuân thủ nội quy, quy định thực hành phịng thí nghiệm III Nội dung thực hành 3.1 Bài tốn u cầu Hãy dùng máy tính số để mô độ dịch chuyển xi(t) xo(t) hệ thống vật lý có sơ đồ sau: - Độ cứng lò xo K = 10 - Hệ số giảm lắc C = 20; - Khối lượng m = 10(kg); - Chu kỳ lấy mẫu T =1s 3.2 Các bước tiến hành Bước Tìm phương trình sai phân hệ Từ đồ thị tổng lực tác động lên vật m ta chiếu lên trụctọa độ nằm ngang Theo định luật II Newton ta có: * Biến đổi Laplace: Thay số biến đổi Laplace với điều kiện ban đầu triệt tiêu ta có m.s2 X0(s) + C.s.X0(s) + KX0(s) = KXi(s) * Phương trình đại số: W(s) = X0(s)/Xi(s) = K/(ms2 + Cs + K) * Tìm hàm truyền đạt số: Thay s = (2/T).((z-1)/(z+1)) ta có: W(z) = X0(z)/Xi(z) = (K.T2.z2 + 2K.T2.z + K.T2)/[(K.T2+2CT+4m)z2+(2KT2-8m)z+(4m-2CT+KT2)] Đặt A = K.T2+2CT+4m; B = 2KT2-8m; D= 4m-2CT+KT2 W(z) = X0(z)/Xi(z) = (K.T2.z2 + 2K.T2.z + K.T2)/[Az2+Bz+D] * Tìm phương trình sai phân hệ thống Az2 X0(z) + Bz.X0(z) + D.X0(z) = K.T2.z2 Xi(z) + 2K.T2.z Xi(z) + K.T2 Xi(z) A.x0(k+2) + B.x0(k+1) + D.x0(k) = K.T2xi (k+2) +2K.T2xi(k+1) + K.T2xi(k) Nếu xét tín hiệu vào hàm xi = 1(t) ta có Xi [k+2] = Xi [k+1] = Xi [k] =1 A.x0(k+2) + B.x0(k+1) + D.x0(k) = 4K.T2 x0(k+2) = (- B.x0(k+1) - D.x0(k) + 4K.T2)/A Bước Xây dựng giao diện mô hệ thống điều khiển tự động (1) Khởi tạo guide phần mềm Matlab (2) Thiết lập bảng điều khiển giao diện - Chọn công cụ Panel - Thay đổi tên cho Panel cách kích đúp vào Panel thay tên phần Title từ tên - Panel sang tên “Bang dieu khien” - - Chọn công cụ Push Button để khai báo nút khảo sát hệ thống Đổi tên PushButton String Inspector nút sang tên khảo sát hệ thống + Kết thu + Tương tự ta lấy nút có tên gọi “Thốt khỏi hệ thống” - Chọn cơng cụ Panel để khai báo bảng nhập giá trị + Tương tự ta lập bảng xuất giá trị tính tốn ra: > Giá trị cực đại xuất Edit6 > Thời gian đạt cực đại xuất Edit11 > Thời gian ổn định xuất Edit7 > Độ điều chỉnh xuất Edit8 Bước Viết Code cho nút điều khiển (1) Nút thoát khỏi hệ thống Nhấn chuột phải vào Nút “ Thoat khoi he thong” chọn View callBacks/Callback + Ta lập trình sau: hoi=questdlg('Ban muon thoat khoi chuong trinh?', 'THUC SU MUON THOAT?','Yes','No','No'); if strcmp(hoi,'Yes') close if strcmp(hoi,'No') return; end end (2) Nút “Khao sat he thong” Nhấn chuột phải vào Nút “Khao sat he thong” chọn View callBacks/Callback + Ta lập trình: function varargout = Bai2(varargin) % BAI2 MATLAB code for Bai2.fig % BAI2, by itself, creates a new BAI2 or raises the existing % singleton* % % H = BAI2 returns the handle to a new BAI2 or the handle to % the existing singleton* % % BAI2('CALLBACK',hObject,eventData,handles, ) calls the local % function named CALLBACK in BAI2.M with the given input arguments % % BAI2('Property','Value', ) creates a new BAI2 or raises the % existing singleton* Starting from the left, property value pairs are % applied to the GUI before Bai2_OpeningFcn gets called An % unrecognized property name or invalid value makes property application % stop All inputs are passed to Bai2_OpeningFcn via varargin % % *See GUI Options on GUIDE's Tools menu Choose "GUI allows only one % instance to run (singleton)" % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help Bai2 % Last Modified by GUIDE v2.5 05-Mar-2013 22:11:55 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, 'gui_Singleton', gui_Singleton, 'gui_OpeningFcn', @Bai2_OpeningFcn, 'gui_OutputFcn', @Bai2_OutputFcn, 'gui_LayoutFcn', [] , 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT % - Executes just before Bai2 is made visible function Bai2_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to Bai2 (see VARARGIN) % Choose default command line output for Bai2 handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes Bai2 wait for user response (see UIRESUME) % uiwait(handles.figure1); % - Outputs from this function are returned to the command line function varargout = Bai2_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; % - Executes on button press in pushbutton1 function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Ch??ng trình ví du 3.1 v? v? ?? th? c?a h? th?ng ?i?u khi?n t? ??ng disp('MO PHONG HE THONG DIEU KHIEN TU DONG - THM') clc; % Khai bao bien syms a b c d max k1 k2 t1 t2 tm tod xichma gd gm k km y = ones(1,1000);%Khai bao y la mot ma tran hang 1000 cot K = get(handles.edit1,'String');% Nh?n chu?i ký t? ? edit1 gán cho k1 K = str2num(K); %Chuy?n ??i t? chu?i ký t? sang d?ng s? m = get(handles.edit2,'String');% Nh?n chu?i ký t? ? edit2 gán cho k2 m = str2num(m); %Chuy?n ??i t? chu?i ký t? sang d?ng s? C = get(handles.edit3,'String');% Nh?n chu?i ký t? ? edit3 gán cho t1 C = str2num(C); %Chuy?n ??i t? chu?i ký t? sang d?ng s? T = get(handles.edit4,'String');% Nh?n chu?i ký t? ? edit4 gán cho t2 T = str2num(T); %Chuy?n ??i t? chu?i ký t? sang d?ng s? A = K*T*T+2*C*T+4*m; B = 2*K*T*T-8*m; D=4*m-2*C*T+K*T*T; y(1,1)=0; % Khai bao phan tu y(1) = y(1,2)=0; % Khai bao phan tu y(2) = y(1,3)=0; % Khai bao phan tu y(3) = for k =1:998 y(1,k+2)=(-B*y(1,k+1)-D*y(1,k)+4*K*T*T)/A; end % Ch??ng trình ví du 3.1 v? v? ?? th? c?a h? th?ng ?i?u khi?n t? ??ng % Tim gia tri lon nhat max = y(1,1); for k =1:998 if y(1,k)>max max = y(1,k); km = k; end end set(handles.edit6,'String',max); set(handles.edit11,'String',T*km); %================================ %Tim khoang thoi gian on dinh k =1000; while abs((y(1,k)-1))
Ngày đăng: 10/06/2016, 19:08
Xem thêm: Bai 2 thuc hanh thiet ke mo hinh hoa mo phong he thong giam soc, Bai 2 thuc hanh thiet ke mo hinh hoa mo phong he thong giam soc