438
CHƯƠNG 10: CÁC CÔNG CỤ KHÁC CỦA MATLAB
§1.SIMULINK
1.KhởiđộngSinulink:ĐểkhởiđộngSimulinktatheocácbướcsau:
•khởiđộngMATLAB
• click vào icon của Simulink trên MATLAB toolbar hayđánh lệnh
SimulinktrongcửasổMATLAB.
LúcnàytrênmànhìnhxuấthiệncửasổSimulinkLibraryBrowser,trongđó
cócácthưviệncáckhốicủaSimulink.
2.Tạo
mộtmôhìnhmới:Đểtạomộtmôhìnhmới,clickvàoicontrêncửasổ
Simulink Library Browser hay chọn menu File | New | Model trên cửa sổ
MATLAB.
3.Thayđổimộtmôhìnhđãcó:Tacó
thểclickvàoicontrêncửasổSimulink
LibraryBrowserhaychọnOpentrêncửasổMATLAB.Filechứamôhìnhsẽ
mởvàtacóthểthayđốicácthôngsốcũngnhưbảnthânmôhình.
4.Chọn mộtđố
itượng:Đểchọn mộtđối tượng, click lên nó. Khi nàyđối
tượngsẽcómộthìnhchữnhậtcócácgóclàcáchạtbaoquanh.
5.Chọnnhiềuđốitượng:Tacóthểchọn nhiề
uđốitượngcùnglúcbằngcách
dùng phím Shift và chuột hay vẽ mộtđường bao quanh cácđối tượngđó
bằngcáchbấmchuộtkéothànhhìnhchữnhậtvàthảkhihìnhchữnhậtđóđã
•mởcửasổthưviện khối
•kéokhốitamuốndùngtừcửasổthưviệnvàocửasổmôhìnhvàthả
TacóthểcopycáckhốibằngcáchdùnglệnhCopy&Pastetrongmenu
Editquacácbướcsau:
•chọnkhốitamuốncopy
•chọnCopytừmenuEdit
•làmchocửasổcầncopytớihoạtđộng
•chọnPastetừmenuEdit
Simulinkgánmộttênchomỗibản copy.Nếunólàkhốiđầutiêntrongmô
hìnhthìtêncủanógiốngnhưtrongthưviệnSimulink.Nếu nólàbảnthứ2
hay
thứ3thìsaunósẽcóchỉsố1hay2v.v.Trêncửasổmôhìnhcólưới.Để
hiểnthịlướinàytừcửasổMAT LABđánhvào:
set_param(ʹ<modelname>ʹ,ʹshowgridʹ,ʹonʹ)
Đểthayđổikhoảngcáchô
lướiđánhlệnh:
set_param(ʹ<modelname>ʹ,ʹgridspacingʹ,<numberofpixels>)
Vídụ:đểthayđổiôlướithành20pixels,đánhlệnh:
set_param(ʹ<modelname>ʹ,ʹgridspacingʹ,20)
ĐểnhânbảnmộtkhốitagiữphímCtrlvàkéokhốitới
mộtvịtríkhácvàthả.
9.Môtảthôngsốcủakhối:Đểmôtảthôngsốcủakhốitadùnghộpthoại
Block Properties.Đểhiển thị hộp thoại này ta chọn khối và chọn
Block
PropertiestừmenuEdit.Tacóthểnhắpđúpchuộtlênkhốiđểhiênthịhộp
thoạinày.HộpthoạiBlockPropertiesgồm:
13.Xửlítênkhối:Mỗikhốicótên,phảilàduynhấtvàphảichứaítnhấtmột
kítự.Mặcđịnhtênkhốinằmdướikhối.Vớitên
khốitacóthểthựchiệncác
thaotácsauđây:
•Thayđổitênkhốibằngcáchbấmchuộtvàotênđãcóvànhậplạitên
mới.Nếumuốnthayđổifontchữdùngchotênkhốihãychọnkhốivàvào
menuFormatvàchọnFont.
•Thayđổivịtríđặttênkhốitừdướilêntrênhayngượclạibằngcách
kéotênkhốitớivịtrímongmuốn.
•Khôngchohiểnthịtên khốibằngcáchvàomenuFormatvàchọnHide
NameshayShowNames
14.Hiểnthịcácthôngsốbêndướikhối:Ta cóthểbắtSimulinkhiểnthịmột
haynhiềuthông
sốbêndướikhối.Đểlàmđiềunàytanhậpvàomộtdòng
vàotrườngAttributesformatstringởhộpthoạiBlockProperties.
15.Cắtcáckhối:Đểcắtkhốikhỏisơđồtabấm phímShiftvàkéo
khốiđếnvị
trímới.
16.Nhậpvàxuấtcácvectơ:Hầu hếtcáckhốichấpnhậnđạilượngđầuvàolà
vec tơ hay vô hướng và biếnđổi thà n hđại lượngđầu ra là
vec tơ hay vô
hướng.Tacóthểxácđịnhđầuvàonàonhậnđạilượngvectơbằngcáchchọn
441
mụcWideVector LinestừmenuFormat. Khituỳchọn nàyđược chọn,các
đườngnhậnvectơđượcvẽđậmhơncácđườngmangsốliệuvôhướng.Nếu
set_param(b,ʹPriorityʹ,ʹnʹ)
Trongđóblàkhốivànlàmộtsốnguyên,sốcàngthấp,
độưutiêncàngcao.
ĐểgánđộưutiênbằnglệnhtanhậpđộưutiênvàotrườngPrioritytrong
hộpthoạiBlockPrioritiescủakhối.
19.SửdụngDropShadows:TacóthểthêmDropShadowvàokhốiđãchọn
bằngcáchchọnShowDropShadowtừmenuFormat
20.Tạomộtthưviện:Đểtạomộtthưviện,chọn LibrarytừmenuconNew
của menu File. Simulink sẽ hiển thị một cửa sổ mới,
có tên là Library :
untitled.
442
21.Thayđổimộtthưviệnđãcó:Khitamởmộtthưviện,nótựđộngkhoávà
takhôngthểthayđổicácthànhphầncủa nóđược.Muốnmởkhoátachọn
UnlocktừmenuEdit.
22.Copym
ộtkhốitừthưviệnvàomôhình:Tacóthểcopymộtkhốitừthư
việnvàomôhìnhbằngcopyhaypastehaykéonóvàthảvàocửasổmôhình.
23.Vẽđườngnốigiữa
cáckhối:Đểnốicổngracủamộtkhốivớicổngvào
củamộtkhốikháctalàmnhưsau:
•đặtcontrỏchuộtlêncổngracủakhốiđầutiên,contrỏcódạngdấu+
•nhấnvàgiữchuột
28.Ghichú:Ghichúlàđoạnv ănbảncungcấpthôngtinvềmôhình.Tacó
thểthêmghichúvàobấtkìtrôngnàocủamôhình.Đểtạomộtghichú,nhấn
đúpchuộtvàovùngtr
ốngcủamôhình.Khinàytrênmànhìnhxuấthiệnmột
hìnhchữnhậtcóconnháyởtrong.Tacóthểđánhvănbảnghichúvàokhung
này.Khimuốndichuyểnphầnghichúđếnmột
vịtríkhác,tabấmchuộtvào
đóvàkéođếnv ịtrímớirồithảchuột.Đểsửam ộtghichú,bấmchuộtvàonó
đểhiểnthịkhungvănbảnvàbắtđầusửa.
29.Các
kiểudữliệu:Simulinkchấpnhậncáckiểudữliệusau:
double sốthựcvớiđộchín hxácgấpđôi
single sốthựcvớiđộchín hxácđơn
int8 sốnguyêncódấu8bit
uint8 sốnguyênkhông
dấu8bit
int16 sốnguyêncódấu16bit
uint16 sốnguyênkhgdấu16bit
int32 sốnguyêncódấu32‐bit
uint32 sốnguyênkhôngdấu32‐bit
30. Các kiểu dữ liệu của các khối: Các
khốiđều chấp nhận kiểu dữ liệu
double.
31.Môtảcáckiểudữliệudùngchothamsốkhối:Khi nhậpvàothamsốcủa
mộtkhối,kiểudữliệucủanóđượcng
ườidùngmôtảbằnglệnhtype(value)
vớitypelàtêncủakiểudữliệuvàvaluelàgiátrịcủathamsố.
khối
biếnđổitínhiệuthực‐ảothànhtínhiệuphức.
Ta có thể xử lí tín hiệu phức nhờ các khối chấp nhận tín hiệu phức.
PhầnlớncáckhốicủaSimulinkch
ấpnhậntínhiệuvàolàsốphức.
35.Tạomộthệthốngconbằngcáchthêmkhốihệthốngcon:Đểtạo một
khối hệ thống con trước khi thêm các khối trong nó
ta phải thêm khối hệ
thốngconvàomôhìnhrồithêmcáckhốitạonênhệthốngconnàyvàokhối
hệthốngconbằngcáchsau:
•copykhốihệthốngcontừthưviệnSignal&Systemvàomôhình
•mởkhốihệthốngconbằngcáchclickđúplênnó
•trongcửa sổkhốiconrỗng, tạohệthốngcon.Sửdụngcáckhối inport
đểbiểudiễnđầuvàovàcáckhốioutportđểbiểu diễnđầura.
36.Tạohệthốngconbằngcách
nhómcáckhốiđãcó:Nếumôhìnhcủatađã
cómộtsốkhốimàta muốnnhómthànhkhốihệthốngconthìtacó thể
nhóm
cáckhốinàythànhkhốihệthốngconbằng
sau:
•baocáckhốivàđườngnốigiữachúngbằngmộtđườngđứtnét(bấm
chuộtvàkéotừgócnàyđếngóckiacủacáckhối)rồithảchuột
•chọnCreateSubsystemtừmenuEdit
37.Gán nhãn cho các cổng của hệthống con: Simulink gán nhãn cho các
cổngcủahệthốngcon.Nhãnlàtêncủacáckhốiinportvàoutportnốikhốihệ
thốngconvớicáckhốibênngoàiquacáccổngnày.Tacóthểdấucácnhãn
.
39.Môphỏngmộthệphươngtrìnhtuyếntính:Taxéthệphươngtrìnhtuyến
tínhcóhaiẩn:
⎩
⎨
⎧
=+−
=+
1zz
1zz
21
21
Đểmôphỏngtadùngcáckhối:
•haikhốiAlgebricConstrainttrongthưviệnMathđểgiảiphươngtrình
•haikhốiSumtrongthưviệnMathđểtạophéptính
•haikhốiDisplaytrongthưviệnSinkđểhiệnthịgiátrịnghiệm
446
•khốiConstanttrongthưviệnSourcesđểtạogiátrị1
40.Môphỏngmộtphươngtrìnhbậccao:Taxétphươngtrình:
x
2
+3x+1=0
Đểmôphỏngtadùngcáckhối:
trìnhviphânbậchaisau:
)t(u4)t(x2
dt
dx
3
dt
xd
2
2
=++
Trongđó u(t)làhàmbướcnhảy,x′(0)=0vàx(0)=0.BiếnđổiLaplacecủahệ
chota:
p
2
X(p)+3pX(p)+2X(p)=4U(p)
Hàmtruyềncủahệlà:
2p3p
4
)p(T
2
++
=
Tamôphỏnghệbằngcácphầntử:
•khốiSteptrongthưviệnSourcesđểtạohàmbướcnhảyu(t)
•khốiTransferFcntrongthưviệnContinuousđểtạohàmtruyền
•khốiScopetrongthưviệnSinkđểxemkếtquả
Sơđồmôphỏngnhưsau:
)t(x
dt
dx
−=
y(t)=x(t)
NhưvậyA=‐1;C=1;u(t)=0;B=0vàD=0.Sơđồmôphỏnggồmcácphần
tử:
•khốiState‐SpacetrongthưviệnContinuous
•khốiScopetrongthưviệnSink
Sơđồmôphỏngnhưsau:
b.Phươngtrìnhviphâncấpcao:Taxéthệmôtảbởiphươngtrình:
)t(u4)t(x2
dt
dx
3
dt
xd
2
2
=++
Trongđóu(t)làhàmđơnvị,x(0)=1vàx′(0)=‐2.
449
Tacũngdùnghệkhônggian‐trạngthái.Tađặtx1=x,x2=
dt
dx
1
⎪
⎨
⎧
+−−=
=
dt
dx
)t(u4)t(x2)t(x3
dt
dx
)t(x
dt
dx
2
12
2
2
1
Viếtdướidạngmatrậntacó:
)t(u
4
0
)t(x
)t(x
32
10
dt
dx
⎦
⎤
⎢
⎢
⎢
⎣
⎡
[]
⎥
⎦
⎤
⎢
⎣
⎡
=
)t(x
)t(x
01)t(y
2
1
Từhệnàytasuyracácmatrậncủahệkhônggian‐trạngtháilà:
[]
0D01C
4
0
B
Tamôphỏnghệbằngcácphầntử:
•khốiSteptrongthưviệnSources
•khốiGaintrongthưviệnMath
•khốiTransferFcntrongthưviệnContinuous
Sơđốmôphỏngnhưsau
45.Môhìnhhoáhệphituyến:
a.Hệchobởi phươngtrìnhviphâncấpcao:TaxétphươngtrìnhValder
Pol:
0yy)y1(y
2
=+
′
−−
′′
Điềukiệnđầuy(0)=2vày′(0)=0
Tađặty=y
1vày′=y2vàcóđượchệphươngtrìnhviphâncấp1:
⎪
⎩
⎪
⎨
⎧
b. Hệ mô tả bằng hệ phương trình vi phân: Ta xét hệ mô tả bằng hệ
phươngtrìnhviphânsau:
⎩
⎨
⎧
−−=
′
=
′
212
21
a2.0)asin(a
aa
vớiđiềukiệnđầulàa
1(0)=a2(0)=1.3
Tamôphỏnghệbằngcácphầntử:
•haikhốiIntegratortrongthưviệnContinous
•khốiFcntrongthưviệnFunctions&Tables
•khốiGaintrongthưviệnMath
•haikhốiScopetrongthưviệnSink
•khốiSumtrongthưviệnMath
Sơđồmôphỏngnhưsau:
Tiệních Nộidung
Calculusđạo hàm, tích phân, giới hạn, tổng và chuỗi
Taylor
LinearAlgebra nghịchđảo,địnhthức,giátrịriêng,phântíchvà
dạngchínhtắccủamatrận.
Simplification phươngpháprútgọncácbiểuthứcđạisố
SolutionofEquations giảibằngchữvàbằngsốcácphươngtrìnhđại
sốvàviphân
Variable‐Precision
Arithmetic
đánhgiáđộchínhxáccủacácbiểuthứcđạisố
453
Transform biếnđổiLaplace,Fourriervàz
Special Mathematical
Function
các hàm toán họcđặc biệt của cácứng dụng
toánhọckinhđiển
ĐộnglựctínhtoánnằmdướicáctoolboxlànhânMaple,mộthệthống
tínhtoánđượcpháttriểnđầutiênởtrườngđạihọcWaterloo,Canadavàsau
đótạiEidgenroessicheTechnischeHochschuleZurich,Thuỵsĩ.Mapleđược
thươ
ngmạihoávàhỗtrợcủacôngtyWaterlooMaple.
2.KhởiđộngTOOLBOX:
a.Cácđốitượngchữ:Trongphầnnàychúngtasẽxemxétcáchtạovà
dùngcácđốitượngchữ.Chúngtacũngsẽxemxétcácbiếnchữmặcđịnh.
SymbolicMathToolboxđịnhnghĩamộtkiểudữliệuMATLABmớigọilàđối
Bâygiờgiảsửtamuốngiảiphươngtrìnhbậc2
c
b
xax
f
2
+
+
=
.Phátbiểu:
f=sym(ʹa*x^2+b*x+cʹ)
gánbiểuthứcchữax
2
+bx+cchobiếnf.Tuynhiêntrongtrườngh ợpnày
SymbolicMathToolboxkhôngtạoracácbiếntương ứngvớicácsốhạnga,b,
cvàxtrongbiểuthức.Đểthựchiệncácphéptoánbằngchữ(vídụtíchphân,
đạohàm,thaythếv.v)trênftaphải
tạocácbiếnmộtcách rõràng,nghĩalà
cầnviết:
a=sym(ʹaʹ)
b=sym(ʹbʹ)
c=sym(ʹcʹ)
x=sym(ʹxʹ)
hayđơngiảnlà:
conj(z)
expand(z*conj(z))
chokếtquả:
returnthecomplexconjugatesofthevariables
x
x‐i*y
x^2+y^2
Lệnh
conjlàtoántử tạo số phức liên hợp.Đểxóathuộctínhreal của x ta
dùnglệnh:
symsxunreal
hay:
x=sym(ʹxʹ,ʹunrealʹ)
Lệnhclearxkhôngxoáthuộctínhsốrealcủax.
b.Tạocáchàmtrừutượng:Nếutamuốntạomộthàmtrừtượng(nghĩa
làmộthàmkhôngxácđịnh)f(x)cầndùnglệnh:
f=sym(ʹf(x)ʹ)
Khinàyfhoạtđộngnhưlàf(x)vàcóthểxửlíbằngcáclệnhtoolbox.Vídụđể
tínhviphânbậc1taviết:
df=(subs(f,ʹxʹ,ʹx+hʹ)–f)/ʹhʹ
456
prod(1:12)
d.Vídụtạomatrậnchữ
:Mộtmatrậnvònglàmatrậnmàhàngsaucó
đượcbằngcáchdịchcácphầntửcủahàngtrướcđi1lần.Tatạomộtma trận
vòngAbằngcácphầntửa,
bvàc:
symsabc
A=
[abc;bca;cab]
457
kếtquả:
A=
[
a,b,c]
[
b,c,a]
[
c,a,b]
DoAlàmatrậnvòngtổngmỗihàngvàcộtnhưnhau:
sum(A(1,:))
ans=
a+b+c
sum(A(1,:))==sum(A(:,2))
ans=
1
Nếutatìmđạohàmcủacáchàmnàynhưngkhôngmôtảbiếnđộclập
(nghĩalàđạohàmtheobiếnnào)thìkếtquảlà:
f’=nxn
‐1
gʹ=acos(at+b)
hʹ=Jv(z)(v/z)‐Jv
+1(z).
Nhưvậycácbiếnđộclậplàx,tvàz.MATLABhiểucácbiến độclậplà
cácchữthườngvànằmởcuốibảngchữcáinhưx,y,z.Khikhôngthấycác
chữcáinày,MATLAB
sẽtìmchữgầnnhấtvàcoiđólà biếnđộclập.Cácbiến
khácnhưn,a,bvàvđượccoilàhằnghaythôngsố.Tuynhiêntacóthểlấy
đạohàmcủaftheonb
ằngcáchviếtrõbiếnđộclậpra.Tadùngcáclệnhsau
đểtạoracáchàm:
symsabnnutxz
f=x^n;
g=sin(a*t+b);
Đểđạohàmhàmftaviết:
diff(f);
ans=
x^n*n/x
Trongvídụtrênxlàbiếnđộclập.Nếumuốntínhđạohàmcủaftheonta cần
viết:
5.Tínhtoán:
a.Đạohàm:Tatạobiểuthứcchữ:
symsax
f=sin(a*x)
Vậythì:
df=diff(f)
tínhđạohàmcủahàmf(x)theox.Kếtquảlà:
df=
cos(a*x)*a
Đểtínhđạohàmcủaftheoataviết:
dfa=diff(f,a)
kếtquả:
dfa=
460
cos(a*x)*x
Hàmtoánhọc LệnhMATLAB
f=xn
f’=nxn
lệnh:
dy=diff(A)
chokếtquả:
dy=
[‐
sin(a*x)*a, cos(a*x)*a]
[‐
cos(a*x)*a, ‐sin(a*x)*a]
461
TakhảosátbiếnđổitừtoạđộEuclid(x,y,z)sangtoạđộcầu(r,λ,ϕ)thựchiện
bằngcáccôngthức:
x=rcosλcosϕ
y=rcosλsinϕ
z=rsinλ
ĐểtínhmatrậnJacobiJcủaphép
biếnđổinàytadùnghàmjacobian.Định
nghĩatoánhọccủaJlà:
),,r(
)z,y,x(
J
ϕλ∂
∂
=
Đểdễviếttadùngkítựlthaychoλvàfthaychoϕ.Cácl ệnh
symsrlf
462
Toántửtoánhọc LệnhMATLAB
f=exp(ax+b) symsabx
f=exp(a*x+b)
dx
d
f
diff(x)hay
diff(f,x)
da
df
diff(f,a)
ad
f
d
2
2
diff(f,a,2)
r=u
2
+v
2
t=arctan(v/u)
symsrtuv
r=u^2+v^2
dc=
–sin(x)
và:
limit((1+x/n)^n,n,inf)
cho:
ans=
exp(x)