LÝ THUYẾT MÔ HÌNH VÀ TỐI ƢU Th.S Nguyễn Tấn Phúc. Email:phucnt@hcmuaf.edu.vn Tel: 0126.7102772.
MÔ HÌNH HÓA
HỆ THỐNG ĐIỆN
HỆ THỐNG CƠ
Phƣơng trình cân bằng
HỆ THỐNG NHIỆT
VÍ DỤ
Mô hình hóa hệ thống nhúng
Mô hình hóa tay máy hai bậc tự do
Hệ thống sấy
MỘT SỐ VÍ DỤ MÔ PHỎNG VỚI MATLAB SIMULINK
Giải pt bậc thấp Giải pt bậc cao
Mô phỏng Hệ thống liên tục đơn giản Mô phỏng hệ ptrình vi phân bậc cao
Phương trình vi phân cấp cao- hệ tuyến tính
Mô hình hoá hệ phi tuyến
Mô hình hóa hệ pt vi phân- có đk ban đầu
Xây dựng mô hình hệ thống xe tải
Mô hình hệ thống điều khiển vị trí motor DC R V 1/L dtro di /dt 1 s i K sum inductance Integrator Ke K 1/J d2theta /dt2 1 s dtheta /dt 1 s Kt inertia Integrator 1 Integrator 2 Scope b damping J = 0.01 Kgm2/s2 b = 0.1 Mms K = Ke = Kt = 0.01 Nm/A R = 10 ohm L = 0.5 H V q i là moment quán tín của rotor là hệ số ma sát của các bộ phận cơ khí là hằng số sức điện động là điện trở dây quấn là hệ số tự cảm là điện áp đặt lên cuộn dây của motor là vị trí trục quay (ngõ ra của mô hình) là dòng điện chạy trong cuộn dây của motor.
Mô phỏng mạch điện R,L,C mắc nối tiếp
Mạch R,L,C mắt song song Sine Wave V(t) 1 s Integrator tichphanv 1/L Gain 1 du /dt C Add Scope Derivative Gain 2 R Gain
Mạch R nối tiếp L,C mắt song song Sine Wave V 1/R Gain 1 i(t) Scope 1 1/C 1 s ic(t) C dvc/dt 1/C ic(t) Gain 5 Integrator Gain 4 Gain 3 1 s 2 Transfer Fcn tfvc (t) 1/L Gain 2
Mô phỏng hệ thống lò xo u = F Step u 1/m Gain x'' 1 x' 1 x s s Integrator Integrator 1 Scope c Gain 1 k Gain 2
Phƣơng trình trạng thái: Dạng tổng quát: X = AX + BU Y = CX + DU A 0 1 0 B 3 2 20sin t 1 C D 0 0
MÔ HÌNH HỆ THỐNG ĐIỀU KHIỂN TỰ ĐỘNG ỨNG DỤNG MATLAB HÀM TRUYỀN VÀ PHƢƠNG TRÌNH TRẠNG THÁI CỦA HỆ THỐNG Hệ thống điều khiển tốc độ motor DC Hàm truyền: Biến đổi Laplace 2 vế ta đƣợc: Hay:
Phƣơng trình trạng thái: Dạng tổng quát: X = AX + BU Y = CX + DU đặt x1 = dθ/dt và x 2 = i, ta có: Sine Wave x' = Ax+Bu y = Cx+Du State -Space Scope
BỘ ĐIỀU KHIỂN PID Trong đó hàm truyền của khâu PID là: KP là độ lợi của khâu tỉ lệ (Proportional gain) KI là độ lợi của khâu tích phân (Integral gain) KD là độ lợi khâu vi phân (Derivative gain) Bộ điều khiển tỉ lệ P kp x' = Ax+Bu y = Cx+Du Step Gain State -Space Scope Bộ điều khiển PID Step s kd.s 2+kp.s+ki Transfer Fcn x' = Ax+Bu y = Cx+Du State -Space Scope
LẬP TRÌNH GUI TRONG MATLAB 1. MỞ PHẦN MỀM. 2. CÁC CÔNG CỤ TRONG CỬA SỔ GUI. 3. KÉO THẢ CÁC ĐIỀU KIỆN. 4. THAY ĐỔI CÁC THUỘC TÍNH CỦA CÁC ĐIỀU KIỆN. 5. VIẾT LỆNH CHO CHƢƠNG TRÌNH.
1.MỞ PHẦN MỀM Mở phần mềm, gõ lệnh sau vào command>>guide
Create New GUI: Tạo một hộp thoại GUI mới: Blank GUI (Default): Hộp thoại GUI trống không có điều khiển unicontrol nào cả. * GUI With Unicontol: Hộp thoại GUI với vài unicontrol nhƣ button,, chƣơng trình có thể chạy ngay. * GUI With Axes Menu: Hộp thoại với một unicontrol axse và button, các menu để hiển thị đồ thị. * Modal Question Dialog: Hộp thoại đặt câu hỏi Yes, No. Open Existing GUI: mở hộp thoại project có sẵn
2.CÁC CÔNG CỤ TRONG CỬA SỔ GUI.
Giao diện rất giống với các chƣơng trình lập trình giao diện nhƣ Visual Basic, Visual C++, Di chuột qua các biểu tƣợng ở bên trái sẽ thấy tên của các điều khiển. Push Button: giống nhƣ nút command button trong VB. Là các nút bấm nhƣ nút OK,Cancel,.. Slider: Thanh trƣợc có một con trƣợc chạy trên đó. Radio Button: Nút nhỏ hình tròn để lựa chọn (Options) Các nút điều khiển khác: Check Box, Edit Text, Static Text, Pop-up Menu, List Box, Axes, Panel, Button Group, AtiveX Control, Toggle Button.
Menu Tool có: * Run(Ctr+T): chạy chƣơng trình mà đã viết. * Align Object: sắp xếp các điều khiển * Grid and Rulers: lƣới trong giao diện (nhƣ một ma trận các ô vuông nhỏ), và sắp xếp vị trí. Menu Editor: tạo menu cho điều khiển. * Tab Order Editor: sắp xếp Tab order là thứ tự khi ta nhấn phím Tab * Gui Options: lựa chọn cho giao diện GUI Khi lƣu dƣới tên: TUT01, đồng thời xuất hiện cửa sổ Editor và đang mở file TUT01.m và Trong thƣ mục đang lƣu sẽ có 2 file là: - TUT01.fig: file này chứa giao diện của chƣơng trình - TUT01.m: file chứa các mã thực thi chƣơng trình nhƣ các hàm khởi tạo, các hàm callback,
Ví dụ thực hành: kéo vào trong giao diện 2 edit box, 1 static box và 1 push botton
Chƣơng trình có chức năng khi nhấn vào nút bấm thì kết quả của phép cộng giữa 2 số đƣợc gõ vào 2 ô sẽ hiện lên trong Static Text Thay đổi các thuộc tính: Click đúp vào Edit Text bên trái để xuất hiện cửa sổ các thuộc tính của điều khiển. Có thể sắp xếp theo chức năng hoặc theo thứ tự A-Z của tên thuộc tính bằng nút hiện ở gõ bên trái.
Thuộc tính quan trọng của Edit Box bao gồm: Tag: là thuộc tính giống nhƣ Caption trong Visual Basic để đặt tên điều khiển. Dùng tên này có thể thao tác đến cá thuộc tính của đối tƣợng. (vd editstr1). String: là chuổi kí tự hiện lên Edit Box. Tƣơng tự, thay đổi thuộc tính tag của Edit Box thứ 2 thành editstrl2. Static Box cũng tƣơng tự thành staticstr3. Push Botton: thuộc tính tag = buttoncalculate, String =calculate.
VIẾT LỆNH CHO CHƢƠNG TRÌNH: Chƣơng trình có tác dụng khi nhấn vào nút Push Button sẽ hiện lên kết quả ở Static Box viết vào hàm này mà khi nhấn vào nút Push Box sẽ gọi. Hàm Callback, điều khiển nào cũng có hàm Callback, nhƣ hàm ngắt trong vi điều khiển.
Hàm có một tham số: * hobject: handle của điều khiển bottoncalculate * handles:là một cấu trúc chứa tất cả các điều khiển và dữ liệu ngƣời dùng dùng để truy xuất các điều khiển khác. Qua thuộc tính tag của các điều khiển truy xuất đến thuộc tính string của các điều khiển editstr1, editstr2, editstr3 bằng các lệnh get, set. * Get(handles.tag_dieu_khien, ten thuoc tinh ): lấy giá trị * set(handles.tag_dieu_khien, ten_thuoc_tinh, gia_tri ): đặt giá trị * str2num: biến từ string sang số * num2str để biến trở lại.
Viết hàm nhƣ sau:
Nhấn nút Run để kiểm tra kết quả: