Author
le-cong
View
93
Download
2
Embed Size (px)
TRNG I HC BCH KHOA H NIVIN IN === ===
BN BO COTM HIU V PHN MM MATLAB VNG DNG CA MATLAB TRONG GII MCH IN
SINH VIN THC HIN:1. Nguyn nh Qun MSSV: 201222782. Phm Vn Sn MSSV: 20122361GING VIN HNG DN: ng Vn M
MC LC1.Tng quan v Matlab.31.1.Khi nim Matlab.31.2.Tng quan v cu trc d liu ca Matlab.31.3.H thng MATLAB.41.4.Lm quen vi MATLAB.52.Cch s dng MATLAB72.1.Mt s lnh,bin thng s dng trong MATLAB72.2.S phc trong MATLAB.82.3.S dng ca s Command Window.102.4.S dng ca s M-file.122.5. ha trong MATLAB.203.S dng M-file ca MATLAB trong gii bi ton mch in.273.1.Gii mch in trng thi xc lp.273.2.Gii bi ton mch in qu trnh qu .30
1. Tng quan v Matlab.1.1. Khi nim Matlab. Matlab l vit tt t "MATrix LABoratory", cCleve Molerpht minh vo cuithp nin 1970 l mt ngn ng lp trnh thc hnh bc cao c s dng giicc bi ton v k thut c thit k bi cng tyMathWorks. Matlab tch hp c vic tnh ton, th hin kt qu, chophp lp trnh, giao din lm vic rt d dng cho ngi s dng. D liu cng vith vin c lp trnh sn cho php ngi s dng c th c c nhng ng dngsau y: -S dng cc hm c sn trong th vin, cc php tnh ton hc thng thng. -Cho php lp trnh to ra nhng ng dng mi. -Cho php m phng cc m hnh thc t. -Phn tch, kho st v hin th d liu. -Vi phn mm ho cc mnh. -Cho php pht trin, giao tip vi mt s phn mm khc nh C++, Fortran.1.2. Tng quan v cu trc d liu ca Matlab. Matlab l mt h thng tng giao, cc phn t d liu l mt mng ( mng ny khng i hi v kch thc ). Chng cho php gii quyt cc vn lin quan n lp trnh bng my tnh, c bit s dng cc php tnh v ma trn hay vector v c th s dng ngn ng C hc Fortran lp trnh ri thc hin ng dng lp trnh bng cc cu lnh t MATLAB. MATLAB c vit nhm truy cp vo phn mm ma trn mt cch d dng, phn mm ny c pht trin bi cc cng trnh Linpack v Eispack. Ngy nay MATLAB dc pht trin bi lapack v Artpack to nn mt ngh thut phn mm cho ma trn.a. D liu. D liu ca MATLAB th hin di dng ma trn v c cc kiu d liu nh: kiu n single, kiu double ( mt kiu d liu thng dng dng trong MATLAB ), kiu Sparse, kiu int8, uint8, int16, kiu char, kiu cell....b. ng dng MATLAB to thun li cho vic gii nhng bi ton phc tp, MATLAB c dng tnh ton nghin cu ra cc sn phm tt nht trong sn xut. MATLAB cho php cc bn ng dng cc k thut phn tch, thit k, m phng cc m hnh....1.3. H thng MATLAB. H thng MATLAB c chia lm 5 phn: Mi trng pht trin: y l ni t cc thanh cng c, cc phng tin gip chng ta s dng cc lnh v cc file. Bao gm: Desktop, Command Window, Command History, Browsers for viewinghelp. Th vin, cc hm ton hc:Bao gm cc cu trc nh tnh tng, sin, cosin,...cc php tnh n gin cho n cc php tnh phc tp nh tnh ma trn nghch o, tr ring, chuyn i, laplace.... Ngn ng MATLAB: l ngn ng v ma trn v mng, cc dng lnh, cc hm, cc cu trc d liu vo, c th lp trnh hng i tng. ha MATLAB:Bao gm cc cu lnh th hin ha trong mi trng 2D v 3D, to cc nh chuyn ng, cung cp cc hnh nh tng tc gia ngi s dng v my tnh. Giao tip vi cc ngn ng khc:MATLAB cho php tng tc vi cc ngn ng khc nh C,fortran...1.4. Lm quen vi MATLAB. Giao din lm vic ca MATLAB: Hinh 1: giao din ca MATLAB. Ca s cha cc cng c ( giao din gia ngi v my ) cn thit cho vic qun l cc file, cc bin, cc ca s lnh, c th coi desktop l cc panel gm cc , vng, qun l v tc dng ca tng ca s nh c qun l bi desktop. + Ca s lnh Command Window: y l ca s chnh ca MATLAB. Ti y ta thc hin tt c cc cng vic nhp d liu v xut kt qu tnh ton. Du >> bo hiu chng trnh sn sng hot ng, kt thc mi ln nhp bng du ENTER, mun ng mn hnh MATLAB c th s dng lnh quit, exit hoc t hp phm Ctrl+q. + Ca s son tho Editor: Nh chng trnh son tho MATLAB ta c th vit mi hay sa i cc Scripts v cc hm. Bn cnh chc nng son tho, cn c cc chc nng thng thng khc m mt chng trnh son tho cn phi c, phc v x l tng bc ni dung chng trnh, hay pht hin li.
Hinh 2: Ca s Command history + Ca s qu kh Command History: tt c cc lnh trong Command Window c lu tr v hin th ti y. C th lp li lnh c bng cch nhy chut kp vo lnh . Cng c th ct, sao hay xa c nhm lnh hoc tng lnh ring r. + Ca s mi trng cng tc Wordspace Browser: Tt c cc bin, hm tn ti trong mi trng cng tc u c hin th trong mi trng ny vi y thng tin nh: tn, loi bin/hm, kch c tnh theo byte v loi d liu. Ngoi ra cn c th ct vo b Hinh 3: Ca s Wordspacenh ton b d liu hoc s dng chc nng Array Editor (son tho mng) thay i cc bin. + Ca s Launch Pad: Ca s ny cho php ngi dng truy cp nhanh vo ca s MATLAB, phn Help hoc phn Online Documents, m Demos. + Ca s th mc hin ti Current Directory Browser: Nh ca s ny ngi s dng c th nhn bit, chuyn i th mc hin ti ca mi trng cng tc, m File, to th mc mi.2. S dng MATLAB2.1. Mt s lnh,bin thng s dng trong MATLAB + Mt s lnh vi bin: Clear: lnh xa tt c cc bin c nh ngha trc trong chng trnh Clear bin 1, bin 2...: xa cc bin c lit k trong cu lnh. Who: hin th cc bin c nh ngha trong chng trnh. Whos: hin th cc bin c nh ngha trong chng trnh cng vi thng s v bin. Size (tn bin c nh ngha): cho bit kch c ca bin di dng ma trn vi phn t th nht l s hng ca ma trn, phn t th hai l s ct ca ma trn. Save: lu gi cc bin vo mt File di dng Matlab.mat. Load: Ti cc bin c lu gi trong mt File a vo vng lm vic.+ Mt s bin c nh ngha trc: ans: t ng gn tn ny cho kt qu ca php tnh m ta khng t tn. pi: realmax: a ra gi tr s ln nht m my tnh c th tnh ton c. realmin: a ra gi tr s nh nht m my tnh c th tnh ton c.2.2. S phc trong MATLAB.+ Biu thc biu din s phc: Tn = phn_thc + phn_o*iHoc: Tn = phn_thc + phn_o*j+ Cc hm c bit: real(x): tm phn thc ca s phc x. imag(x): tm phn o ca s phc x. conj(x): tm s phc lin hp ca s phc x. abs(x): tm gi tr tuyt i ca s phc x. angle(x): gc to bi gia trc thc v trc o cu s phc x.V d: >>x=3.0000+4.0000ix= 3.0000+4.0000i>>thuc=real(x);thuc= 3.0000>>ao=imag(x);ao= 4.0000>>lienhop=conj(x);lienhop= 3.0000-4.0000j>>dolon=abs(x);dolon= 5.0000>>goc=angle(x);goc= 36.8699
2.3. S dng ca s Command Window. Do d liu ca MATLAB di dng ma trn nn cc bin dng trong MATLAB cng dng ma trn, vic t tn bin khng c t mt cch ty tin m phi t theo mt quy nh.Nhp cc bin, ma trn, cc lnh lit k trc tip. Trng hp khng s dng bin lu kt qu, bin ans t ng c gn: >>6+7 ans= 13 Nhp bin v s dng lu bin a=3 nh sau:
>>a=3 a= 3Bn c th s dng bin ny cho cc php ton tip theo:>>b=a*3b= 9Nhp trc tip s liu ma trn:>>A=[1 2;3 4]A=1 2 3 4MATLAB c hng trm hm c nh ngha sn nh: sin , cos....V d:>>x=pi>>sin(x)ans= 1.2246e-016Ch : th t u tin cc php ton: du ngoc() trong biu thc -> ton t ^ (thc hin t tri sang phi) -> ton t nhn * , chia / (c cng mc u tin thc hin t tri sang phi) -> php cng + , php tr - V d: cho 3 s a=1, b=-2, c=1, gii phng trnh bc 2 vi cc h s :>>a=1;>>b=-2;>>c=1;>>delta=b^2-4*a*c;>>x1=(-b-sqrt(delta))/(2*a);x1= 1>>x2=(-b+sqrt(delta))/(2*a);x2= 1+ Lu ton b cc bin trong Wordspace vo file:>>save(C:\matlabR12\work\ten_file,-ASCII)+ Lu hai bin x v y vo file>>save(C:\matlabR12\work\ten_file,x,y,-ASCII)+ Lu v ly d liu:>> load ('C:\matlabR12\work\ten_file', '-ASCII ')V d: >>a=3; >>b=4; >>save('C:\matlabR12\work\save','a','b','-ASCII') %lu 2 bin a v b>>load('C:\matlabR12\work\save','-ASCII') %khi phc d liu2.4. S dng ca s M-file.Cch vo M-file: File/New/M-file, mi trng son tho Editor/ Debugger s xut hin.Nhp trc tip cc bin:a=2;b=5;c=-3;x1=(-b-sqrt(b^2-4*a*c))/(2*a);x2=(-b+sqrt(b^2-4*a*c))/(2*a);Khi vit xong chng trnh, ghi ni dung vi tn Vidu.m ri thot ra khi ca s son tho tr v ca s lnh. Ti ca s ny g tn Vidu.m vo sau tn hiu lnh >>
>>Vidu.m >>x1= -3.0000>>x2= 0.5000Cc file*.m c 2 loi: Script file: l mt chng trnh con khng c gi tr tr v. Function file: l mt chng trnh con c gi tr tr v.a. Script file thay i cc gi tr a, b, c ta sa li chng trnh Vidu.m trn bng cc dng nhc nhp a, b, c vi cc ln chy chng trnh khc nhau.S dng lnh inputV d: Gii phng trnh bc 2a=input(nhap a=);b=input(nhap b=);
Hinh 4: vit chng trnh gii pt bc 2 vi Script file (1)c=input(nhap c=);x1=(-b-sqrt(b^2-4*a*c))/(2*a);x2=(-b+sqrt(b^2-4*a*c))/(2*a);Lu ni dung vi tn vidu1.m v thot khi ca s son tho tr v ca s lnh.>>vidu1.m
Hinh 5: vit chng trnh gii pt bc 2 vi Script file (2)Ca s lnh xut hin: nhap a= 2 %nhp h s anhap b=3 %nhp h s bnhp c=2 %nhp h s c>>x1x1= -0.7500-0.6614i>>x2x2= -0.7500+0.6614i b. Function file.Mi mt file hm ca MATLAB c khai bo nh sau:Function [tn kt qu] = tenham(danh sch cc bin).Phn thn ca chng trnh trong hm l cc lnh ca MATLAB c thc hin tnh ton cc gi tr cc i lng c nu phn tn kt qu theo cc bin c nu trong phn danh sch cc bin. Cc bin ch c tc dng ni trong cc hm va c khai bo. Tn ca cc bin c cch nhau bng du phy (,).V d 1: Thnh lp hm i t sang radian.function rad = change(do)rad = do*pi/180; %i sang radianFile.m thng ly tn l tn hm, ta t tn file va lp l change.m.Nu mun i 45o sang rad ta ch cn g>>rad=change(45)rad= 0.7854V d 2: to hm gii phng trnh bc 2 vi tn hm l bachai.m.function [x1,x2] = bachai(a,b,c)
Hinh 6: hm gii ptb2 vit trong M-filedelta=b^2-4*a*c;x1=(-b-sqrt(delta))/(2*a);x2=(-b+sqrt(delta))/(2*a);Ra ca s lnh v g:>>[x1,x2] = bachai(4,6,-7)x1=
Hinh 7: thc hin chng trnh bachai.m trong command window 0.7707x2= -2.2707Ch : Cu trc cu lnh iu kin v vng lp.+ Cu trc cu lnh iu kin. Lnh if n.C php ca lnh if n l: ifNhm lnh;EndQuy tc: Nu biu thc logic ng th nhm lnh c thc hin, nu biu thc logic sai chng trnh chuyn n lnh End. Cu trc lnh if lng.C php ca cu trc lnh if lng:ifNhm lnh 1;ifNhm lnh 2;EndNhm lnh 3;End Nhm lnh 4;Quy tc: Nu biu thc logic 1 ng th: Thc hin nhm lnh 1 Kim tra biu thc logic 2 + Nu ng thc hin nhm lnh 2. + Nu sai b qua nhm lnh 2. Thc hin nhm lnh 3Nu biu thc logic 1 sai th: Thc hin nhm lnh 4. Lnh else.C php ca lnh else:ifNhm lnh A;elseNhm lnh B;EndQuy tc: Nu biu thc logic ng th nhm lnh A c thc hin, nu biu thc logic sai th thc hin nhm lnh B. Cu iu kin v lnh Break.C php: if ,break,EndQuy tc: Thot khi vng lp nu iu kin trong biu thc logic ng ngc li s thc hin tip bn trong vng lp
Hinh 8:gii v bin lun ptb2 bng cu lnh iu kinV d: gii ptb2, bin lun s nghim ca pta=input(' vao a=')b=input(' vao b=')c=input(' vao c=')d=b^2-4*a*cif d < 0disp(' pt vo nghiem')
Hinh 9: thc hin chng trnh gii v bin lun ptb2elseif d==0disp (' pt co nghiem kep')x12=-b/2*aelsedisp (' pt co 2 nghiem phan biet')x1=(-b+sqrt(d))/2*ax2=(-b-sqrt(d))/2*aend+ Cu trc vng lp. Vng lp for.For ch s = biu thcNhm lnh A;EndQuy tc: Ch s vng lp phi l bin. Nu ma trn biu thc m rng th khng thc hin vng lp. Nu biu thc l mt i lng v hng th vng lp thc hin 1 ln v ch nhn gi tr ca i lng v hng. Khi kt thc vng lp,ch s ch nhn gi tr cui cng C th dng ton t: for i = ch s u:gia s:ch s cui.V d: vng lp forn=input ('vao n=')for k=ns=1;s=s+kendlu vo vi tn: lenhfor.G vo ca s Command Window>>lenhfor n=3 %nhp nn= 3s= 4 (kt qu a ra mn hnh ca s) Vng lp while.C php:WhileNhm lnh A;EndQuy tc: nu biu thc ng th thc hin nhm lnh A, khi thc hin xong kim tra iu kin nu iu kin vn ng thc hin tip nhm lnh A, nu sai vng lp kt thc.+ Symbolic trong M-file.V d: syms x %khai bo bin x l bin symbolic.f=3*x^2+2*x+5 %hm f l hm symbolicbin symbolic l mt bin c th thay i c.hm cha bin symbolic l hm s thay i theo bin suymbolic.2.5. ha trong MATLAB.2.5.1. V th ng im trong MATLAB. v ha trong MATLAB chng ta s dng lnh plotplot(Y)plot(X1,Y1,)h=plot()M t: hm plot c nhiu cch dng nh chng ta thy nh trn.plot(y): hm ny th hin biu din cc ct ca y theo cc ch s tng ng ca chng, nu y l ma trn cc s thc, nu y l cc s phc th plot(y) tng ng vi plot(real(y),image(y)).V d nh sau:A=[ 1 2 3 4 5 6 7 8 9 ]
Hinh 10: V d th ng vi ma trn A=[1 2 3;4 5 6;7 8 9]plot(A) s ra kt qu:
2.5.2. V cc ng, cc im trong khng gian.Dng hm plot3(x,y,z) v cc ng, cc im trong khng gian.Ch lnh View(a,b) quan st gc nhn ca th, trong a l gc tnh theo chiu ngc chiu kim ng h t pha m ca trc y, cn b l gc nhn tnh bng xung mt phng (x,y). Nu khng s dng View, gi tr mc nh ca (a,b) l (-37.5,30).khi cho a=0, b=90 th hnh v tr v hnh v mt phng 2 chiuV d: v th x=sin(t); y=cos(t); z=t;>>plot3(sin(t),cos(t),t) th nh hnh sau:
2.5.3. Hinh 11: th plot3(sint(t),cos(t),t)V ta cc.C php: polar(theta,rho) polar(thrta,rho,Linespec)V d: polar(t,sin(2*t).*cos(2*t)) th xut hin:
Hinh 12: th polar(t,sin(2*t).*cos(2*t))Khi chuyn t h ta cc sang h ta Decart ta lm nh sau:[x,y]=pol2cart(t,sin(2*t).cos(2*t))Sau dng lnh plot(x,y).2.5.4. th ct.C php:bar(Y)bar(x,Y)
Hinh 13: th bar(x,exp(-x.*x))bar(x,y,z)V d:x = -2.9:0.2:2.9; %x chy t -2.9 n 2.9 v khong cch cc ct l 0.2bar(x,exp(-x.*x)) th nh sau:
2.5.5. th hnh trn.Cu trc: pie(x)Hm ny v th trn vi cc phn c xc nh bi phn trm cc gi tr trong vect x.V d: x=[ 1 2 3 4 ]Phn thnh 4 khoanh, mi khoanh tng ng vi phn trm ca cc phn t trong x.
Hinh 14: th hnh trn ca vecto x=[1 2 3 4] th: hnh 14.
2.5.6. Lnh plot3(x,y,z) v cch to li.mesh(z) l lnh to li.V d:>>a=linspace(0,10,100);>> b=linspace(0,6,100);>> [x,y]=meshgrid(a,b);>> z=sin(x).*cos(y);>> mesh(z)
Hinh 15: th 3D v v li th: hnh 15
2.5.7. M phng h thng iu khin.V d: h thng c hm truyn:W(s)=(s+2)/(s2+3s+4); Hinh 16: M phng hm qu M phng h thng bng hm qu .C php:>>W=tf(t s,mu s); >>step(W)>>W=tf([1 2],[1 3 4]);>>step(W) th nh hnh v:
M phng h thng bng hm qu xung.C php:>>W=tf(t s,mu s);>>impulse(W)Xt v d trn:>>W=tf([1 2],[1 3 4]);
Hinh 17: M phng h thng bng hm qu xung>>impulse(W)
M phng h thng bng hm c tnh tn bin pha.
Hinh 18: M phng h thng bng hm c tnh tn bin pha.C php:>>W=tf(t s,mu s);>>nyquist(W)Xt v d trn:>>W=tf([1 2],[1 3 4]);>>nyquist(W)
M phng h thng bng cc c tnh bin tn s v pha tn s.C php:>>W=tf(t s,mu s);>>bode(W)Xt v d trn:>>W=tf([1 2],[1 3 4]);>>bode(W)
Hinh 19: th bode m phng h thng th bode nh hnh v:
2.5.8. Cch v mt s hm c bit. V cc hm c vit sn.S dng lnh fplot(tn_ham,[khong cch v])V d:v th hm s f=4x2+6x-7 trn on [-6;6]function y = bachai1(x)a = 4;b = 6; c = -7;y =a*x^2 + 6*x + c;
Hinh 20: th hm s bc 2>>fplot(bachai1, [-6,6])
th cho cc bin, hm symbolic.S dng c php:ezplot(y,[xo xm]) : v y theo bin x thuc khong [xo xm]v d:>>syms x y;>>y=sym(x^2);>>ezplot(y,[1 10]),grid on
Hinh 21: th ca hm y=x2 vi x,y l cc bin symbolic Ch : mun v th 3D dng lnh ezplot3.
Ch : lnh grid on dng chia cho th.
3. S dng M-file ca MATLAB trong gii bi ton mch in.3.1. Gii mch in trng thi xc lp.B1. Xc nhn gii mch in bng dng vng hay dng nhnh.B2. Vit ma trn th hin quan h gia cc dng vng hay dng nhnh.B3. Xc nh cc thng s ca cc vng hay cc nhnh nh: in tr, ngun dng, ngun p, h cm.B4. a ra cc biu thc xc nh dng in ca tng vng, tng nhnh v hiu in th gia cc nh.B5. V th ca dng in, in p (nu bi yu cu).V d1: Cho mch in nh hnh v: Tnh cc dng in nhnh bng phng php dng vng.Bi lm: Khi ng Matlab ri vo File/New/M-file, mi trng son tho Editor/ Debugger s xut hin: g trc tip cc lnh sau ri lu li vi tn vidu1.m:B=[1 0 1;0 1 1] % Ma tran dong vongj=sqrt(-1);E1=input('nhap E1=');E2=input('nhap E2=');Enh=[E1;E2;0]J3=input('nhap J3=');Jnh=[0;0;J3] Ca s EditorZ1=input('nhap Z1=');Z2=input('nhap Z2=');Z3=input('nhap Z3=');Z12=input('nhap Z12='); Z21=Z12;Z23=input('nhap Z23='); Z32=Z23;Z13=input('nhap Z13='); Z31=Z13;Znh=[Z1 Z12 Z13;Z21 Z2 Z23;Z31 Z32 Z3]Zv=B*Znh*B'Ev=B*(Enh-Znh*Jnh)Iv=inv(Zv)*Ev % dong vong, inv la phep tinh nghich daoInh=B'*Iv % dong nhanhUnh=Znh*(Inh+Jnh)-Enh % dien ap nhanh Sau khi lu li, quay tr li ca s Current Directory kch tri chut vo tn vidu1.m ri kch vo Run. Ti ca s Command Window s cho ta nhp cc gi tr ca cc phn t trong mch. Vi s liu: E1=100, E2=200/_30, J3=10/_60, Z1=11+j41, Z2=21+j51, Z3=31+j61, Z12=Z21=0, Z23=Z32=-j*0.5*sqrt(51*61), Z13=Z31=-j*0.75*sqrt(41*61) kt qu s hin ra: Kt qu trn mn hnh
3.2. Gii bi ton mch in qu trnh qu .S dng phng php ton t Laplace gii bi ton qu : L=laplace(F): bin i Laplace ca hm F vi bin mc nh t v n cho ta mt hm ca s L=laplace(F,t): L l hm ca t thay th cho bin mc nhin s. L=laplace(F,w,z): L l hm ca z v F l hm ca w v n thay th cho bin symbolic mc nhin s v t tng ng. F=ilaplace(L): Bin i Laplace ngc vi hm symbolic L vi bin mc nhin c lp s, n cho ta mt hm ca t. F=ilaplace(L,y): F l hm ca y thay th cho bin mc nhin t. F=ilaplace(L,y,x): F l hm ca x, L l hm ca y,n thay th cho bin symbolic mc nhin t v s.V d: Cho mch in nh hnh v:E=120sint10t V, J=10A, R1=10, R2=20, L=1H, C=1mF. Khi kha v tr 1, mch trng thi xc lp. Ti thi im t=0 kha K chuyn t 1 sang 2. Tm dng in qu trn cun dy? - trng thi xc lp: iL(-0)=J=10A; uC(-0)=R2J=200V. - trng thi 2: Ton t mch in nh hnh vG cc dng lnh sau vo ca s m-file ri lu li vi tn vidu2.m:B=[1 1 0;0 1 1]syms s % Khai bao bien symbolicE1=1200/(s*s+100); E2=10; E3=200/s;Enh=[E1;-E2;E3]Z1=10;Z2=20+s;Z3=1000/s;Znh=[Z1 0 0;0 Z2 0;0 0 Z3]Zv=B*Znh*B'Ev=B*(Enh)Iv=inv(Zv)*EvInh=B'*Ivinh=ilaplace(Inh) Ti ca s Current Directory kch tri chut vo tn vidu2.m ri kch vo Run kt qu s hin ra trn ca s Command Window: Kt qu trn mn hnhTrng i Hc Bch Khoa H NiPage 31