两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種基于matlab的模糊控制器hdl代碼自動(dòng)生成方法

文檔序號(hào):6437656閱讀:2138來(lái)源:國(guó)知局
專利名稱:一種基于matlab的模糊控制器hdl代碼自動(dòng)生成方法
技術(shù)領(lǐng)域
本發(fā)明屬于集成電路設(shè)計(jì)技術(shù)領(lǐng)域,特別涉及一種基于MATLAB的模糊控制器HDL 代碼自動(dòng)生成方法。
背景技術(shù)
本申請(qǐng)引用的文獻(xiàn)包括如下,[l]http://zh. wikipedia. org/zh/MATLAB[2]http://baike. baidu. com/view/584919. htm[3]http://zh.wikipedia. org/wiki/Simulink[4]席愛(ài)民.模糊控制技術(shù)[Μ].西安西安電子科技大學(xué)出版社,2008 :98-108.[5]http://baike. baidu. com/view/2323253. html ? fromTaglist以下描述本發(fā)明涉及的一些術(shù)語(yǔ)和縮略語(yǔ)。MATLAB (矩陣實(shí)驗(yàn)室)MATLAB是MATrix LABoratory的縮寫,是一款由美國(guó)The Mathfforks公司出品的商業(yè)數(shù)學(xué)軟件。MATLAB是一種用于算法開(kāi)發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級(jí)技術(shù)計(jì)算語(yǔ)言和交互式環(huán)境。除了矩陣運(yùn)算、繪制函數(shù)/數(shù)據(jù)圖像等常用功能外,MATLAB 還可以用來(lái)創(chuàng)建用戶界面及與調(diào)用其它語(yǔ)言(包括C,C++和FORTRAN)編寫的程序。盡管 MATLAB主要用于數(shù)值運(yùn)算,但利用為數(shù)眾多的附加工具箱(Toolbox)它也適合不同領(lǐng)域的應(yīng)用,例如控制系統(tǒng)設(shè)計(jì)與分析、圖像處理、信號(hào)處理與通訊、金融建模和分析等。另外還有一個(gè)配套軟件包Simul ink,提供了一個(gè)可視化開(kāi)發(fā)環(huán)境,常用于系統(tǒng)模擬、動(dòng)態(tài)/嵌入式系統(tǒng)開(kāi)發(fā)等方面[1]。Simulink (仿真和連接)Simulink是MATLAB最重要的組件之一,它提供一個(gè)動(dòng)態(tài)系統(tǒng)建模、仿真和綜合分析的集成環(huán)境。在該環(huán)境中,無(wú)需大量書寫程序,而只需要通過(guò)簡(jiǎn)單直觀的鼠標(biāo)操作,就可構(gòu)造出復(fù)雜的系統(tǒng)。Simulink具有適應(yīng)面廣、結(jié)構(gòu)和流程清晰及仿真精細(xì)、貼近實(shí)際、效率高、靈活等優(yōu)點(diǎn),同時(shí)有大量的第三方軟件和硬件可應(yīng)用于或被要求應(yīng)用于Simulink[2]。 Simulink提供了一個(gè)交互式的圖形化環(huán)境及可定制模塊庫(kù)(Library),可對(duì)各種時(shí)變系統(tǒng),例如通訊、控制、信號(hào)處理、視頻處理和圖像處理系統(tǒng)等進(jìn)行設(shè)計(jì)、仿真、執(zhí)行和測(cè)試[3]。模糊控制器模糊控制器由模糊化接口,推理機(jī),規(guī)則庫(kù),反模糊化接口四部分組成。模糊化接口用于將控制器的輸入轉(zhuǎn)化為模糊控制器能識(shí)別的信息。推理機(jī)用于模仿專家作出決策, 根據(jù)模糊化接口接收的信息判斷如何更好地控制對(duì)象。規(guī)則庫(kù)則是將專家的控制經(jīng)驗(yàn)量化,它由含if-then的規(guī)則語(yǔ)句構(gòu)成。反模糊化接口是將推理機(jī)作出的決策信息清晰化,用于控制實(shí)際的被控對(duì)象。模糊控制器的基本工作原理是將輸入的數(shù)字信號(hào)經(jīng)過(guò)模糊化變成模糊量,送入含有模糊規(guī)則的模糊推理模塊,經(jīng)過(guò)近似推理得出結(jié)論——模糊集合,然后被清晰化模塊變成清晰量,再輸出到下一級(jí)去調(diào)節(jié)被控對(duì)象,使其輸出滿意的結(jié)果[4]。模糊控制器的結(jié)構(gòu)如

圖1所示。近些年模糊控制技術(shù)在理論上的發(fā)展主要表現(xiàn)在對(duì)模糊控制系統(tǒng)穩(wěn)定性的分析方法的研究上,提出很多系統(tǒng)穩(wěn)定性分析方法。而工程應(yīng)用上,首先要考慮的是如何在硬件系統(tǒng)上實(shí)現(xiàn)模糊控制器,然后通過(guò)一定的仿真工具進(jìn)行仿真實(shí)驗(yàn),觀察仿真結(jié)果是否穩(wěn)定,而實(shí)現(xiàn)模糊控制器的方法最實(shí)用的還是查找表方法,即將輸入變量的限定在一定的范圍(論域),對(duì)于所有輸入變量的任意組合對(duì)應(yīng)的輸出制成一張查找表,把這張表存儲(chǔ)在硬件資源上,這樣模糊控制器就相當(dāng)于一張查找表,某一組輸入對(duì)應(yīng)一組輸出,有了這張查找表,那么在軟件上實(shí)現(xiàn)起來(lái)就容易多了。不過(guò)要制作出這張查找表,不是一件容易的事情, 尤其是在輸入變量比較多。UFuzzy Logic ^Toolbox (模糊邏輯工具箱)Fuzzy Logic Toolbox利用基于模糊邏輯的系統(tǒng)設(shè)計(jì)工具擴(kuò)展了 MATLAB的科學(xué)計(jì)算功能。通過(guò)圖形用戶界面工具可以完成模糊推理系統(tǒng)設(shè)計(jì)的全過(guò)程。工具箱中的函數(shù)提供了多種通用的模糊邏輯設(shè)計(jì)方法,例如模糊群(Fuzzy Clustering)、模糊自適應(yīng)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)(AdaptiveNeuro-fuzzy Learning) 0通過(guò)該工具箱可以利用簡(jiǎn)單的模糊規(guī)則對(duì)復(fù)雜的系統(tǒng)行為進(jìn)行建模,然后將這些規(guī)則應(yīng)用于模糊推理系統(tǒng)。工程師可以將該工具箱作為一個(gè)獨(dú)立應(yīng)用的模糊推理引擎,或者在整個(gè)動(dòng)態(tài)系統(tǒng)中使用Simulink中的模糊推理模塊對(duì)其中的模糊子系統(tǒng)進(jìn)行仿真。http://www. hirain. com/Product/Article, asp ? ArtClassID = 13982、Systemtest (系統(tǒng)測(cè)試工具)Systemtest是集成在MATLAB中的一個(gè)功能強(qiáng)大的系統(tǒng)測(cè)試和驗(yàn)證分析工具,為 MATLAB算法和Simulink模型的測(cè)試開(kāi)發(fā)提供了一個(gè)軟件框架,用戶可以利用預(yù)定義的元件來(lái)搭建和維護(hù)標(biāo)準(zhǔn)的測(cè)試程序,還可以在整個(gè)開(kāi)發(fā)項(xiàng)目的過(guò)程中進(jìn)行測(cè)試的保存和共享以確保測(cè)試的可復(fù)用性。用戶可以通過(guò)MATLAB的腳本語(yǔ)言和分析工具對(duì)大型數(shù)據(jù)集進(jìn)行分析,并對(duì)系統(tǒng)的行為進(jìn)行詳盡的研究。3、Lookup Table (查找表或查詢表)查找表是MATLAB組件Simulink中的一個(gè)模塊庫(kù),庫(kù)中包含各類查找表,如一維查找表、二維查找表、η維查找表等。主要是用于逼近一維、二維、η維函數(shù)。查找表是由同一類型的數(shù)據(jù)元素(或記錄)構(gòu)成的集合,由于“集合”中的數(shù)據(jù)元素之間存在著松散的關(guān)系, 因此查找表是一種應(yīng)用靈便的數(shù)據(jù)結(jié)構(gòu)。4、Stateflow (狀態(tài)機(jī))Stateflow是有限狀態(tài)機(jī)(finite state machine)的圖形工具,它可以用于解決復(fù)雜的邏輯問(wèn)題,用戶可以通過(guò)圖形化工具實(shí)現(xiàn)在不同狀態(tài)之間的轉(zhuǎn)換。Stateflow可以直接嵌入到Simulink仿真模型中,并且在仿真的初始化階段,SIMULINK會(huì)把Mateflow 繪制的邏輯圖形通過(guò)編譯程序轉(zhuǎn)換成C語(yǔ)言,使二者有機(jī)地結(jié)合在一起。Stateflow 可以在SIMULINKExtra模塊庫(kù)中找到。Stateflow的仿真原理是有限狀態(tài)機(jī)(finite statemachine)理論,有限狀態(tài)機(jī)是指系統(tǒng)含有可數(shù)的狀態(tài),在相應(yīng)的狀態(tài)事件發(fā)生時(shí),系統(tǒng)會(huì)從當(dāng)前狀態(tài)轉(zhuǎn)移到與之對(duì)應(yīng)的狀態(tài)。在有限狀態(tài)機(jī)中實(shí)現(xiàn)狀態(tài)的轉(zhuǎn)移是有一定條件的,同時(shí)相互轉(zhuǎn)換的狀態(tài)都會(huì)有狀態(tài)轉(zhuǎn)移事件,這樣就構(gòu)成了狀態(tài)轉(zhuǎn)移圖。在SIMULINK的仿真窗口中,允許用戶建立有限個(gè)狀態(tài)以及狀態(tài)轉(zhuǎn)移的條件與事件,從而繪制出有限狀態(tài)機(jī)系統(tǒng),這樣就可以實(shí)現(xiàn)對(duì)系統(tǒng)的仿真。Stateflow的仿真框圖一般都會(huì)嵌入到Simulink 仿真模型中,同時(shí)實(shí)現(xiàn)狀態(tài)轉(zhuǎn)移的條件或是事件即可以取自Stateflow仿真框圖,也可以來(lái)自Simulink仿真模型[5]。5、HDL Coder (HDL i吾言編碼器)HDL Coder是Simulink下面的一個(gè)功能模塊,它可以把Simulink模型、MATLAB代碼和Mateflow框圖生成位真(bit-true)、周期精確(cycle-accurate)、可綜合的Verilog 和VHDL代碼。通過(guò)使用工業(yè)標(biāo)準(zhǔn)化設(shè)計(jì)工具,可以對(duì)自動(dòng)生成的HDL代碼進(jìn)行仿真和綜合, 并進(jìn)一步映射到FPGA和ASIC芯片上。SimulinkHDL Coder可以控制HDL的體系架構(gòu)和實(shí)施,突出模型中的關(guān)鍵路徑,生成硬件資源利用評(píng)估。Simulink HDL Coder還能夠生成測(cè)試驗(yàn)證平臺(tái)以及EDASimulator Link的仿真模型,并提供支持D0-2M工作流的代碼跟蹤能力,從而對(duì)生成的HDL代碼進(jìn)行快速驗(yàn)證m。為了說(shuō)明現(xiàn)有技術(shù)中基于MATLAB的模糊控制器HDL代碼自動(dòng)生成方法,有以下例子說(shuō)明。1利用MATLAB的Fuzzy Logic工具箱設(shè)計(jì)模糊控制器本實(shí)驗(yàn)的目的是要將設(shè)計(jì)的模糊控制器用MATLAB自動(dòng)生成HDL代碼,以用于 FPGA中。由于用Fuzzy Logic設(shè)計(jì)的模糊控制器tank, fis嵌入到simulink中的Fuzzy Controller元件中不能自動(dòng)生成HDL代碼,故這里采用LookupTable (LUT)來(lái)設(shè)計(jì)模糊控制器以便能用MATLAB內(nèi)嵌的HDL Coder自動(dòng)生成HDL代碼。本實(shí)驗(yàn)是按照Demos中的例子Water Level Control in a Tank來(lái)設(shè)計(jì)模糊控制器的,這是一個(gè)標(biāo)準(zhǔn)二維mamdani (—類模糊控制器名稱)模糊控制器。其輸入變量有兩個(gè)分量,偏差e和偏差變化率ec = de/dt,一個(gè)輸出量U。偏差e為給定液位與實(shí)際輸出液位的偏差,這里命名為level,偏差變化率就是偏差隨時(shí)間的變化率,這里稱為rate,輸出量為閥門的開(kāi)度,這里為valve。該模糊控制器有5條控制規(guī)則。對(duì)于輸入變量level有三個(gè)模糊子集high、okay和low覆蓋在模糊論域[_1, 1]上,輸入變量rate同樣有三個(gè)模糊子集negative、none和positive覆蓋在模糊論域 [-0. 1,0. 1]上,輸出變量 valve 則有五個(gè)模糊子集 close_fast、close_slow、no_change、 open_slow禾口 open_fast覆蓋在模糊論域[_1,1]上。2用查找表設(shè)計(jì)模糊控制器替換原來(lái)水箱液位模糊控制器的步驟[7]2. 1制作輸入輸出變量的隸屬度矢量表首先,從圖4看出兩輸入變量level和rate的隸屬函數(shù)都是高斯函數(shù)且high、 okay 和 low 參數(shù)分別為


,而 negative、none 和 positive 的參數(shù)分別為
、

,輸出變量valve為三角形函數(shù),它們的參數(shù)分別為[-1-0. 9-0. 8]、[-0. 6-0. 5-0. 4]、[-0. 1 0 0. 1]、

。這里高斯函數(shù)在相應(yīng)點(diǎn)的隸屬度是根據(jù)simulink里面Fuzzy Logic Toolbox中的函數(shù)模塊 Gaussian MF按以上參數(shù)設(shè)置計(jì)算得到的。由以上分析可得三張輸入輸出變量隸屬度矢量表如下。表1輸入level的隸屬度矢量表表2輸入rate的隸屬度矢量表
權(quán)利要求
1. 一種基于MATLAB的模糊控制器HDL代碼自動(dòng)生成方法,其特征在于,包括步驟 利用MATLAB的Fuzzy Logic工具箱獲得模型的模糊控制器; 利用SystemTest工具制作模糊控制器查找表; 將制作好的模糊控制器查找表用狀態(tài)機(jī)實(shí)現(xiàn); 在MATLAB中自動(dòng)生成所述模型的HDL代碼,其中,所述的利用SystemTest工具制作模糊控制器查找表步驟又包括 對(duì)所述模型運(yùn)行一次短時(shí)仿真,獲得第一模型文件,新建第二模型文件,把第一模型文件的模糊控制模塊復(fù)制到第二模型文件,在SystemTest中給Main Test添加一個(gè)Simulink測(cè)試元素,將第二模型文件作為待測(cè)試模型,構(gòu)建測(cè)試向量和測(cè)試變量,測(cè)試向量的個(gè)數(shù)與第二模型文件的輸入個(gè)數(shù)一致,測(cè)試向量的范圍與各個(gè)輸入的范圍一致,并選擇合適步長(zhǎng),測(cè)試向量作為模型測(cè)試的輸入信號(hào),模型測(cè)試的輸出信號(hào)存放在建立的測(cè)試變量里,將建立的測(cè)試向量與第二模型文件的輸入口建立映射關(guān)系,將建立的測(cè)試變量與第二模型的輸出口建立映射關(guān)系,將測(cè)試變量和保存結(jié)果變量建立映射,使測(cè)試變量的結(jié)果能夠得以保存, 運(yùn)行測(cè)試,將所述測(cè)試生成的模糊控制表制成為一個(gè)查找表,然后用所述查找表替換所述模型中的模糊控制器模塊并運(yùn)行,查看和驗(yàn)證所述測(cè)試生成的模糊控制表控制效果。
全文摘要
本發(fā)明公開(kāi)了一種基于MATLAB的模糊控制器HDL代碼自動(dòng)生成方法,其中,所述的利用SystemTest工具制作模糊控制器查找表步驟包括對(duì)所述模型運(yùn)行一次短時(shí)仿真,獲得第一模型文件,新建第二模型文件,把第一模型文件的模糊控制模塊復(fù)制到第二模型文件,在SystemTest中給Main Test添加一個(gè)Simulink測(cè)試元素,將第二模型文件作為待測(cè)試模型,構(gòu)建測(cè)試向量和測(cè)試變量,測(cè)試向量的個(gè)數(shù)與第二模型文件的輸入個(gè)數(shù)一致,測(cè)試向量的范圍與各個(gè)輸入的范圍一致,并選擇合適步長(zhǎng),測(cè)試向量作為模型測(cè)試的輸入信號(hào),模型測(cè)試的輸出信號(hào)存放在建立的測(cè)試變量里。
文檔編號(hào)G06F9/44GK102393819SQ20111034929
公開(kāi)日2012年3月28日 申請(qǐng)日期2011年11月8日 優(yōu)先權(quán)日2011年11月8日
發(fā)明者許甜甜, 諸葛俊貴, 顧美康 申請(qǐng)人:上海師范大學(xué)
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
全南县| 兴隆县| 彝良县| 西安市| 石首市| 尚志市| 墨竹工卡县| 博爱县| 河东区| 潮州市| 比如县| 瑞安市| 贞丰县| 伊春市| 新干县| 安化县| 綦江县| 科尔| 府谷县| 隆尧县| 铁岭市| 长治市| 彭水| 务川| 阿克苏市| 青铜峡市| 达州市| 荥经县| 大新县| 马山县| 平乐县| 漳平市| 望奎县| 哈尔滨市| 闸北区| 财经| 买车| 商城县| 西华县| 门源| 公安县|