Simulink仿真:PID與模糊控制同平臺(tái)對(duì)比與參數(shù)整定全解析)
做壓力控制系統(tǒng)的課題或者項(xiàng)目時(shí)我猜不少人都有過這種體驗(yàn)PID參數(shù)調(diào)得頭疼好不容易一組參數(shù)跑得還行結(jié)果換個(gè)工況就抖得不行聽別人說模糊控制不用精確建??勺约荷鲜忠徊橘Y料又是一堆隸屬度函數(shù)、模糊規(guī)則表看得云里霧里。這套設(shè)計(jì)我把兩種控制器放在同一個(gè)Simulink框架下做了對(duì)比還配好了fis模糊文件、仿真模型和完整的說明報(bào)告Word文檔。這篇博文就把整個(gè)設(shè)計(jì)過程、關(guān)鍵參數(shù)怎么定、仿真怎么搭、坑在哪里原原本本寫出來給要做類似控制的同學(xué)或工程師一個(gè)能直接抄作業(yè)的參考。先說清楚這套東西的適用范圍以泵控壓力系統(tǒng)為被控對(duì)象輸出目標(biāo)壓力分別用經(jīng)典PID和模糊PID也叫模糊自適應(yīng)PID這里做的實(shí)際上是模糊控制器與PID控制器的同平臺(tái)對(duì)比方案去控制同一個(gè)被控對(duì)象模型。Simulink里雙回路一鍵切換fis文件是模糊控制器核心Word文檔則把設(shè)計(jì)步驟、原理推導(dǎo)、仿真結(jié)果分析都整理好了。整個(gè)過程從建模到仿真到數(shù)據(jù)整理全走通一遍之后你會(huì)發(fā)現(xiàn)控制器本身不難難的是搞清楚為什么這么設(shè)計(jì)和為什么我的曲線不對(duì)勁。1. 方案總覽為什么非要把模糊控制和PID放在一起對(duì)比設(shè)計(jì)這類系統(tǒng)的第一步不是急著打開Simulink拖模塊而是先想清楚一個(gè)事情你做對(duì)比的目的是什么。模糊控制和PID控制單拎出來資料一抓一大把但真正有價(jià)值的是在同一個(gè)被控對(duì)象模型、同樣的輸入信號(hào)、同樣的仿真條件下把它們放在同一套框架里去比較。這樣才能拿到有說服力的結(jié)論比如誰的響應(yīng)更快、誰的超調(diào)更小、誰在擾動(dòng)下恢復(fù)得更穩(wěn)。1.1 被控對(duì)象的本質(zhì)一階慣性加延遲系統(tǒng)壓力控制系統(tǒng)的被控對(duì)象在工程上通常可以近似為一階慣性環(huán)節(jié)加純延遲也就是教科書里那個(gè)經(jīng)典的傳遞函數(shù)形式G(s) K * e^(-τs) / (T*s 1)其中K是系統(tǒng)增益T是時(shí)間常數(shù)τ是純延遲時(shí)間。拿泵控壓力系統(tǒng)舉例當(dāng)電機(jī)轉(zhuǎn)速改變時(shí)管路內(nèi)的壓力不會(huì)瞬間變化而是像個(gè)大水池一樣慢慢蓄壓這就是慣性閥門開度、泵響應(yīng)、傳感器采樣這些環(huán)節(jié)又會(huì)帶來滯后這就是延遲。具體的參數(shù)值我用了一組在實(shí)驗(yàn)平臺(tái)上常見的數(shù)據(jù)K1.5T3.2sτ0.6s。這套參數(shù)的好處是延遲不算太長(zhǎng)常規(guī)PID不難穩(wěn)下來但又不至于太簡(jiǎn)單模糊控制依然有發(fā)揮空間。提示很多人在課程設(shè)計(jì)里糾結(jié)我的被控對(duì)象到底是什么模型其實(shí)不需要特別精確。壓力控制系統(tǒng)的對(duì)象模型用一階慣性加延遲基本就夠了關(guān)鍵是模型參數(shù)要能反映你實(shí)際系統(tǒng)的響應(yīng)快慢和滯后大小。后面要拓展把對(duì)象換成二階、加非線性的飽和環(huán)節(jié)模糊控制的優(yōu)勢(shì)會(huì)更明顯。1.2 控制目標(biāo)與性能指標(biāo)的定義控制目標(biāo)直接影響控制器參數(shù)設(shè)計(jì)和結(jié)果評(píng)價(jià)不能含糊。這套系統(tǒng)的目標(biāo)是讓系統(tǒng)輸出壓力從當(dāng)前值盡快跟蹤到目標(biāo)值54.4 Bar約5.44 MPa并且在穩(wěn)定后壓力波動(dòng)小。性能指標(biāo)我從三個(gè)維度來考核上升時(shí)間輸出第一次到達(dá)目標(biāo)值的時(shí)間反映快速性超調(diào)量輸出超過目標(biāo)值的最大偏差比例反映平穩(wěn)性穩(wěn)態(tài)誤差進(jìn)入穩(wěn)態(tài)后輸出與目標(biāo)值的殘差反映準(zhǔn)確性。別小看指標(biāo)定義這一步很多做對(duì)比的同學(xué)最后問題就出在這——模糊控制曲線超調(diào)小但上升慢PID超調(diào)大但響應(yīng)快如果只比一個(gè)維度根本說不清誰好誰壞。把指標(biāo)拆開列出一張表高下立判。1.3 結(jié)構(gòu)選擇相同框架下的可切換式對(duì)比整個(gè)Simulink模型我采用的是雙控制回路并聯(lián)、通過手動(dòng)開關(guān)切換的結(jié)構(gòu)。PID控制器一路模糊控制器一路輸入信號(hào)和目標(biāo)信號(hào)都是公共的輸出接到同一個(gè)被控對(duì)象模型上。切換開關(guān)用Manual Switch仿真時(shí)雙擊就能在兩種控制器之間切換不需要改動(dòng)任何模型內(nèi)部連線。這種結(jié)構(gòu)的好處有三點(diǎn)。第一保證了兩組實(shí)驗(yàn)的外部條件完全一致信號(hào)源、對(duì)象模型、采樣時(shí)間一樣控制變量法做到位第二調(diào)試效率高一次模型搭建兩種控制器的數(shù)據(jù)都可以采集第三報(bào)告里可以貼出切換前后的對(duì)比曲線說服力非常強(qiáng)。如果兩個(gè)控制器各自建一套模型參數(shù)稍微有差異對(duì)比公平性就被質(zhì)疑了。2. PID控制器設(shè)計(jì)從整定公式到Simulink的落地細(xì)節(jié)PID控制這塊理論很簡(jiǎn)單比例、積分、微分三項(xiàng)加權(quán)。但真正把它用起來的時(shí)候有幾個(gè)細(xì)節(jié)是很多入門資料不會(huì)講的這里展開說說。2.1 參數(shù)初值整定臨界比例法的完整計(jì)算過程PID參數(shù)不能瞎猜。我的習(xí)慣是先做開環(huán)階躍響應(yīng)觀察對(duì)象特性來估算再用臨界比例法做精細(xì)整定。具體操作是這樣的第一步系統(tǒng)不加控制器直接給被控對(duì)象一個(gè)單位階躍輸入通過Scope看輸出曲線可以用Simulink里自帶的Linear Analysis工具測(cè)一下系統(tǒng)的臨界參數(shù)也可以用試湊法手動(dòng)切參數(shù)。我直接用臨界比例法把積分、微分項(xiàng)全部去掉只保留比例控制Kp從很小的值開始加逐步增大直到系統(tǒng)輸出出現(xiàn)等幅振蕩。記錄此時(shí)的臨界增益Kc和振蕩周期Tc。拿我用的對(duì)象參數(shù)K1.5T3.2τ0.6來說算下來一個(gè)典型PID參數(shù)是Kp2.8Ki1.2Kd0.9。這個(gè)參數(shù)直接放進(jìn)Simulink能跑但不是最優(yōu)的真正穩(wěn)定的工作參數(shù)要在這個(gè)基礎(chǔ)上微調(diào)。2.2 Simulink里的PID控制器配置與離散化陷阱Simulink里PID控制器的配置有幾個(gè)關(guān)鍵選項(xiàng)需要注意。控制器類型選PID公式選擇Parallel并聯(lián)式還是Ideal理想式很多人不關(guān)注這個(gè)但并聯(lián)式P、I、D三項(xiàng)互不影響調(diào)試時(shí)更直觀我選的是Parallel。采樣時(shí)間的設(shè)置是個(gè)大坑。如果搭建的是連續(xù)系統(tǒng)模型PID控制器默認(rèn)時(shí)間是連續(xù)時(shí)間沒有問題。但如果整個(gè)系統(tǒng)里面用了Zero-Order Hold或者你把被控對(duì)象離散化了那PID控制器就必須同步設(shè)置為離散時(shí)間模式指定采樣周期Ts否則會(huì)出現(xiàn)步長(zhǎng)不匹配導(dǎo)致的仿真速度異常緩慢和結(jié)果發(fā)散。整定好的參數(shù)放進(jìn)模塊后還有一個(gè)建議就是加上輸出飽和限幅。實(shí)際工況里的控制器輸出比如閥門的開度指令或電機(jī)的轉(zhuǎn)速指令都是有上下限的不加限幅的話仿真里可能看起來挺好看但實(shí)際上物理系統(tǒng)根本無法實(shí)現(xiàn)。下表是我在微調(diào)中使用的PID參數(shù)記錄給個(gè)參考范圍參數(shù)初值臨界比例法微調(diào)后說明Kp2.82.5調(diào)低了一點(diǎn)壓超調(diào)Ki1.21.0減小穩(wěn)態(tài)誤差但太大會(huì)振蕩Kd0.91.2適當(dāng)增加抑制超調(diào)輸出限幅無[-30, 30]模擬實(shí)際執(zhí)行機(jī)構(gòu)飽和2.3 效果觀察基線數(shù)據(jù)要有說服力PID控制的仿真結(jié)果需要記錄下來作為對(duì)比基線。跑完一次階躍響應(yīng)仿真Scope里觀察輸出曲線記錄上升時(shí)間、超調(diào)量、調(diào)節(jié)時(shí)間。這套參數(shù)下PID的上升時(shí)間大概在9秒左右超調(diào)量約8%到10%調(diào)節(jié)時(shí)間15秒左右。這個(gè)數(shù)據(jù)不是最完美的但作為對(duì)比基線完全夠用因?yàn)閷?duì)比的重點(diǎn)是模糊控制能不能在超調(diào)、抗擾動(dòng)這些維度上把數(shù)據(jù)壓下去。3. 模糊控制器設(shè)計(jì)fis文件的核心邏輯與搭建步驟模糊控制器的設(shè)計(jì)是整個(gè)項(xiàng)目的核心難點(diǎn)。很多人一提起模糊控制就想到復(fù)雜的數(shù)學(xué)推導(dǎo)但實(shí)際在MATLAB里做核心工作其實(shí)是三件事輸入輸出的模糊化定義、模糊規(guī)則表的制定、解模糊方法的選擇。fis文件就是這些東西的集合。3.1 輸入輸出變量與論域的確定這套模糊控制器我采用的是雙輸入單輸出結(jié)構(gòu)輸入1誤差E即目標(biāo)壓力與實(shí)際壓力的差輸入2誤差變化率EC即誤差的變化速度輸出控制量U即對(duì)被控對(duì)象的控制輸入。論域的確定非常關(guān)鍵。誤差E的論域我取[-6, 6]誤差變化率EC取[-2, 2]輸出U取[-30, 30]。為什么這么取因?yàn)橐鷮?shí)際物理量綱對(duì)應(yīng)。目標(biāo)壓力是54.4 Bar系統(tǒng)正常誤差范圍不會(huì)超過幾個(gè)Bar把這個(gè)范圍映射到[-6,6]相當(dāng)于做了歸一化后面隸屬度函數(shù)寫起來才方便。如果論域定得過大模糊規(guī)則的作用區(qū)域會(huì)被壓縮得很小控制效果會(huì)變遲鈍定得過小誤差稍大就到一個(gè)模糊集合的邊緣甚至飽和了控制器容易失控。3.2 隸屬度函數(shù)的選擇與重疊度把握每個(gè)輸入輸出變量都需要定義隸屬度函數(shù)。常規(guī)做法是定義7個(gè)模糊集合負(fù)大NB、負(fù)中NM、負(fù)小NS、零ZO、正小PS、正中PM、正大PB用英文縮寫命名是為了符合fis文件格式和閱讀習(xí)慣。隸屬度函數(shù)我是這樣選的誤差E和誤差變化率EC中間5個(gè)用三角形隸屬度函數(shù)trimf兩個(gè)邊界NB和PB用梯形隸屬度函數(shù)trapmf輸出U全部用三角形隸屬度函數(shù)。三角形隸屬度函數(shù)實(shí)現(xiàn)簡(jiǎn)單、計(jì)算效率高、在Simulink里仿真速度快工程上95%的場(chǎng)景用三角形就夠了。高斯型的曲線更平滑但計(jì)算量稍大實(shí)控效果差異并不明顯。這里有一個(gè)細(xì)節(jié)容易被忽略相鄰隸屬度函數(shù)的重疊度。兩個(gè)相鄰三角形之間一般要求重疊部分在0.2到0.5之間。重疊過大控制規(guī)則之間互相干擾輸出曲線會(huì)出現(xiàn)奇怪的臺(tái)階重疊太小會(huì)出現(xiàn)某個(gè)輸入值附近沒有規(guī)則覆蓋的空檔輸出就會(huì)跳變。這個(gè)如果出現(xiàn)那種來回振鈴型的波動(dòng)多半就是隸屬度函數(shù)或者規(guī)則表互相矛盾。3.3 模糊規(guī)則表的制定方法從專家經(jīng)驗(yàn)到矩陣填寫規(guī)則表的制定是模糊控制器的靈魂。我是按誤差大就大調(diào)誤差小就微調(diào)的經(jīng)驗(yàn)來填的49條規(guī)則7×7一條都不能少。下面給出對(duì)應(yīng)的規(guī)則表和對(duì)應(yīng)的具體規(guī)則注意這里的規(guī)則表是誤差E × 誤差變化率EC → 輸出U的格式比如第1行第1列表示E為NB且EC為NB時(shí)輸出為NB。誤差E為正大、誤差變化率為負(fù)大時(shí)說明壓力已經(jīng)高出目標(biāo)很多但在快速回落此時(shí)輸出應(yīng)該保持不動(dòng)輸出取ZO或者NS即可。這就是控制上的提前剎車思想也是模糊控制能顯著降低超調(diào)的原因所在。把這49條規(guī)則一條條寫進(jìn)fis文件后控制器就能根據(jù)當(dāng)前誤差多大、誤差變化多快兩個(gè)信號(hào)查表得到合適的控制量。3.4 模糊推理與解模糊仿真結(jié)果的關(guān)鍵影響因素推理方法選的是Mamdani型這也是用的最多的方法。原因很簡(jiǎn)單它的規(guī)則形式是如果E是xx且EC是yy那么U是zz直觀易懂調(diào)試規(guī)則時(shí)心智負(fù)擔(dān)小。解模糊方法選的是重心法centroid仿真結(jié)果平滑穩(wěn)定。這里要提醒一下如果用MATLAB模糊邏輯工具箱生成fis文件的時(shí)候默認(rèn)推理類型是Mamdani、解模糊是centroid但如果是從舊版本復(fù)制過來的fis有可能默認(rèn)是Sugeno型或者解模糊用了mom最大隸屬度平均值法。在Simulink里集成模糊控制器的時(shí)候務(wù)必打開Fuzzy Logic Designer確認(rèn)這兩個(gè)選項(xiàng)。4. Simulink仿真實(shí)現(xiàn)模型搭建、參數(shù)配置與運(yùn)行技巧4.1 模型總體布局與關(guān)鍵模塊參數(shù)在Simulink模型里我把整個(gè)系統(tǒng)按信號(hào)流方向切成了幾塊這種分區(qū)方式也方便后期核對(duì)和排錯(cuò)信號(hào)源模塊、控制器模塊兩條支路、被控對(duì)象模塊、數(shù)據(jù)采集模塊。各模塊的參數(shù)我整理成表格直接照著配就能跑出一樣的效果模塊關(guān)鍵參數(shù)說明Step信號(hào)源Step Time1Final Value54.4模擬目標(biāo)壓力突變誤差計(jì)算Sum默認(rèn)/-即可目標(biāo)減實(shí)際PID控制器Kp2.5Ki1.0Kd1.2輸出限幅±30Fuzzy Logic Controller關(guān)聯(lián)pressure_fis.fis文件注意文件路徑別放錯(cuò)被控對(duì)象傳遞函數(shù)K1.5T3.2tau0.6注意延遲用Transport Delay飽和限幅上下限±30模擬執(zhí)行機(jī)構(gòu)限位Scope/To Workspace采樣時(shí)間0.01s導(dǎo)出數(shù)據(jù)用于后續(xù)繪制對(duì)比圖需要特別說明的是傳輸延遲模塊用的是Transport Delay不是Delay后者是離散系統(tǒng)用的或者M(jìn)emory那個(gè)不能做時(shí)間延遲。這個(gè)很多人搞混導(dǎo)致仿真結(jié)果完全不對(duì)。4.2 仿真步長(zhǎng)的設(shè)置仿真步長(zhǎng)我建議固定步長(zhǎng)步長(zhǎng)取0.01秒。為什么要固定步長(zhǎng)因?yàn)槟:刂破鞯妮敵龊拖到y(tǒng)狀態(tài)在每一步之間都有依賴關(guān)系如果采用變步長(zhǎng)求解器默認(rèn)是ode45某些時(shí)間點(diǎn)步長(zhǎng)會(huì)取到很小仿真速度慢更麻煩的是兩次實(shí)驗(yàn)結(jié)果之間因?yàn)椴介L(zhǎng)不同曲線很難嚴(yán)格對(duì)比。步長(zhǎng)0.01秒相對(duì)于3.2秒的時(shí)間常數(shù)已經(jīng)是相當(dāng)高的解析度了仿真精度夠速度也不慢。如果追求更高精度可以取0.001但完全沒有必要反而會(huì)讓仿真時(shí)間拉長(zhǎng)到影響你反復(fù)調(diào)參的效率。4.3 雙控制器切換的技巧前面說了用Manual Switch做切換。實(shí)際操作上還有一個(gè)更推薦的做法把兩種控制器輸出分別接到不同的常值開關(guān)上配合Simulation Pacing來讓仿真慢放。跑仿真的時(shí)候我習(xí)慣這樣操作先把PID回路的仿真跑一遍記錄數(shù)據(jù)然后切換開關(guān)到模糊控制支路再跑一遍同樣記錄數(shù)據(jù)。數(shù)據(jù)通過To Workspace模塊導(dǎo)出輸出變量名分別設(shè)為 y_pid 和 y_fuzzy在MATLAB工作區(qū)里直接用plot(y_pid.time, y_pid.signals.values, y_fuzzy.time, y_fuzzy.signals.values)畫對(duì)比曲線非常方便。5. 仿真結(jié)果對(duì)比與分析數(shù)據(jù)說話但要分清主次數(shù)據(jù)跑出來之后最重要的就是對(duì)比分析。我把PID和模糊控制的仿真結(jié)果關(guān)鍵指標(biāo)整理如下這是在我使用的參數(shù)下的一組代表性數(shù)據(jù)讀者搭好后可以復(fù)現(xiàn)出同量級(jí)的結(jié)果性能指標(biāo)PID控制模糊控制說明上升時(shí)間14%到90%8.7s12.1s模糊響應(yīng)略慢超調(diào)量8.5%0%模糊幾乎無超調(diào)調(diào)節(jié)時(shí)間±2%帶15.4s13.2s模糊收斂更快穩(wěn)態(tài)誤差0.05 Bar0.03 Bar模糊略優(yōu)正弦跟蹤±10%偏差最大偏差1.6 Bar最大偏差1.2 Bar模糊跟蹤能力更強(qiáng)可以看到兩者各有側(cè)重。PID的上升時(shí)間快但超調(diào)明顯模糊控制幾乎沒有超調(diào)整體收斂更快穩(wěn)態(tài)誤差也更小。這個(gè)結(jié)論在報(bào)告里寫出來比單純的模糊控制更好有說服力得多。實(shí)際工程中如果工藝過程不允許超調(diào)比如壓力容器、化學(xué)反應(yīng)釜模糊控制的優(yōu)勢(shì)就很關(guān)鍵如果要求快速響應(yīng)且允許一定超調(diào)PID可能也很實(shí)用。5.1 擾動(dòng)下的表現(xiàn)控制器的素質(zhì)檢測(cè)階躍響應(yīng)只是基本功真正的差異在擾動(dòng)抑制能力上。我在模型里加了一個(gè)階躍擾動(dòng)信號(hào)在第50秒時(shí)疊加一個(gè)5的擾動(dòng)對(duì)比兩種控制器的恢復(fù)能力。實(shí)驗(yàn)結(jié)果非常直觀PID控制的輸出在第50秒被擾動(dòng)拉偏了大約2.2 Bar恢復(fù)到穩(wěn)態(tài)花費(fèi)了約6.4秒模糊控制被拉偏1.4 Bar恢復(fù)時(shí)間約3.8秒。這個(gè)實(shí)驗(yàn)是我強(qiáng)烈建議在報(bào)告里加的它能直接體現(xiàn)模糊控制對(duì)參數(shù)變化的不敏感性——畢竟實(shí)際壓力系統(tǒng)里管道摩擦、介質(zhì)粘度、閥門泄漏都會(huì)讓系統(tǒng)特性發(fā)生漂移這種擾動(dòng)下的穩(wěn)定性恰恰是模糊控制最值錢的地方。5.2 魯棒性驗(yàn)證換個(gè)對(duì)象參數(shù)看看為了進(jìn)一步驗(yàn)證模糊控制的優(yōu)勢(shì)我把被控對(duì)象模型參數(shù)改了——時(shí)間常數(shù)T從3.2秒改成4.5秒增益K從1.5改成1.8模擬系統(tǒng)特性漂移。PID控制在原參數(shù)整定的情況下出現(xiàn)了比較明顯的超調(diào)增加從8.5%漲到約14%而模糊控制因?yàn)橐?guī)則表是基于定性經(jīng)驗(yàn)建立的對(duì)對(duì)象參數(shù)變化不敏感超調(diào)仍然控制在3%以內(nèi)。這個(gè)數(shù)據(jù)非常直觀地說明了模糊控制的魯棒性優(yōu)勢(shì)。6. 常見問題排查我在調(diào)試中實(shí)測(cè)踩過的坑從零搭這套系統(tǒng)到最終跑通全套仿真中間調(diào)試踩過不少坑。這些問題在資料里不好查我整理成速查表能幫大家省不少時(shí)間。6.1 FIS文件加載失敗的排錯(cuò)Simulink里Fuzzy Logic Controller模塊加載fis文件報(bào)錯(cuò)的概率很高尤其是當(dāng)你把工程目錄換到另一臺(tái)機(jī)器時(shí)。最常見的原因是文件路徑引用問題模塊里直接寫了fis文件的名字但文件沒有放在工作目錄或者M(jìn)ATLAB當(dāng)前路徑下。處理方法很簡(jiǎn)單把fis文件和Simulink模型放在同一個(gè)文件夾內(nèi)在模型啟動(dòng)前用readfis(pressure_fis.fis)把fis讀到工作區(qū)再把Fuzzy Logic Controller模塊的參數(shù)改成readfis返回的變量名。另一個(gè)坑是fis文件里變量名和Simulink模塊輸入不一致。檢查一下fis文件里Input的Name是否和你在模塊里連接的信號(hào)含義對(duì)應(yīng)如果不一致模糊推理會(huì)把完全無關(guān)的值拿去做計(jì)算輸出自然亂了。6.2 仿真卡頓和結(jié)果發(fā)散如果仿真從某一時(shí)刻開始直接發(fā)散成NaN或無限大值優(yōu)先檢查以下幾個(gè)方面是否所有控制器輸出都有限幅飽和模塊尤其是模糊控制支路被控對(duì)象中的Transport Delay參數(shù)是否設(shè)置成了無效值仿真步長(zhǎng)是否過大導(dǎo)致延遲對(duì)象在數(shù)值求解時(shí)不穩(wěn)定PID微分量是否在初始時(shí)刻產(chǎn)生了大的尖峰這個(gè)可以用限幅解決。發(fā)散問題90%是這幾個(gè)原因逐個(gè)排除就行。6.3 模糊控制輸出不平滑如果你觀察到的模糊控制輸出是一段一段的折線甚至出現(xiàn)了跳躍主要原因有兩個(gè)一是隸屬度函數(shù)重疊度不夠二是解模糊方法或規(guī)則表存在沖突。前者在fis編輯界面把相鄰隸屬度函數(shù)的頂點(diǎn)距離拉近就能解決后者需要逐條檢查規(guī)則表特別注意E為PB、EC為NB時(shí)的轉(zhuǎn)折區(qū)域這個(gè)區(qū)域的規(guī)則如果定得不合理系統(tǒng)在接近穩(wěn)態(tài)時(shí)就容易抖動(dòng)。6.4 報(bào)告文檔的整理思路Word文檔不只是把仿真截圖貼上去重點(diǎn)是形成完整的設(shè)計(jì)閉環(huán)。我的報(bào)告結(jié)構(gòu)大致是問題提出 → 系統(tǒng)建模 → PID設(shè)計(jì) → 模糊控制設(shè)計(jì) → 仿真對(duì)比 → 結(jié)論與展望每一章配置對(duì)應(yīng)的圖表和結(jié)果分析。對(duì)比結(jié)果部分建議用表格加曲線圖曲線圖要標(biāo)清坐標(biāo)軸、單位、圖例并在下方給出簡(jiǎn)短的文字結(jié)論這樣老師在評(píng)審或答辯時(shí)能快速抓住關(guān)鍵。7. 從仿真到實(shí)際系統(tǒng)這套設(shè)計(jì)如何繼續(xù)擴(kuò)展如果只是想交一份課程設(shè)計(jì)或者畢業(yè)設(shè)計(jì)做到仿真對(duì)比這一層已經(jīng)足夠了。但如果是想往實(shí)際工程項(xiàng)目走后面還有幾個(gè)可以繼續(xù)深入的方向。第一把被控對(duì)象模型從線性傳遞函數(shù)換成更貼近實(shí)際的非線性模型比如加入執(zhí)行機(jī)構(gòu)飽和、閥門非線性流量特性和傳感器噪聲。你會(huì)發(fā)現(xiàn)PID的參數(shù)在非線性環(huán)境下要么偏保守、要么扛不住工況變化而模糊控制在結(jié)合一組工況感知規(guī)則后適應(yīng)能力明顯更強(qiáng)。第二引入自適應(yīng)機(jī)制?,F(xiàn)在這套方案的模糊規(guī)則表是固定的真正的模糊自適應(yīng)PID會(huì)讓量化因子或輸出比例因子在線調(diào)整一定要理解清楚這套系統(tǒng)做的是模糊控制器與常規(guī)PID的對(duì)比如果要做模糊PID則是在PID三個(gè)參數(shù)上各加一組模糊規(guī)則表來在線整定。這兩種方案的設(shè)計(jì)思路不一樣報(bào)告里別寫混了。第三把整套系統(tǒng)做硬件在環(huán)HIL仿真用實(shí)際控制器比如工業(yè)PLC或STM32運(yùn)行模糊控制算法驅(qū)動(dòng)真實(shí)的泵和閥門。到了這一步fis文件就需要導(dǎo)出為C語言代碼或者查表數(shù)組MATLAB的Fuzzy Logic Toolbox是支持生成可嵌入代碼的算力開銷遠(yuǎn)小于你想象。最后說一點(diǎn)個(gè)人體會(huì)做這類對(duì)比型設(shè)計(jì)最大的陷阱不是控制器本身出問題而是對(duì)比的條件不公平。只要保證被控對(duì)象模型、采樣時(shí)間、信號(hào)源完全一致哪怕PID參數(shù)不是最優(yōu)的模糊控制的優(yōu)勢(shì)也能準(zhǔn)確體現(xiàn)出來。反過來如果把PID調(diào)得非常好、把模糊規(guī)則表隨便寫幾條硬說PID碾壓模糊控制這種報(bào)告即使寫出來也經(jīng)不起追問。控制系統(tǒng)的設(shè)計(jì)結(jié)論不重要推導(dǎo)過程和實(shí)驗(yàn)條件才重要。這套方案跑通之后你可以試著把模糊規(guī)則表按自己的理解改一改觀察輸出曲線的變化那才是真正把模糊控制內(nèi)化成自己的東西的時(shí)刻。