第五十四章廠長,您可得多來技術科啊!
第五十四章廠長,您可得多來技術科啊!(第2/3頁)
桌上的一塊飛控板,指著上麵的主控芯片。
“還有你這程序架構,彆把所有功能都塞在主循環裡。”
“中斷優先級要分清楚,姿態解算最高優先級,遙控指令第二,圖傳第三,日誌記錄最低。”
“姿態解算的周期要固定,比如說每十毫秒中斷一次,算一次姿態,調一次pid,這樣飛控的響應速度才能跟得上。”
“我之前是把所有東西都放主循環裡。”
李援朝撓了撓頭,有點不好意思,“跑一遍下來,姿態解算的時間不固定,有時候長有時候短,飛機就不太穩。”
“那是因為你主循環的執行時間不是恒定的。”
林默把飛控板放下,拿起筆在紙上畫了一個時序圖,“你設一個定時器中斷,每五毫秒觸發一次,中斷服務程序裡隻做三件事。”
“讀傳感器,算姿態,調pid。主循環裡跑那些不要求實時性的東西,比如圖傳,日誌,遙控指令解析。”
“這樣一來,姿態控製的實時性就保證了。”
李援朝盯著那個時序圖看了半天,一拍大腿,“廠長,您這一說我就明白了!這就是把實時任務和非實時任務分開處理!”
林默笑了笑,“對,這叫前後臺係統架構,前臺是中斷服務程序,處理緊急的事,後臺是主循環,處理不緊急的事。”
“你把這個框架搭好了,後續加功能就不會亂。”
李援朝興奮的手裡的筆都快把本子戳穿了。
他在對微處理器和軟件編程不算精通。
林默來了之後,他才開始係統地接觸這些新東西。
每次林默來技術科,他都恨不得把腦子裡的疑問全部倒出來,讓林默一一解答。
“廠長,還有一個問題。”
李援朝翻了兩頁本子,指著上麵的一行字,“上次您說的pid參數整定方法,我試了一下,比例和積分調好了,但微分項一直拿不準。”
“調大了飛控容易抖,調小了又響應太慢。”
林默想了想,拿起筆在紙上畫了一個曲線圖,解釋道:
“微分項的作用是預測誤差的變化趨勢,相當於給係統加了一個阻尼。你調微分項的時候,先把它設為零,把比例和積分調到一個大概合適的範圍,然後慢慢增加微分項,直到係統的階躍響應冇有明顯超調,但又不會太遲鈍。”
他在紙上畫了幾條曲線,標註了不同參數下的響應波形。
“你目前的問題可能是微分項的采樣周期不對,微分是對誤差的變化率做計算,如果采樣周期不一致,微分項就會忽大忽小。”
“你把姿態解算的周期固定下來,比如十毫秒一次,微分項用前後兩次誤差的差值除以時間間隔,這樣算出來的值就穩定了。”
李援朝聽得入神,眼鏡都快貼到紙上了。
他一邊
(本章未完,請點擊下一頁繼續閱讀)