資源描述:
《利用S-Function實現(xiàn)傳遞函數(shù).docx》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、利用S-Function實現(xiàn)傳遞函數(shù)利用S-Function實現(xiàn)傳遞函數(shù)1引言21、MATLAB函數(shù)命令介紹21.1MATLABtf函數(shù)命令:21.2MATLABss函數(shù)命令:21.3MATLABtf2ss函數(shù)命令:32、實例仿真32.1假設(shè)工業(yè)過程某傳遞函數(shù):32.2修改S-Function模板參數(shù):42.3仿真結(jié)果10引言自然界大多數(shù)的過程都可以看做是一個系統(tǒng),一般來說系統(tǒng)都會有輸入和輸出,而傳遞函數(shù)就是輸入到輸出的一個轉(zhuǎn)換方式,比如,對于一個罐體來說,流量是輸入,液位是輸出,則從流量轉(zhuǎn)換到液位的過程就是傳遞函數(shù)的本質(zhì),可以通過求解方程式,來確定
2、傳遞函數(shù)的數(shù)學(xué)形式,也可以通過實驗法來辨識這個數(shù)學(xué)模型。S-Function的功能就不多說了,總之,其功能之強大,屬MATLAB/Simulink開發(fā)者必學(xué)之內(nèi)容。這篇短文講述的就是如何利用S-Function實現(xiàn)傳遞函數(shù):我們知道S-Function有自己的模板,而我們要做的就是更改模板代碼中的某些參數(shù)就行了,考慮到這些參數(shù)和狀態(tài)方程的關(guān)系密切,因此,本文的思路就是首先將傳遞函數(shù)轉(zhuǎn)為系統(tǒng)狀態(tài)方程,然后再對參數(shù)進行修改。1、MATLAB函數(shù)命令介紹1.1MATLABtf函數(shù)命令:建立傳遞函數(shù):例1:s=tf('s');H=s/(s^2+2*s+10)
3、;例2:h=tf([10],[1210]);1.2MATLABss函數(shù)命令:建立狀態(tài)空間模型連續(xù)模型:sys=ss(a,b,c,d)createsastate-spacemodelobjectrepresentingthecontinuous-timestate-spacemodelForamodelwithNxstates,Nyoutputs,andNuinputs:aisanNx-by-Nxreal-orcomplex-valuedmatrix.bisanNx-by-Nureal-orcomplex-valuedmatrix.cisanNy-by
4、-Nxreal-orcomplex-valuedmatrix.disanNy-by-Nureal-orcomplex-valuedmatrix.TosetD=0,setdtothescalar0(zero),regardlessofthedimension.離散模型:sys=ss(a,b,c,d,Ts)createsthediscrete-timemodelwithsampletimeTs(inseconds).SetTs=-1orTs=[]toleavethesampletimeunspecified.1.3MATLABtf2ss函數(shù)命令:將傳遞函
5、數(shù)模型轉(zhuǎn)化為狀態(tài)空間模型,單輸入單輸出系統(tǒng)轉(zhuǎn)換如下:利用該命令不僅可以轉(zhuǎn)換SISO系統(tǒng)也可以轉(zhuǎn)換MIMO系統(tǒng),如下MISO系統(tǒng)也可以:den=[023;121];num=[10.41];[A,B,C,D]=tf2ss(den,num)結(jié)果:A=-0.4000-1.00001.00000B=10C=2.00003.00001.60000D=012、實例仿真2.1假設(shè)工業(yè)過程某傳遞函數(shù):den=[1.5];num=[151];[A,B,C,D]=tf2ss(den,num)結(jié)果:a=x1x2x1-5-1x210b=u1x11x20c=x1x2y101.5
6、d=u1y10所以有:2.2修改S-Function模板參數(shù):從結(jié)果可以看出,系統(tǒng)有兩個狀態(tài),沒有離散狀態(tài),輸入1個,輸出1個,無直通反饋,一種采用時間,打開模板,復(fù)制代碼。function[sys,x0,str,ts,simStateCompliance]=sfuntmpl(t,x,u,flag)【一個主函數(shù),需修改原函數(shù)名:sfuntmpl】%SFUNTMPLGeneralMATLABS-FunctionTemplate%WithMATLABS-functions,youcandefineyouownordinarydifferential%eq
7、uations(ODEs),discretesystemequations,and/orjustabout%anytypeofalgorithmtobeusedwithinaSimulinkblockdiagram.%%ThegeneralformofanMATLABS-functionsyntaxis:%[SYS,X0,STR,TS,SIMSTATECOMPLIANCE]=SFUNC(T,X,U,FLAG,P1,...,Pn)%%WhatisreturnedbySFUNCatagivenpointintime,T,dependsonthe%valu
8、eoftheFLAG,thecurrentstatevector,X,andthecurrent%input