30
1 LÝ THUYT MÔ HÌNH VÀ TI ƯU Th.S Nguyn Tn Phúc. Email:[email protected] Tel: 0126.7102772. MÔ HÌNH HÓA

LÝ THUY ẾT MÔ HÌNH VÀ T ỐI ƯU - hcmuaf.edu.vn · 13 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

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

1

LÝ THUYẾT MÔ HÌNH VÀ TỐI ƯU

Th.S Nguyễn Tấn Phúc.Email:[email protected]: 0126.7102772.

MÔ HÌNH HÓA

2

HỆ THỐNG ðIỆN

HỆ THỐNG CƠ

3

Phương trình cân bằng

4

HỆ THỐNG NHIỆT

5

6

VÍ DỤ

Mô hình hóa hệ thống nhúng

7

8

9

Mô hình hóa tay máy hai bậc tự do

10

11

Hệ thống sấy

12

MỘT SỐ VÍ DỤ MÔ PHỎNG VỚI MATLAB

SIMULINK

13

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

14

Phương trình vi phân cấp cao- hệ tuyến tính

Mô hình hoá hệ phi tuyến

15

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

16

Mô hình hệ thống ñiều khiển vị trí motor DC

J = 0.01 Kgm2/s2 là moment quán tín của rotorb = 0.1 Mms là hệ số ma sát của các bộ phận cơ khíK = Ke = Kt = 0.01 Nm/A là hằng số sức ñiện ñộngR = 10 ohm là ñiện trở dây quấnL = 0.5 H là hệ số tự cảmV 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)i là dòng ñiện chạy trong cuộn dây của motor.

idi /dt

sum

d2theta /dt2 dtheta /dt

inertia

1/J

inductance

1/L

dtro

R

damping

b

V

ScopeKt

K

Ke

K

Integrator 2

1

s

Integrator 1

1

s

Integrator

1

s

Mô phỏng mạch ñiện R,L,C mắc nối tiếp

17

� Mạch R,L,C mắt song song

V(t) tichphanV

Sine Wave

Scope

Integrator

1

s

Gain 2

C

Gain 1

1/L

Gain

R

Derivative

du /dt

Add

Mạch R nối tiếp L,C mắt song song

i(t)

dVc /dtic(t)

V

ic (t)

tfvc (t)

Transfer Fcn

1

s 2

Sine WaveScope 1

Integrator

1

s

Gain 5

1/C

Gain 4

C

Gain 3

1/C

Gain 2

1/L

Gain 1

1/R

18

Mô phỏng hệ thống lò xo

u = F

ux'' x' x

StepScopeIntegrator 1

1

s

Integrator

1

s

Gain 2

kGain 1

c

Gain

1/m

Phương trình trạng thái: Dạng tổng quát:X’ = AX + BUY = CX + DU

−−=

23

10A

=

tB

sin20

0

=

0

1C 0=D

19

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:

ñặt x1 = dθ/dt và x 2 = i , ta có:

Phương trình trạng thái: Dạng tổng quát:X’ = AX + BUY = CX + DU

State -Space

x' = Ax+Bu

y = Cx+Du

Sine Wave Scope

20

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

Step State -Space

x' = Ax+Bu

y = Cx+Du

ScopeGain

kp

Bộ ñiều khiển PID

Transfer Fcn

s

kd.s +kp.s+ki2

Step State -Space

x' = Ax+Bu

y = Cx+Du

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.

21

1.MỞ PHẦN MỀM

Mở phần mềm, gõ lệnh sau vào command>>guide

� 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.

Create New GUI: Tạo một hộp thoại GUI mới:

�Open Existing GUI: mở hộp thoại project có sẵn

22

2.CÁC CÔNG CỤ TRONG CỬA SỔ GUI.

� 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.

• 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)

23

� 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

24

� 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.

25

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.

26

� 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:

27

Nhấn nút Run ñể kiểm tra kết quả:

TỐI ƯU HÓA

Bài toán quy hoạch tuyến tính tối ưu hóa dùng excel.

Bài toán quy hoạch tuyến tính dùng mathlab.

28

BÀI TOÁN ðẶT RA

CÂU LỆNH EXCEL

29

DÙNG CÂU LỆNH MATHLAB

MỘT SỐ

KẾT

QUẢ

ỨNG

DỤNG

30

Mô phỏng

mặt ñồng

(Laser

leveling)

Mô phỏng

nhiệt ñộ trong

nhà kính