1 引 言
由于模糊控制ä¸ä¾è³´ç³»çµ±çš„ç²¾ç¢ºæ¨¡åž‹ï¼Œå…·æœ‰ä¸€å®šé©æ‡‰èƒ½åŠ›ã€é¯æ£’性好ç‰ç‰¹é»žï¼Œæ‰€ä»¥æ¨¡ç³ŠæŽ§åˆ¶å™¨åœ¨å·¥æ¥æŽ§åˆ¶ç³»çµ±ä¸æœ‰è‘—å»£æ³›çš„æ‡‰ç”¨å ´åˆã€‚傳統模糊控制器å°ç‰¹å®šå°ˆå®¶çš„ç¶“é©—ä¾è³´å¤§ï¼Œæ‰€ä»¥æœ‰é—œæ¨¡ç³ŠæŽ§åˆ¶å™¨çš„æ€§èƒ½å„ªåŒ–是人們一直以來關注的å•題。其ä¸ï¼Œåƒæ•¸è‡ªèª¿æ•´æ¨¡ç³ŠæŽ§åˆ¶å™¨å°±æ˜¯ä¸€ç¨®åŸºäºŽå°æ¨¡ç³ŠæŽ§åˆ¶å™¨çš„輸入和輸出的é‡åŒ–å› å進行自動調節的改進模糊控制器。
有關模糊控制器的æˆåŠŸå¯¦ç¾æ–¹æ¡ˆå¾ˆå¤šï¼Œä¾‹å¦‚基于PC機或單片機ç‰ã€‚近年隨著電å集æˆåˆ¶é€ å·¥è—以åŠè¨ˆç®—機輔助è¨è¨ˆæŠ€è¡“的發展,出ç¾äº†åŸºäºŽEDA工程[1] çš„FPGA開發技術。利用FPGAè±å¯Œçš„硬件資æºï¼Œä»¥åŠæ–¹ä¾¿çš„輔助開發工具,å¯ä»¥é–‹ç™¼ä¸€äº›æ–°åž‹çš„自動化控制器。
æœ¬æ–‡çµ¦å‡ºä¸€ç¨®å…·æœ‰ä¸€å®šé©æ‡‰èƒ½åŠ›çš„åƒæ•¸è‡ªèª¿æ•´æ¨¡ç³ŠæŽ§åˆ¶å™¨ï¼Œå¹¶ä¸”給出有關基于FPGA的實ç¾è¨è¨ˆæ–¹æ¡ˆã€‚
2 åƒæ•¸è‡ªèª¿æ•´æ¨¡ç³ŠæŽ§åˆ¶å™¨åŽŸç†èˆ‡è¨è¨ˆ
2.1 模糊控制器原ç†
普通的模糊控制器包括模糊é‡åŒ–ã€æ¨¡ç³Šè¦å‰‡ã€æ¨¡ç³Šæ±ºç–ã€æ¨¡ç³Šåˆ¤æ±ºç‰äº”
個大部分。其ä¸ï¼Œæ¨¡ç³Šé‡åŒ–完æˆå°è¼¸å…¥ç²¾ç¢ºé‡è½‰æ›ç‚ºè¼¸å…¥æ¨¡ç³Šé‡ã€‚模糊è¦å‰‡æ˜¯ä¸€ç³»åˆ—控制è¦å‰‡ï¼Œé€šå¸¸æ˜¯ä¸€çµ„IF-THENçµæ§‹çš„è¦å‰‡ã€‚æ¨¡ç³Šæ±ºç–æ˜¯æ ¹æ“šè¼¸å…¥æ¨¡ç³Šé‡ä»¥åŠæ¨¡ç³ŠæŽ§åˆ¶è¦å‰‡ï¼Œç²å¾—有關模糊決ç–值。模糊判決是指從決ç–值模糊集ä¸ï¼Œåˆ¤æ±ºå‡ºä¸€å€‹ç¢ºåˆ‡çš„æ¸…æ™°é‡ã€‚ç„¶åŽæŠŠæœ‰é—œæŽ§åˆ¶é‡ä½œç”¨åˆ°è¢«æŽ§åˆ¶å°è±¡ä¸Šã€‚通常在模糊é‡åŒ–çš„éŽç¨‹ä¸ï¼Œå°è¼¸å…¥é‡è¦ä¹˜ä»¥ä¸€å€‹æ¯”ä¾‹å› å,進而é‡åŒ–到模糊å€é–“ä¸Šã€‚ç›¸é¡žä¼¼ï¼Œåœ¨æ¨¡ç³Šåˆ¤æ±ºè¼¸å‡ºçš„æ±ºç–æ¨¡ç³Šé‡ä¹Ÿè¦ä¹˜ä»¥ä¸€å€‹æ¯”ä¾‹å› å,進而é‡åŒ–到控制é‡çš„精確å€é–“上。
[align=center]

圖1 普通模糊系統的原ç†ç¤ºæ„圖[/align]
圖1是普通模糊系統的原ç†ç¤ºæ„圖。圖ä¸ï¼Œrã€yã€eå’Œec分別是系統的輸入信號ã€è¼¸å‡ºä¿¡è™Ÿã€ç³»çµ±çš„誤差信號ã€ç³»çµ±è¼¸å…¥èª¤å·®å¾®åˆ†ä¿¡è™Ÿã€‚Eå’ŒEC分別是,系統輸入誤差信號以åŠç›¸æ‡‰èª¤å·®å¾®åˆ†ä¿¡è™Ÿï¼Œé‡åŒ–到模糊å€é–“ä¸Šçš„å°æ‡‰é‡åŒ–值。Uæ˜¯æ¨¡ç³Šåˆ¤æ±ºæŽ§åˆ¶çš„æ±ºç–æ¨¡ç³Šé‡ï¼Œu是控制é‡åŒ–值轉æ›åˆ°æŽ§åˆ¶ç²¾ç¢ºå€é–“çš„å°æ‡‰è¼¸å‡ºæŽ§åˆ¶é‡ã€‚G1ã€G2ã€G3分別為輸入é‡åŒ–ä»¥åŠæŽ§åˆ¶é‡åŒ–çš„æ¯”ä¾‹å› å。
æ¯”ä¾‹å› åG1ã€G2å’ŒG3å°ç³»çµ±éŸ¿æ‡‰çš„影響很大。若G1變化時候,則控制決ç–表相應的水平覆蓋域發生變化,使åŒä¸€æ•¸é‡å€¼çš„e所處的水平å€åŸŸç™¼ç”Ÿè®ŠåŒ–,相應的輸出控制é‡ä¾¿å¯èƒ½ç™¼ç”Ÿè®ŠåŒ–。實è¸è‰æ˜Žï¼šåœ¨ç³»çµ±éŸ¿æ‡‰æ›²ç·šçš„ä¸Šå‡æ®µï¼ŒG1的變化將影響系統響應速度,G1è¶Šå°ï¼Œæ»å€è¶Šå°ï¼ŒéŸ¿æ‡‰è¶Šå¿«ï¼Œä½†è¶…調é‡ä¹Ÿè¶Šå¤§ï¼›åœ¨ç©©å®šæ®µï¼Œä¹Ÿå°±æ˜¯Eå’ŒEC都處在相應零ä½ç½®çš„æ™‚候,系統的穩態誤差與é‡åŒ–å› åG1大尿ˆå比。若G2變化,åŒç†ä¹Ÿæœƒå½±éŸ¿ec所處的水平å€åŸŸç™¼ç”Ÿè®ŠåŒ–,相應的輸出控制é‡ä¾¿å¯èƒ½ç™¼ç”Ÿè®ŠåŒ–。實è¸è‰æ˜Žï¼šå°G2的變化,在è¨å®šé»žé™„è¿‘å°¤å…¶æ•æ„Ÿï¼Œç•¶G2è®Šå°æ™‚ï¼ŒæŽ§åˆ¶éˆæ•åº¦å¢žåŠ ï¼Œä½†ä¹Ÿå¢žåŠ äº†æ”¶æ–‚çš„å›°é›£ï¼Œå¤±åŽ»äº†ä¸€éƒ¨åˆ†æŽ§åˆ¶è¦å‰‡ï¼›è€Œç•¶G2è®Šå¤§æ™‚ï¼ŒæŽ§åˆ¶å™¨åæ‡‰é²éˆï¼Œå®¹æ˜“é€ æˆæŒ¯è•©ã€‚G3直接影響模糊控制器的輸出。在åˆå§‹æ®µï¼ŒæŽ§åˆ¶å™¨è‹¥ä»¥çµ•å°é‡è¼¸å‡ºæ™‚,G3å°æŽ§åˆ¶æ²’ä»€ä¹ˆå½±éŸ¿ï¼›ä½†ç•¶æŽ§åˆ¶å™¨ä»¥å¢žé‡å½¢å¼è¼¸å‡ºæ™‚,若工作在æ£å€¼å€ï¼ŒG3的增大使輸出é‡ä¹Ÿç›¸æ‡‰å¢žå¤§ï¼Œä¸Šå‡è®Šå¿«ï¼Œæ»å€è®Šå°ï¼›ä½†åœ¨æ”¶æ–‚æ®µï¼ŒæŽ§åˆ¶å™¨å·¥ä½œåœ¨è² å€¼å€ï¼ŒG3增大將導致輸出é‡å¤§å¹…度減少,使得系統緩慢逼近è¨å®šå€¼ï¼Œç‰¹åˆ¥åœ¨ç©©å®šæ®µï¼ŒG3大會引起振蕩[2]。
ç”±G1ã€G2ã€G3å°ç³»çµ±éŸ¿æ‡‰çš„影響,å¯çŸ¥åœ¨ä¸åŒéšŽæ®µå°æœ‰é—œæ¯”ä¾‹å› å分段å–值,顯然å¯ä»¥æé«˜æ¨¡ç³ŠæŽ§åˆ¶çš„æŽ§åˆ¶æ•ˆæžœã€‚所以,在本改進的模糊控制器ä¸ï¼Œé‡‡ç”¨äº†å°æœ‰é—œæ¯”ä¾‹å› å進行調整的ç–ç•¥ï¼Œä¹Ÿå°±æ˜¯æ‰€è¬‚çš„åƒæ•¸è‡ªèª¿æ•´æ¨¡ç³ŠæŽ§åˆ¶å™¨ã€‚
2.2 自調整模糊控制器
æ–‡ç»[3] 所æå‡ºçš„è‡ªèª¿æ•´æ¨¡ç³ŠæŽ§åˆ¶å™¨ï¼Œå°±æ˜¯é‡‡ç”¨äº†åœ¨æŽ§åˆ¶ä¸æ ¹æ“šè¼¸å…¥é‡èª¤å·®çš„大å°ä¸åŒï¼Œå°æœ‰é—œæ¯”ä¾‹å› å進行動態改變。從而æé«˜äº†æœ‰é—œæŽ§åˆ¶æ•ˆæžœã€‚


3 基于FPGAçš„åƒæ•¸è‡ªèª¿æ•´æ¨¡ç³ŠæŽ§åˆ¶å™¨è¨è¨ˆ
在模糊控制ç†è«–被實際應用åŽï¼Œæ¨¡ç³ŠæŽ§åˆ¶å™¨çš„硬件化實ç¾å·²ç¶“å–å¾—äº†å¾ˆå¤§çš„æˆæžœã€‚一般是用單片機ã€PC機或者DSP芯片以åŠç›¸æ‡‰æŽ§åˆ¶é›»è·¯ä¾†å¯¦ç¾ã€‚但功能日益完善的FPGA相å°äºŽå–®ç‰‡æ©Ÿèˆ‡DSP有很大的優勢。
用戶å¯å°FPGA內部的é‚輯模塊和I/Oæ¨¡å¡Šé‡æ–°é…置,以實ç¾ç”¨æˆ¶çš„é‚è¼¯ã€‚å®ƒé‚„å…·æœ‰éœæ…‹å¯é‡å¾©ç·¨ç¨‹å’Œå‹•æ…‹åœ¨ç³»çµ±é‡æ§‹çš„特性,使得硬件的功能å¯ä»¥åƒè»Ÿä»¶ä¸€æ¨£é€šéŽç·¨ç¨‹ä¾†ä¿®æ”¹ã€‚工程師å¯ä»¥é€šéŽå‚³çµ±çš„原ç†åœ–輸入法,或是硬件æè¿°èªžè¨€è‡ªè¡Œè¨è¨ˆä¸€å€‹åŸºäºŽFPGA的數å—系統。通éŽè»Ÿä»¶ä»¿çœŸï¼Œæˆ‘們å¯ä»¥äº‹å…ˆé©—è‰è¨è¨ˆçš„æ£ç¢ºæ€§ã€‚åœ¨PCB完æˆä»¥åŽï¼Œé‚„å¯ä»¥åˆ©ç”¨FPGA的在線修改能力,隨時修改è¨è¨ˆè€Œä¸å¿…改動硬件電路。使用FPGA來開發數å—電路,å¯ä»¥å¤§å¤§ç¸®çŸè¨è¨ˆæ™‚間,減少PCBé¢ç©ï¼Œæé«˜ç³»çµ±çš„å¯é 性。
ä¸éŽæ—©æœŸé™äºŽé–‹ç™¼å·¥å…·èˆ‡å·¥è—çš„é™åˆ¶ï¼Œå¾ˆå¤šæ¨¡ç³ŠæŽ§åˆ¶ç³»çµ±çš„èŠ¯ç‰‡åŒ–å¯¦ç¾æ˜¯ç”±å¾®é›»å或者相近專æ¥çš„ç ”ç©¶äººå“¡ä¾†å®Œæˆçš„[5]。但é™äºŽå°ˆæ¥çš„å·®ç•°ï¼Œå¾ˆå¤šå…·é«”é ˜åŸŸçš„åŸºäºŽFPGA為基礎的模糊控制芯片開發ä¸å¤šã€‚ä¸éŽè¿‘幾年,隨著計算機輔助工具的發展,出ç¾äº†EDA工程[1]。有關FPGAçš„è¨è¨ˆé–‹ç™¼å·¥å…·ä¹Ÿè¢«æ™®éæŽ¨å»£ï¼Œæ‰€ä»¥åœ¨è‡ªå‹•åŒ–é ˜åŸŸï¼Œè¶Šä¾†è¶Šå¤šçš„åŸºäºŽFPGA的控制器[6]æ¶Œç¾å‡ºä¾†ã€‚
但是在僅僅以FPGA為基礎的方案實ç¾é‡Œï¼Œå¾ˆå¤šæœ‰é—œæ•¸æ“šé‹ç®—éŽç¨‹çš„實ç¾éŽç¨‹å¾©é›œã€‚ä¸éŽï¼Œç”±äºŽFPGA所固有的并行處ç†çµæ§‹ï¼Œå› æ¤åœ¨é€²è¡Œå¾©é›œè¨ˆç®—時性能é é è¶…éŽå‚³çµ±DSP處ç†å™¨ã€‚所以如果è¨è¨ˆåˆç†ï¼Œä¸€èˆ¬ç”¨FPGA開發的專用模塊的計算速度快于一些傳統DSP以åŠå…¶ä»–微處ç†å™¨[7]。
如果é¸ç”¨å…·æœ‰å·²ç¶“å…§ç½®DSP硬件資æºçš„FPGA,那么在è¨è¨ˆçµæ§‹ä¸Šæœƒæ›´åˆç†ä¸€äº›ã€‚但一般來說,å°äºŽé–‹ç™¼æœ‰DSP資æºçš„FPGA,ä¸ç®¡å¾žèŠ¯ç‰‡é‚„æ˜¯é–‹ç™¼å·¥å…·ä¸Šï¼Œæˆæœ¬éƒ½å¾ˆæ˜‚貴。ä¸éŽï¼Œç›®å‰å‡ºç¾ä¸€äº›ä½Žæˆæœ¬çš„å…§ç½®DSPçš„FPGA。å°äºŽFPGA的兩大主è¦ç”Ÿç”¢å•†Xilinxå…¬å¸èˆ‡Alteraå…¬å¸ï¼Œå®ƒå€‘æä¾›ä½Žæˆæœ¬çš„DSP與FPGA優勢互補的芯片,目å‰åˆ†åˆ¥ç‚ºSpartan-3與Cyclone III。這些芯片目å‰åœ¨é€šè¨Šé ˜åŸŸæ‡‰ç”¨æ¯”較多,但å°äºŽå·¥æ¥è‡ªå‹•化系統的實ç¾ä¾†èªªæ‡‰ç”¨ä¸å¤šã€‚æ‰€ä»¥ï¼Œåƒæ•¸è‡ªèª¿æ•´æ¨¡ç³ŠæŽ§åˆ¶å™¨çš„實ç¾ï¼Œå¯ä»¥é‡‡ç”¨é€™ç¨®ä½Žæˆæœ¬å…·æœ‰DSPçš„FPGA芯片為硬件基礎。

圖4 是模糊控制器實ç¾çµæ§‹ç¤ºæ„圖
å…¶ä¸ï¼ŒA/D控制器部分,實ç¾å°A/Dè½‰æ›æŽ§åˆ¶å™¨çš„æœ‰é—œæŽ§åˆ¶ã€‚æ¨¡ç³Šé‡åŒ–å› åèª¿æ•´æ¨¡å¡Šéƒ¨åˆ†ï¼Œå¯¦ç¾æ ¹æ“šç³»çµ±èª¤å·®å¤§å°ï¼Œåˆç†é¸æ“‡é‡åŒ–èª¿ç¯€çš„æ¯”ä¾‹å› åçš„ä½œç”¨ã€‚æ¨¡ç³Šæ±ºç–æ¨¡å¡Šæ ¹æ“šæ¨¡ç³Šè¦å‰‡èˆ‡è¼¸å…¥æ¨¡ç³Šé‡é€²è¡Œæ¨¡ç³ŠæŽ¨ç†ï¼Œå¾—到模糊化的控制é‡åŒ–值。模糊判決模塊把有關模糊決ç–的控制é‡åŒ–值轉æ›ç‚ºå…·é«”控制é‡ï¼Œç•¶ç„¶å…¶ä¸åŒ…括模糊輸出的é‡åŒ–å› å部分。其ä¸ï¼Œä¸»æŽ§åˆ¶æ¨¡å¡Šçš„作用為å”調å„å€‹æ¨¡å¡Šä¹‹é–“çš„å·¥ä½œï¼Œå…·é«”ç‚ºå‘æ¯å€‹æ¨¡å¡Šæä¾›æ™‚é˜ä¿¡è™Ÿã€å¾©ä½ä¿¡è™Ÿã€ä»¥åŠå„個模塊的起/åœä¿¡è™Ÿã€‚
4 çµæŸèªž
åƒæ•¸è‡ªèª¿æ•´æ¨¡ç³ŠæŽ§åˆ¶å™¨ï¼Œé€šéŽå‹•態調節模糊é‡åŒ–éŽç¨‹ä¸çš„æ¯”ä¾‹å› å,來é”到æé«˜æ¨¡ç³ŠæŽ§åˆ¶å™¨æ€§èƒ½çš„æ•ˆæžœã€‚有關控制æ€è·¯æ¸…æ™°ã€ä¾¿äºŽç³»çµ±å¯¦ç¾ã€‚并且所分æžçš„åƒæ•¸è‡ªèª¿æ•´æ¨¡ç³ŠæŽ§åˆ¶å™¨å°ä¸åŒç’°å¢ƒçš„æŽ§åˆ¶ç³»çµ±æœ‰ä¸€å®šé©æ‡‰æ€§ã€‚最åŽçµ¦å‡ºäº†æœ‰é—œè©²æ¨¡ç³ŠæŽ§åˆ¶å™¨çš„å¯¦ç¾æ–¹æ¡ˆã€‚å°é¡žä¼¼æŽ§åˆ¶ç³»çµ±çš„å¯¦ç¾æœ‰ä¸€å®šå€Ÿé‘’æ„義。
åƒè€ƒæ–‡ç»
[1] 黃繼æ¥,潘æ¾.EDA技術實用教程(第2版)[M].北京:ç§‘å¸å‡ºç‰ˆç¤¾,2005.
[2] 韓啟綱.模糊控制原ç†ã€è¨è¨ˆåŠæ‡‰ç”¨ 第7講高級模糊控制器的è¨è¨ˆ[J].冶金自動化,1996, No.1 : 51-52.
[3] æŽç¥–欣. MATLAB在模糊控制系統è¨è¨ˆå’Œä»¿çœŸçš„æ‡‰ç”¨[J] .系統仿真å¸å ±, 2003, Vol.15 No.1: 132-134.
[4] 峿›‰èމ,林哲è¼.MATLAB輔助模糊系統è¨è¨ˆ[M] . 西安:西安電å科技大å¸å‡ºç‰ˆç¤¾,2002.
[5] è¢æ¬£,å¹²èŒ,è—鴻翔ç‰.模糊控制器專用集æˆé›»è·¯çš„è¨è¨ˆèˆ‡å¯¦ç¾[J] . 微電åå¸, 1996, Vol.26,No.1: .24-28.
[6] æž—å¹³. è®Šé »æŽ§åˆ¶ç³»çµ±é›†æˆæ¨¡å¡ŠåŠå…¶æŽ§åˆ¶èŠ¯ç‰‡æŠ€è¡“çš„ç ”ç©¶[D] . 浙江: 浙江大å¸, 2003.
[7] 賀今æœ. 一種基于FPGAçš„æ¨¡ç³ŠæŽ§åˆ¶å™¨çš„ç ”ç©¶[D] . 大連: 大連ç†å·¥å¤§å¸, 2002.