第一十八章 精彩講課
很多完整上過《自動控制原理》的學生,都很可能被一整本的複雜理論描述搞得暈頭轉向,什麼極點、奈奎斯特,搞到最後,書本學完了,還是不能學以致用。
「你們六個,還有金榜,竇真,認真地把這段話記下來,這就是PID的本質,這就是自動控制的精髓。」周峰眼眶有些濕潤,接著布置了任務,讓劉牧做一期1小時的PID講解。
六個本科生有些傻眼。
其中擔任隊長的韓開雲忍不住道:「學弟是華二理科班,我也是,比你高三屆。」
有一種被博士訓哭尚可接受,但是讓高中師弟教我?丟不起臉。
章涵的臉色更冷,說:「一句概括的說明,沒辦法讓平衡車跑起來。」
平衡車就是典型PID閉環系統。
周峰擺了擺手,說:「反正就1個小時,姑且聽聽唄,劉牧,怎麼樣?可敢一試。」
一顆勇往無前的學霸之心,根本就不會畏懼台下的聽眾是誰。
即便是院士又如何?
孔子尚且說,三人行必有我師。
劉牧回:「沒問題。」
組會結束,章涵抱著電腦率先走了。
竇真過來跟劉牧閑談,誇獎了他幾句,然後小聲問:「小師弟,你跟周老師什麼關係?他真特別喜歡你,說起你,我看他眼珠子放光哦。」
金榜替劉牧解釋一二,拉著他走。
「再見,真逗師姐。」
兩人走出學院,金榜才說:「你剛才說真逗師姐了。」
「有嗎?我說竇真吧。」
「哎,隨便啦,周老師真把你當親兒子,那你叫什麼,竇師姐都不會生氣,她就是科研界的恥辱敗類,不自己搞科研,整天想著歪門邪道的捷徑心思。」
劉牧不解。
「你以後就知道啦,反正這位姐也是奇人,用一個詞語形容就是科研婊。」
回到宿舍,劉牧就著手準備PID的講稿。
周峰很貼心地把自己的講稿發過來參考。
同一個系統,各種參數也時刻變化著。
平衡車在平整的路上、上坡、下坡都不同,30公斤的孩子和80公斤的成年人更加不同,而這些種種,都只是通過PID來控制。
有趣。
越看下去,思考越深入,劉牧對PID越著迷。
凌晨四點。
金榜起床上廁所,看到劉牧那邊的USB小燈還亮著,揉了揉眼睛,迷瞪瞪說:「你還不睡啊。」
劉牧還在思考PID的終極含義。
上午九點半,信院,周峰副教授會議室。
六名本科生全部到位。
竇真來了,笑眯眯給劉牧加油。
章涵也抱著電腦來了,只是他的目光一直盯著電腦。
金榜也必須得出席。
周峰看到劉牧的黑眼圈,一陣心疼,心下埋怨自己應該給更多的準備時間。
劉牧的眼神很明亮,絲毫沒因為場下坐下副教授、博士、碩士、本科生而露怯。
也不廢話,開始說起。
「今天,我就來說一下自動控制PID,P為比例,I為積分,D為微分,到底什麼是PID?」劉牧的颱風穩健而自信,「請韓開雲師兄來配合我一下,講台前這條線是目標,師兄,你需要遵守兩個原則,儘可能快到達目標,儘可能小的越過目標。」
韓開雲站起來不太情願,從起始點開始慢悠悠往目標點走去,烏龜爬的停在目標位置。
「韓師兄你要儘可能快速過來。」
這一次跑得很快。
韓開雲已經不知道自己跑第幾次了。
滿頭汗水。
劉牧又讓另一隻隊伍的隊長大二學生史境出來跑。
韓開雲氣喘吁吁的坐下。
觀看過多次跑步后,史境總結出:最佳策略應該是跑過目標,再往回折返一步。
「PID的本質就是儘快、盡少超調地達到目標值。」
這句話說完,一直盯著電腦屏幕的章涵抬起頭看了一眼,沉思片刻,繼續看電腦。
竇真一直在看跑步的熱鬧,覺得好有趣。
金榜若有所悟。
周峰很認真很嚴肅地說道:「你們六個牢牢記住這句話,PID的本質就是儘快、儘快超調地達到目標。」
不愧是親傳弟子呀。
周峰心中又激動又喜悅,越看越喜歡劉牧。
接下來,劉牧又舉了一個燒鍋爐的例子。
……
「那為什麼PID就可以不考慮具體細節,只需要合適的三個參量即可,卻能適應各種系統呢?」
「這就是因為世間萬物都可以用比例、積分、微分來逼近,就好像數學中每一個函數都能展開為級數形態。」
高屋建瓴!周峰越聽越覺得上頭,聽小牧講課太享受。
形而上、淺入淺出。
接著,劉牧就展示了一副PID逼近目標的動圖。
能夠非常清晰地看到P、I、D的作用。
觀看了10次,差不多10分鐘之後,六名本科生都大受震撼。
配圖也很有意思。
章涵沒抬頭,漠然問道:「有些動態性要求很高的系統,只採用PD控制,PD會有什麼問題?」
這問題很考驗理解深度。
「章師兄這個問題很好。」劉牧不緊不慢說,「我先說一個小故事,古時候有很吝嗇的地主,為了讓驢子一刻不停的幹活,會在驢子嘴邊放一個蘿蔔,驢子看到蘿蔔就會一直往前追,但是一直吃不到蘿蔔,章師兄所說的PD控制就會出現這個問題。」
哦!六名本科生一下懂了。
韓開雲說:「就是始終保持一個距離,卻死活達不到。」
「對的,韓師兄總結很好,這就是靜差,而積分環節就是消除靜差的關鍵……」
……
一個小時講完自動控制PID。
你聽懂了嗎?
周峰副教授帶頭鼓掌,講得太好了。
金榜嘖嘖也用力拍手。
沉浸在思考中的六位本科生反應過來也羞澀的認可。
竇真很激動地鼓掌,喊道:「太優秀了。」
章涵抬頭看了一眼,又看回電腦屏幕,從電腦包里拿出一個小盒子,推了出去,說:「實際調參一個項目,成功了再說吧。」
電機連接著角速度感測器,角速度感測器的軸上掛著一個如時針的大箭頭,大箭頭上有幾塊不規則的配重;另外一側,則是紅外距離感測器。
輸入信號是距離,轉化為電壓,作為目標值。
控制量則是角度感測器的位置。
控制器是小巧的ArduinoMicro。
章涵把小設備通電,然後手掌放在紅外測距感測器前面,隨著他手掌與測距感測器的距離變化,角度感測器軸上的指針就穩穩停在對應的位置。
響應快速,且無抖動。
由於指針的不同位置設置了不規則配重塊,也就是說指針的任何角度受力都差異很大。
這無疑是極為優越的自控演算法程序。
刷掉了程序,留下一句話:「後天上午電賽選題了,想做自控題,先在明天晚上之前把參數和代碼調試出來再說。」
說完,章涵抱著電腦,瀟洒而去。
金榜心說,章師兄強是強的,就是愛裝B。
六名本科生有些發憷。
短短一周半的接觸,對章博士產生PTSD。
周峰說道:「劉牧,你帶他們六個調試一下,金榜,你還是當助教。」
「好的,周老師。」
金榜很愉快地答應下來。
這一段程序代碼其實很複雜。
劉牧思索片刻,就開始動手嘗試。
寫代碼花了20分鐘,調試PID參數大概30分鐘。
指針總算能夠隨著手掌距離變化而轉動起來。
只是不夠順滑,且指針有很明顯的抖動現象。
章涵夾著電腦又走了進來,看了一會兒劉牧的調試過程。
他哼了一聲,嗤之以鼻道:「我之前的代碼是花了一周時間,反覆修改優化,達到了產品級的動態性和穩定性,你這代碼僅僅是實現功能,你要知道實現功能和產品級之間,有條巨大的鴻溝;不過,你一個高二學生做到功能實現,也比他們七個廢柴強很多了。」
七個?金榜很不爽,為什麼要帶上我。
六名本科生頓時臉色一黑。
章涵不管別人看法,繼續問:「你們知道這其中的難點在哪兒嗎?難在哪兒都不知道,會讓你們坐井觀天,幼稚而不自知。」