Vai trò của mô hình hóa và mô phỏng Mô hình toán và phương pháp số Mô hình toán của hệ vật lý Phương pháp số giải phương trình vi phân... Vai trò của mô hình hóa và mô phỏng Đ
Trang 1 Vai trò của mô hình hóa và mô phỏng
Mô hình toán và phương pháp số
Mô hình toán của hệ vật lý
Phương pháp số giải phương trình vi phân
Trang 2ĐHBK Hànội B/m Thiết bị điện – điện tử 3
Yêu cầu với sinh viên
Tham dự lớp đầy đủ
Làm các bài tập về nhà
Hoàn thành bài tập lớn
Thi cuối học kỳ
1 Vai trò của mô hình hóa và mô phỏng
Mô hình– dạng biểu diễn đơn giản hóa của một hệ vật lý Chương trình này giới hạn mô hình ở dạng thức mô tả toán học, mô hình toán
Mô hình hóa và mô phỏng– là kỹ thuật cho phép xây dựng mô hình của hệ vật lý và thực hiện thực nghiệm trên mô hình đó Môn học này
sử dụng công cụ MATLAB/Simulink để biểu diễn mô hình toán của hệ trên máy tính số và cho phép phân tích, nghiên cứu nó
Vai trò của mô hình hóa và mô phỏng
Được sử dụng khi hệ vật lý không tồn tại, tốn kém và/hoặc tốn thời gian xây dựng…
Cho phép quan sát quá trình, đáp ứng động của hệ thống thiết kế trước khi thực nghiệm trên thiết bị thực
Là công cụ hữu hiệu với chi phí thấp cho nghiên cứu, dễ sử dụng, dễ dàng thay đổi phương án…
Trang 3ĐHBK Hànội B/m Thiết bị điện – điện tử 5
2 Mô hình toán và phương pháp số
Phân loại mô hình toán
Mô hình tuyến tính, phi tuyến
Mô hình thông số tập trung, thông số rải
Mô hình tĩnh, động
Mô hình liên tục, gián đoạn
Mô hình xác định, bất định
Trình tự xây dựng mô hình
Xác định mục tiêu và điều kiện của bài toán
Đặt giả thiết đơn giản hóa và loại bỏ các yếu tố không quan trọng
Xác định các tham số cho mô hình theo mục tiêu và điều kiện
Kiểm chứng mô hình về mức độ phù hợp với hệ thống vật lý
2 Mô hình toán và phương pháp số
Mô tả toán học thường gặp
Phương trình vi phân
Hàm truyền
Không gian trạng thái
Trang 4ĐHBK Hànội B/m Thiết bị điện – điện tử 7
2 Mô hình toán và phương pháp số
Phương trình vi phân
–Thí dụ 1: Phân tích mạch điện trên hình vẽ Nguồn DC 1 V,
điều kiện đầu i(0) = 0 A, u c (0) = 0 V Xác định quá trình quá
độ của i(t), u c (t) khi đóng công tắc.
w BTVN: Xây dựng mô hình toán động cơ DC kích thích độc lập.
2 Mô hình toán và phương pháp số
Hàm truyền
Định nghĩa: The transfer function of a linear, time-invariant, differential equation system is defined as the ratio of the Laplace transform of the output variable to the Laplace transform ofthe input variable, with all initial conditions assumed to be zero.
Tiếp theo thí dụ 1– mô tả bài toán ở dạng hàm truyền
s
v dt
di L
s C C
dt
v d LC dt
dv
Biểu thức:
) (
) ( ) (
s V
s V s Y
S C
=
w BTVN: Chuyển mô hình toán động cơ DC kích thích độc lập về dạng hàm truyền.
Trang 5ĐHBK Hànội B/m Thiết bị điện – điện tử 9
Mô tả không gian trạng thái
Dạng thức
Tiếp theo thí dụ 1– mô tả bài toán ở dạng thức không gian trạng thái
Đặt
Từ đó tìm được ma trận A, B, C, D
2 Mô hình toán và phương pháp số
w BTVN: Chuyển mô hình toán động cơ DC kích thích độc lập về mô hình không gian trạng thái Điều kiện: Mạch từ tuyến tính, kích thích không đổi.
2 Mô hình toán và phương pháp số
Phương pháp số giải phương trình vi phân
Phương pháp Euler:
Giải phương trình y’ = f(t,y)trong khoản [a,b],
với y(a) = y(0) = y0:–Chia đoạn [a,b]thành nkhoảng hđủ nhỏ
–Giá trị củaytại y(k) được tính theo giá trị đã biết y(k-1)vàhàm f(tk , y k )theo biểu thức:
) , (
Trang 6ĐHBK Hànội B/m Thiết bị điện – điện tử 12Thí dụ về ph.pháp Euler viết trong MATLAB
Sai số của phương pháp Euler
wSai số tỉ lệ với h2
Trang 7ĐHBK Hànội B/m Thiết bị điện – điện tử 14
2 Mô hình toán và phương pháp số
Các phương pháp số khác
Phương pháp Runge-Kutta bậc 2 – trong MATLAB làODE23
Phương pháp Runge-Kutta bậc 4 – trong MATLAB làODE45
Phương pháp chuỗi Taylor
Các phương pháp Predictor-Correctors
…
wThí dụODE45:
Thí dụ: Runge-Kutta Order 4
Trang 8ĐHBK Hànội B/m Thiết bị điện – điện tử 16
3 MATLAB/Simulink
Tại sao chọn MATLAB/Simulink?
Đây là một công cụ:
Mạnh cho việc thực hiện mô phỏng các mô hình toán
Dễ học, dễ sử dụng Æ tốn ít thời gian đầu tư cho công cụ
Các công cụ khác
Dymola với ngôn ngữ Modelica
20-Sim với phương pháp Bond Graph
Maple, Mathematica, ACSL, Saber, Dynast…
Tài liệu tham khảo
MATLAB/Simulink dành cho kỹ sư điều khiển tự động – Nguyễn Phùng Quang
…
MATLAB
Môi trường MATLAB, demo và help
Tạo biến trong MATLAB
Thao tác với ma trận, toán tử logic và các hàm toán học
Công cụ hiển thị
M-file
Viết chương trình trong MATLAB
Lưu biến và buổi làm việc; thư mục và đường dẫn
GUI
Giải hệ phương trình vi phân với MATLAB
Trang 9ĐHBK Hànội B/m Thiết bị điện – điện tử 18
Môi trường MATLAB
To get started, select "MATLAB Help" from the Help menu
» a = 2;
» b = 5;
» a^b ans = 32
» x = 5/2*pi;
» y = sin(x)
y = 1
» z = asin(y)
z = 1.5708
» a = 2;
» b = 5;
» a^b ans = 32
» x = 5/2*pi;
» y = sin(x)
y = 1
» z = asin(y)
z = 1.5708
Tạo biến trong môi trường MATLAB
Kết quả được gán cho “ans” nếu không đặt tên biến
Dấu () để truy cập hàm
Trang 10ĐHBK Hànội B/m Thiết bị điện – điện tử 20
Một số lệnh tiện ích
Các lệnh tiện ích
whovàwhos – liệt kê các biến
clear, clear x, clear all – xóa biến
close– xóa cửa sổ đồ họa hiện hành
cd – đổi thư mục hiện hành
dir– liệt kê nội dung thư mục hiện hành
format– đặt định dạng biến lưu trong môi trường
help “tên hàm”– tra cứu nhanh
clc– xóa màn hình lệnh
…
Thao tác với ma trận
3 khái niệm trong đại số tuyến tính
Vô hướng – là một số hay một từ (có giá trị đơn nhất)
Véc-tơ – là mảng 1-D chứa một dãy các vô hướng, biến hoặc
Trang 11ĐHBK Hànội B/m Thiết bị điện – điện tử 22
» b(2,5) = 23
b = -2.8000 0 + 2.6458i 10.5000 0 0
» b(2,5) = 23
b = -2.8000 0 + 2.6458i 10.5000 0 0
Trang 12ĐHBK Hànội B/m Thiết bị điện – điện tử 24
» z = rand(2,4)
z = 0.9501 0.6068 0.8913 0.4565 0.2311 0.4860 0.7621 0.0185
» z = rand(2,4)
z = 0.9501 0.6068 0.8913 0.4565 0.2311 0.4860 0.7621 0.0185
Trang 13ĐHBK Hànội B/m Thiết bị điện – điện tử 26
A(4:5,2:3) A([9 14;10 15])
A(1:end,end) A(:,end) A(21:end)’
a(2nd row).b(3rd column)
Trang 14ĐHBK Hànội B/m Thiết bị điện – điện tử 28
Thao tác với ma trận
Các hàm tiện ích
zeros– tạo ma trận rỗng
ones– tạo ma trận 1
eye– tạo ma trận đơn vị
rand– tạo ma trận các phần tử ngẫu nhiên
diag– tạo ma trận đường chéo
size– hàm trả về kích thước của ma trận
fliplr– đảo cột ma trận trái phải
flipud– đảo hàng ma trận trên dưới
rot90– xoay ma trận 90 độ (ngược chiều kim đồng hồ)
0 1 0 1 0 1 1
» all_pos = all(Mass>=0) all_pos =
0
» all_pos = any(Mass>=0) all_pos =
1
» pos_fin = (Mass>=0)&(isfinite(Mass)) pos_fin =
0 1 0 1 0 0 1
» Mass = [-2 10 NaN 30 -11 Inf 31];
» each_pos = Mass>=0 each_pos =
0 1 0 1 0 1 1
» all_pos = all(Mass>=0) all_pos =
0
» all_pos = any(Mass>=0) all_pos =
1
» pos_fin = (Mass>=0)&(isfinite(Mass)) pos_fin =
Trang 15ĐHBK Hànội B/m Thiết bị điện – điện tử 30
Một số hàm toán học
Các hàm toán học
abs, sign– hàm trả về trị tuyệt đối và dấu
sin, cos, asin, acos…– hàm lượng giác
exp, log, log10– hàm mũ e, log tự nhiên, log hệ 10
ceil, floor, fix, round– các hàm làm tròn số
sqrt– hàm căn bậc hai
gcd– ước số chung lớn nhất
lcm– bội số chung nhỏ nhất
real, img– hàm trả về phần thực, phần ảo của số phức
rem, mod– các hàm lấy phần nguyên và phần dư của phép chia
max, min, means– các hàm tìm max, min và trị trung bình
title('Sample Plot','fontsize',14);
xlabel('X values','fontsize',14);
ylabel('Y values','fontsize',14);
legend('Y data','Z data')
grid on
Trang 16ĐHBK Hànội B/m Thiết bị điện – điện tử 32
Công cụ hiển thị - Visualizing data
Trang 17ĐHBK Hànội B/m Thiết bị điện – điện tử 34
Công cụ hiển thị - Visualizing data
Trang 18ĐHBK Hànội B/m Thiết bị điện – điện tử 36
Công cụ hiển thị - Visualizing data
Cho phép người dùng tạo hàm riêng của mình
Tất cả các biến bên trong hàm có tính chất local(Muốn biến có tính chất global, phải dùng từ khóa globalkhi khai báo biến)
Thông tin đưa vào hàm dưới dạng thông số
MATLAB hỗ trợ nhiều tính năng cho hàm Æ xem thêm help
function
Trang 19ĐHBK Hànội B/m Thiết bị điện – điện tử 38
M-files
Cửa sổ soạn thảo M-file: Editor/Debugger
Select Workspace Set Auto- Breakpoints
tips
M-files
Function file
function y = mean (x)
% MEAN Average or mean value.
% For vectors, MEAN(x) returns the mean value.
% For matrices, MEAN(x) is a row vector
% containing the mean value of each column [m,n] = size(x);
if m == 1
m = n;
end
y = sum(x)/m;
Tên hàm (phải trùng với tên file)
Các dòng này sẽ
xuất hiện khi gõ
lệnh help mean
Nội dung hàm
Trang 20ĐHBK Hànội B/m Thiết bị điện – điện tử 40
Viết chương trình trong MATLAB
Các điều khiển chương trình
Lệnh điều kiện switch
a = zeros(k,k) % Preallocate matrix
Trang 21ĐHBK Hànội B/m Thiết bị điện – điện tử 42
Viết chương trình trong MATLAB
Lưu biến và buổi làm việc
Lưu các biến trong Workspace
Dùng lệnh savevàload
Lưu buổi làm việc
Dùng lệnh diary
load fnameload fname x y zload fname -asciiload fname -mat
load fnameload fname x y zload fname -asciiload fname -mat
save fname
save fname x y z
save fname -ascii
save fname -mat
save fname
save fname x y z
save fname -ascii
save fname -mat
Trang 22ĐHBK Hànội B/m Thiết bị điện – điện tử 44
Xuất/nhập dữ liệu
Cho tệp tin BINARY
Lệnh fopen, fclose, fread, fwrite, fseek:
Cho tệp tin TEXT
» fid= fopen( 'mydata.bin ' , ' wb ');
» fwrite (fid,eye(5) , ' int32 ');
UIMenu
objects Axes object
Figure object
Trang 23ĐHBK Hànội B/m Thiết bị điện – điện tử 46
GUI
Làm việc với object’s handle
Tạo cùng với lệnh
Các hàm tiện ích
–0– root object handle
–gcf– get current figure handle
–gca– get current axis handle
–gco– get current object handle
Hàm findobj
handle = plot(x_data, y_data, )
h_obj = findobj(h_parent, 'Property', 'Value', )
Default = 0 (root object)
GUI
Thay đổi thuộc tính đối tượng
Lấy thuộc tính của đối tượng với hàm get
Đặt thuộc tính cho đối tượng với hàm set
Thay đổi thuộc tính đối tượng với Property Editor
get(h_object)
set(h_object)
set(h_object,'PropertyName','New_Value', )
Trang 24ĐHBK Hànội B/m Thiết bị điện – điện tử 48
GUIDE
Push ButtonsRadio Buttons
Frames
Edit text
static textAxes
Trang 25ĐHBK Hànội B/m Thiết bị điện – điện tử 50
GUIDE
Làm việc với m-file
Thí dụ tạo GUI và lập trình với m-file
handles.a = get(handles.slider_a,'Value'); set(handles.text_a,'String',
Trang 26ĐHBK Hànội B/m Thiết bị điện – điện tử 52
Giải phương trình vi phân trong MATLAB
Các bước giải phương trình vi phân trong thí dụ 1 :
1 Tạo hàm trạng thái elecsys()
21
22
1
.x
R x V
C
x x
Giải phương trình vi phân trong MATLAB
Các bước giải phương trình vi phân trong thí dụ 1 :
2 Giải phương trình dùng hàm ODE23()
Gọi hàm ode23()
giải phương trình
vi phân khai báo
trong elecsys
Trang 27ĐHBK Hànội B/m Thiết bị điện – điện tử 54
Trình tự xây dựng mô hình (block-diagram) trong Simulink
Lập mô hình toán của hệ thống ở dạng phương trình vi phân, hàm truyền, hoặc không gian trạng thái (liên tục hoặc gián đoạn)
Xác định dạng đầu vào, đầu ra
Sử dụng Simulink Library Browser để chọn các biểu tượng tương ứng với các thông số cần thiết cho mô hình
Chọn thời gian chạy mô phỏng và chọn solvercho mô hình
Thí dụ 1 xây dựng trong Simulink
V
x' = Ax+Bu
y = Cx+Du State-Space Scope
Trang 28ĐHBK Hànội B/m Thiết bị điện – điện tử 56
Simulink
Simulation\Configuration Parameters
Solver:
ODE23 – fast, wide tolerance
ODE45 – first choice
ODE123 – multi-step, tight tolerance, time consumming
ODE15s – multi-step, stiff
Sử dụng callbackcủa model và sub-model
Chạy mô phỏng từ dấu nhắc MATLAB
Dùng chức năng maskcho sub-model
Sub-model có điều kiện–Thí dụ với if, enable…
[t, x, y] = sim (model, timespan, option, ut)
Trang 29ĐHBK Hànội B/m Thiết bị điện – điện tử 58
Simulink
Bài tập 1 : giải phương trình
Bài tập 2 : giải mạch RLC
Bài tập 3 : mô phỏng động cơ DC kích thích độc lập
Mach tu may dien xoay chieu - day quan 2 lop Tran Vinh ThaiDHBK Hanoi 9/2006.
15
Z
16
Z B
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 -5
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 -5
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 -5
0
5
STD quay day quan may dien xoay chieu
3 Phân tích, mô phỏng TBĐ với Simulink
Bài tập 4:Mô phỏng từ trường quay trong máy điện xoay chiều
Trang 30ĐHBK Hànội B/m Thiết bị điện – điện tử 60
3 Phân tích, mô phỏng TBĐ với Simulink
Bài tập 4:Mô phỏng từ trường quay trong máy điện xoay chiều
3 Phân tích, mô phỏng TBĐ với Simulink
Bài tập 5:Mô phỏng hệ điều khiển động cơ điện một chiều
u_A u_R
Control of DC motor
Armature Current Speed (radian)
voltage UA1
voltage UA Urout
Tout
nout iAout Switch
ASS Speed Sensor
Speed Converter
i_A Omega
DC Motor ACS
Current Sensor
u_CW (-) u_CRu_RCurrent Controller
AR TR.s+1 Controlled Rectifier
Clock
Armature Current and Speed
Trang 31B/m Thiết bị điện – điện tử 62
Trang 32B/m Thiết bị điện – điện tử 64