% --- Executes on button press in pushbuttonConvert.function pushbuttonConvert_Callback hobject, eventdata, handles % hobject handle to pushbuttonConvert see GCBO % eventdata reserved -
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HỒ CHÍ MINH
VIỆN KỸ THUẬT HUTECH
TP.HCM, ngày 13 tháng 10 năm 2022
Trang 2LỜI NÓI ĐẦU
Lời đầu tiên, em xin gửi lời tri ân sâu sắc đến Thầy Phạm Nguyễn Nhựt Thanh, người đã trực tiếp giảng dạy chúng em bộ môn “ Tin học Kỹ thuật”
Trong quá trình học tập và tìm hiểu về “Phần mềm MATLAB” của bộ môn này, em đã nhận được sự giảng dạy và hướng dẫn rất tận tình, tâm huyết của Thầy Trong thời gian làm việc với thầy, em không những học hỏi được nhiều kiến thức bổ ích mà còn học được tinh thần làm việc đầy thoải mái và nhanh nhẹn Từ những kiến thức mà Thầy truyền đạt, em xin trình bày bài báo cáo của mình về những gì đã được học và tìm hiểu
về phần mềm này để gửi đến giảng viên.
Mặc dù đã rất cố gắng hoàn thiện lượng bài tập lớn với tất cả kiến thức được học và sự nỗ lực của bản thân, nhưng em chắc rằng không thể tránh khỏi được những thiếu sót Em kính mong nhận được sự đóng góp
từ giảng viên để bài báo cáo của em được hoàn thiện hơn
Lời nói cuối cùng, em kính chúc Giảng viên luôn dồi dào sức khỏe, hạnh phúc và thành công hơn nữa trong sự nghiệp “trồng người” để tiếp tục dìu dắt nhiều thế hệ học trò đến với những bến bờ tri thức Và em xin chân thành cảm ơn gia đình, bố mẹ, những người luôn ở bên cạnh ủng
hộ, giúp đỡ em có thời gian thực hiện bài báo cáo và hết lòng hỗ trợ em
về mặt tinh thần trong suốt thời gian thực hiện
Em xin chân thành cảm ơn!
Trang 3BÀI 1 :CƠ SỞ VỀ MATLAB 1.1 GIỚI THIỆU
MATLAB(Matrix laboratory ) là phần mềm dùng để giải các bài toán kỹ thuật, đặcbiệt là các bài toán liên quan đến ma trận.MATLAB cung cấp các toolboxes, tức các hàm mở rộng môi trường MATLAB để giải quyết các vấn đề đặc biệt như xử
lý tín hiệu số,hệ thống điều khiển,mạng neuron,fuzzy logic,mô phỏng v.v
Cửa sổ biểu tượng của chương trình MATLAB:
Hình 1.1: Cửa sổ khởi động của Matlab
Trang 4Cửa sổ làm việc của Matlab:
Hình 1.2: Cửa sổ làm việc của Matlab
Cửa sổ lệnh Command window:
A = pi/2
B = sin(A)
B = 1
Trang 6Nhập ma trận
A = [16 3 2 13; 5 10 11 8;9 6 7 12;4 15 14 1]; Thực hiên lênh:
Trang 7 Tạo ma trận bằng hàm có sẵn
- Linspace: tạo một vectơ có giá trị cách đều nhau
-
Zeros : tạo một ma trận phần tử bằng 0
Trang 8Ones : tạo một ma trận phần tử bằng 1
Rand: tạo ra ma trận các phân từ ngẫu nhiên phân bố đều
Trang 9Eye(n): tạo ra ma trận đơn vị
Pascal(n): tạo ra tam giác Pascal
Trang 11Chương trình đoán tuổi
Trang 12Chương trình đón tuổi
Kết quả
Trang 14x = -pi: pi/10: pi; y = tan(sin(x)) sin(tan(x));
Giá trị hàm lân cận giá trị -0.2
Trang 15plot(x,y,'rs','lineWidth',2,'MarkeredgeColor','k ', 'MarkerfaceColor','g','MarkerSize',10)
Trang 16Kết quả:
Hình 1.5: Vẽ hai trục y Bài tập 1.3: Vẽ đường cong 3D
Nếu x,y,z là 3 vector có cùng độ dài thì plot3 sẽ vẽ đường cong 3D.
t = 0:pi/50:10*pi;
plot3(sin(t),cos(t),t)
Kết quả:
Hình 1.3: Vẽ đồ thị 3D
Trang 17Bài 1.4: Vẽ nhiều trục tọa độ
Ta dùng hàm subplot để vẽ nhiều trục tọa độ
x=linspace(0,2*pi);
y1=sin(x);y2=cos(x);y3=2*exp(-x).*sin(x);
x1=linspace(-2*pi,2*pi); y4=sinc(x1);
pver \pi x}$$','interpreter','later')
Kết quả:
Hình 1.4: Ví dụ dùng subplotBài 1.5 Ghi nhãn trên các trục tọa độ
MATLAB cung cấp các lệnh ghi nhãn lên độ họa gồm :
title thêm nhãn vào đồ họa
xlabel thêm nhãn vào trục x
ylabel thêm nhãn vào trục y
Trang 18zlabel thêm nhãn vào trục z
legend thêm chú giải vào đồ thị
text hiển thị chuỗi văn bản ở vị trí nhất định
gtext đặt văn bản kên đồ họa nhờ chuột
Trang 19barh hiển thị các cột của ma trận m*n như là m nhóm,mỗi nhóm có n bar nằm ngang.
bar3 hiển thị các cột của ma trận m*n như là m nhóm,mỗi nhóm có n bar dạng 3D
bar3h hiển thị các cột của ma trận m*n như là m nhóm,mỗi nhóm có n bar dạng 3D nằm ngang
Mặc định,mỗi phần tử của ma trận được biểu diễn bằng một bar
Ví dụ 1.14:
Nhập đoạn chương trình :
a=[5 2 1;6 7 3;8 6 3;5 5 5;1 5 8];
subplot (211) ;bar (a) ;
subplot (212) ;bar3 (a) ;
Kết quả:
b.Xếp chồng đồ thị:
Trang 20Ta có thể xếp chồng số liệu trên đồ thị thanh bằng cách tạo ra một trục khác trên cùng một vị trí và như vậy ta có một trục y độc lập với bộ số liệu khác.
set (h2, 'YAxislocation', 'right', 'Color', 'none', 'XTickLabel',[])
set (h2, 'XLim', get (h1, 'XLim' ) , 'Layer', 'top') set (h2, 'YAxislocation', 'right', 'Color', 'none', 'XTickLabel', [])
Kết quả :
Trang 21Hình 1.15: Ví dụ xếp chồng đồ thịc.Đồ họa vùng:
Hàm area hiển thị đừng cong tại từ một vector hay từ một cột của ma trận.Nó vẽ các giá trị của một cột của ma trận thành một đường cong riêng và tô đầy vùng không gian gữa các đường cong và trục x
Ví dụ 1.16:
Y = [5 2 1; 6 7 3; 8 6 3; 5 5 5; 1 5 8];
area (Y);
Trang 22Kết quả:
Hình 1.16: Hiển thị đồ thị dạng vùng
d Đồ thị pie:
Đồ thị pie hiển thị theo tỉ lệ phần tram của một phần tử của một vector hay một
ma trận so với tổng các phần tử.Pie và pie3 tạo ra đồ thị 2D và 3D
Trang 23[c,offset] = max(x2); explode(offset) = 1;
subplot(221);pie(x2,explode);
subplot(222);pie3(x2,explode);
Kết quả:
Hình 1.17: Đồ thị pie dạng 2D và 3DBài 1.4: Đồ họa 3D
Trang 24vector x và y thành ma trận x và y Sau đó ta dung ma trận này để đánh giá hàm.
Câu 1 Cho ma trận A = [2 4 1; 6 7 2; 3 5 9], các lệnh cần thiết để:
a Lấy dòng đầu tiên của ma trận A
b Tạo ma trận B bằng 2 dòng cuối cùng của A
c Tính tổng các phần tử trên các cột của A (gợi ý: tính tổng các phần tử trên cột 1:
Trang 320 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
x 0
Trang 33radiốbuttốn, radiốbuttốnkString: Fahrenheit degreeString: Celcius degreeTag: text2
Max: 9032Min: -459.4SliderStep: [0.001 0.1]Tag: SliderDốF
Value: 32String: 32Tag: editDốFString: 0Tag: editkQ
Trang 34% - Executes on button press in pushbuttonConvert.
function pushbuttonConvert_Callback (hobject, eventdata, handles)
% hobject handle to pushbuttonConvert (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
doF = str2num(get (handles.editDoF, 'String' ));
if get (handles radiobuttonC, 'Value') == 1
% Chuyen oC
set (handles.editKI, 'String',num2str ( (doF-32) *5/9));
elseif get (handles radiobutton, 'Value') == 1
set (handles.editkQ, 'String', (doF-32) *5/9+273.15);
% -Executes on button press in radiobuttonC
function radiobuttonC_Callback (hobject, eventdata, handles)
% hobject handle to radiobuttonC (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get (hObject, 'Value') returns toggle state of radiobuttonC set (handles radiobuttonk, 'Value", 0);
Let (handles radiobuttonR, 'Value", 0);
set (handles text2, 'String', 'Celcius degree');
I- Executes on button press in radiobuttonR
function radiobutton_Callback (hobject, eventdata, handles)
% hobject handle to radiobutton (see GCBO)
eventdata reserved - to be defined in a future version of MATLAB & handles structure with handles and user data (see GUIDATA)
% Hint: get (hObject, 'Value') returns toggle state of radiobutton set (handles radiobuttonC, 'Value', 0);
set (handles radiobuttonK, 'Value', 0);
set (handles text2, 'String', 'Rankine degree');
% - Executes on button press in radiobuttonK
function radiobuttonK Callback (hObject, eventdata, handles)
% hobject
handle to radiobuttonK (see GCBO)
% eventdata reserved - to be defined in a future version of MATIAB
% handles
Trang 35structure with handles and user data (see GUIDATA)
% Hint: get (hObject, 'Value') returns toggle state of radiobuttonk set (handles radiobuttonR, 'Value', 0);
Set (handles radiobuttonC, 'Value', 0);
set (handles text2, 'String', 'Kelvin degree');
- Executes on slider movement.so
function sliderDoF_Callback (hob ject, eventdata, handles) & hobject handle to sliderDoF (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB %handles structure with handles and user data (see GUIDATA)
% Hints: get (hObject, 'Value') returns position of slider)
% get (hobject, 'Min' ) and get (hObject, 'Max') to determine range of slider set (handles editDoF, 'String', get (handles.sliderDoF, 'Value'));
Bài tập ôn tập:
function varargout = untitled(varargin)
% UNTITLED MATLAB code for untitled.fig
% UNTITLED, by itself, creates a new UNTITLED or raises the existing
% singleton*
%
% H = UNTITLED returns the handle to a new UNTITLED or the handle to
% the existing singleton*
%
% UNTITLED('CALLBACK',hObject,eventData,handles, ) calls the local
% function named CALLBACK in UNTITLED.M with the given input
arguments
%
% UNTITLED('Property','Value', ) creates a new UNTITLED or raises the
% existing singleton* Starting from the left, property value pairs are
% applied to the GUI before untitled_OpeningFcn gets called An
% unrecognized property name or invalid value makes property application
% stop All inputs are passed to untitled_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 untitled
Trang 36% Last Modified by GUIDE v2.5 24-Sep-2022 10:04:10
% Begin initialization code - DO NOT EDIT
% End initialization code - DO NOT EDIT
% - Executes just before untitled is made visible
function untitled_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 untitled (see VARARGIN)
% Choose default command line output for untitled
Trang 37% 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;
function editAmp_Callback(hObject, eventdata, handles)
% hObject handle to editAmp (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of editAmp as text
% str2double(get(hObject,'String')) returns contents of editAmp as a double
% - Executes during object creation, after setting all properties
function editAmp_CreateFcn(hObject, eventdata, handles)
% hObject handle to editAmp (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows
% See ISPC and COMPUTER
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
function editFreq_Callback(hObject, eventdata, handles)
% hObject handle to editFreq (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of editFreq as text
% str2double(get(hObject,'String')) returns contents of editFreq as a double
% - Executes during object creation, after setting all properties
function editFreq_CreateFcn(hObject, eventdata, handles)
% hObject handle to editFreq (see GCBO)
Trang 38% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows
% See ISPC and COMPUTER
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% - Executes on selection change in popupmenuFunc
function popupmenuFunc_Callback(hObject, eventdata, handles)
% hObject handle to popupmenuFunc (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: contents = cellstr(get(hObject,'String')) returns popupmenuFunc contents
as cell array
% contents{get(hObject,'Value')} returns selected item from popupmenuFunc
% - Executes during object creation, after setting all properties
function popupmenuFunc_CreateFcn(hObject, eventdata, handles)
% hObject handle to popupmenuFunc (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: popupmenu controls usually have a white background on Windows
% See ISPC and COMPUTER
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% - Executes on button press in pushbuttondraw
function pushbuttondraw_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttondraw (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
Amp = str2num (get(handles.editAmp,'string')) ;
Trang 41Bài 3: SYMBOLIC3.1 ĐẠO HÀM VÀ VI PHÂN
Dùng hàm diff để xác định đạo hàm của một hàm số
finverse (x^2) %Warning do có 2 kết quả khác nhau
Warning: finverse(x^2) is not unique
ans =
(x^1/2)
3.4 VẼ ĐỒ THỊ
subplot (211) ; ezplot (sin (x) /x)
subplot (212) ; ezplot (sin (x) /x, 0, 4*pi)
Trang 423.5 ĐỊNH DẠNG BIỂU THỨC
Trang 433.6 GIẢI PHƯƠNG TRÌNH VÀ HỆ PHƯƠNG TRÌNH Giải phương trình bậc n:
Trang 44Giải hệ phương trình
Trang 46Giải phương trình lượng giác
Trang 47Giải phương trình vi phân
Giải phương trình vi phân có điều kiện đầu
Trang 48Giải hệ phương trình vi phân
Trang 493.7 TÌM GIỚI HẠN
Tính và vẽ đạo hàm y= sinx3
Trang 50Câu 3
Câu 4:
Trang 51Câu 5:
syms x
y=diff((1-x)*exp((x^2)+2*x),2)
CÂU HỎI ÔN TẬP:
Câu 1 Tính và vẽ đạo hàm của hàm số y = sinx3
Trang 53BÀI 4: SIMULINK4.1 Mô hình hóa một chương trình:
Trang 54Hình 4.1: Mô hình hệ thống chuyển đổi độ C sang độ F
Bài 4.2 Mô hình hóa hệ phương trình tuyến tính
Xét hệ phương trình tuyến tính: { z1+z2=1
−z1+z2 =1
Sơ đồ mô phỏng :
Trang 55Hình 4.2: Mô hình hệ thống giải hệ phương trìnhBài 4.3 Giải phương trình bậc cao :
Xét phương trình: x2 + 3x + 1 = 0
Sơ đồ mô phỏng:
Trang 56Hình 4.3: Mô hình hệ thống giải phương trình bậc 3 Bài 4.4 Mô hình hóa hệ thống liên tục đơn giản
Phương trình vi phân : x′(t) = −2x(t) + u(t) với u(t) là một sóng hình chữ nhật có biên độ bằng 1 và tần số 1rad/s.
Sơ đồ mô phỏng:
Trang 57Hình 4.4: Mô hình hệ thống giải phương trình vi phân bậc 1
Trang 58Bài 4.5:Mô hình hóa hệ phương trình vi phân bậc cao
Xét hệ mô tả bởi phương trình vi phân bậc hai sau: x’’(t)+ 3x’(t)
+2x(t)=4u(t)
Sơ đồ mô phỏng :
Hình 4.5:Mô hình hệ thống giải phương trình vi phân bậc 2 với điều kiện
đầu = 0 Bài 4.6: Mô hình hóa hệ phương trình vi phân bậc cao
Xét hệ mô tả bởi phương trình vi phân bậc hai sau:
x’’(t)+3x’(t)+2x(t)=4u(t)
Trang 60Hình 4.7: Mô hình hệ thống trên Simulink Bài 4.8: Mô hình hóa hệ phi tuyến
Sơ đồ mô phỏng:
Trang 61Hình 4.8:Mô hình hệ thống giải phương trình vi phân Val der Pol Bài 4.7 Mô hình hệ thống giải phương trình vi phân Val der POl
Trang 62Câu hỏi ôn tập
Bài 1
Bài 2:
Trang 63Bài 3: