Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.82 MB, 138 trang )
Giả sử ta muốn xây dựng mô hình phân tích sóng sin trên cửa sổ lm việc nh sau:(xem
hình vẽ dới đây)
Các bớc:
Sau khi tạo môi trờng lm việc mới (các bớc giới thiệu ở trên) tiếp đến
Dùng chuột
Kéo sang
vùng cửa sổ
Tìm khối hm sin ở trong khối th
viện no( bằng cách chọn
từng khối bằng chuột từ các mục dới Simulink) ở ví dụ ny hm tạo sin ở trong khối
Source (xem hình trên), dùng chuột chọn vo khối SineWave giữ nguyên chuột rồi kéo
sang vùng cửa sổ lm việc , trên của sổ lm việc xuất hiện khối hm SineWave, tơng tự
ta lm nh vậy với Scope trong khối Sink việc nối các khâu với nhau có các mũi tên ,
dùng chuột nối các mũi tên đó lại.
Trang 4
Đặt lại các thông số của các hm bằng cách kích đôi lên các khối(các khối đã ở trong
vùng cửa sổ lm việc). Đối với khối SinWave thì có các thông số có thể thay đổi đợc l:
+ Chu kỳ( tần số) Frequency(rad/s)
+ Biên độ Amplitude
+ Sample time (thời gian lấy mẫu)
Khối Scope:
Trang 5
Sau khi hon tất đặt lại các thông số , đến công việc quan trong nhất l kết quả mô phỏng
:
1. Trên thanh công cụ nhấp chuột vo mục Simulation
V chọn Start
Trang 6
2 . Hoặc nhấp vo nút tamgiác nh trên(tác dụng lệnh giống nh vo lệnh Start)
3.Muốn Dừng quá trình đang mô phỏng ta kích vo nút vuông bên cạnh nút tam giác(nút
ny chỉ xuất hiện khi ta đang mô phỏng)
4.Để xem kết quả của khối SineWave ta kích đôi chuột vo Scope
Trang 7
Chơng 6
ứng dụng tính toán trong matlab
6.1 Lệnh sym, syms:
Mục đích: Biến đổi các số, biến, đối tợng thnh Symbolics.
Ví dụ:
>> sym x y
>> x = sym(x); y = sym(y);
% x,y l các biến symbolic.
>> syms x y real
>> x = sym(x, real);y =sym(y,real)
%x,y l biến kiểu thực symbolics
syms x real y
x = sym(x, real);y = sym(y)
% x l biến kiểu thực, y l biến bất kỳ kiểu symbolic
syms x y unreal
% x, y không phảil l biến thực
syms t
Q = sym(Q(t));
% t biến symbolic v Q l hm symbolic.
6.2 Nhân 2 đa thức: ( Dùng lệnh conv)
y1 = anxn + an-1xn-1+...+a0
y 2 = bnxn + bn-1xn-1+...+b0
Bớc1: Lập 2 ma trận hng tên y1, y2 có các phần tử l các hệ số từ an đến a0 v
bn đến b0 giảm dần theo bậc của phơng trình ( Nếu hệ số no không có ghi 0 )
Bớc 2: dùng lệnh conv để nhân 2 đa thức.
>>y3= conv(y1,y2)
VD: y1 = 2x2 + 3x+1
y2 = 3x2 + 4x
>> y1 = [2 3 1]
Trang 1
>> y2 = [3 4 0]
>> y3 = conv(y1,y2)
>> y3 = 6 17 15 4 0
Chú ý: hm conv chỉ thực hiện nhân 2 đa thức. Muốn nhân nhiều đa thức với nhau ta phải
thực hiện nhiều lần hm conv.
6.3 Các tình toán cho phơng trình:
6.3.1
Giải phơng trình bậc cao: ( Lệnh Roots)
y = anxn + an-1xn-1+...+a0
Bớc1: Lập 1 ma trận hng có các phần tử l các hệ số từ an đến a0 giảm dần theo
bậc của phơng trình ( Nếu hệ số no không có ghi 0 )
Bớc 2: Dùng lệnh Roots để giải ma trận vừa tạo đợc.
VD giải phơng trình sau: y = x5 -2x4 + 5x2 -1
>> y = [ 1
-2
0
5
0
-1]
y=
1
-2
0
5
0
-1
>> kq=roots(y)
kq =
1.5862 + 1.1870i
1.5862 - 1.1870i
-1.1606
-0.4744
0.4627
6.3.2 Biết nghiệm tìm lại phơng trình: ( lệnh poly )
Lấy kết quả của ví dụ trên
>>A = [1 1 2;1 3 4;2 1 1];
>>poly(A)
ans =
1 -5 8 14
6.3.3 Chuyển từ phơng trình hệ số sang phơng trình có chứa cả tham số: ( poly2sym)
>> poly2sym([1 0 -2 -5])
Trang 2
ans =
x^3-2*x-5
>> y = [1 2 3 0 1]
y=
1
2
3
0
1
>> poly2sym(y)
ans = x^4+2*x^3+3*x^2+1
6.3.4
Giải hệ phơng trình tuyến tính:
Vd giải hệ phơng trình tuyến tính sau:
2 x + 3 y + z = 7
3x + 6 y 4 z = 19
x + y + z = 2
Thực chất hệ phơng trình trên có thể đa về phép toán ma trận sau:
2
3
1
3
6
1
1
x
7
4 y = 19
1
z
2
Nh vậy việc giải hệ PT tuyến tính thực chất l thực hiện phép toán về ma trận.
>> A=[2 3 1;3 6 -4;1 1 1]
A=
2
3
3
6
-4
1
1
1
1
>> B=[7;19;2]
B=
7
19
2
>> C=inv(A)
C=
-2.5000
0.5000
4.5000
1.7500 -0.2500 -2.7500
0.7500 -0.2500 -0.7500
Trang 3
>> kq=C*B
kq =
1.0000
2.0000
-1.0000
VD2:
>>A=[1+i 2i;3+i 1]
A=
1.0000 + 1.0000i
0 + 2.0000i
3.0000 + 1.0000i 1.0000
>> C=inv(A)
C=
0.0882 + 0.1471i 0.2941 - 0.1765i
-0.1176 - 0.5294i -0.0588 + 0.2353i
>> B=[1; 2+i]
B=
1.0000
2.0000 + 1.0000i
>> KQ=C*B
KQ =
0.8529 + 0.0882i
-0.4706 - 0.1176i
VD3
>>syms a1 a2 b1 b2 c1 c2
>>A=[a1 a2;b1 b2]
A=
[ a1, a2]
[ b1, b2]
>> B=[c1;c2]
B=
[ c1]
[ c2]
>> C=inv(A)
Trang 4
C=
[ -b2/(-a1*b2+b1*a2), a2/(-a1*b2+b1*a2)]
[ b1/(-a1*b2+b1*a2), -a1/(-a1*b2+b1*a2)]
>> KQ=C*B
KQ =
[ -b2/(-a1*b2+b1*a2)*c1+a2/(-a1*b2+b1*a2)*c2]
[ b1/(-a1*b2+b1*a2)*c1-a1/(-a1*b2+b1*a2)*c2]
6.3.5
Giải hệ phơng trình phi tuyến:( Lệnh solve)
Ví dụ:
sin(x)+y^2+log(z)=7
3*x+2^y+z^3=4
x+y+z=2
>>[x,y,z]=solve('sin(x)+y^2+log(z)=7','3*x+2^y+z^3=4','x+y+z=2')
x=
-2.3495756224572032187410536400368
y=
2.6835269194785219427270239079010
z=
1.666048702978681276014029732135
Ví dụ:
x^2 + x*y + y = 3
x^2 - 4*x + 3 = 0
>>[x,y] = solve('x^2 + x*y + y = 3','x^2 - 4*x + 3 = 0')
x=
[ 1]
[ 3]
y=
[
1]
[ -3/2]
6.3.6 Giải hệ phơng trình tham số:
>>[a,u] = solve('a*u^2 + v^2= 0','u - v = 1','a,u')
a=
-v^2/(v^2+2*v+1)
u=
v+1
Trang 5
>>[a,v] = solve('a*u^2 + v^2','u - v = 1','a,v')
a=
-(u^2-2*u+1)/u^2
v=
u-1
6.3.7 Giải hệ phơng trình vi phân thờng: ( lệnh dsolve)
>>y = dsolve('(D2y) =1','y(0) = 1')
y=
1/2*t^2+C1*t+1
>>[x,y]=dsolve('Dx = y', 'Dy = -x')
x= cos(t)*C1+sin(t)*C2
y = -sin(t)*C1+cos(t)*C2
6.3.8 Giải hệ phơng trình vi phần theo hm có sẵn của Matlab:
Ví dụ: Cho hệ phờng trình vi phân
Chơng trình mô tả phơng trình vi phân dạng M-file:
function dy = rigid(t,y)
dy = zeros(3,1);
dy(1) = y(2) * y(3);
dy(2) = -y(1) * y(3);
dy(3) = -0.51 * y(1) * y(2);
Thời gian giải phơng trình vi phân Tspan =[0 12], vector điều kiện đầu [0 1 1]
>>options = odeset('RelTol',1e-4,'AbsTol',[1e-4 1e-4 1e5]);
>>[t,y] = ode45('rigid',[0 12],[0 1 1],options);
>>plot(t,y(:,1),'-',t,y(:,2),'-.',t,y(:,3),'.')
Trang 6
1.5
1
0.5
0
-0.5
-1
-1.5
0
2
4
6
8
10
12
6.4 Lệnh v hm trong symbolic Matlab:
Symbolics Matlab l th viện các phép tính toán kiểu ký tự đợc đa vo môi trờng
tính
học của Matlab.
Ta cần chú ý rằng, khi viết một lệnh hay một hm trong Matlab phải viết bằng chữ
thờng.
6.4.1 Tính toán (Calculus):
Tính đạo hm (diff):
diff(S): Đạo hm biểu thức symbolic S với biến của đạo hm tự do.
diff(S,v) hay diff(S,sym(v)): Đạo hm biểu thức symbolic S với biến lấy
đạo hm l biến symbolic v.
diff(S,n) : Đạo hm cấp n biểu thức S, n l số nguyên dơng.
Ví dụ:
>>syms x t
>> y = sin(x^2);
>>z = diff(y);
z = 2*cos(x^2)*x
pretty(z)% hiển thị dạng quen thuộc
2.cos2x.x
>>y = diff(t^6,6) % đạo hm bậc 6 của hm t6.
Trang 7