Tải bản đầy đủ (.pdf) (33 trang)

Bai 1 thuc hanh thiet ke mo phong he thong DKTD

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.25 MB, 33 trang )

Bài 1. 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ô phỏng một hệ thống điều khiển tự động.
- Thu thập và phân tích các bảng dữ liệu của hệ thống.
- Đánh giá được kết quả mô phỏng, so sánh độ tương đồng giữa kết quả mô phỏng của mô hình với các tính chất của đối
tượng thực.
- Đưa ra kết luận và các phương án điều chỉnh cho đối tượng thực dựa trên kết quả mô phỏng sau khi 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 đủ các ứng dụng của Math Work cung cấp.
- Yêu cầu sinh viên được trang bị phần lý thuyết môn Tin học chuyên ngành, hết chương 3 môn Mô hình hóa.
- Tuân thủ mọi nội quy, quy định khi thực hành tại 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 và các tham số như 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 và mô hình hóa hệ trên máy tính với các yêu cầu:
- Tìm hàm quá độ
- Tìm giá trị lớn nhất
- Tìm khoảng thời gian ổn định
- Tìm độ quá điều chỉnh
- Vẽ đồ thị
- In ra 100 kết quả bằng số
- Kiểm tra lại bằng Simullink trong MATLAB
3.2. Các bước tiến hành
Bước 1. Tìm phương trình sai phân của hệ


- Từ sơ đồ cấu trúc ta có hàm truyền hệ kín như sau:

Thay

vào phương trình ta sẽ có hàm truyền gián đoạn của hệ như sau:


Hay:
Sử

dụng

tính

chất

dịch

gốc

của

biến

đổi

Z

ta


tìm

được

phương

Vì tín hiệu đầu vào là hàm u(t) = 1(t) do đó ta có U[k+3]=U[k+2]=U[k+1]=U[k]=1
Ta có phương trình sai phân như sau:

trình

sai

phân

như

sau:


Bước 2. Xây dựng giao diện mô phỏng hệ thống điều khiển tự động
(1) Khởi tạo guide trong phần mềm Matlab


(2) Thiết lập bảng điều khiển trên giao diện
- Chọn công cụ Panel


- Thay đổi tên cho Panel bằng cách kích đúp vào Panel và thay tên trong phần Title của nó 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 trong String ở Inspector của nút sang tên mới là khảo sát hệ thống


+ Kết quả thu được


+ Tương tự như vậy ta lấy nút có tên gọi là “Thoát khỏi hệ thống”


- Chọn công cụ Panel để khai báo bảng nhập giá trị


- Chọn công cụ Static Text để định nghĩa các ô nhập giá trị từ bàn phím


+ Kích đúp vào Static Text để thay đổi tên Static Text trong String sang tên “Nhap gia tri K1 =”


+Tương tự như vậy ta khai báo nhập giá trị cho K2, T1, T2, T


- Chọn công cụ Edit Text để khai báo ô nhập và xuất giá trị trên màn hình



+ Kích đúp vào Edit1 để khai báo giá trị mặc định trong phần String từ chuỗi ký tự “ Edit Text” sang số 100


+ Làm tương tự chọn Edit2, Edit3, Edit4, Edit5 cho các biến K2, T1, T2, T, với mặc định K2 = 0.5; T1 = 0.01; T2 = 0.02
và T = 0.001.


+ Tương tự ta lập bảng xuất giá trị tính toán ra:
> Giá trị cực đại xuất ra Edit6
> Thời gian ổn định xuất ra Edit7
> Độ quá điều chỉnh xuất ra Edit8



Bước 3 Viết Code cho các 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 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 1 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


×