0% found this document useful (0 votes)
36 views13 pages

0 Labs For System Identification Course

Uploaded by

alexmontogo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
36 views13 pages

0 Labs For System Identification Course

Uploaded by

alexmontogo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

‫داﻧﺸﮕﺎه ﺷﺎﻫﺪ‬

‫ﮔﺮوه ﻛﻨﺘﺮل‬
‫ﺳﻌﻴﺪ ﺳﻴﺪﻃﺒﺎﻳﻲ‬
‫‪System identification Labs‬‬

‫‪ :LAB 1‬ﺷﺒﻴﻪ ﺳﺎزي و ﺗﺨﻤﻴﻦ ﻏﻴﺮ ﭘﺎراﻣﺘﺮﻳﻚ ﻃﻴﻒ‬

‫ﺑﺮاي ﺳﻬﻮﻟﺖ ﺑﻬﺘﺮ اﺳﺖ ﺑﺮاي ﻫﺮ ﺳﻮال ﻳﻚ ‪ m-file‬ﺑﻨﻮﻳﺴﻴﺪ اﻳﻨﮕﻮﻧﻪ ﻛﺎر ﺷﻤﺎ در ﺻﻮرت ﻧﻴﺎز ﺑﻪ ﺗﻜﺮار آزﻣﺎﻳﺶ ﺳﺎده ﺗﺮ ﻣﻲ ﺷﻮد‪.‬‬

‫ﺟﻤﻊ آوري دﻳﺘﺎ از ﺳﻴﺴﺘﻢ ﻣﻌﻠﻮم دﻳﺠﻴﺘﺎل‪A‬‬ ‫‪1-1‬‬


‫ﺳﻴﺴﺘﻢ )‪ P(z‬و )‪ H(z‬زﻳﺮ را در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺧﺮوﺟﻲ ﺳﻴﺴﺘﻢ زﻳﺮ را ﺑﺎ ﺑﺮﻧﺎﻣﻪ ‪ MATLAB‬ﺑﺪﺳﺖ آورﻳﺪ‬
‫‪z −2‬‬ ‫‪1‬‬
‫= )‪G( z‬‬ ‫= )‪H ( z‬‬ ‫) ‪y( z ) = G ( z )u ( z ) + H ( z )e( z‬‬
‫‪1 − 0.9 z −1 + 0.5 z −2‬‬ ‫‪1 − 0.7 z −1‬‬
‫ﺳﻴﮕﻨﺎل ‪ u‬و ‪ e‬را ﻧﻮﻳﺰ ﺳﻔﻴﺪ ﺑﺎ وارﻳﺎﻧﺲ ‪ 1‬و ‪ 0.3‬در ﻧﻈﺮ ﺑﮕﻴﺮﻳﻴﺪ‪ .‬ﻃﻮل ﺳﻴﮕﻨﺎل ‪ 1024‬در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ‪.‬‬
‫;)‪u=randn(1,1024);e=sqrt(0.3)*randn(1,1024‬‬
‫راﻫﻨﻤﺎﻳﻲ‪ :‬ﺑﺮاي ﺷﺒﻴﻪ ﺳﺎزي ﺳﻴﺴﺘﻢ در ‪ MATLAB‬راه ﻫﺎي ﭼﻨﺪي وﺟﻮد دارد ﻛﻪ ﺑﻪ ﺗﻨﺎﺳﺐ اﺳﺘﻔﺎده ﻣﻲ ﮔﺮدد‪.‬‬
‫روش اوﻟﻴﻪ‬
‫;]‪b1=[0 0 1]; a1=[1 -0.9 0.5];b2=1;a2=[1 -0.7‬‬
‫‪y1=filter(b1,a1,u);v=filter(b2,a2,e);y=y1+v‬‬
‫روش دوم‪ :‬اﮔﺮ ﭘﺮﻳﻮد ﻧﻤﻮﻧﻪ ﺑﺮداري ﻣﺸﺨﺺ ﻧﻴﺴﺖ ‪ Ts=-1‬در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ‬
‫;‪Ts=-1‬‬
‫;]‪b1=[0 0 1]; a1=[1 -0.9 0.5];b2=1;a2=[1 -0.7‬‬
‫;)'‪G=tf(b1,a1, Ts,'Variable','z^-1');H=tf(b2,a2,Ts,'Variable','z^-1‬‬
‫‪y1=lsim(G,u);v=lsim(H,e);y=y1+v‬‬

‫روش ﺳﻮم‬
‫;)'‪Ts=-1; z=tf('z',Ts,'Variable','z^-1‬‬
‫)‪G=z^-2/(1-0.9*z^-1+0.5*z^-2); H=1/(1-0.7*z^-1‬‬
‫‪y1=lsim(G,u);v=lsim(H,e);y=y1+v‬‬
‫روش ﭼﻬﺎرم‪ TOOL box :‬ﺷﻨﺎﺳﺎﻳﻲ‬
‫;‪Ts=-1; e_var=0.3‬‬
‫;]‪A=1; B=[0 0 1];C=1;F=[1 -0.7 0.5]; D=[1 -0.7‬‬
‫;)‪T=idpoly(A,B,C,D,F‬‬
‫;)'‪u = idinput(1024,'rgs‬‬
‫;)‪e =sqrt(0.3)* randn(1024,1‬‬
‫;)]‪y = sim(T,[u e‬‬

‫ﻃﻴﻒ و ﻓﻮرﻳﻪ ﺳﻴﮕﻨﺎل‬ ‫‪2-1‬‬


‫‪ .A‬ﺳﻴﮕﻨﺎل )‪ x(t)=cos(2*pi*1000t)+2sin(2*pi*550t‬را ﺑﺎ ﻓﺮﻛﺎﻧﺲ ‪ fs=4KHz‬و ﻃﻮل ‪ 2‬ﺛﺎﻧﻴﻪ ﺗﻮﻟﻴﺪ ﻛﻨﻴﺪ‪(x(n)).‬‬
‫)‪fs=4e3; t=0:1/fs:2;x=cos(2*pi*1000*t)+2*sin(2*pi*550*t‬‬
‫‪ .B‬ﻓﻮرﻳﻪ اﻳﻦ ﺳﻴﮕﻨﺎل ﭼﮕﻮﻧﻪ ﺑﺎﻳﺪ ﺑﻪ ﻧﻈﺮ ﺑﺮﺳﺪ )از ﻧﻈﺮ رﻳﺎﺿﻲ(؟‬
‫‪jω‬‬
‫‪ 512 .C‬ﻧﻘﻄﻪ آﻧﺮا اﻧﺘﺨﺎب و ﺑﺮاي آن ﺑﺎ دﺳﺘﻮر ‪ FFT‬ﺗﺎﺑﻊ ‪ .x(e ) DFT‬ﺑﺎ رﺳﻢ داﻣﻨﻪ آن ﻣﻮﻗﻌﻴـﺖ ﻣﻮﻟﻔـﻪ ﻫـﺎ ي ﻓﺮﻛﺎﻧﺴـﻲ را‬
‫ﺑﺒﻴﻨﻴﺪ‪ .‬آﻳﺎ ﻧﻤﻮدار ﺑﺎ آﻧﭽﻪ ﺷﻤﺎ ﻓﻜﺮ ﻣﻲ ﻛﺮدﻳﺪ ﺗﻄﺎﺑﻖ دارد؟‬

‫وﺟـﻮد ﻧـﺪارد‪ DFT .‬ﺗـﺎﺑﻊ )‪ UN(ω‬در ﻓﺮﻛﺎﻧﺴـﻬﺎي ‪ ω=2π k/N‬ﻣﺤﺎﺳـﺒﻪ ﻣـﻲ ﻛﻨـﺪ‪.‬‬ ‫‪1‬‬
‫‪N‬‬
‫دﻗﺖ ﻛﻨﻴﺪ در ﺗﻌﺮﻳﻒ ‪ DFT‬ﺿﺮﻳﺐ‬
‫ﻣﻮﻗﻌﻴﺖ ﻣﻮﻟﻔﻪ ﻫﺎ را در ﻃﻴﻒ ﺑﺮرﺳﻲ ﻛﻨﻴﺪ‪ .‬ﻣﺤﻮر اﻓﻘﻲ را ﻓﺮﻛﺎﻧﺲ دﻳﺠﻴﺘﺎل ‪ f/fs‬ﻣﺪرج ﻛﻨﻴﺪ‪.‬‬
‫;]‪fs=4e3; f=[0:fs/512:fs/2-1‬‬
‫)))‪x1=x(1:512);xw=fft(x1,512);plot(f,abs(xw(1:256‬‬
‫‪ .D‬ﻳﻜﺒﺎر دﻳﮕﺮ ‪ FFT‬ﺑﻪ ﻃﻮل ‪ 4096‬را ﻣﺤﺎﺳﺒﻪ ﻛﻨﻴﺪ‪ .‬اﻧﺘﻈﺎر ﺷﻤﺎ از اﻳﻦ ﻧﻤﻮدار ﭼﻴﺴﺖ؟ ﭼﺮا ﻧﻤﻮدار ﻣﺘﻔﺎوت اﺳﺖ‬

‫ﭘﺮﻳﻮدوﮔﺮام ﻧﻮﻳﺰ و ﻧﻮﻳﺰ ﻓﻴﻠﺘﺮ ﺷﺪه‬ ‫‪3-1‬‬


‫‪ .A‬ﻧﻮﻳﺰ ﮔﻮﺳﻲ )‪ N(0,1‬ﺑﺎ ﻣﻴﺎﻧﮕﻴﻦ ﺻﻔﺮ و وارﻳﺎﻧﺲ ‪ 1‬ﺑﻪ ﻃﻮل ‪ 1024‬را ﺗﻮﻟﻴﺪ ﻛﻨﻴﺪ‬
‫‪ .B‬ﺗﺎﺑﻊ ﻫﻤﺒﺴﺘﮕﻲ آﻧﺮا رﺳﻢ ﻛﻨﻴﺪ‬
‫))‪plot(xcorr(e‬‬
‫‪ .C‬ﭘﺮﻳﻮدوﮔﺮام ‪ |EN(ω)|2‬آن را ﺑﻪ دو روش ﻣﺮﺑﻊ داﻣﻨﻪ ﻓﻮرﻳﻪ و ﻓﻮرﻳﻪ ﺗﺎﺑﻊ ﻫﻤﺒﺴﺘﮕﻲ روي ﻳﻚ ﺻﻔﺤﻪ رﺳﻢ ﻛﻨﻴﺪ‬
‫;‪N=1024;x1=abs(fft(e,2*N-1)).^2/N; x2=abs(fft(xcorr(e)))/N‬‬
‫)]‪plot([x1,x2‬‬
‫)])‪loglog([x1(1:N/2),x2(1:N/2‬‬
‫‪ .D‬ﺧﺮوﺟﻲ ﺳﻴﺴﺘﻢ )‪ w(t)=G*e(t‬را ﺗﻮﻟﻴﺪ ﻛﻨﻴﺪ‪ .‬ﻓﺮﻛﺎﻧﺲ ﻧﻤﻮﻧﻪ ﺑﺮداري را ‪ 1‬ﻫﺮﺗﺰ در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ‪ .‬ﭘﺮﻳﻮدوﮔﺮام )‪ w(t‬را ﻣﺤﺎﺳﺒﻪ‬
‫ﻛﻨﻴﺪ‪|WN(ω)|2 .‬‬
‫‪ .E‬ﻧﻤﻮدار |)‪ |WN(ω‬در ﺣﺎﻟﺖ ﻣﺠﺎﻧﺒﻲ ﺑﻪ |)‪ |P(ejω‬ﻣﻴﻞ ﻣﻲ ﻛﻨﺪ‪ .‬ﺑﺎ ‪ N=1024‬ﻫﺮ دو ﻧﻤﻮدار را روي ﻳﻚ ﺷﻜﻞ رﺳﻢ ﻛﻨﻴﺪ‪ .‬ﺑﺮاي‬
‫ﻣﻄﺎﻟﻌﻪ ﺧﻄﺎ ‪ (||P(ejω)|-|WN(ω)||)2‬را ﻣﺤﺎﺳﺒﻪ ﻛﻨﻴﺪ‪.‬‬
‫;‪N=1024‬‬
‫;)‪w=lsim(G,e);Wn=sqrt(abs(fft(w)).^2/N‬‬
‫;)))‪h1=freqresp(G,2*pi*[0:N-1]/N); d1=abs(squeeze(h1(1,1,:‬‬
‫)]‪plot([d1,Wn‬‬
‫)])‪loglog([d1(1:N/2),Wn(1:N/2‬‬
‫‪ .F‬ﺑﺮاي ﻣﻄﺎﻟﻌﻪ اﻳﻨﻜﻪ اﻓﺰاﻳﺶ ‪ N‬ﺧﻄﺎي ﺑﻴﻦ آﻧﺪو را ﻛﺎﻫﺶ ﻣﻲ دﻫﺪ‪ ،‬آزﻣﺎﻳﺶ را ﺑﺮاي دو ﻣﻘﺪار ‪ N=2048‬و ‪ 4096‬ﺗﻜﺮار ﻛﻨﻴﺪ‪.‬‬

‫‪4-1‬‬
‫‪Lab 3: Impulse-response identification.‬‬
‫ﻣﺪﻟﺴﺎزي اﻳﻦ آزﻣﺎﻳﺶ ﺑﺮ اﺳﺎس ﭘﺎﺳﺦ ﮔﺬراي ﺿﺮﺑﻪ اﺳﺖ‪ .‬دﻳﺘﺎ ﻓﺎﻳﻞ اﻳﻦ آزﻣﺎﻳﺶ ﺑـﺮاي ﺳﻴﺴـﺘﻢ درﺟـﻪ ‪lab3_order1_1.mat 1‬‬
‫اﺳﺖ‪ .‬ﺳﺘﻮن اول زﻣﺎن‪ ،‬ﺳﺘﻮن دوم ورودي و ﺳﺘﻮن ﺳﻮم ﺧﺮوﺟﻲ اﺳﺖ‪.‬‬
‫‪load lab3_order1_1.mat‬‬
‫‪ .A‬از ﺳﺘﻮن اول ‪ data_array‬ﭘﺮﻳﻮد ﻧﻤﻮﻧﻪ ﺑﺮداري را ﺑﺪﺳﺖ آورﻳﺪ‪Ts‬‬
‫‪ .B‬دﻳﺘﺎي ‪ data‬را رﺳﻢ ﻛﻨﻴﺪ‬
‫‪ .C‬دﻳﺘﺎي ورودي و ﺧﺮوﺟﻲ از ‪ 31‬ﺗﺎ ‪ 130‬را ﺑﻪ ﻓﺮﻣﺖ ‪ iddata‬ﺑﺒﺮﻳﺪ ‪d1‬‬

‫)‪y=data_array(31:130,3);u=data_array(31:130,2‬‬
‫)‪d1=iddata(y,u,0.2‬‬
‫‪ .D‬ورودي و ﺧﺮوﺟﻲ را رﺳﻢ ﻛﻨﻴﺪ )‪plot(d1‬‬
‫‪ .E‬ﺑﺮاي ﻓﻴﺖ ﻛﺮدن ﻣﺪل درﺟﻪ ‪ 1‬ﺑﻪ آن‬
‫‪k‬‬
‫= )‪G(s‬‬
‫‪Ts + 1‬‬
‫ﭘﺎﺳﺦ ﺿﺮﺑﻪ اﻳﻦ ﺳﻴﺴﺘﻢ را ﻧﻮﺷﺘﻪ و از ﺗﻄﺒﻴﻖ ﺑﺎ ﻧﻤﻮدار ﻣﺪل را ﺑﺪﺳﺖ آورﻳﺪ‪ k) .‬ﺑﺮاﺑﺮ ﺗﻘﺴﻴﻢ ﻣﻘﺪار ﻧﻬﺎﻳﻲ ﺧﺮوﺟﻲ ﺑﻪ ﻧﻬﺎﻳﻲ ورودي و‬
‫‪ T‬ﺗﺎ زﻣﺎﻧﻲ اﺳﺖ ﻛﻪ ﭘﺮش ورودي ﺑﻪ ‪ 0.38‬ﻣﺎﻛﺰﻳﻤﻢ اﻓﺖ ﻛﻨﺪ(‪ .‬داﻣﻨﻪ ﺿﺮﺑﻪ ورودي ﺑﺮاﺑﺮ ﺿﺮب داﻣﻨﻪ ورودي در ﭘﺮﻳﻮد ﻧﻤﻮﻧﻪ ﺑـﺮداري‬
‫اﺳﺖ‪.‬‬
‫‪‬‬
‫‪k‬‬
‫ﺗﺨﻤﻴﻨﻲ را ﺑﺪﺳﺖ آورده ﺑﺎ ﻧﻤﻮﻧﻪ دوم ﭘﺎﺳﺦ )ﺑﻴﻦ ‪ 131‬ﺗﺎ ‪ (230‬ﻣﻘﺎﻳﺴﻪ ﻛﻨﻴﺪ‪.‬‬ ‫‪G(s) = ‬‬ ‫‪ .F‬ﭘﺎﺳﺦ ﺿﺮﺑﻪ ﻓﻴﻠﺘﺮ‬
‫‪Ts + 1‬‬
‫)‪h2=impulse(G,0:0.2:20‬‬
‫)]‪plot([h2(1:100),y-3‬‬

‫‪ .G‬ﺑﺎ دﺳﺘﻮر ‪ lsqcurvefit‬ﺑﻪ دﻳﺘﺎي درﺟﻪ ‪ 1‬ﺗﺎﺑﻊ )‪ y=k.exp(-t/τ‬را ﻓﻴـﺖ ﻛﻨﻴـﺪ ﺑـﺎ ﺑﺪﺳـﺖ آوردن ‪ k‬و ‪ τ‬ﺗـﺎﺑﻊ ﺗﺒـﺪﻳﻞ آﻧـﺮا‬
‫ﺑﻨﻮﻳﺴﻴﺪ‪ .‬ﭘﺎراﻣﺘﺮﻫﺎي ﻣﺠﻬﻮل را ﻫﻢ ﺑﺎ ﺑﻬﻴﻨﻪ ﺳﺎزي ﻏﻴﺮ ﺧﻄﻲ و ﻫﻢ ﺧﻄﻲ ﺑﺮ اﺳﺎس ‪ log(y)=log(k)-t/τ‬ﻣﻲ ﺗﻮان ﺗﺨﻤـﻴﻦ‬
‫زد‬
‫‪function appr‬‬
‫;‪t=[0:99]*0.2‬‬
‫‪load lab3_order1_1.mat‬‬
‫;')‪y=data_array(31:130,3‬‬
‫;]‪x0=[3;3‬‬
‫)‪[x,resnorm] = lsqcurvefit(@myfun,x0,t,y-3‬‬
‫;‪y1=x(1)*exp(-t./x(2))+3‬‬
‫)]'‪plot([y',y1‬‬
‫)‪function F=myfun(x,xdata‬‬
‫;))‪F=x(1)*exp(-xdata/x(2‬‬
‫‪kωn2‬‬
‫‪ G(s) = 2‬را‬ ‫ﺳﻴﺴـﺘﻢ درﺟـﻪ ‪2‬‬ ‫‪ .H‬ﻓﺎﻳﻞ ‪ lab3_order2_1.mat‬را اﻧﺘﺨﺎب ﻛﻨﻴـﺪ‪ .‬ﺑـﻪ روش ﻓـﻮق ﭘﺎراﻣﺘﺮﻫـﺎي‬
‫‪s + 2ςωn s + ωn2‬‬
‫ﺗﺨﻤﻴﻦ ﺑﺰﻧﻴﺪ‪ .‬ﭘﺎﺳﺦ ﺿﺮﺑﻪ اﻳﻦ ﺳﻴﺴﺘﻢ ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ‪:‬‬

‫‪Lab 5: Correlation analysis. 5-1‬‬


‫‪ .E‬دﻳﺘﺎ ﻓﺎﻳﻞ اﻳﻦ آزﻣﺎﻳﺶ ‪ lab5_1.mat‬اﺳﺖ ﻛﻪ ﺷﺎﻣﻞ دﻳﺘﺎي ورودي و ﺧﺮوﺟﻲ را ‪ load‬ﻛﻨﻴﺪ‪ .‬دﻳﺘﺎﻫﺎ ‪ id,val‬و ‪ imp‬ﭘﺎﺳـﺦ‬
‫ﺿﺮﺑﻪ واﻗﻌﻲ ﺳﻴﺴﺘﻢ ﻫﺴﺘﻨﺪ‪.‬‬
‫‪ .F‬ﻧﻤﻮدار دﻳﺘﺎ را رﺳﻢ ﻛﻨﻴﺪ‪ .‬آﻳﺎ ﺳﻴﮕﻨﺎﻟﻬﺎ ﻣﻴﺎﻧﮕﻴﻦ دارﻧﺪ؟ اﮔﺮ ﻣﻴﺎﻧﮕﻴﻦ ‪,‬ورودي و ﺧﺮوﺟﻲ ﺻﻔﺮ ﻧﻴﺴﺖ آﻧﺮا ﺣﺬف ﻛﻨﻴﺪ‪.‬‬
‫)‪mean(id.u); mean(id.y);std(x‬‬
‫)‪id1=detrend(id); mean(id1.y‬‬
‫‪xcorr‬‬ ‫‪ .G‬ﻳﺎ ورودي ‪ id.u‬ﻧﻮﻳﺰ ﺳﻔﻴﺪ اﺳﺖ‪ ،‬ﺑﺎ ﺑﺮرﺳﻲ ﺗﺎﺑﻊ ﻫﻤﺒﺴﺘﮕﻲ آن ﭘﺎﺳﺦ دﻫﻴﺪ‪.‬‬
‫‪ .H‬ﺑﺎ ‪ cra‬ﭘﺎﺳﺦ ﺿﺮﺑﻪ ﺳﻴﺴﺘﻢ ﺑﻪ ﻃﻮل ‪ 80‬را ﺑﺮ اﺳﺎس ‪ id1‬ﺑﺪﺳﺖ آورﻳﺪ‬
‫;)‪h10=cra(id1,80‬‬
‫‪ .I‬آﻧﺮا ﻫﻤﺮاه ﺑﺎ ﭘﺎﺳﺦ ﺿﺮﺑﻪ واﻗﻌﻲ ‪ imp‬روي ﻳﻚ ﺻﻔﺤﻪ ﻧﺸﺎن دﻫﻴﺪ‬
‫‪ .J‬ورودي ‪ val‬را ﺑﻪ ﺳﻴﺴﺘﻢ ﺗﺨﻤﻴﻨﻲ داده ﺧﺮوﺟﻲ آﻧﺮا ﺑﺎ ﺧﺮوﺟﻲ ‪ val‬ﻣﻘﺎﻳﺴﻪ ﻛﻨﻴﺪ و درﺟﻪ ﻓﻴـﺖ ﺑـﻮدن را ﺑـﺎ ﻣﺤﺎﺳـﺒﻪ ‪MSE‬‬
‫ﺗﻌﻴﻴﻦ ﻛﻨﻴﺪ‬
‫)]‪h11=filter(h10,1,val.u);plot([h11,val.y‬‬
‫‪MSE=(sum(h11-val.y))^2‬‬

‫‪6-1‬‬
‫‪ETFE‬‬
‫ﺳﻴﺴﺘﻢ ﺑﺎ ﺗﻮاﺑﻊ زﻳﺮ را در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ‪ .‬ﻓﺮﻛﺎﻧﺲ ﻧﻤﻮﻧﻪ ﺑﺮداري ‪ 1‬ﻫﺮﺗﺰ اﺳﺖ‪ .‬ﻧﻮﻳﺰ )‪ e∈N(0,1‬اﺳﺖ‪ .‬ﻃﻮل ﺳﻴﮕﻨﺎل ورودي ‪N=1024‬‬
‫در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ‪ u.‬ﻧﻴﺰ ﻧﻮﻳﺰ ﺳﻔﻴﺪ ﺑﺎ وارﻳﺎﻧﺲ ‪ 4‬اﺳﺖ‪.‬‬

‫ﺧﺮوﺟﻲ ‪ y=Gu+He‬را ﺗﻮﻟﻴﺪ ﻛﻨﻴﺪ‬


‫‪ .A‬ﺑﺎ ‪ etfe‬ﻃﻴﻒ ‪ G‬را ﺗﺨﻤﻴﻦ ﺑﺰﻧﻴﺪ‪ .‬ﻃﻴﻒ ‪ G‬و ‪ Ĝ‬را روي ﻳﻚ ﻧﻤﻮدار رﺳﻢ ﻛﻨﻴﺪ‪ .‬ﺧﻄﺎي ﺗﺨﻤﻴﻦ از ﻧﻤﻮدار ﻗﺎﺑﻞ ﻣﺸﺎﻫﺪه اﺳﺖ‪.‬‬
‫)‪z1=iddata(y,u',1); ge = etfe(z1); bode(ge,G‬‬
‫‪ .B‬ﻫﻤﻮار ﻛﺮدن‪ etfe‬ﺑﺎ ﻣﻴﺎﻧﮕﻴﻦ ﮔﻴﺮي ﺑﺪﺳﺖ ﻣﻲ آﻳﺪ‪ .‬ﺑﺎ ﺗﻘﺴﻴﻢ ﻛﺮدن دﻳﺘﺎ ﺑﻪ ‪ 4‬ﻃﻮل ‪ 256‬ﺗﺎﻳﻲ ﺗﺨﻤﻴﻦ ﺟﺪﻳﺪ ﺑﺪﺳﺖ ﻣﻲ آﻳﺪ‬
‫)‪ge2 = etfe(z1,256); bode(ge,G,ge2‬‬
‫‪ spa .I‬ﻣﺎﻧﻨﺪ ‪ etfe‬ﭘﻨﺠﺮه دار اﺳﺖ‪ .‬اﻳﻦ دو اﺟﺮا را ﻣﻘﺎﻳﺴﻪ ﻛﻨﻴﺪ‪ .‬ﭘﻨﺠﺮه ‪ spa‬ﭘﻨﺠﺮه ‪ Hann‬اﺳﺖ‪.‬‬
‫)‪ge3 = spa(z1); bode(ge,G,ge3‬‬
‫)‪ge3 = spa(z1,32); bode(ge,G,ge3‬‬
‫‪ .G‬دﺳﺘﻮر ‪ spafdr‬ﻫﻤﻮارﺳﺎزي را در ﻣﻴﺪان ﻓﺮﻛﺎﻧﺲ اﻧﺠﺎم ﻣﻲ دﻫﺪ و درﺟﻪ آن ﺑﺎ ‪ γ‬ﺑﻴﺎن ﻣﻲ ﺷﻮد‪ γ .‬ﺑﺰرگ ﺑﻪ ﻣﻌﻨﻲ ﻓﻴﻠﺘﺮ ﺑﺎرﻳﻚ‬
‫و ‪ γ‬ﻛﻮﭼﻚ ﺑﻪ ﻣﻌﻨﻲ ﻓﻴﻠﺘﺮ ﭘﻬﻦ اﺳﺖ اﺛﺮ آﻧﺮا ﻣﻼﺣﻈﻪ و ﺑﻬﺘﺮﻳﻦ ﻣﻘﺪار ‪ γ‬را ﺗﻌﻴﻴﻦ ﻛﻨﻴﺪ‬
‫)‪gamma=0.7;ge4 = spafdr(z1,gamma);bode(G,ge2,ge4‬‬
‫‪ γ‬را ﺑﻪ ﻧﺤﻮي اﻧﺘﺨﺎب ﻛﻨﻴﺪ ﻛﻪ ‪ peak‬ﻃﻴﻒ ازﺑﻴﻦ ﻧﺮود‪.‬‬
‫‪ LAB2‬ﺗﺨﻤﻴﻦ ﭘﺎراﻣﺘﺮﻳﻚ‬ ‫‪2‬‬
‫ﻣﺜﺎل ‪ hairdryer‬داﺧﻠﻲ ‪ MATLAB‬را ﻣﻼﺣﻈﻪ ﻛﻨﻴﺪ‬

‫‪Lab 3: Parametric methods‬‬

‫‪Lab 6: ARX model identification .‬‬ ‫‪1-2‬‬


‫‪ .A‬دﻳﺘﺎ ﻓﺎﻳﻞ اﻳﻦ آزﻣﺎﻳﺶ ‪ lab6_1.mat‬اﺳﺖ‪ ،‬ﻧﻤﻮدار دﻳﺘﺎ را رﺳﻢ و ﻣﻼﺣﻈﻪ ﻛﻨﻴﺪ‪ id .‬دﻳﺘـﺎي ﺷﻨﺎﺳـﺎﻳﻲ و ‪ val‬دﻳﺘـﺎي اﻋﺘﺒـﺎر‬
‫ﺳﻨﺠﻲ اﺳﺖ‪.‬‬
‫‪ .B‬از ﻣﺸﺎﻫﺪه ﻧﻤﻮدار ﺑﺮاي ‪ na, nb, nk‬ﻣﻘﺎدﻳﺮي ﺣﺪس ﺑﺰﻧﻴﺪ‪ .‬ﺣﺎل ﺑﺎ ‪ arx‬ﺳﻴﺴﺘﻢ را ﺷﻨﺎﺳـﺎﻳﻲ و ورودي دﻳﺘـﺎ ‪ val‬را ﺑـﻪ آن‬
‫اﻋﻤﺎل و ﺧﺮوﺟﻲ ﺷﺒﻴﻪ ﺳﺎزي را ﺑﺎ ﺧﺮوﺟﻲ ‪ val‬ﻣﻘﺎﻳﺴﻪ ﻛﻨﻴﺪ‬
‫‪Sample codes‬‬
‫;‪Na = 1:15; Nb = 1:15; Nk = 1:5‬‬
‫;)‪NN = struc(Na, Nb, Nk); V = arxstruc(id, val, NN‬‬
‫)'‪N=selstruc(V,'plot‬‬
‫ﺣﺎل درﺟﻪ را از ﻧﻤﻮدار اﻧﺘﺨﺎب ﻛﻨﻴﺪ و ﻳﺎ ﺑﺎ ﻳﻜﻲ ازاﻧﻮاع دﺳﺘﻮرات زﻳﺮ اﻧﺘﺨﺎب ﻣﻨﺎﺳﺐ را داﺷﺘﻪ ﺑﺎﺷﻴﺪ‪ .‬ﻣﺪل اﻧﺘﺨـﺎب ﺷـﺪه را از ﻧﻈـﺮ‬
‫ﻋﻤﻠﻜﺮد ﺑﺎ دﻳﺘﺎي ‪ id‬و ‪ val‬ﭼﻚ ﻛﻨﻴﺪ‪.‬‬
‫)‪nn = selstruc(V,0); m=arx(id,nn‬‬
‫)‪compare(id,m);compare(val,m‬‬
‫‪ .C‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺑﻬﺘﺮﻳﻦ ﻣﺪل‪ ،‬ٱﻳﺎ ﺳﻴﺴﺘﻢ ﺗﺎﺧﻴﺮ دارد ﻳﺎ ﻧﻪ‪ ،‬آﻳﺎ ﺣﺪس اوﻟﻴﻪ ﺷﻤﺎ در ﺑﺎره درﺟﺎت درﺳﺖ ﺑﻮد؟‬
‫‪ impulseest .D‬ﭘﺎﺳﺦ ﺿﺮﺑﻪ را ﺗﺨﻤﻴﻦ ﻣﻴﺰﻧﺪ‪ ,‬و ﺧﺮوﺟﻲ ﻳﻚ ﺳﻴﺴﺘﻢ اﺳﺖ‪ cra .‬ﭘﺎﺳﺦ ﺿﺮﺑﻪ را ﺑﺎ ﻫﻤﺒﺴﺘﮕﻲ ﺗﺨﻤﻴﻦ ﻣﻲ زﻧـﺪ و‬
‫ﺧﺮوﺟﻲ ﭘﺎﺳﺦ ﺿﺮﺑﻪ اﺳﺖ‪.‬‬
‫;)‪m12=impulseest(id‬‬
‫;)'‪h20=cra(id,80);m5=idpoly(1,h20‬‬
‫‪ .E‬دﻳﺘﺎ ﻫﺎ ﻣﻴﺎﻧﮕﻴﻦ دارﻧﺪ و ﻫﻤﻴﻦ ﻣﻲ ﺗﻮاﻧﺪ ﻧﺘﺎﻳﺞ را ﻣﺨﺪوش ﻛﻨﺪ ﺑﺎ )‪ id1=deterend(id‬اﺳﺘﻔﺎده از ‪ cra‬را اﻣﺘﺤﺎن ﻛﻨﻴﺪ‬
‫‪ .F‬ﻋﻤﻠﻜﺮد ﻣﺪل ﺑﺪﺳﺖ آﻣﺪه ‪ ARX‬و ‪ FIR‬را ﻣﻘﺎﻳﺴﻪ ﻛﻨﻴﺪ‪ .‬اﻳﻦ ﻣﻘﺎﻳﺴﻪ را از ﻣﻨﻈـﺮ ﺗﻌـﺪاد ﭘﺎراﻣﺘﺮﻫـﺎ اﻧﺠـﺎم دﻫﻴـﺪ‪ .‬ﻫﺮﻛـﺪام از‬
‫ﻣﺪﻟﻬﺎي ‪ m,m12,m5‬ﭼﻨﺪ ﭘﺎراﻣﺘﺮ دارﻧﺪ‬
‫)‪compare(val,m,m12,m5‬‬

‫‪Lab 7: Prediction error methods. 2-2‬‬


‫‪ .A‬دﻳﺘﺎ ﻓﺎﻳﻞ اﻳﻦ آزﻣﺎﻳﺶ ‪ lab7_1.mat‬اﺳﺖ‪ .‬دﻳﺘﺎ ﻫﺎ ‪ id, val‬و ‪ n‬ﻫﺴﺘﻨﺪ‬
‫‪ .B‬ﻣﺪﻟﻬﺎي ‪ ARMAX ،ARX‬و ‪ OE‬در اﻳﻦ آزﻣﺎﻳﺶ ﺗﺠﺮﺑﻪ ﻣﻲ ﺷﻮﻧﺪ‪ .‬ﺳﻴﺴﺘﻢ ﺳﺎﺧﺘﺎر ﻛﻠﻲ‬

‫را دارد ﻛﻪ ﻣﻄﺎﺑﻖ ﺷﻜﻞ در ﻣﻌﺮض اﺧﺘﻼل )‪ e(t‬اﺳﺖ‪ .‬درﺟﻪ ﺳﻴﺴﺘﻢ ‪ n‬در دﻳﺘﺎي آزﻣﺎﻳﺶ داده ﺷﺪه اﺳﺖ‪ .‬اﻟﺒﺘﻪ درﺟﻪ ﺻﻮرت ﻣﻤﻜﻦ‬
‫اﺳﺖ ﻛﻤﺘﺮ ﺑﺎﺷﺪ‬

‫‪ .C‬دﻳﺘﺎ ﻫﺎي ‪ id‬و ‪ val‬را رﺳﻢ ﻛﻨﻴﺪ‬


‫‪ .D‬ﻣﺪل ﻣﻨﺎﺳﺐ ﺑﺮاي ﺳﻴﺴﺘﻢ ﺷﻜﻞ ﻛﺪام اﺳﺖ؟ ‪ .ARX, ARMAX, OE‬اﮔﺮﭼﻨﺪ ﻣﺪل ﺑـﻪ آن ﻓﻴـﺖ ﻣـﻲ ﺷـﻮد ﻛـﺪام ﺗﻌـﺪاد‬
‫ﭘﺎراﻣﺘﺮ ﻛﻤﺘﺮي دارد‬
‫)]‪m1 = oe(data,[nb nf nk‬‬
‫)]‪m2= armax(data,[na nb nc nk‬‬
‫)]‪m3 = arx(data,[na nb nk‬‬
‫‪ .G‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ درﺟﻪ و ﺗﺎﺧﻴﺮ ﺑﺪﺳﺖ آﻣﺪه از آزﻣﺎﻳﺶ ﻗﺒﻞ‪ ،‬ﻫﺮ ﺳﻪ ﻣﺪل را ﺑﺮاﺳـﺎس ‪ n‬داده ﺷـﺪه ﺗﺨﻤـﻴﻦ ﺑﺰﻧﻴـﺪ و آﻧﻬـﺎ را ﺑـﺎ ﻫـﻢ‬
‫‪compare‬‬ ‫ﻣﻘﺎﻳﺴﻪ ﻛﻨﻴﺪ‪.‬‬

‫‪• Lab 8: Instrumental variable methods. .H‬‬


‫‪ .A‬دﻳﺘﺎ ﻓﺎﻳﻞ اﻳﻦ آزﻣﺎﻳﺶ ‪ lab8_1.mat‬اﺳـﺖ‪ .‬دﻳﺘﺎﻫـﺎ ‪ id,val‬و ‪ n‬ﻫﺴـﺘﻨﺪ‪ .‬در اﻳـﻦ آزﻣـﺎﻳﺶ ‪ IV‬ﺑـﺎ ‪ ARX‬و ‪ARMAX‬‬
‫ﻣﻘﺎﻳﺴﻪ ﻣﻲ ﺷﻮد‪ .‬درﺟﻪ ﺳﻴﺴﺘﻢ ‪ n‬و ﻧﻮﻳﺰ اﻋﻤﺎﻟﻲ رﻧﮕﻲ اﺳﺖ‪.‬‬
‫‪ .B‬دﻳﺘﺎي ورودي و ﺧﺮوﺟﻲ را رﺳﻢ و ﺑﺮرﺳﻲ ﻛﻨﻴﺪ ‪.‬ﻫﺮ روش را ﻛﻪ اﺟﺮا ﻣﻲ ﻛﻨﻴﺪ از ‪ tic‬و ‪ toc‬ﺑـﺮاي ﺑﺪﺳـﺖ آوردن زﻣـﺎن اﺟـﺮا‬
‫اﺳﺘﻔﺎده ﻛﻨﻴﺪ‬
‫‪ n .C‬ﻫﺎ را اﻧﺘﺨﺎب و ﻳﻚ ﻣﺪل ‪ ARX‬ﺑﺮ اﺳﺎس ﻣﺸﺎﻫﺪه دﻳﺘﺎ ﺗﺨﻤﻴﻦ ﺑﺰﻧﻴﺪ و ﻛﻴﻔﻴﺖ آﻧﺮا ﺑﺮرﺳﻲ ﻛﻨﻴﺪ‪ .‬در ﻧﻬﺎﻳﺖ ﺑـﺎ ‪ n‬داده ﺷـﺪه‬
‫ﻋﻤﻞ ﻛﻨﻴﺪ ]‪ [n n 1‬ﻣﺪت زﻣﺎن اﺟﺮا را ﻳﺎد داﺷﺖ ﻛﻨﻴﺪ‬
‫)‪tic; marx = arx(id,[na nb nk]);toc;compare(val,marx‬‬

‫‪ .D‬روش ‪ IV‬را ﺑﺎ اﻳﻨﺴﺘﺮوﻣﻨﺖ ﺳﺎده زﻳﺮ و ‪ n‬داده ﺷﺪه اﻧﺠﺎم و ﺑﺎ ‪ ARX‬ﻣﻘﺎﻳﺴﻪ ﻛﻨﻴﺪ‪ .‬ﻃﻮل اﻳﻨﺴﺘﺮوﻣﻨﺖ ﺑﺎﻳـﺪ ﻃـﻮل ﺧﺮوﺟـﻲ‬
‫ﺑﺎﺷﺪ‬

‫)‪tic;miv0=ivx(id,[na nb 1],id.u);toc; compare(val,marx,miv0‬‬


‫‪ IV .E‬را ﺑﺎ اﻳﻨﺴﺘﺮوﻣﻨﺘﻲ اﺟﺮا ﻛﻨﻴﺪ ﻛﻪ ‪ ŷ‬ﺧﺮوﺟﻲ ﺳﻴﺴﺘﻢ ﺑﺎ ﻣﻘﺎدﻳﺮ ﺗﺨﻤﻴﻨﻲ ‪ ARX‬ﺑﺎﺷﺪ‪ .‬ﻧﺘﺎﻳﺞ را ﺑﺎ ‪ ARX‬و ‪ IV‬ﺳﺎده ﻗﺒﻠـﻲ‬
‫ﻣﻘﺎﻳﺴﻪ ﻛﻨﻴﺪ‬

‫;)‪g2=tf(marx.B,marx.A,1,'variable','z^-1'); hat=lsim(g2,id.u‬‬
‫)‪tic;mivx=ivx(id,[2 2 1],-hat);toc; compare(val,marx,mivx‬‬
‫‪ x‬ﻳﻚ ﺑﺮدار ﻫﻢ ﻃﻮل ﺧﺮوﺟﻲ )‪ (len‬اﺳﺖ‪ .‬اﺑﺘﺪا ‪ arx‬را اﺟﺮا ﻛﻨﻴﺪ و ‪ Â‬را ﺑﺪﺳﺖ آورده و ‪ –Â‬را در ﺧﺎﻧﻪ ﻫﺎي اول ‪ x‬ﺟﺎي دﻫﻴﺪ‬
‫‪ .F‬ﺑﺎ اﺟﺮاي دﺳﺘﻮر ‪ IV4‬ﻛﻪ ﺧﻮدﻛﺎر اﻳﻨﺴﺮوﻣﻨﺖ را اﻧﺘﺨﺎب ﻣﻲ ﻛﻨﺪ ﺳﻴﺴﺘﻢ را ﺷﻨﺎﺳﺎﻳﻲ و ﻧﺘﻴﺠﻪ را ﺑﺎ ﻧﺘﺎﻳﺞ ﻗﺒﻠﻲ ﻣﻘﺎﻳﺴﻪ ﻛﻨﻴﺪ‬
‫)‪tic;miv4=iv4(id,[2 2 1]);toc; compare(val,miv4,marx,mivx‬‬
‫‪ .G‬ﻳﻚ ﻣﺪل ‪ ARMAX‬ﺗﺨﻤﻴﻦ ﺑﺰﻧﻴﺪ و ﻧﺘﻴﺠﻪ راﺑﺎ ﺑﻬﺘﺮﻳﻦ ‪ IV‬ﻣﻘﺎﻳﺴﻪ ﻛﻨﻴﺪ‬
‫)‪tic; marmax = armax(id,[na nb nk]);toc;compare(val,marmax‬‬
‫‪ .H‬آﻧﻬﺎ را ﺑﺮ ﺣﺴﺐ ﺳﺮﻋﺖ اﺟﺮا ﻣﺮﺗﺐ ﻛﻨﻴﺪ‪.‬‬

‫‪ Subspace system identification‬ﺑﺮاي ﺳﻴﺴﺘﻤﻬﺎي ‪MIMO‬‬ ‫‪3-2‬‬


‫‪ .A‬ﺳﻴﺴﺘﻢ زﻳﺮ را در ﻧﻈﺮ ﮔﺮﻓﺘﻪ آﻧﺮا ﺑﺮاي ‪ 100‬ﻧﻤﻮﻧﻪ ﺷﺒﻴﻪ ﺳﺎزي ﻛﻨﻴﺪ‬
‫‪x(t+1)=Ax+Bu+K*e‬‬
‫‪y=Cx+Du+e‬‬
‫;]‪u = randn(100,3); A = [1,-0.99 ;0.1, 0.7]; B = [1 2 3; -1 -2 -3‬‬
‫;]‪C = [1 0; -1 1‬‬ ‫;]‪D= [1 2 3; -1 -2 -3]; K = [0 0; 0 0‬‬
‫;)’‪m = idss(A,B,C,D,K);y = sim(m,u,’Noise‬‬
‫)‪bode(m‬‬
‫ﺣﺎل آﻧﺮا ﺷﻨﺎﺳﺎﻳﻲ ﻛﻨﻴﺪ و ﭘﺎراﻣﺘﺮﻫﺎ را ﺑﺎ ﺳﻴﺴﺘﻢ اﺻﻠﻲ ﻣﻘﺎﻳﺴﻪ ﻛﻨﻴﺪ‪ .‬ﻓﺮم ﻣـﺎﺗﺮﻳﺲ ‪ A‬را ﺑﺼـﻮرت ‪ free‬ﻳـﺎ ‪ can, modal‬و ﻏﻴـﺮه‬
‫ﺗﻌﺮﻳﻒ ﻛﺮد‪.‬‬
‫;)'‪z = iddata(y,u); m1 = n4sid(z,1:5,'Display','on‬‬
‫;)‪bode(m1,'sd',3‬‬
‫‪ .B‬ﺷﻨﺎﺳﺎﻳﻲ ﻓﻀﺎي ﺣﺎﻟﺖ ﺑﺎ ‪ :pem‬در دﺳﺘﻮر ‪ pem‬ﻣﻲ ﺗﻮان ﭘﺎراﻣﺘﺮﻫﺎﻳﻲ ﻛﻪ ﻣﻘﺪار آﻧﻬﺎ ﻣﺸﺨﺺ اﺳﺖ را ﺑﻪ اﻟﮕﻮرﻳﺘﻢ ﺗﻌﺮﻳﻒ ﻛﺮد‪.‬‬
‫ﻣﺜﻼ ﻣﻤﻜﻦ اﺳﺖ ‪ A(1,1)=1‬و ﺑﺮدارﻫﺎي ‪ B,C,D‬ﺑﺮدارﻫﺎﻳﻲ ﺑﺎ ﻣﻘﺎدﻳﺮ از ﻗﺒﻞ ﻣﺸـﺨﺺ ﺑﺎﺷـﻨﺪ‪ .‬در اﻳـﻦ ﺻـﻮرت اﻟﮕـﻮرﻳﺘﻢ را‬
‫اﻳﻨﮕﻮﻧﻪ ﻣﻲ ﺗﻮان اﺟﺮا ﻛﺮد‪.‬‬
‫;)‪z = iddata(y,u‬‬
‫;]‪As=[1,NaN;NaN,NaN];Bs=B;Cs=C;Ds=D;Ks=K;X0s=[0;0‬‬
‫;)‪setstruc(m,As,Bs,Cs,Ds,Ks,X0s‬‬
‫)'‪m2 = pem(z,2,'Display','on','ss','free‬‬
‫)'‪m2 = pem(z,2,'ss','can‬‬
‫ﻳﻪ اﻟﮕﻮرﻳﺘﻢ ﻣﻲ ﺗﻮان ﻣﻘﺎدﻳﺮ اوﻟﻴﻪ و ﻫﻤﭽﻨﻴﻦ ﻛﺮان ﺑﺮاي ﭘﺎراﻣﺘﺮﻫﺎ ﺗﻌﺮﻳﻒ ﻛﺮد‪.‬‬
‫)'‪m2 = pem(z,m,'nx',1:5,'ss','can‬‬
‫ﺣﺎل ﻋﻤﻠﻜﺮد ﺳﻴﺴﺘﻢ اﺻﻠﻲ ﺑﺎ دو ﺳﻴﺴﺘﻢ ﺷﻨﺎﺳﺎﻳﻲ ﺷﺪه را ﻣﻘﺎﻳﺴﻪ ﻛﻨﻴﺪ ﺑﺮاي اﻳﻦ ﻣﻨﻈﻮر ورودي زﻳﺮ را ﺑﻪ ﻫﺮ ﺳﻪ اﻋﻤﺎل و ﭘﺎﺳﺨﻬﺎ را‬
‫روي ﻳﻚ ﻧﻤﻮدار رﺳﻢ ﻛﻨﺴﺪ‬
‫;)‪>> ut = randn(100,3‬‬
‫?‪Which one is better? What is the price for this superiority‬‬
‫‪ LAB 3 3‬ﺗﺨﻤﻴﻦ ﺑﺎزﮔﺸﺘﻲ‬

‫‪Lab 9: Pseudo-random binary sequences. 1-3‬‬


‫‪ arx, idinput, plot, compare .A‬دﺳﺘﻮراﺗﻲ ﻫﺴﺘﻨﺪ ﻛﻪ اﺳﺘﻔﺎده ﻣﻲ ﺷﻮﻧﺪ‪ .‬دﻳﺘﺎ ﻓﺎﻳﻞ اﻳﻦ آزﻣﺎﻳﺶ ‪ lab9_1.mat‬اﺳـﺖ‬
‫ﻛﻪ ﻓﻘﻂ دﻳﺘﺎي ‪ val‬را دارد و ﺑﺮﻧﺎﻣﻪ ‪ simulateid.p‬ﺑﺮاي ﺗﻮﻟﻴﺪ ﺧﺮوﺟﻲ ﺑﺮاي ورودي ‪ PRBS‬اﺳﺖ‬
‫‪ .B‬درﺟﻪ ﺳﻴﺴﺘﻢ ﺑﻴﺶ از ‪ 4‬ﻧﻴﺴﺖ و ﻧﻮﻳﺰ رﻧﮕﻲ اﺳﺖ ﻟﺬا ‪ ARX‬درﺟﻪ ﺑﺎﻻ ﺗﺨﻤﻴﻦ زده ﻣﻲ ﺷﻮد‪ .‬ﺑـﺮاي اﻳـﻦ ﻣﻨﻈـﻮر = ‪na = nb‬‬
‫‪ 15‬در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ‪.‬‬
‫‪ .C‬ﺳﻴﮕﻨﺎل ‪ PRBS‬ﺗﻮﻟﻴﺪ ﻛﻨﻴﺪ ﻛﻪ داﻣﻨﻪ آن ﺑﻴﻦ ‪ 0.5‬و ‪ 1‬ﺑﺎﺷﺪ و ﻣﺮﺗﺒـﻪ ‪ PERSISTENCY EXCITING‬آن ﺑﺰرﮔﺘـﺮ از‬
‫‪ n=na+nb=30‬ﺑﺎﺷﺪ‪ .‬ﺑﺮاي اﻳﻦ ﻣﻨﻈﻮر درﺟﻪ ﻓﻴﻠﺘﺮ ‪ m=6‬در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ و ‪ 10‬ﭘﺮﻳﻮد آﻧﺮا ﺗﻮﻟﻴﺪ ﻛﻨﻴﺪ‬
‫‪ .D‬اﻳﻦ ﺳﻴﮕﻨﺎل را ﺑﻪ ‪ simulateid‬اﻋﻤﺎل ﻛﺮده ) )‪ (id = simulateid(plant, u‬ﺗﺎ ﺳﻴﮕﻨﺎل ‪ id‬ﺑﺪﺳﺖ آﻳﺪ‪ .‬ﺳﻴﮕﻨﺎل ﺗﻮﻟﻴـﺪي‬
‫از ﻧﻮع ‪ iddata‬اﺳﺖ‪.‬‬
‫‪ .E‬ﺑﺮاي دﻳﺘﺎ ‪ ARX‬درﺟﻪ ﺑﺎﻻ ﺗﺨﻤﻴﻦ ﺑﺰﻧﻴﺪ و ﻛﻴﻔﻴﺖ ﺗﺨﻤﻴﻦ را ﺑﺎ ‪ resid‬ﻛﻨﺘﺮل ﻛﻨﻴﺪ‬
‫‪ .F‬آزﻣﺎﻳﺶ ﺑﺎﻻ را ﺗﻜﺮار ﻛﻨﻴﺪ ﻛﻪ ﻣﻮﻟﺪ ﺳﻴﮕﻨﺎل ‪ idinput‬آﻧﺮا ﺑﻪ ﻓﺮم ‪ PRBS‬ﺑﺎ داﻣﻨﻪ ﺑﻴﻦ ‪ 0.5‬و ‪ 1‬ﺗﻮﻟﻴﺪ ﻣﻲ ﻛﻨﺪ‪ .‬ﺑـﺎ اﻳـﻦ روش‬
‫درﺟﻪ ‪ m‬ﺑﻄﻮر ﺧﻮدﻛﺎراﻧﺘﺨﺎب ﻣﻲ ﮔﺮدد‬

‫‪Lab 10: Recursive identification. Model validation using correlation tests (PDF).‬‬ ‫‪2-3‬‬
‫‪ rarx, idpoly, resid, plot, compare .A‬دﺳﺘﻮرات ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﻲ ﮔﻴﺮﻧﺪ‪ .‬دﻳﺘﺎ ﻓﺎﻳﻞ اﻳﻦ آزﻣـﺎﻳﺶ ‪lab10_1.mat‬‬
‫اﺳﺖ ﻛﻪ ﺣﺎوي ‪ id‬و ‪ val‬و درﺟﻪ واﻗﻌﻲ ﺳﻴﺴﺘﻢ ‪ n‬اﺳﺖ ﺿﻤﻨﺎ ﺳﻴﺴﺘﻢ ‪ OE‬اﺳﺖ‬
‫‪ .B‬ﺑﺮاي اﻳﻦ ﺳﻴﺴﺘﻢ ‪ ARX‬درﺟﻪ ﺑﺎﻻ ﺑﺎ ‪ na = nb = 3n‬ﺗﺨﻤﻴﻦ زده ﻣﻲ ﺷﻮد‬
‫=)‪ P-1(0‬اﺟﺮا ﻛﻨﻴﺪ‪ .‬ﻳﻜﺒﺎر از ‪ 10%‬وﺑﺎر دﻳﮕﺮ از‬ ‫‪ .C‬دستور ‪ rarx‬را روي دﻳﺘﺎي ‪ id‬ﺑﺎ‬
‫ﻛﻞ دﻳﺘﺎ ﺑﺮاي ﺷﻨﺎﺳﺎﻳﻲ اﺳﺘﻔﺎده ﻛﻨﻴﺪ‪ .‬ﺑﺎ دﺳﺘﻮر ‪ idpoly‬و ﭘﺎراﻣﺘﺮﻫﺎي ﺗﺨﻤﻴﻦ زده ﺷﺪه دو ﺳﻴﺴﺘﻢ ﺑﺴﺎزﻳﺪ و ﻛﻴﻔﻴﺖ اﻳـﻦ دو‬
‫را روي ‪ val‬را ﺑﺎ دﺳﺘﻮر ‪ compare‬ﻣﻘﺎﻳﺴﻪ ﻛﻨﻴﺪ‬
‫‪-1‬‬
‫‪What the rarx function denotes P is actually the inverse matrix P from the lecture.‬‬
‫ﺗﻜﺮار ﻛﻨﻴﺪو ﻧﺘﺎﻳﺞ را ﻣﻘﺎﻳﺴﻪ ﻛﻨﻴﺪ‬ ‫‪ .D‬آزﻣﺎﻳﺶ را ﺑﺎ‬

‫ﺑﺎ دﺳﺘﻮر‪ idpoly‬ﻣﺪل ‪ arx‬ﺑﺎ درﺟﻪ ‪ na = nb = n‬ﺗﺨﻤﻴﻦ ﺑﺰﻧﻴﺪ‪ .‬ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮر ‪ resid‬ﺗﺨﻤﻴﻦ را اﻋﺘﺒﺎر ﺳﻨﺠﻲ ﻛﻨﻴﺪ‪.‬‬ ‫‪.I‬‬
‫‪ Ts‬ﻫﻤﺎن ﭘﺮﻳﻮد ﻧﻤﻮﻧﻪ ﺑﺮداري دﻳﺘﺎ ﺑﺎﺷﺪ‬
‫‪ .J‬ﺑﺎ دﺳﺘﻮر ‪ idpoly‬ﻣﺪل ‪ oe‬ﺑﺎ درﺟﻪ ‪ na = nb = n‬ﺗﺨﻤﻴﻦ ﺑﺰﻧﻴﺪ‪ .‬ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮر ‪ resid‬ﺗﺨﻤﻴﻦ را اﻋﺘﺒﺎر ﺳﻨﺠﻲ ﻛﻨﻴﺪ‪.‬‬
‫ﻧﺘﺎﻳﺞ راﺑﺎ ﻣﺪل ‪ arx‬ﻣﻘﺎﻳﺴﻪ ﻛﻨﻴﺪ‬
‫‪Sample code‬‬
‫)‪sys = idpoly(A,B,C,D,F,NoiseVariance,T‬‬
‫;)‪mARX = arx(id, [3, 3, 1]); resid(mARX, id‬‬
‫‪ 3-3‬ﺟﻤﻊ آوري دﻳﺘﺎ و ﻧﻤﻮﻧﻪ ﺑﺮداري از ﺳﻴﺴﺘﻢ آﻧﺎﻟﻮگ‬
‫‪3s + 1‬‬ ‫‪1‬‬
‫= ) ‪Ga ( s‬‬ ‫= )‪H a (s‬‬
‫‪s2 + s + 1‬‬ ‫‪s + 0.4‬‬
‫‪ .A‬ﺑﺎ دﺳﺘﻮر ‪ randn‬ﺳﻴﮕﻨﺎل ﻧﻮﻳﺰي ﺑﺮاي ‪ e‬و ‪ u‬ﺗﻮﻟﻴﺪ ﻛﻨﻴﺪ‪ .‬ﺳﻴﮕﻨﺎل ‪ e‬ﻣﻴﺎﻧﮕﻴﻦ ﺻﻔﺮ و وارﻳﺎﻧﺲ ‪ 1‬و ﺳـﻴﮕﻨﺎل ‪ u‬ﻣﻴـﺎﻧﮕﻴﻦ ‪ 1‬و‬
‫وارﻳﺎﻧﺲ ‪ 1‬دارد‪.‬‬
‫‪ .B‬ﺑﺎ دﺳﺘﻮر ‪ lsim‬ﺳﻴﮕﻨﺎل ﺧﺮوﺟﻲ ‪ y‬ﺳﻴﺴﺘﻢ ‪ A‬را ﺗﻮﻟﻴﺪﻛﺮده آﻧﺮا رﺳﻢ ﻛﻨﻴﺪ‪.‬‬
‫‪ .C‬ﭘﺎﺳﺦ ﭘﻠﻪ ﺳﻴﺴﺘﻢ ﻫﺮ دو ﺳﻴﺴﺘﻢ ‪ G‬و ‪ H‬را رﺳﻢ ﻛﻨﻴﺪ‪ .‬ﭘﺮﻳﻮد ﻧﻤﻮﻧـﻪ ﺑـﺮداري را ﺑـﻪ ﻧﺤـﻮي اﻧﺘﺨـﺎب ﻛﻨﻴـﺪ ﻛـﻪ در زﻣـﺎن ﻧﻤـﻮ‬
‫ﺳﺮﻳﻌﺘﺮﻳﻦ ‪ G‬و ‪H‬ﺣﺪود ‪ 4‬ﺗﺎ ‪ 6‬ﻧﻤﻮﻧﻪ ﺟﺎي داده ﺷﻮد‪) .‬ﻓﺼﻞ ‪(10‬‬

‫‪ 4-3‬ﻣﺪل ﮔﺴﺴﺘﻪ‬
‫‪ Impulse invariance‬را ﺑﺎ دﺳﺘﻮر ‪ cd‬ﺑﺪﺳﺖ آورﻳﺪ‪ .‬اﻟﺒﺘﻪ ﺑﻬﺮه در ‪ z=1‬ﺑﺎﻳﺪ ﻣﺸﺎﺑﻪ ﺑﻬﺮه در ‪ s=0‬ﺑﺎﺷﺪ ﻛﻪ اﺣﺘﻤﺎﻻ ﺑﺎﻳﺪ دﺳـﺘﻲ‬
‫ﺗﻨﻈﻴﻢ ﻛﻨﻴﺪ‪.‬‬
Nonlinear system identificationLAB4 4

‫ را ﻣﻼﺣﻈﻪ ﻛﻨﻴﺪ‬Two Tank System ‫ﻣﺜﺎل‬ •

Lab 4: Linear regression for function approximation. 1-4


ϕ ‫ در اﻳﻦ ﻣﺜـﺎل‬.‫ اﺳﺖ‬y=sum(ai ϕ(β(.).-c)) ‫ اﺳﺖ ﻛﻪ ﺑﺼﻮرت‬Basis ‫ﻳﻜﻲ از راﻫﻬﺎي ﺗﻘﺮﻳﺐ ﺗﻮاﺑﻊ ﻏﻴﺮ ﺧﻄﻲ اﺳﺘﻔﺎده از ﺗﻮاﺑﻊ‬
‫ ﺑﺮاي دﻳﺘﺎي اﺳﻜﺎﻟﺮ اﻳﻦ روش را‬cftool ‫ دﺳﺘﻮر‬.‫ ﺗﻨﻈﻴﻢ ﻣﻲ ﺷﻮد‬a ‫ اﺳﺖ ﻛﻪ اﻟﺒﺘﻪ ﻣﺮﻛﺰ و ﺷﻜﻞ آن ﺛﺎﺑﺖ و ﻓﻘﻂ وزن آﻧﻬﺎ‬RBF ‫ﻳﻚ‬
.‫ ﻋﻤﻠﻜﺮد اﻳﻦ دﺳﺘﻮر را ﻣﺮور ﻛﻨﻴﺪ‬.‫ﺑﻪ ﻧﺤﻮ ﺧﻮﺑﻲ ﻧﻤﺎﻳﺶ ﻣﻲ دﻫﺪ‬
‫ ﺑﺮاي اﻋﺘﺒﺎر‬val ‫ ﺑﺮاي ﺷﻨﺎﺳﺎﻳﻲ و‬id ‫ دو ﻓﺎﻳﻞ‬.‫ دﻳﺘﺎ دو ورودي و ﻳﻚ ﺧﺮوﺟﻲ دارد‬.‫ اﺳﺖ‬proj_fit_1.mat ‫دﻳﺘﺎ ﻓﺎﻳﻞ اﻳﻦ آزﻣﺎﻳﺶ‬
‫(و دﻳﮕﺮي ﻫﻤﺎن دﻳﺘﺎ ﺑﺼـﻮرت ﺑـﺮداري‬41*41) ‫ ﻳﻜﻲ ﺑﺼﻮرت ﻣﺎﺗﺮﻳﺴﻲ ﻣﺜﻼ‬.‫ ﻫﺮ دو ﻓﺎﻳﻞ ﺑﻪ دو ﺻﻮرت ذﺧﻴﺮه ﺷﺪه اﻧﺪ‬.‫ﺳﻨﺠﻲ اﺳﺖ‬
1*1681 ‫( ﺑﺎ ﺳﺎﻳﺰ‬flat)
.‫ را رﺳﻢ ﻛﻨﻴﺪ‬id ‫ ﻧﻤﻮدار‬mesh ‫ ﺑﺎ دﺳﺘﻮر‬.A
load ('proj_fit_1')
mesh(id.X{1}, id.X{2}, id.Y');
.1
1. Your will develop a approximator of this function, using a linear model with radial, Gaussian basis functions. use:
rbfapprox

% the RBF approximator creation takes as inputs:


% a) the limits of the domain as an input;
limx = minmax(id.Xflat);
% b) the number of basis functions on each dimension
% say we want 6 RBFs on each dimension (all examples are two-dimensional)
N = [6 6];
app = rbfapprox(limx, N);

y=ϕ’θ ‫ وﺟﻮد دارد‬id ‫ ﺗﻌﺪاد ﻧﻘﺎﻃﻲ از ﻣﻨﺤﻨﻲ اﺳﺖ ﻛﻪ در ﻓﺎﻳﻞ دﻳﺘﺎي‬1681 ‫ ﻫﺎ و‬RBF ‫ ﻣﻌﺮف ﺗﻌﺪاد‬36 ‫ ﻛﻪ‬36 *1681 ‫ ﺑﺎ ﺳﺎﻳﺰ‬ϕ ‫ ﺗﻮﻟﻴﺪ ﻣﺎﺗﺮﻳﺲ‬.2
for k=1:1681
phi(:,k) = app.phi(app, id.Xflat(:, k));
end
.‫ ﭘﺎراﻣﺘﺮ را ﺑﺮاي ﻓﻴﺖ ﺷﺪن دﻳﺘﺎ ﺑﻪ ﻣﺪل ﻣﺤﺎﺳﺒﻪ ﻣﻲ ﻛﻨﺪ‬LS ‫ اﻳﻦ دﺳﺘﻮر ﺑﺎ‬θ=ϕ’\y ‫ ﺑﺎ دﺳﺘﻮر‬θ ‫ ﻣﺤﺎﺳﺒﻪ‬.3
theta=(phi')\id.Yflat';
.‫ و ﺧﻄﺎي ﺗﻘﺮﻳﺐ ﻣﺤﺎﺳﺒﻪ ﻣﻲ ﺷﻮد‬.‫ ﺑﺎ ﺳﺎﻳﺰ ﻣﺘﻔﺎوت ﭼﻚ ﻣﻲ ﺷﻮد‬val ‫ ﻋﻤﻠﻜﺮد در راﺑﻄﻪ ﺑﺎ دﻳﺘﺎي‬θ ‫ ﺣﺎل ﺑﺮ اﺳﺎس ﻣﺤﺎﺳﺒﻪ‬.4
theta=(phi')\id.Yflat';
Yhat=0;
for k=1:5041
Yhat(k) = app.eval(app, val.Xflat(:, k), theta);
end
error=sum((Yhat-val.Yflat).^2)
‫ﺗﻐﻴﻴﺮ ﻣﻲ دﻫﺪ‬71*71 ‫ را ﺑﺼﻮرت ﻣﺎﺗﺮﻳﺴﻲ‬1*5041 ‫ دﻳﺘﺎي ﺑﺮداري‬reshape ‫دﺳﺘﻮر‬
Yhat = reshape(Yhat, val.dims);
mesh(val.X{1}, val.X{2}, val.Y);
hold on
mesh(val.X{1}, val.X{2}, Yhat);
hold off
‫‪ 2-4‬ﺷﺒﻴﻪ ﺳﺎزي ﻳﻚ ﺳﻴﺴﺘﻢ ﻏﻴﺮﺧﻄﻲ‬
‫‪ .A‬ﺳﻴﺴﺘﻢ ‪ :A‬ﺳﻴﺴﺘﻢ ﻏﻴﺮ ﺧﻄﻲ زﻳﺮ ‪ a= -0.5, b=1‬را ﺑﺎ ورودي ﻧﻮﻳﺰي )‪ N(0,1‬و اﺧﺘﻼل )‪ N(0,1‬ﺗﺤﺮﻳﻚ و دﻳﺘﺎي ورودي‪-‬‬
‫ﺧﺮوﺟﻲ را رﺳﻢ ﻛﻨﻴﺪ‪ .‬ﺗﻌﺪاد ﻧﻤﻮﻧﻪ ‪ 1024‬ﺑﺎﺷﺪ‬
‫‪x1 = x 2 + e1‬‬
‫‪x 2 = 1000 ( a − bx12 ) x 2 − x1 + u + e2‬‬
‫‪y = x2‬‬
‫‪ .B‬ﭘﺎﺳﺦ ﭘﻠﻪ آﻧﺮا رﺳﻢ و ﭘﺮﻳﻮد ﻧﻤﻮﻧﻪ ﺑﺮداري ﻣﻨﺎﺳﺐ را اﻧﺘﺨﺎب ﻛﻨﻴﺪ‪.‬‬
‫‪ .C‬ﺑﺎ دﺳﺘﻮر ‪ iddata‬دﻳﺘﺎي ﺑﺮاي ﺷﻨﺎﺳﺎﻳﻲ آﻣﺎده ﻧﻤﺎﻳﻴﺪ‪.‬‬
‫‪Sample codes‬‬
‫;‪ua=7‬‬ ‫‪% step amplitude‬‬
‫;‪t1=5‬‬ ‫‪%step end time‬‬
‫;]‪tspan=[0 10‬‬ ‫‪%time span‬‬
‫;‪y0=0‬‬ ‫‪% initial condition‬‬
‫‪[t,y] = ode45(@(t,y) diff10(t,y,ua,t1),tspan,y0); %others such as ode23 and so on‬‬
‫;)'‪plot(t,y(:,1),'-o‬‬
‫ﺳﭙﺲ ﻓﺎﻳﻞ ‪ diff10‬را ﺟﺪاﮔﺎﻧﻪ ﺑﻨﻮﻳﺴﻴﺪ‬
‫)‪function dv=diff10(t,v,ua,t1‬‬
‫‪if t<t1 u=ua; else u=0; end‬‬
‫;‪dv=-v*abs(v)+u‬‬

‫ﺳﻴﺴﺘﻢ ‪ : B‬ﺳﻴﺴﺘﻢ ﻏﻴﺮ ﺧﻄﻲ ﮔﺴﺴﺘﻪ را ﺑﺎ )‪ e∈N(0,1‬و )‪ u∈N(1,2‬ﺷﺒﻴﻪ ﺳﺎزي ﻛﻨﻴﺪ‬


‫] )‪y(t ) = y(t −1)[0.8 − 0.5e− y 2 (t −1) ] − y(t − 2)[0.3 + 0.9e− y 2 (t −1‬‬
‫) ‪+ u(t −1) + 0.2u(t − 2) + 0.1u(t −1)u (t − 2) + e(t‬‬
‫‪ .K‬ﺑﺎ دﺳﺘﻮر ‪ iddata‬دﻳﺘﺎ ﺑﺮاي ﺷﻨﺎﺳﺎﻳﻲ آﻣﺎده ﻧﻤﺎﻳﻴﺪ‬

‫‪ 3-4‬ﺷﻨﺎﺳﺎﻳﻲ ﺑﺮ اﺳﺎس ‪physical insight‬‬


‫ﭘﺎراﻣﺘﺮﻫﺎي ]‪ [0.8, -0.5, 0.3, 0.9, 1, 0.2, 0.1‬ﺳﻴﺴﺘﻢ را ﺑﺎ دﺳﺘﻮر ‪ nlarx‬ﺑﺎ رﮔﺮﺳﻮر ﺧﻄﻲ‪-‬ﻏﻴﺮ ﺧﻄﻲ ﺗﺨﻤﻴﻦ ﺑﺰﻧﻴﺪ و ﺑﺎ‬
‫ﺑﺎ ﺑﺮرﺳﻲ ‪ Re‬و ‪ Rue‬درﺳﺘﻲ ﻋﻤﻠﻜﺮد را اﻋﺘﺒﺎر ﺳﻨﺠﻲ ﻛﻨﻴﺪ )‪ Preprocessing‬را اﻧﺠﺎم دﻫﻴﺪ(‬
‫)}')‪m = nlarx(z1,[0 0 0],'linear','CustomReg',{'y1(t-1)^2','y1(t-2)*u1(t-3‬‬

‫‪Black box Nonlinear system identification 4-4‬‬


‫‪ .A‬ﺳﻴﺴﺘﻢ را ﺑﺎ اﺳﺘﻔﺎده از ‪ nlarx‬ﺗﺨﻤﻴﻦ ﺑﺰﻧﻴﺪ‪ .‬ﺑﺮاي آن ﺗﻮاﺑﻊ ﭘﺎﻳـﻪ ‪ treepartioning ،sigmoid ،wavelet‬را ﺑﻜـﺎر ﮔﺮﻓﺘـﻪ‬
‫ﻧﺘﺎﻳﺞ را ﻣﻘﺎﻳﺴﻪ ﻛﻨﻴﺪ‪.‬‬
‫‪ .B‬ﺗﺎﺑﻊ ﻏﻴﺮ ﺧﻄﻲ دﻟﺨﻮاه ﻣﻌﺮﻓﻲ و ﺗﻼش ﻛﻨﻴﺪ ﺳﻴﺴﺘﻢ را ﺷﻨﺎﺳﺎﻳﻲ ﻛﻨﻴﺪ‬
Sample code
load twotankdata
Ts = 0.2; % Sampling interval is 0.2 min
z = iddata(y,u,Ts); % constructs iddata object
m = nlarx(z,[4 4 1]) % na=nb=4 and nk=1
or
m3 = nlarx(ze,[2 2 3],wavenet('num',8));
or
Define model: m5 = idnlarx([2 2 3],sigmoidnet('num',14),'nlr',[1 2]); m5 = pem(ze,m5);
Model compare: compare(zv, m1,m2,m3,m4,m5)
or
NL = wavenet('NumberOfUnits',5);
m = nlarx(z,[4 4 1],NL)
or using custom nonlinearity: gaussunit.m.
function [f, g, a] = GAUSSUNIT(x)
[f, g, a] = gaussunit(x); f = exp(-x.*x);
if nargout>1 g = - 2*x.*f; a = 0.2; end
H = @gaussunit; CNetw = customnet(H);
m = nlarx(data,[na nb nk],CNetw)
‫ درﺳﺘﻲ ﻋﻤﻠﻜﺮد را اﻋﺘﺒﺎر ﺳﻨﺠﻲ ﻛﻨﻴﺪ‬Rue ‫ و‬Re ‫ ﺑﺮرﺳﻲ‬.C

Neural Network system identification 5-4


‫ ﺷﻨﺎﺳﺎﻳﻲ ﻛﻨﻴﺪ‬narxnet ‫ ﺳﻴﺴﺘﻢ را ﺑﺎ‬.A
Sample code
[X,T] = simpleseries_dataset;
net = narxnet(1:2,1:2,10)
[Xs,Xi,Ai,Ts] = preparets(net,X,{},T)
net = train(net,Xs,Ts,Xi,Ai);
view(net)
Y = net(Xs,Xi,Ai);
perf = perform(net,Ts,Y)
‫ درﺳﺘﻲ ﻋﻤﻠﻜﺮد را اﻋﺘﺒﺎر ﺳﻨﺠﻲ ﻛﻨﻴﺪ‬Rue ‫ و‬Re ‫ ﺑﺎ ﺑﺮرﺳﻲ‬.B

Fuzzy system modeling 6-4


.‫ ﺷﻨﺎﺳﺎﻳﻲ ﻛﻨﻴﺪ‬anfis ‫ ﺳﻴﺴﺘﻢ را ﺑﺎ روش‬.A
Sample program
x = (0:0.1:10)'; y = sin(2*x)./exp(x/5);
trnData = [x y]; numMFs = 5;
mfType = 'gbellmf'; epoch_n = 20;
in_fis = genfis1(trnData,numMFs,mfType);
out_fis = anfis(trnData,in_fis,20);
plot(x,y,x,evalfis(x,out_fis)); legend('Training Data','ANFIS Output');
‫ درﺳﺘﻲ ﻋﻤﻠﻜﺮد را اﻋﺘﺒﺎر ﺳﻨﺠﻲ ﻛﻨﻴﺪ‬Rue ‫ و‬Re ‫ ﺑﺎ ﺑﺮرﺳﻲ‬.B
Lab5: Fault diagnosis 5

antialiasing ‫فيلتر‬

get(dry) iddata ‫نمايش محتوی‬


ze = detrend(ze); ‫حذف اختالل فرکانس پايين‬
showConfidence(impulseplot(mi),3); ‫پاسخ ضربه‬
m1 = ssest(ze); ‫تخمين مدل فضای حالت پيوسته‬
h = bodeplot(m1);
showConfidence(h,3)
m2 = arx(ze,[2 2 3]); Use "polydata", "getpvec", "getcov"

m3 = tfest(ze, 3, 1, 0.2)

zv = detrend(zv); % preprocess the validation data


compare(zv,m1,'b',m2,'r',m3,'c');

h = iopzplot(m1,'b',m2,'r',m3,'c');
deviations.showConfidence(h,3);
showConfidence(nyquistplot(m1,'b',m2,'r',m3,'c',gs,'g'),3)

You might also like