很多完整上過《自動控制原理》的學生,都很可能被一整本的復雜理論描述搞得暈頭轉向,什么極點、奈奎斯特,搞到最后,書本學完了,還是不能學以致用。
“你們六個,還有金榜,竇真,認真地把這段話記下來,這就是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。
你聽懂了嗎?
周峰副教授帶頭鼓掌,講得太好了。
金榜嘖嘖也用力拍手。
沉浸在思考中的六位本科生反應過來也羞澀的認可。
竇真很激動地鼓掌,喊道:“太優秀了。”
章涵抬頭看了一眼,又看回電腦屏幕,從電腦包里拿出一個小盒子,推了出去,說:“實際調參一個項目,成功了再說吧。”
電機連接著角速度傳感器,角速度傳感器的軸上掛著一個如時針的大箭頭,大箭頭上有幾塊不規則的配重;另外一側,則是紅外距離傳感器。
輸入信號是距離,轉化為電壓,作為目標值。
控制量則是角度傳感器的位置。
控制器是小巧的Arduino Micro。
章涵把小設備通電,然后手掌放在紅外測距傳感器前面,隨著他手掌與測距傳感器的距離變化,角度傳感器軸上的指針就穩穩停在對應的位置。
響應快速,且無抖動。
由于指針的不同位置設置了不規則配重塊,也就是說指針的任何角度受力都差異很大。
這無疑是極為優越的自控算法程序。
刷掉了程序,留下一句話:“后天上午電賽選題了,想做自控題,先在明天晚上之前把參數和代碼調試出來再說。”
說完,章涵抱著電腦,瀟灑而去。
金榜心說,章師兄強是強的,就是愛裝B。
六名本科生有些發憷。
短短一周半的接觸,對章博士產生PTSD。
周峰說道:“劉牧,你帶他們六個調試一下,金榜,你還是當助教。”
“好的,周老師。”
金榜很愉快地答應下來。
這一段程序代碼其實很復雜。
劉牧思索片刻,就開始動手嘗試。
寫代碼花了20分鐘,調試PID參數大概30分鐘。
指針總算能夠隨著手掌距離變化而轉動起來。
只是不夠順滑,且指針有很明顯的抖動現象。
章涵夾著電腦又走了進來,看了一會兒劉牧的調試過程。
他哼了一聲,嗤之以鼻道:“我之前的代碼是花了一周時間,反復修改優化,達到了產品級的動態性和穩定性,你這代碼僅僅是實現功能,你要知道實現功能和產品級之間,有條巨大的鴻溝;不過,你一個高二學生做到功能實現,也比他們七個廢柴強很多了。”
七個?金榜很不爽,為什么要帶上我。
六名本科生頓時臉色一黑。
章涵不管別人看法,繼續問:“你們知道這其中的難點在哪兒嗎?難在哪兒都不知道,會讓你們坐井觀天,幼稚而不自知。”