Bài tập cơ bản Matlab Simulink

22 29 0
  • Loading ...
1/22 trang

Thông tin tài liệu

Ngày đăng: 27/11/2016, 09:37

Bài tập cơ bản về Matlab simulink , tài liệu Matlab simulink cực hay MATLAB là một môi trường tính toán số và lập trình, được thiết kế bởi công ty MathWorks. MATLAB cho phép tính toán số với ma trận, vẽ đồ thị hàm số hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao diện người dùng và liên kết với những chương trình máy tính viết trên nhiều ngôn ngữ lập trình khác. MATLAB được sử dụng trong nhiều lĩnh vực, bao gồm xử lý tín hiệu và ảnh, truyền thông, thiết kế điều khiển tự động, đo lường kiểm tra, phân tích mô hình tài chính, hay tính toán sinh học. Với hàng triệu kĩ sư và nhà khoa học làm việc trong môi trường công nghiệp cũng như ở môi trường hàn lâm, MATLAB là ngôn ngữ của tính toán khoa học. Một trong những tính năng tuyệt vời nhất của Matlab nhìn từ góc độ những nhà khoa học tính toán là thư viện dựng sẵn to lớn rất phong phú các chu trình tính toán và các công cụ hiển thị đồ họa. Matlab cho phép người dùng tiến hành rất nhiều các nhiệm vụ thông thường liên quan tới việc giải quyết các vấn đề một cách số học. Nó cho phép chúng ta dành nhiều thời gian hơn cho việc suy nghĩ, khuyến khích chúng ta thí nghiệm. Matlab ứng dụng những thuật toán hết sức được trân trọng vì vậy chúng ta có thể tin tưởng vào kết quả thu được.Các tính toán rất mạnh có thể được thực hiện chỉ với một hoặc hai câu lệnh.Bạn có thể xây dựng riêng cho mình những hàm toán học cho những ứng dụng đặc biệt. Matlab cung cấp giao diện đồ họa tuyệt hảo, các hình từ Matlab có thể đem chèn vào LATEX và các tài liệu Word. Chương Một số ứng dụng của Matlab Simulink kĩ thuật 1) Ứng dụng Matlab Simulink vào giải các bài toán 1.1) Các phép toán đại số bản - Cộng, trừ, nhân ,chia hai số ( Để gọn màn hình thì ta có thể xem kết quả các biến ở Workspace ) với nhiều số ta cứ thực hiện bình thường với các phép tính + - * / và cũng tuân theo những quy tắc toán học Hình 2.1 Các phép toán ( Cộng , trừ nhân , chia ) Matlab - Các hàm toán khác ( logarit , làm tròn , bậc hai , tìm số dư , ) Hình 2.2 Các hàm toán bản khác ( Căn bậc hai , logarit,số dư,làm tròn,tìm góc pha, ) matlab - Tính toán với vector , ma trận Hình 2.3 Tính toán vector , ma trận Matlab 1.2) Các phép toán biểu thức - Tính kết quả của một hàm thay biến bằng một hằng số ví dụ 1: cho f(x) = x2 - 3x + , tính giá trị f(x) x = Hình 2.4 kết quả thực hiện tính giá trị hàm số f(x) = x2 - 3x + tại x = Ví dụ : cho f(xy) = x3 + 3xy + x2 + y2 – y3 , tính giá trị f(x) x = 1, y = Hình 2.5 kết quả thực hiện tính giá trị hàm số f(xy) = x3 + 3xy + x2 + y2 – y3 tại x = và y = - Giải phương trình : f(x) = , g(x)= Hình 2.6 Giải phương trình x2 – 2x + = ; x2 - x – = - Giải hệ phương trình : f(xy) = và g(xy) = ; Ta vẫn dùng lệnh solve chỉ có điều sau chạy xong lệnh solve(F ,G) thì ta không nhìn thấy nghiệm (Vì máy tính hiểu hệ phương trình là gồm ma trận và có ẩn , vì thế nghiệm của hệ sẽ được lưu dưới dạng ma trận [ x , y ] ) muốn xem được nghiệm ta phải trỏ đến biến ( chứa nghiệm ) Hình 2.7 Giải hệ phương trình x2 +3y – = và -3x + y + = Ta còn có thể giải hệ phương trình bằng simulink : Ví dụ : Giải hệ Z1 + Z2 = -Z1 + Z2 = Để mô phỏng ta dùng các khối : + Hai khối Algebric Constraint thư viện Math để giải phương trình + Hai khối Sum thư viện Math để tạo phép tính + Hai khối Display thư viện Sink để hiển thị giá trị nghiệm + Khối Constant thư viện Sources để tạo giá trị Hình 2.8 Giải hệ phương trình bằng simulink - Tìm giới hạn của hàm số Hình 2.9 Tính giới hạn của hàm số x2 – 3x + Khi x tiến tới - Tính đạo hàm của hàm số F(x) Lệnh tổng quát : diff ( F , x , n ) đó n là cấp lấy đạo hàm Khi chỉ lấy đạo hàm cấp thì ta chỉ cần viết diff(F,x) Hình 2.10 Tính đạo hàm hàm số F = x2 – 3x + - Tính nguyên hàm , đạo hàm Lệnh int(F,x,a,b) có nghĩa là : Tính tích phân của hàm F theo biến x với x từ a đến b Hình 2.11 Tính tích phân của hàm F = x2 + 2x – x chạy từ -1 => 1.3) Vẽ đồ thị a) Ezplot Lệnh dễ vẽ đồ thị ezplot gọi từ Symbolic Toolbox Trong dạng lệnh ezplot(f), vẽ biểu thức f =f(x) qua miền x mặc định (2π,2π) Trong dạng lệnh ezplot(f, [a,b]), vẽ hàm f = f(x) với a < x < b VD1 : Vẽ hàm cos(x) , sin (x) Hình 2.12 Biểu diễn hàm Sin (x) và Cos(x) Ví dụ : vẽ đồ thị hàm x3 – 2x +1 , x chạy từ -2 => Hình 2.13 Đồ thị hàm số x3 – 2x + b) plot Lệnh plot MATLAB lệnh sử dụng nhiều lệnh vẽ đồ thị Với dạng plot(x,y) vẽ vector x ngang với vector y Thông thường vector y hàm số vector x, ví dụ sau Ví dụ1 : Để thực vẽ hàm f(x) = sin(x2 /2) 100 đoạn từ -1 đến 7, ta gõ sau : Hình 2.14 Hàm Sin(x2/2) lấy từ => Lệnh plot đưa vào nhiều dạng tham số plot(x,y,s) Giá trị s chuỗi ký tự nằm hai dấu ngoặc đơn, biểu thị cho màu sắc, kiểu đường ký tự hiễn thị Các tùy chọn màu lệnh plot (hoặc fplot) là: b Blue g Green r Red c Cyan m Mangeta y Yellow k Black Hình 2.15 Tô màu cho đồ thị của hàm hàm Sin(x2/2) 1.4) Nhập xuất dữ liệu màn hình a) hàm nhập liệu Cú pháp : x = input ( 'prompt' ) Trong : input : Từ khoá hàm nhập liệu x : tên biến gán giá trị nhập vào promp : dòng text mà người sử dụng đánh vào Diễn đạt : biến x có giá trị giá trị mà người sử dụng nhập vào b) hàm xuất liệu hình Cú pháp : disp ( x ) disp( ‘text’ ) Trong : disp : Từ khoá hàm xuất liệu x : tên biến giá trị số cần xuất hình text : dòng text mà người sử dụng cần xuất hình Ví dụ : Nhập vào chiều dài , chiều rộng để tính diện tích hình chữ nhật B1 : Ta vào script file để viết chương trình B2 : Sau đó cửa sổ command window nhập số a , b ( ứng với chiều dài và chiều rộng ) Hình 2.16 Tính diện tích hình chữ nhật 1.5 ) Cấu trúc điều khiển a) cấu trúc if Ví dụ : Giải phương trình ax2 + bx + c = Trong đó : a , b , c là số yêu cầu người dùng nhập vào bất kì để tính - B1: Ta viết code script file if điều kiện Nhóm lệnh end if điều kiện Nhóm lệnh else Nhóm lệnh end Viết xong code ta lưu file lại với đuôi m B2: nhấn F5 để chạy chương trình , sang cửa sổ command window để nhập a , b c và xem kết quả Hình 2.17 Giải phương trình ax2 + bx + c = bằng nhóm lệnh if else Ví dụ : Bài toán phân loại học sinh: điểm 9-10 xếp loại giỏi, điểm 7-8 xếp loại khá, điểm 5-6 xếp loại trung bình; điểm 1,2,3,4 xếp loại yếu; điểm vào số nguyên nằm 10 thông báo điểm không hợp lệ Ta vào script file để viết chương trình rồi sau đó cửa sổ command window để nhập số điểm , ta sẽ nhận được kết quả sau b) Hàm vòng lặp for for variable = expression statements end variable = expression : Điều kiện vòng lặp statements : Lệnh nhóm lệnh thực thi vòng lặp Nghĩa là : Nếu thỏa điều kiện thực lệnh vòng lặp Đến không thỏa điều kiện thoát khỏi vòng lặp ví dụ : Tính tổng S = + + + + n ; Bước : Viết code script file B2: nhấn F5 để chạy chương trình , sang cửa sổ command window để nhập n và xem kết quả : c) Vòng lặp while Được sử dụng số lần lặp trước Quá trình lặp chấm dứt điều kiện xác định thỏa Cấu trúc vòng lặp while sau: Cú pháp : while expression statements end Trong : expression : Điều kiện vòng lặp statements : Lệnh nhóm lệnh thực thi vòng lặp Nếu thỏa điều kiện thực lệnh vòng lặp Hàm while sử dụng chưa biết số lần lặp, hàm for sử dụng biết rõ số lần lặp Ví dụ : Tính tổng S = + + + + n ; Bước : Viết code script file Bước : nhấn F5 để chạy chương trình , sang cửa sổ command window để nhập n và xem kết quả d) Hàm vòng lặp switch-case Cấu trúc switch-case cho phép chương trình có nhiều lựa chọn thực nhánh này, tùy thuộc vào giá trị cuả biểu thức đầu vào Cấu trúc switch-case có dạng sau: switch case biểu thức đầu vào (vô hướng chuỗi kí tự) giá trị nhóm lệnh case giá trị nhóm lệnh case giá trị n nhóm lệnh n otherwise nhóm lệnh n+1 end Ví dụ : Bài toán phân loại học sinh: điểm 9-10 xếp loại giỏi, điểm 7-8 xếp loại khá, điểm 5-6 xếp loại trung bình; điểm 1,2,3,4 xếp loại yếu; điểm vào số nguyên nằm 10 thông báo điểm không hợp lệ Bước : Viết code script file Bước : nhấn F5 để chạy chương trình , sang cửa sổ command window để nhập n và xem kết quả 1.6) Control Systeam Toolbox a) Mô hình hóa các hệ tuyến tính b) Khảo sát các đặc tính của các khâu động học bản - Các khâu động học bản là : • Khâu tích phân • Khâu tỉ lệ • Khâu vi phân • khâu quán tính bậc nhất • khâu quán tính bậc hai Để khảo sát các đặc tính miền thời gian h(t) , w(t) ; các đặc tính miền tần số với đồ thị nyquist và đồ thị bode ta viết lệnh matlab sau : Sau mỗi câu lệnh ta nhận được các đường đặc tính sau : Hàm quá độ h(t) Hàm trọng lượng w(t) Đặc tính tần biên pha của hệ thống Đặc tính tần loga b) Các phép tính số học - Phép cộng hay phép trừ Khi mắc song song hai hệ với với đầu vào thì ta sẽ sử dụng phép cộng hay trừ để tính hai tín hiệu đầu - Phép nhân Phép nhân hai hệ thống LTI ứng với việc mắc nối tiếp hai hệ đó Khi mắc nối tiếp hai hệ có cấu trúc ma trận cần phải chú ý đến trình tự của hai hệ c) Ghép nối mô hình LTI - Ghép theo đường chéo : sys = append(sys1 , sys2) ; - Ghép song song : sys = parallel ( sys1,sys2,inp1,inp2,out1,out2) - Ghép tuần tự sys = series ( sys1,sys2,outputs1,outputs2) - Ghép có phản hồi sys = feedback(sys1 , sys2); Ví dụ : cho mô hình hệ thống sau , tìm hàm truyền tương đương của hệ thống : - Dùng simulink để sơ đồ khối hóa một hệ thống - Ta cho đầu của hệ thống vào khối hiển thị scope để hiển thị đặc tính của hệ thống - Phân tích mô hình ta thấy : G1 ghép song song với G3 , ta gọi hệ tổng là S1 ; G2 và H1 ghép phản hồi , ta gọi hệ này là S2 ; ta thấy hệ G13 nối tiếp với hệ GH ( ghép tuần tự ) gọi hệ này là S và cuối cùng hệ S lại ghép phản hồi với một khâu tỉ lệ là gọi hệ này là W ( là hàm truyền tương đương của hệ thống ) - Tiến hành viết matlab - tiếp theo để vẽ đặc tính của hệ thống ta dùng lệnh step(W) thì ta sẽ thu được đường bên phải ( hình dưới ) so sánh với đường đặc tính mô phỏng simulink thì hai đường này là giống => muốn khảo sát đặc tính của một hệ thống ta có thể dùng Matlab hoặc simulink đều được Nhưng với simulink thì ta thao tác dễ dàng , trực quan d) Mô hình hóa hệ thống liên tục đơn giản : Ví dụ : phương trình vi phân ẋ(t) = -2x(t) + u(t) Với u(t) là một sóng hình chữ nhật có biên độ bằng và tần số 1rad/s Để mô phỏng Simulink ta dùng khối : + Khối Gain để tạo hệ số + Khối Sum để tạo phép tính + Khối Scope để xem kết quả + Khối Signal Generator để tạo nguồn + Khối Integrator để tích phân Sau mô phỏng ta có kết quả sau : 6) Công cụ tính toán tìm tối ưu - Hàm vector và hệ phương trình Ví dụ : giải hệ phương trình : x1 + 2x2 + 3x3 = 2x1 +3x2 + 6x3 = 3x1 + 2x2 + 7x3 = Ta có thể viết dưới dạng ma trận : Ax = b ; x = [ x1 x2 x3 ]T sau đó ta sử dụng matlab để nhập các ma trận rồi giải : - Tìm cực tiểu cho hàm phi tuyến Ví dụ : Tìm cực đại , cực tiểu của y = (x/3 – x^3)*( e^-2x^2) => điểm cực tiểu của hàm y = (x/3 – x^3)*( e^-2x^2) có tọa độ là : (1 ; -0,0902) Để tìm cực đại ta cũng làm tương tự ( gõ code thay = max ) => điểm cực đại của hàm y = (x/3 – x^3)*( e^-2x^2) có tọa độ là : (-1 ; 0,0902) [...]... các đặc tính của các khâu động học cơ bản - Các khâu động học cơ bản là : • Khâu tích phân • Khâu tỉ lệ • Khâu vi phân • khâu quán tính bậc nhất • khâu quán tính bậc hai Để khảo sát các đặc tính trong miền thời gian h(t) , w(t) ; các đặc tính trong miền tần số với đồ thị nyquist và đồ thị bode ta viết lệnh trong matlab như sau : Sau mỗi câu lệnh ta nhận... ) - Tiến hành viết trên matlab - tiếp theo để vẽ đặc tính của hệ thống ta dùng lệnh step(W) thì ta sẽ thu được đường bên phải ( hình dưới ) so sánh với đường đặc tính khi mô phỏng trong simulink thì hai đường này là giống nhau => muốn khảo sát đặc tính của một hệ thống ta có thể dùng Matlab hoặc simulink đều được Nhưng với simulink thì ta thao tác... tuần tự sys = series ( sys1,sys2,outputs1,outputs2) - Ghép có phản hồi sys = feedback(sys1 , sys2); Ví dụ : cho mô hình hệ thống sau , tìm hàm truyền tương đương của hệ thống : - Dùng simulink để sơ đồ khối hóa một hệ thống - Ta cho đầu ra của hệ thống vào 1 khối hiển thị scope để hiển thị đặc tính của hệ thống - Phân tích mô hình ta thấy : G1 ghép song song... hình hóa hệ thống liên tục đơn giản : Ví dụ : phương trình vi phân ẋ(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 Để mô phỏng trong Simulink ta dùng khối : + Khối Gain để tạo hệ số 2 + Khối Sum để tạo phép tính + Khối Scope để xem kết quả + Khối Signal Generator để tạo nguồn + Khối Integrator để tích phân Sau... hệ phương trình Ví dụ : giải hệ phương trình : x1 + 2x2 + 3x3 = 1 2x1 +3x2 + 6x3 = 3 3x1 + 2x2 + 7x3 = 0 Ta có thể viết dưới dạng ma trận : Ax = b ; x = [ x1 x2 x3 ]T sau đó ta sử dụng matlab để nhập các ma trận rồi giải : - Tìm cực tiểu cho hàm phi tuyến Ví dụ : Tìm cực đại , cực tiểu của y = (x/3 – x^3)*( e^-2x^2) => điểm cực tiểu của hàm y = (x/3 – x^3)*( e^-2x^2)
- Xem thêm -

Xem thêm: Bài tập cơ bản Matlab Simulink, Bài tập cơ bản Matlab Simulink, Bài tập cơ bản Matlab Simulink

Gợi ý tài liệu liên quan cho bạn

Nạp tiền Tải lên
Đăng ký
Đăng nhập