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đóđã
baol
ấycácđốitượngcầnchọn.
6.Chọntấtcảcácđốitượng:Đểchọntấtcảcácđốitượng trongcửa sổta
chọnmenuEdit|SelectAll.
7.Cáckhối:Khốilàcácphần tửmàSimulinkdùngđểt ạomôhình.Tacóthể
môhìnhhoá bấtkìmộthệthốngđộnghọcnàobằngcách tạomốiliênhệgiữa
cáckhối
theocáchthíchhợp.Khitạomộtmôhìnhtacầnthấyrằngcáckhối
củaSimulinkcó2loạicơbản:khốinhìnthấyvàkhốikhôngnhìnthấy.Các
khốikhôngnhìnthấy
đượcđóngvaitròquantrọngtrongviệcmôphỏngmột
hệthống.Nếutathêmhayloạibỏmột
khốikhôngnhìnth ấyđượctađã thay
đổithuộctínhcủamôhình.Cáckhốinhìnthấyđược,ngượclại,khôngđóng
439
vaitròquantrọngtrongmôhìnhhoá.Chúngchỉgiúptaxâydựngmôhình
mộtcáchtrựcquanbằngđồhoạ.MộtvàikhốicủaSimulink cóthểlàthấy
đượctrongmộtsốtrườnghợp
vàlạikhôngth ấyđượctrong mộtsốtrường
hợpkhác.Cáckhốinhưvậyđượcgọilàcáckhốinhìnthấycóđiềukiện.
8.Copycáckhốitừmộtcửasổsangmộtcửasổkhác:Khitaxâydựngmột
môhìnhtathườngphảicopycáckhốitừthưviệnkhốicủaSimulinksangcửa
sổmô
hình.Đểlàmviệcnàytatheocácbướcsau:
•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:
•Description:Môtảngắngọnvềmụcđíchcủakhối.
•Priority:thựchiệnquyềnưutiêncủakhốisovớicáckhốikháctrong
môhình.
•Tag:trườngvănbảnđượclưucùngvớikhối
•Openfunction:cáchàmMATLABđượcgọikhimởkhốinày
440
•Attributesformatstring: Thôngsốnàysẽ môtảthôngsốnàođược
hiểnthịdướiiconcủakhối.
10.DeletingBlocks:Muốnxoámộthaynhiềukhốitachọnkhốiđóvànhấn
phímDel.
11.
Thayđổihướngcủakhối:Tacóthểxoayhướngcủakhốibằngvàomenu
Formatrồi:
•chọnFlipBlockđểquaykhối180
o
.
•chọnRotateBlockđểquaykhối90
o
.
12.Địnhlạikíchthướccủakhối:Đểthayđổikíchthướccủakhốitađưacon
trỏ chuột vào một góc của khối rồi bấm và kéo chođến kích thước mong
muốnr
ồithả.
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
tathâyđổimôhìnhsaukhichọnWideVectorLines
taphảicậpnhậthìnhv ẽ
bằngcáchchọnUpdateDiagramtừmenuEdit.KhởiđộnglạiSimulinkcũng
cậpnhậtsơđồ.
17.Mởr ộngvôhướngcácđầuvàovàcácthôngsố:Mở
rộngvôhướnglà
biếnđổiđại lượng vô hướng thành vec tơ với số phần tử không thayđổi.
Simulinkápdụngm ởrộngvôhướngchocácđạilượngvàovàthôngsốđối
vớihầu
hếtcáckhối.
•Mởrộngđầuvào:khidùngkhốivớinhiềuđầu vàotacóthểtrộnlẫn
cácđạilượngvectơvàđạilượngvôhướng.Khinàycácđầuvàovôhướng
đượcmởrộngthànhvect
ơvớisốphầntửnhưcủađầuvàovectơ,cácphầntử
đềucótrịsốnhưnhau
•Mởrộngthôngsố:tacóthểđặctảcácthôngsốđốivớikhốiđượcvec
tơhoáthànhđạilượngvectơhayđạilượngvôhướng.Khitađặctảcácthông
sốvec tơ,mỗimột
phầntửthôngsốđượckếthợp vớiphầntửtươngứng
trongvectơđầuvào.Khitađặctảcácthôngsốvectơ,Simulinkápdụngmở
rôngvôhướngđểbiếnđổichúngthànhvectơcókích
thướcphùhợp.
18.Gánđộưutiênchokhối:Tacóthểgánđộưutiênchokhốikhôngnhìn
thấytrongmôhình.Khốicóđộưutiêncaohơnđượcđánhgiá trướckhốicó
độưutiênnhỏhơn.
Ta cóthểgánđộưutiênbằngcáchdùnglệnht ương tác
haydùngchươngtrình.Đểdùngchươngtrìnhtadùnglệnh:
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
•kéocontrỏchuộttớicổngvàocủakhốithứhai
•thảchuột
Đểvẽđườnggấpkhúc,nhấnphímShiftkhivẽ.
24. Vẽ đường nhánh:Đường nhánh làđường nối từ một đườngđã có và
mangtínhiệucủanótớicổngvàocủamộtkhối.
Đểthêmđườngnhánhtalàmnhưsau:
•đưacontrỏchuộttớiđườngcầnphânnhánh
•nhấnphímchuộtđồngthờinhấnphímCtrl
•kéocontrỏchuộttớicổngvàotiếptheovàthảchuộtvaphímCtrl.
TuynhiêntacóthểdùngphímphảichuộtthayvìdùngphímCtrlvàphím
tráichuột.
25.Chènkhốivàomộtđường:
Tacóthểchènmộtkhốivàomộtđườngbằng
cáchkéovàthảkhốiđólênđườngn ối.Khốimàtachènvàochỉcómộtđầu
vàovàmộtđầura.
26.Nhãncủatínhiệu:Ta
cóthểgánnhãnchotínhiệuđểghichúchomô
hình.Nhãncóthểnằmtrênhaydướiđườngnốinằmngang,bênphảihay
bêntráiđườngnốithẳngđứng.
27.Sửdụngnhãntínhiệu:Đểtạo
nhãntínhiệu,bấmđúpchuộtlênđường
nốivàghi nhãn.Đểdichuyểnnhãn,sửamộtnhãn,clicklênnhãnrồiđánh
nhãnmớisaukhixóanhãncũ
443
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ố.
Vídụ:single(1.0) dữliệulàsốthựccótrịlà1
int8(2) dữliệu
làsốnguyêncótrịlà2
int32(3+2i) dữliệulàsốphức,phầnthựcvàphầnảolàsốnguyên
32bit
32.Tạotínhiệucókiểudữliệuđượcmôtả:Tacóthểđemvàomô
hìnhmột
tínhiệucókiểudữliệuđượcmôtảbằngmộttrongcácphươngphápsauđây:
•nạptínhiệucókiểudữliệumongmuốntừMATLAB
•tạomộtkhốihằngvàđặtthôngsốcủanócókiểudữliệumongmuốn.
•sửdụngkhốibiếnđổikiểudữliệu
444
33.Hiểnthịcáckiểudữliệucủacổng:Đểhiển thị kiểu dữ liệu của cổng
trongmôhình,tachọnPortDataTypestừmenuFormat.
34.Tínhiệuphức:Mặcđịnh,cácgiá
trịcủatínhiệuSimulinklàsốthực.Tuy
nhiêncácmôhìnhcóthểtạovàxửlícáctínhiệulàsốphức.Tacóthểđưa
mộttínhiệulàsốphứcvàomôhìnhbằngmột
trongcácphươngphápsau:
•nạptínhiệuphứctừMATLAB
•tạomộtkhốihằngtrongmôhìnhvàchonógiátrịphức.
•tạomộttínhiệuthựctươngứngvớiphầnthựcvà phầnảocủatínhiệu
phứcvàkếthợpcácphầnnàythànhtínhiệuphứcbằngcáchsửdụng
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
nàybằngcáchchọnkhốihệthốngconrồi chọn HidePortLabels từ menu
Format. Ta cũng có thể dấ
u một hay nhiều nhãn bằng cách chọn các khối
445
inporthayoutportthíchhợptrongkhốihệthốngconvàchọnHideNametừ
menuFormat
38.Môphỏngmộtphươngtrình:PhươngtrìnhdùngđểbiếnđổiđộCelcius
thànhđộFahrenheitlà:
TF=(9/5)TC+32
Trướch
ếttakhảosátcáckhốicầnđểtạomôhình:
•khốiramptrongthưviệnSourcesđểinputtínhiệunhiệtđộ
•khốiConstanttrongthưviệnSourcesđểtạohằngsố32
•khốiGaintrongthưviệnMathđểtạorahệsố9/5
•khốiSumtrongthưviệnMathđểcộnghaiđạilượng
•khốiScopetrongthưviệnSinksđểhiểnthịkếtquả.
Tiếpđótađưacáckhốivàocửasổmôhình,gáncácgiátrịthôngsốchoGain
vàConstantbằng cáchnhấpđúplên chúngđểmởkhối.
Sauđótanốicác
khối.KhốiRampđưanhiệtđộCelciusvàmôhình.Mởkhốinàyvàthayđổi
giátrịkhởigánInitialoutputvề0.KhốiGainnhânnhiệtđộnàyv ớihệsố
9/5.KhốiSumcộng
giátrị32vớikếtquảvàđưaranhiệtđộFahrenheit.Khối
Scopeđểxem kết quả. Sơ đồ mô phỏng như sau. Bây giờ Start từ menu
Simulationđểchạysimulation.Simulationchạy10giây,tươngứngvớinhiệt
độCelciusbi
ếnđổitừ0đến10
o
.
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:
•khốiAlgebricConstrainttrongthưviệnMathđểgiảiphươngtrình
•khốiDisplaytrongthưviệnSinkđểhiểnthịtrịsốcủanghiệm
•khốiConstanttrongthưviệnSourcesđểtạogiátrị1
•khốiSumtrongthưviệnMathđểtạophépcộng
•khốiMathFunctiontrongthưviệnMathđểtạohàmx
2
•khốiGaintrongthưviệnMathđểtạohệsố3
Sơđồmôphỏngnhưsau
447
41. Mô phỏng hệ thống liên tụcđơn giản: Ta mô hình hoá hệ mô tả bởi
phươngtrìnhviphân
)t(u)t(x2)t(x
+
−=
′
vớiu(t)làm ộtsónghìnhchữnhậtcóbiênđộbằng1vàtầns ố1rad/s.Đểmô
phỏnghệtadùngcáckhối:
•khốiGaintrongthưviệnMathđểtạohệsố2
•khốiSumtrongthưviệnMathđểtạophéptính
•khốiScopetrongthưviệnSinkđểxemkếtquả
•khốiSignalGeneratortrongthưviệnSourcesđểtạonguồn
•khốiIntegratortrongthưviệnContinuousđểtíchphân
Sơđồmôphỏngnhưsau:
42.Môphỏnghệphươngtrìnhviphânbậccao:Taxéthệmôtảbởiphương
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:
448
43.Môphỏnghệcóđiềukiệnđầukháckhông:
a.Phươngtrìnhviphâncấp1:Taxéthệmôtảbởiphươngtrình:
0)t(x
dt
dx
=+
Điềukiệnđầucủahệlàx(0)=1.Tacầntìmx(t)trongđoạn0≤t≤10s.Dođiều
kiệnđầukháckhôngnêntabiếnđổiphươngtrìnhvềdạngkhông
gian‐trạng
thái.
⎪
⎩
⎪
⎨
⎧
+=
+=
DuCxy
BAx
dt
dx
Trongđóxlàbiếntrạngthái,ulàtínhiệuvào,ylàtínhiệura.
Chọny(t)=x(t)tacó:
)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
.Như
vậyđiềukiệnđầulà:x
1(0)=1vàx2(0)=‐2.Ngoàira
dt
xd
dt
xd
dt
dx
2
1
2
2
==
)t(u4)t(x2)t(x3
dt
dx
12
2
=++
Phươngtrìnhcấphaiđượcđưavềhaiphươngtrìnhcấp1:
⎪
⎪
⎪
⎩
⎪
⎪
⎪
⎨
⎧
+−−=
=
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
dt
dx
2
1
2
1
⎥
⎦
⎤
⎢
⎣
⎡
+
⎥
⎦
⎤
⎢
⎣
⎡
⎥
⎦
⎤
⎢
⎣
⎡
−−
=
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎣
⎡
[]
⎥
⎦
⎤
⎢
⎣
⎡
=
)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
32
10
A ==
⎥
⎦
⎤
⎢
⎣
⎡
=
⎥
⎦
⎤
⎢
⎣
⎡
−−
=
Sơđồmôphỏnggồmcáckhốisau:
•khốiState‐SpacetrongthưviệnContinuous
•khốiScopetrongthưviệnSink
Sơđồmôphỏngnhưsau
44.Môphỏnghệchobởisơđồkhối:Xétmộthệcócấutrúcsơđồkhốinhư
sau:
450
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:
⎪
⎩
⎪
⎨
⎧
−−=
′
=
′
12
2
12
21
yy)y1(y
yy
Hệphươngtrìnhđượcmôphỏngbằngcácphầntửsau:
•khốihàmFcntrongthưviệnFunctions&Tablesđểtạohàm
•khốiProducttrongthưviệnMathđểtạophépnhân
•haikhốiIntegratortrongthưviệnContinous
•khốiSumtrongthưviệnMath
•khốiMuxtrongthưviệnSignal&Systemsđểtrộntínhiệu
•khốiScopetrongthưviệnSinkđểxemkếtquả.
Sơđồmôphỏngnhưsau:
k
ss
1
2
+
+
-
451
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:
452
46.Lưumôhình:TacóthểlưumôhìnhbằngcáchchọnSavehaySaveastừ
menu
File.TadùngSavekhimởmôhìnhcũ,sửavàlưulại.Saveasdùngkhi
môhìnhcótenlàuntitlednghĩa làchưađượcđặttên.Simulinksẽlưumô
hìnhbằngmộtfilecótênvàphầnmởrộnglà.mdl.
47.Insơđồkhối:TacóthểinsơđồkhốibằngcáchchọnPrinttừmenuFile.
KhinàyhộpthoạiPrintsẽxuấthiện.Nóchophépta:
•chỉinhệthốnghiệnhành
•inhệthốnghiệnhànhvàcáchệthốngdướinótrongphânlớpmôhình
•inhệthốnghiệnhànhvàcáchệthốngtrênnótrongphânlớpmôhình
•intấtcảcáchệthốngtrongmôhình
•inmỗimôhìnhmộtkhungoverlay
48.Duyệtquamôhình
:CửasổModelBrowserchophépta:
•duyệtquamôhìnhcóphânlớp
•mởcáchệthốngtrongcácmôhình
•xácđịnhnộidungcáckhốitrongmộtmôhình
Đểhiểnthị
ModelBrowser,chọnnótừmenuView.Cửasổxuấthiện
đượcchialàm2phần.PhíatráilàBrowser.Cấutrúccâycủamôhìnhhiểnthị
ởbênphải.Mỗidấu+tươngứngvớimộthệthốngcon.
§2.SYMBOLICMATLABTOOLBOX
1.Kháiniệmchung:SymbolicMathToolboxeskếthợptínhtoánbằngchữ
vàomôitrườngMATLAB.Cáctoolboxnàybổsungcáctiệníchsốvàđồthị
vớicáckiểutínhtoántoánhọckhácnhau.
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
tượngchữhaysym.Bêntrong,mộtđốitượngchữlàmộtcấu trúcsốliệumà
nólưubiểudiễnchuỗicác
kítự.SymbolicMathToolboxdùngcácđốitượng
chữđểbiểudiễncácbiếnchữ,cácbiểuthứcchữ,cácmatrậnchữ.
b.Tạocácbiếnvàcácbiểuthứcchữ:Lệnhsymchophéptaxâydựng
cácbiếnvàcácbiểuthứcchữ.Vídụlệnh:
x=sym(ʹxʹ)
a=sym(ʹalphaʹ)
tạoracácbiếnchữlàxvàavớixlàxvàalàalpha.
Giả sử ta muốn ta muốn dùng biến chữ để biểu diễn tỉ lệ vàng
2
51 +
=ρ .Tadùnglệnh:
rho=sym(ʹ(1+sqrt(5))/2ʹ)
Bâygiờtacóthểthựchiêncácphéptoánkhácnhauv ớirho.Vídụ:
f=rho^2‐rho‐1
f=
(1/2+1/2*5^(1/2))^2‐3/2‐1/2*5^(1/2)
Tarútgọnbiểuthức:
454
simplify(f)
ans=
0
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à:
symsabcx
Nóichunglàtacóthểdùng
symhaysymsđểtạocácbiếnchữnhưngnên
dùng
symsđểtiếtkiệmthờigian.
2.Biếnđổigiữasốvàchữ:
a.Tạocácbiếnthựcvà phức:Lệnhsymchophéptamôtảcácthuộctính
toánhọccủacácbiếnchữbằngcáchdùngtuỳchọn
real.Phátbiểu:
x=sym(ʹxʹ,ʹrealʹ);
y=sym(ʹyʹ,ʹrealʹ);
hayhiệuquảhơn:
symsxyreal
455
z=x+i*y
tạorabiếnchữxvàycóthuộctínhlàsốthực.Đặcbiệt:
f=x^2+y^2
thựcsựlàsốkhôngâm.Nhưvậyzlàbiếnphứcvàcáclệnh:
conj(x)
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
hay
symsxh
df=(subs(f,x,x+h)–f)/h
trảvề:
df=
(f(x+h)‐f(x))/h
ứngdụngnàycủahàm
symsẽrấthữuíchtrongbiếnđổiFourrier,Laplacevà
z.
c.DùngsymđểtruycậpcáchàmcủaMaple:Tacóthểtruycậphàmgiai
thừak!của
Maplekhidùngsym.
kfac=sym(ʹk!ʹ)
Đểtính6!hayk!taviết:
symskn
subs(kfac,k,6)
ans=
720
subs(kfac,k,n)
ans=
n!
haynếutính12!tacũngcóthểviết:
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
BâygiờtathayA(2,3)bằngbetavàbbằngalpha:
symsalphabeta
A(2,3)=beta;
A=subs(A,b,alpha)
A
=
[
a,alpha,c]
[
alpha,c,beta]
[
c,a,alpha]
Từ vídụnàytathấy dùng cácđốitượngchữcũngtượngtựnhưdùngsố
trongMATLAB.
e.Biếnchữmặcđịnh:Khidùngcáchàmtoánhọc,việcchọncácbi ếnđộc
lậpthườngrấtrõràng.Vídụxembảngsau:
Hàmtoánhọc LệnhMATLAB
f=xn
f=x^n
g=sin(at+b) g=sin(a*t+b)
h=Jv(z) h=besselj(nu,z)
458
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:
diff(f,n)
ans=
x^n*log(x)
4.Tạocáchàmtoánhọcbằngchữ
:
a.Dùngcácbiểuthứcchữ:Cáclệnh:
symsxyz
r=sqrt(x^2+y^2+z^2)
t=atan(y/x)
f=sin(x*y)/(x*y)
459
tạoracácbiểuthứcchữr,tvàf.Tacóthểdùngcáclệnhdiff,int,subshaycác
lệnh
SymbolicMathToolboxkhácđểxửlícácbiểuthứcnhưvậy.
b.TạocácM‐file:M‐filechophéptadùngcáchàmtổngquáthơn.Vídụ
tamuốntạorahàmsinc=sin(x)/xtasẽviếtmộtM‐filecónộidungnhưsau:
functionz=sinc(x)
ifisequal(x,sym(0))
z=1;
else
z=sin(x)/x;
end
Tacóthểmởrộngcácvídụnhưvậychocáchàmvàbiếnkhácnhau.
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
‐1
f=x^n
diff(f)haydiff(f,x)
g=sin(at+b)
g’=acos(at+b)
g=sin(a*t+b)
diff(g)haydiff(g,t)
Đểtínhđạohàmbậc2củaftheoxvàataviết:
diff(f,2)
ans=
‐sin(a*x)*a^2
diff(f,x,2)
ans=
‐sin(a*x)*x^2
Hàm
diffcóthểdùngđốisốlàmatrận.Trongtrườnghợpnàyđạohàmđược
thựchiệntrêntừngphầntử.Vídụ:
symsax
A=[cos(a*x),sin(a*x);‐sin(a*x),cos(a*x)]
kếtquả:
A=
[cos(a*x), sin(a*x)]
[
‐sin(a*x), cos(a*x)]
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
x=r*cos(l)*cos(f);
y=r*cos(l)*sin(f);
z=r*sin(l);
J=jacobian([x;y;z],[rlf])
chotakếtquả:
J=
[
cos(l)*cos(f), –r*sin(l)*cos(f),–r*cos(l)*sin(f)]
[
cos(l)*sin(f), –r*sin(l)*sin(f), r*cos(l)*cos(f)]
[
sin(l), r*cos(l), 0]
vàlệnh:
detJ=simple(det(J))
cho:
detJ=
–cos(l)*r^2
Chúýlàđốisốthứnhấtcủahàm
jacobianphảilàvectơcộtvàđốisốthứhai
làvectơhàng.Hơnnữadođịnhthứccủa matrậnJacobianlàbiểuthứclượng
giáckháphứctạpnêntadùnglệnh
simpleđểthaythếvàrútgọn.
Bảngsautổnghợphàmdiffvàhàmjacobian
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
t=atan(v/u)
)v,u(
)t,r(
J
∂
∂
=
J=jacobian([r;t],[u,v])
b.Giớihạn:Đạohàmcủamộthàmlàgiớihạnsauđâynếunótồntại:
h
)x(
f
)hx(
f
lim)x(f
0h
−+
=
′
→
SymbolicMathToolboxchophépgiớihạncủamộthàmmộtcáchtrựctiếp
hơn.Lệnh:
symshnx
dc=limit((cos(x+h)–cos(x))/h,h,0)
chokếtquả:
dc=
–sin(x)
và:
limit((1+x/n)^n,n,inf)
cho:
ans=
exp(x)