
Gi¸o tr×nh M« h×nh ho¸
Bé m«n Tù ®éng ho¸ http://www.ebook.edu.vn Khoa §iÖn
72
Ch−¬ng 6- øng dông matlab-simulink m« pháng c¸c
hÖ thèng ®iÒu khiÓn tù ®éng
6.1- Kh¸i niÖm chung
Nh− ®· tr×nh bµy ë c¸c ch−¬ng tr−íc ®©y, ph−¬ng ph¸p m« pháng ®−îc øng dông vµo
nhiÒu lÜnh vùc kh¸c nhau. Ngµy nay ng−êi ta ®· ph¸t triÓn nhiÒu phÇn mÒm chuyªn dông dïng
cho m« h×nh ho¸ vµ m« pháng. Mét trong nh÷ng phÇn mÒm ®−îc øng dông réng r·i hiÖn nay
lµ MATLAB - SIMULINK ®−îc dïng ®Ó m« pháng c¸c hÖ thèng ®éng häc. PhÇn mÒm nµy
cung cÊp cho c¸c kü s−, c¸c c¸n bé kü thuËt mét c«ng cô tÝnh to¸n m¹nh, mét ph−¬ng tiÖn m«
pháng, ph©n tÝch vµ tæng hîp c¸c hÖ thèng ®éng häc.
MATLAB (Matrix Laboratory) lµ mét m«i tr−êng tÝnh to¸n trªn ma trËn rÊt m¹nh.
Matlab ®−îc tÝch hîp mét sè Toolbox, ®ã lµ th− viÖn cña c¸c hµm hç trî cho Matlab gi¶i c¸c
øng dông riªng biÖt nh−: hÖ thèng ®iÒu khiÓn, xö lý tÝn hiÖu, tèi −u ho¸, nhËn d¹ng, ®iÒu khiÓn
bÒn v÷ng v.v…
SIMULINK (tr−íc ®©y gäi lµ SIMULAB) lµ mét m«i tr−êng m« pháng dùa trªn nÒn
Matlab vµ c¸c Toolbox hÖ thèng ®iÒu khiÓn (Control System) vµ xö lý tÝn hiÖu (Signal
Processing). V× vËy Simulink ®−îc coi lµ phÇn më réng cña Matlab ®−îc dïng ®Ó m« pháng
hÖ thèng ®éng häc. Simulink cho phÐp lËp tr×nh ë d¹ng s¬ ®å cÊu tróc cho nªn rÊt thuËn tiÖn
trong viÖc m« pháng vµ kh¶o s¸t c¸c hÖ thèng ®iÒu khiÓn tù ®éng.
6.2- Giíi thiÖu vÒ Matlab- Simulink
6.2.1- Matlab
Matlab ®−îc ph¸t triÓn bëi c«ng ty MathWork Inc - lµ mét ch−¬ng tr×nh ph©n tÝch vµ
lµm to¸n trªn ma trËn, thiÕt kÕ hÖ thèng ®iÒu khiÓn, nhËn d¹ng hÖ thèng, ®å ho¹ 2D, 3D.
Matlab lµ mét m«i tr−êng më, cung cÊp c¸c thuËt to¸n vµ kh¶ n¨ng lËp tr×nh cho phÐp ng−êi
sö dông t¹o ra c¸c øng dông, c¸c ch−¬ng tr×nh riªng cña m×nh.
Matlab cã mét th− viÖn lín gåm h¬n 500 hµm to¸n häc tõ ®¹i sè tuyÕn tÝnh, c¸c hµm ma
trËn ®Õn ph©n tÝch biÕn ®æi Fourier vµ c¸c ph−¬ng ph¸p sè phi tuyÕn. Matlab cã mét sè
Toolbox ®ã lµ nh÷ng th− viÖn hµm chuyªn dông nh»m gi¶i c¸c bµi to¸n trong c¸c lÜnh vùc
chuyªn m«n kh¸c nhau.
Lµm viÖc víi Matlab rÊt ®¬n gi¶n vµ thuËn tiÖn. Cã hai c¸ch lµm viÖc: lµm viÖc víi cöa
sæ lÖnh vµ lµm viÖc víi c¸c M-file. Khi lµm viÖc víi cöa sæ lÖnh, sau dÊu nh¾c (prompt) cña
Matlab “>>” ng−êi sö dông ®−a vµo c¸c c«ng thøc, c¸c hµm, c¸c lÖnh ®Ó tÝnh to¸n vµ Matlab
tr¶ lêi ngay sau mçi lÖnh. C¸ch lµm viÖc nµy gièng nh− tÝnh to¸n trªn trang giÊy, cho phÐp
ng−êi sö dông thö c¸c phÐp tÝnh c¸c thuËt to¸n rÊt thuËn tiÖn.
Lµm viÖc víi M-file: Matlab cho phÐp lËp tr×nh, ch−¬ng tr×nh lµ mét d·y lÖnh thùc hiÖn
mét sè nhiÖm vô tÝnh to¸n nhÊt ®Þnh. Ch−¬ng tr×nh ®−îc ghi thµnh file cã phÇn më réng lµ .m
víi tªn file (filename) tù ®Æt ®−îc gäi lµ M.file. §Ó ch¹y ch−¬ng tr×nh, sau dÊu nh¾c “>>” ta

Gi¸o tr×nh M« h×nh ho¸
Bé m«n Tù ®éng ho¸ http://www.ebook.edu.vn Khoa §iÖn
73
gâ vµo tªn file kh«ng cã phÇn më réng. Lóc nµy Matlab coi M-file nh− command file hay
script file vµ ch−¬ng tr×nh ®−îc thùc hiÖn theo tuÇn tù c¸c lÖnh ®· x¸c ®Þnh. B×nh th−êng khi
ch¹y ch−¬ng tr×nh c¸c lÖnh kh«ng hiÓn thÞ trªn mµn h×nh.
Matlab cã c¸c lo¹i lÖnh c¬ b¶n sau:
+ C¸c lÖnh chung vµ gì rèi
+ C¸c lÖnh lµm viÖc víi ma trËn vµ vect¬
+ C¸c lÖnh lµm viÖc víi c¸c hµm vµ ®a thøc
+ C¸c lÖnh ®å ho¹ 2D vµ 3D
+ C¸c lÖnh xö lý tÝn hiÖu vµ ph©n tÝch hÖ thèng
Ng÷ ph¸p lËp tr×nh cña Matlab rÊt ®¬n gi¶n vµ gÇn gièng c¸c ng«n ng÷ bËc cao kh¸c nh−
C, Basic vµ Fortran. Sau ®©y lµ mét sè lÖnh, hµm vµ cÊu tróc th−êng dïng trong lËp tr×nh.
+ C¸c phÐp to¸n quan hÖ:
< nhá h¬n <= nhá h¬n hoÆc b»ng = = b»ng
> lín h¬n >= lín h¬n hoÆc b»ng
∼
= kh«ng b»ng
+ C¸c phÐp to¸n logic: AND, OR vµ NOT
+ C¸c lÖnh ®iÒu kiÖn vµ vßng lÆp: for, while vµ if-else
LÖnh vßng lÆp for cã có ph¸p nh− sau:
For biÕn = biÓu thøc, lÖnh, lÖnh, ..., end
C¸c vßng for ... end cã thÓ lång vµo nhau
LÖnh vßng lÆp while cã có ph¸p nh− sau:
While biÓu thøc, lÖnh, lÖnh, ..., end
LÖnh rÏ nh¸nh cã ®iÒu kiÖn if ... else ... end. Cã ba d¹ng cÊu tróc rÏ nh¸nh vµ cã có ph¸p
nh− sau:
If biÓu thøc, lÖnh, lÖnh, ... end
If biÓu thøc, lÖnh, lÖnh, ... else lÖnh, lÖnh, ... end
If biÓu thøc 1, lÖnh, lÖnh, ... elseif biÓu thøc 2, lÖnh, lÖnh, ... end
+ M file: Script file vµ Function file
Hai d¹ng cña M.file lµ Script file vµ Function file.
Script file chøa ch−¬ng tr×nh gåm mét sè lÖnh ®Ó thùc hiÖn nhiÖm vô tÝnh to¸n ®· ®Þnh.
Khi ch¹y ch−¬ng tr×nh chØ cÇn gâ tªn file (filename) kh«ng cã ®u«i më réng .m.
Function file lµ lÖnh më réng cña Matlab, tÊt c¶ c¸c lÖnh trong c¸c Toolbox ®Òu cã d¹ng
function. Function cã có ph¸p nh− sau:
Function [biÕn ra 1, biÕn ra 2, …] = filename (biÕn vµo 1, biÕn vµo 2 …]

Gi¸o tr×nh M« h×nh ho¸
Bé m«n Tù ®éng ho¸ http://www.ebook.edu.vn Khoa §iÖn
74
Kh¸c nhau c¬ b¶n gi÷a Script vµ Function lµ Function chØ dïng biÕn riªng cña m×nh vµ
kh«ng t¸c ®éng tíi toµn bé ch−¬ng tr×nh. Dßng ®Çu tiªn cña Function file ph¶i cã ch÷
“Function”
6.2.2- Simulink
Simulink ®−îc coi lµ phÇn më réng cña Matlab. Simulink ®−îc dïng ®Ó m« pháng c¸c
hÖ ®éng häc c¸c hÖ tuyÕn tÝnh, phi tuyÕn, c¸c m« h×nh trong thêi gian liªn tôc hoÆc gi¸n ®o¹n.
§Æc ®iÓm næi bËt cña Simulink lËp tr×nh ë d¹ng s¬ ®å cÊu tróc, sö dông c¸c ®èi t−îng ®å häa
(Graphic Programming). Lo¹i lËp tr×nh h−íng ®èi t−îng nµy cã −u ®iÓm lµ tÝnh trùc quan, dÔ
viÕt vµ h×nh dung nhÊt lµ ®èi víi nh÷ng ng−êi lËp tr×nh kh«ng chuyªn nghiÖp. Simulink cung
cÊp giao diÖn ®å häa ®Ó x©y dùng m« h×nh ë d¹ng s¬ ®å khèi. B»ng thao t¸c “nhÊn vµ kÐo
chuét” ng−êi sö dông cã thÓ kÐo c¸c khèi chuÈn trong th− viÖn cña Simulink ra vïng lµm viÖc
cña m×nh ®Ó x©y dùng m« h×nh m« pháng.
Ng−êi sö dông cã thÓ thay ®æi hoÆc t¹o ra khèi riªng cña m×nh vµ bæ sung vµo th− viÖn
nh− lµ mét khèi øng dông míi. Simulink cã c¸c th− viÖn sau: th− viÖn c¸c khèi nguån tÝn hiÖu
(Sources), th− viÖn c¸c khèi xuÊt vµ hiÓn thÞ d÷ liÖu (Sink), th− viÖn c¸c phÇn tö tuyÕn tÝnh
(Linear), th− viÖn c¸c phÇn tö phi tuyÕn (Nonlinearr), th− viÖn c¸c khèi gi¸n ®o¹n (Discrete),
th− viÖn c¸c khèi nèi (Connections), th− viÖn c¸c khèi phô (Extras).
M« h×nh trong Simulink ®−îc x©y dùng theo kiÓu ph©n cÊp ®iÒu ®ã cho phÐp ng−êi sö
dông cã thÓ x©y dùng m« h×nh theo h−íng tõ d−íi lªn trªn hoÆc tõ trªn xuèng d−íi. Dïng
chøc n¨ng t¹o “mÆt n¹” (Mask) cña Simulink ng−êi ta cã thÓ x©y dùng c¸c hÖ con (ph©n hÖ)
b»ng c¸ch t¹o hép tho¹i vµ biÓu t−îng míi cho khèi. øng dông quan träng cña mÆt n¹ lµ t¹o ra
hép tho¹i ®Ó tiÕp nhËn th«ng sè cña c¸c khèi trong hÖ con, ngoµi ra mÆt n¹ cßn lµm cho m«
h×nh ®¬n gi¶n, râ rµng vµ b¶o vÖ néi dung cña khèi khái sù x©m nhËp cña ng−êi l¹. Khi thùc
hiÖn m« pháng b»ng Simulink ng−êi sö dông võa cã thÓ quan s¸t hÖ thèng ë møc tæng quan,
võa cã thÓ xem xÐt chi tiÕt ho¹t ®éng cña tõng khèi b»ng c¸ch nh¸y ®óp chuét vµo khèi ®ã.
C¸c khèi Scope vµ khèi hiÓn thÞ kh¸c (lÊy trong th− viÖn Sinks) cho phÐp ng−êi sö dông quan
s¸t kÕt qu¶ trong khi ®ang ch¹y m« pháng. H¬n n÷a ng−êi sö dông cßn cã thÓ trùc tiÕp thay
®æi th«ng sè trong khi ®ang ch¹y m« pháng ®Ó biÕt ®−îc ¶nh h−ëng cña c¸c th«ng sè ®ã ®èi
víi kÕt qu¶ cña m« pháng.
Simulink cã mét ®Æc tÝnh quan träng lµ khi ta x©y dùng m« h×nh d¹ng s¬ ®å khèi th×
Simulink tù ®éng t¹o ra mét M.file (function) cho m« h×nh ®ã. Hµm nµy ®−îc gäi lµ S-
function. Còng gièng nh− c¸c hµm kh¸c cña Matlab, hµm S-function lµ mét file më, ng−êi sö
dông cã thÓ truy nhËp vµo vµ so¹n th¶o. LÖnh ®Ó më mét S-function lµ sfun. §iÒu ®ã cã nghÜa
lµ cã thÓ so¹n th¶o ch−¬ng tr×nh m« pháng mµ kh«ng cÇn th«ng qua giao diÖn ®å thÞ. MÆt
kh¸c, Simulink cho phÐp chuyÓn ®æi tõ S-function sang s¬ ®å khèi vµ ng−îc l¹i. Nh− vËy rÊt
thuËn tiÖn cho ng−êi sö dông.

Gi¸o tr×nh M« h×nh ho¸
Bé m«n Tù ®éng ho¸ http://www.ebook.edu.vn Khoa §iÖn
75
6.3- øng dông Matlab - Simulink ®Ó ph©n tÝch vµ kh¶o s¸t hÖ thèng ®iÒu
khiÓn tù ®éng trong miÒn thêi gian vµ tÇn sè
Trong phÇn nµy sÏ tr×nh bµy mét sè lÖnh cña Matlab dïng ®Ó ph©n tÝch c¸c hÖ ®iÒu khiÓn
kinh ®iÓn, c¸c lÖnh nµy còng cã trong Control System Toolbox cña Matlab.
Cho hµm truyÒn cña mét hÖ ®iÒu khiÓn tù ®éng G(s) = B(s)/A(s), trong ®ã B(s) - biÓu
thøc tö sè (numerator) vµ A(s) - biÓu thøc mÉu sè (denominator). Chóng ta quan t©m ®¸p øng
cña hÖ thèng trong miÒn thêi gian còng nh− trong miÒn tÇn sè ®èi víi c¸c tÝn hiÖu vµo kh¸c
nhau nh− hµm xung, hµm b−íc nh¶y, hµm ®iÒu hßa v.v…
a). MiÒn thêi gian
ChÊt l−îng cña c¸c hÖ thèng tù ®éng ®iÒu khiÓn th−êng ®−îc ®¸nh gi¸ dùa trªn ®¸p øng
thêi gian øng víi c¸c tÝn hiÖu vµo kh¸c nhau. V× vËy ®¸p øng thêi gian cã vai trß quan träng
trong viÖc ph©n tÝch vµ tæng hîp hÖ thèng.
§Ó t×m ®¸p øng cña hÖ G(s) khi tÝn hiÖu vµo lµ hµm bËc thang ®¬n vÞ 1(t) Matlab dïng
lÖnh step. Có ph¸p nh− sau:
>> y = step(num, den, t)
Tr−íc tiªn ph¶i x¸c ®Þnh trôc thêi gian t lµ mét vect¬. Gi¸ trÞ ®¸p øng ra còng lµ mét
vect¬ cã cïng kÝch th−íc víi vect¬ t. VÝ dô vÏ ®−êng cong ®¸p øng cña hµm 1(t) trong qu·ng
thêi gian tõ t = 0 ®Õn t = 10 sec, mçi b−íc tÝnh lµ 0,1 sec cña hÖ thèng cã hµm truyÒn ®¹t sau
®©y:
2
10
G(s) s2s10
=++
C¸c dßng lÖnh sau ®©y sÏ vÏ ®−êng cong ®¸p øng nãi trªn:
>>num = 10; den = [1 2 10];
>>t = [0:0.1:10]; y = step (num, den, t); plot(t,y) ;
LÖnh impulse sÏ cho ta ®¸p øng ra khi tÝn hiÖu ®Çu vµo lµ xung. Có ph¸p nh− sau :
>>y = impulse (num, den, t);
Trong tr−êng hîp ®Çu vµo lµ hµm bÊt kú th× dïng lÖnh lsim. Có ph¸p nh− sau :
>>y = lsim (num, den, u, t);
Trong ®ã u lµ vect¬ tÝn hiÖu ®Çu vµo. VÝ dô ®Çu vµo lµ hµm dèc ramp, có ph¸p nh− sau :
>> ramp = t ; y = lsim (num, den, ramp, t) ;
NÕu hµm vµo lµ hµm rand(m,n) sÏ sinh ra ma trËn m×n sè ngÉu nhiªn ph©n bè ®Òu trong
kho¶ng (0,1), có ph¸p nh− sau :
>>noise = rand(m,n) ; y = lsim (num, den, rand, t) ;

Gi¸o tr×nh M« h×nh ho¸
Bé m«n Tù ®éng ho¸ http://www.ebook.edu.vn Khoa §iÖn
76
§¸p øng ®Çu ra khi ®Çu vµo lµ hµm 1(t), khi ®iÒu kiÖn ®Çu b»ng kh«ng, ®−îc gäi lµ ®Æc
tÝnh qu¸ ®é h(t) cña hÖ thèng. Tõ ®Æc tÝnh qu¸ ®é cã thÓ x¸c ®Þnh ®−îc c¸c chØ tiªu chÊt l−îng
cña hÖ thèng sau :
- §é qu¸ ®iÒu chØnh (Percent Overshoot)
max
hh
% 100%
h
∞
∞
−
δ=
- Thêi gian cùc ®¹i tmax (Peak time) lµ qu·ng thêi gian ®Ó ®−êng qu¸ ®é ®¹t gi¸ trÞ
cùc ®¹i hmax
- Thêi gian t¨ng tr (Rise time) lµ qu·ng thêi gian tõ khi ®−êng qu¸ ®é ®¹t 10%h∞
®Õn 90%h∞
- Thêi gian qu¸ ®é (Settling time) lµ qu·ng thêi gian tõ t = 0 ®Õn khi ®−êng h(t) ®i
vµo vïng ±5%h∞.
Cã thÓ lËp ch−¬ng tr×nh ®Ó tÝnh c¸c chØ tiªu chÊt l−îng cña hÖ thèng d−íi d¹ng mét M-
files.
VÝ dô 1 d−íi ®©y sÏ minh häa ®¸p øng cña hÖ thèng víi hµm truyÒn =++
2
5
G(s) s3s20
trong thêi gian tõ 0 ®Õn 10 gi©y, thêi gian lÊy mÉu lµ 0,1s øng víi 3 tr−êng hîp: (1) tÝn hiÖu
®Çu vµo lµ b−íc nh¶y, (2) tÝn hiÖu ®Çu vµo lµ xung hoÆc (3) tÝn hiÖu ®Çu vµo lµ ngÉu nhiªn.
Ch−¬ng tr×nh viÕt d−íi d¹ng Scripts
% Dap ung cua he thong voi cac tin hieu dau vao khac nhau
% Ten chuong trinh: gtmh1.m
num=5; den=[1, 3, 20];
t=[1: 0.1: 10];
disp(‘Bam phim 1 neu tin hieu vao la xung’);
disp(‘Bam phim 2 neu tin hieu vao la buoc nhay’);
disp(‘Bam phim 3 neu tin hieu vao la tin hieu ngau nhien’);
a=input(‘Ban chon dang tin hieu nao:’);
switch a
case 1
y= impulse(num,den,t);
plot(t,y,‘m’) ;
title(‘Dap ung he thong voi tin hieu xung’) ;
case 2
y=step(num,den,t) ;

