Bai 1 thuc hanh thiet ke mo phong he thong DKTD

33 431 3
Bai 1 thuc hanh thiet ke mo phong he thong DKTD

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài XÂY DỰNG MÔ HÌNH HÓA MÔ PHỎNG HÊ THỐNG ĐIỀU KHIỂN TỰ ĐỘNG 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 điều khiển tự động - 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 chuyên 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 toán yêu cầu Cho hệ điều khiển tự động có sơ đồ cấu trúc tham số sau: y(t) Với U(t) = 1(t); K1 = 100; K2 = 0.5; T1 = 0.01; T2 = 0.02; Chu kỳ lấy mẫu T = 0.001 Hãy tìm phương trình sai phân mô hình hóa hệ máy tính với yêu cầu: - Tìm hàm độ - Tìm giá trị lớn - Tìm khoảng thời gian ổn định - Tìm độ điều chỉnh - Vẽ đồ thị - In 100 kết số - Kiểm tra lại Simullink MATLAB 3.2 Các bước tiến hành Bước Tìm phương trình sai phân hệ - Từ sơ đồ cấu trúc ta có hàm truyền hệ kín sau: Thay vào phương trình ta có hàm truyền gián đoạn hệ sau: Hay: Sử dụng tính chất dịch gốc biến đổi Z ta tìm phương Vì tín hiệu đầu vào hàm u(t) = 1(t) ta có U[k+3]=U[k+2]=U[k+1]=U[k]=1 Ta có phương trình sai phân sau: trình sai phân sau: 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 “Thoát khỏi hệ thống” 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 = Bai1(varargin) % BAI1 MATLAB code for Bai1.fig % BAI1, by itself, creates a new BAI1 or raises the existing % singleton* % % H = BAI1 returns the handle to a new BAI1 or the handle to % the existing singleton* % % BAI1('CALLBACK',hObject,eventData,handles, ) calls the local % function named CALLBACK in BAI1.M with the given input arguments % % BAI1('Property','Value', ) creates a new BAI1 or raises the % existing singleton* Starting from the left, property value pairs are % applied to the GUI before Bai1_OpeningFcn gets called An % unrecognized property name or invalid value makes property application % stop All inputs are passed to Bai1_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 Bai1 % Last Modified by GUIDE v2.5 05-Mar-2013 21:24:22 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, 'gui_Singleton', gui_Singleton, 'gui_OpeningFcn', @Bai1_OpeningFcn, 'gui_OutputFcn', @Bai1_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 Bai1 is made visible function Bai1_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 Bai1 (see VARARGIN) % Choose default command line output for Bai1 handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes Bai1 wait for user response (see UIRESUME) % uiwait(handles.figure1); % - Outputs from this function are returned to the command line function varargout = Bai1_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 ky i y = ones(1,1000);%Khai bao y la mot ma tran hang 1000 cot k1 = get(handles.edit1,'String');% Nh?n chu?i ký t? ? edit1 gán cho k1 k1 = str2num(k1); %Chuy?n ??i t? chu?i ký t? sang d?ng s? k2 = get(handles.edit2,'String');% Nh?n chu?i ký t? ? edit2 gán cho k2 k2 = str2num(k2); %Chuy?n ??i t? chu?i ký t? sang d?ng s? t1 = get(handles.edit3,'String');% Nh?n chu?i ký t? ? edit3 gán cho t1 t1 = str2num(t1); %Chuy?n ??i t? chu?i ký t? sang d?ng s? t2 = get(handles.edit4,'String');% Nh?n chu?i ký t? ? edit4 gán cho t2 t2 = str2num(t2); %Chuy?n ??i t? chu?i ký t? sang d?ng s? t = get(handles.edit5,'String');% Nh?n chu?i ký t? ? edit1 gán cho t t = str2num(t); %Chuy?n ??i t? chu?i ký t? sang d?ng s? 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) = a=8*t1*t2+4*t1*t+4*t2*t+2*t*t+k1*k2*t*t*t; b=-24*t1*t2-4*t1*t-4*t2*t+2*t*t+3*k1*k2*t*t*t; c=24*t1*t2-4*t1*t-4*t2*t-2*t*t+3*k1*k2*t*t*t; d=-8*t1*t2+4*t1*t+4*t2*t-2*t*t+k1*k2*t*t*t; for k =1:997 y(1,k+3)=(-b*y(1,k+2)-c*y(1,k+1)-d*y(1,k)+8*k1*t*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:997 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/k2))/(1/k2))[...]... varargout = Bai1 (varargin) % BAI1 MATLAB code for Bai1 .fig % BAI1 , by itself, creates a new BAI1 or raises the existing % singleton* % % H = BAI1 returns the handle to a new BAI1 or the handle to % the existing singleton* % % BAI1 ('CALLBACK',hObject,eventData,handles, ) calls the local % function named CALLBACK in BAI1 .M with the given input arguments % % BAI1 ('Property','Value', ) creates a new BAI1 or raises... a=8*t1*t2+4*t1*t+4*t2*t+2*t*t+k1*k2*t*t*t; b=-24*t1*t2-4*t1*t-4*t2*t+2*t*t+3*k1*k2*t*t*t; c=24*t1*t2-4*t1*t-4*t2*t-2*t*t+3*k1*k2*t*t*t; d=-8*t1*t2+4*t1*t+4*t2*t-2*t*t+k1*k2*t*t*t; for k =1: 997 y (1, k+3)=(-b*y (1, k+2)-c*y (1, k +1) -d*y (1, k)+8*k1*t*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: 997 if y (1, k)>max max = y (1, k);... GUIHANDLES % Edit the above text to modify the response to help Bai1 % Last Modified by GUIDE v2.5 05-Mar-2 013 21: 24:22 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, 'gui_Singleton', gui_Singleton, 'gui_OpeningFcn', @Bai1 _OpeningFcn, 'gui_OutputFcn', @Bai1 _OutputFcn, 'gui_LayoutFcn', [] , 'gui_Callback', []); if nargin && ischar(varargin {1} ) gui_State.gui_Callback... bien syms a b c d max k1 k2 t1 t2 tm tod xichma gd gm k km ky i y = ones (1, 1000);%Khai bao y la mot ma tran 1 hang 10 00 cot k1 = get(handles.edit1,'String');% Nh?n chu?i ký t? ? edit1 gán cho k1 k1 = str2num(k1); %Chuy?n ??i t? chu?i ký t? sang d?ng s? k2 = get(handles.edit2,'String');% Nh?n chu?i ký t? ? edit2 gán cho k2 k2 = str2num(k2); %Chuy?n ??i t? chu?i ký t? sang d?ng s? t1 = get(handles.edit3,'String');%... GUIDATA) % varargin command line arguments to Bai1 (see VARARGIN) % Choose default command line output for Bai1 handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes Bai1 wait for user response (see UIRESUME) % uiwait(handles.figure1); % - Outputs from this function are returned to the command line function varargout = Bai1 _OutputFcn(hObject, eventdata, handles)... set(handles.edit6,'String',max); set(handles.edit 11, 'String',t*km); %================================ %Tim khoang thoi gian on dinh k =10 00; while abs((y (1, k)- (1/ k2))/ (1/ k2))

Ngày đăng: 10/06/2016, 19:08

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan