參指南:從PID局限到Pixhawk能量控制實(shí)戰(zhàn))
飛固定翼的人十有八九都經(jīng)歷過(guò)這種抓狂瞬間油門(mén)桿沒(méi)動(dòng)發(fā)動(dòng)機(jī)轉(zhuǎn)速自己一跳一跳明明想平飛高度卻在 10 米范圍內(nèi)來(lái)回晃一拉桿爬升空速掉得比高度漲得還快一推桿下降飛機(jī)像坐過(guò)山車(chē)一樣先俯沖再被猛拽回來(lái)。很多人第一反應(yīng)是“PID 沒(méi)調(diào)好”于是反復(fù)折騰俯仰增益、阻尼系數(shù)結(jié)果該抖還是抖該掉速還是掉速。尤其是用 Pixhawk 飛控飛固定翼的新手往往在姿態(tài) PID 里浪費(fèi)了大量時(shí)間卻不知道真正的元兇是更上層那個(gè)“看不見(jiàn)的算法”——TECS全稱 Total Energy Control System總能量控制系統(tǒng)。這篇教程完全從零開(kāi)始不講廢話直接講清楚 TECS 到底在算什么、Pixhawk 里它和 PID 是什么關(guān)系、參數(shù)怎么調(diào)才不抖不掉速。無(wú)論你是在 ArduPilot 還是在 PX4 固件下玩固定翼這套能量控制的思路都通用。我會(huì)把數(shù)學(xué)公式掰開(kāi)揉碎用人話講再用實(shí)測(cè)經(jīng)驗(yàn)告訴你哪些參數(shù)先動(dòng)、哪些參數(shù)千萬(wàn)別亂動(dòng)最后附上日志排查的方法。保證你看完能少走我當(dāng)年踩過(guò)的那些大坑。1. 為什么固定翼控制要換思路PID 的局限與能量視角1.1 大多數(shù)新手都掉進(jìn)過(guò)的“PID 調(diào)參坑”我先說(shuō)一段自己的黑歷史。剛玩固定翼那會(huì)兒我用的也是 Pixhawk默認(rèn)姿態(tài) PID 飛起來(lái)湊合能控但只要切到定高或者自動(dòng)巡航模式問(wèn)題就全來(lái)了高度偏差一出現(xiàn)飛控瘋狂拉桿拉到姿態(tài)保護(hù)限位后又猛地低頭整個(gè)飛機(jī)像在“鋸木頭”。我當(dāng)時(shí)以為是姿態(tài)環(huán)增益不夠把 P 值一路往上加結(jié)果飛機(jī)開(kāi)始高頻俯仰抖動(dòng)差點(diǎn)空中解體。后來(lái)才明白固定翼的高度、速度、俯仰姿態(tài)本質(zhì)上是一個(gè)強(qiáng)耦合系統(tǒng)。你單純用一個(gè) PID 去穩(wěn)住高度它必然通過(guò)大攻角或者大俯仰角去“硬掰”結(jié)果就是空速劇烈波動(dòng)你用另一個(gè) PID 去穩(wěn)空速它又去搶油門(mén)結(jié)果高度跟著亂跳。兩個(gè)控制回路互相打架飛機(jī)自然越飛越擰巴。固定翼不像多旋翼多旋翼的姿態(tài)、垂直速度解耦相對(duì)明顯固定翼升力依賴空速速度一變升力就變高度跟著變反過(guò)來(lái)又影響速度。想靠幾個(gè)獨(dú)立 PID 各管一段等于讓兩個(gè)司機(jī)同時(shí)搶方向盤(pán)誰(shuí)都不服誰(shuí)。1.2 把飛機(jī)當(dāng)成一個(gè)“能量包”來(lái)看換個(gè)思路就好理解得多。不管你往哪個(gè)方向飛飛機(jī)這塊“鐵疙瘩”總共只有兩種能量因高度產(chǎn)生的勢(shì)能和因速度產(chǎn)生的動(dòng)能。油門(mén)改變的是這個(gè)“總能量包”的大小好比給手機(jī)充電升降舵改變的只是能量的“分配方式”是拿來(lái)爬高還是拿來(lái)加速好比手機(jī)里后臺(tái) App 誰(shuí)用得多一點(diǎn)。飛機(jī)制造商和開(kāi)源飛控社區(qū)早就看明白了這一點(diǎn)于是有了 TECS 這種基于能量狀態(tài)的控制器。TECS 的核心思想就一句話用油門(mén)去控制總能量的增減用升降舵去控制動(dòng)能和勢(shì)能之間的分配比例。這樣天然尊重了固定翼的物理特性——發(fā)動(dòng)機(jī)輸出的功率決定飛機(jī)總能量爬升或衰減的速度而升降舵只是把一部分能量“搬運(yùn)”到高度或者速度上。所以你在用 Pixhawk 固件調(diào)固定翼時(shí)別再糾結(jié)“高度該歸高度 PID 管、速度該歸速度 PID 管”了TECS 才是這兩個(gè)量背后真正的統(tǒng)籌者。2. TECS 的核心原理一個(gè)公式看懂它的靈魂2.1 比總能量與能量分配率要把能量控制變成算法第一步是給“能量”找個(gè)統(tǒng)一的度量單位。開(kāi)過(guò)電動(dòng)車(chē)的人知道電池電量既可能花在爬坡上也可能花在提速上為了比較方便工程師常把動(dòng)能和勢(shì)能變成同一個(gè)量綱。TECS 里最基礎(chǔ)的一個(gè)概念叫比總能量簡(jiǎn)單說(shuō)就是把速度折算成等效的高度再加實(shí)際高度[ E h \frac{V^2}{2g} ]其中 h 是高度V 是空速g 是重力加速度。因?yàn)楣潭ㄒ淼纳桶l(fā)動(dòng)機(jī)推力都依賴于空速所以這里用的是空速而不是地速。這個(gè) E 也叫“能量高度”相當(dāng)于把所有能量都折算成“還能再飛多高”。假如我當(dāng)前 500 米高度、空速 30 m/s那我比能量相當(dāng)于 500 302/(2×9.8) ≈ 500 45.9 ≈ 545.9 米意思是我如果把速度全部換成爬升最多還能再爬約 45.9 米。有了總能量還得再看分配。TECS 里定義了能量分配率反映在穩(wěn)住總能量的前提下動(dòng)能和勢(shì)能誰(shuí)升誰(shuí)降[ D \dot{h} - \frac{V \dot{V}}{g} ]當(dāng) D 為正說(shuō)明高度在增長(zhǎng)而速度在下降也就是能量正在從動(dòng)能搬運(yùn)到勢(shì)能D 為負(fù)則相反。這樣就把飛機(jī)的兩個(gè)狀態(tài)量壓縮成了兩個(gè)“能量坐標(biāo)”一個(gè)管總額一個(gè)管差值。TECS 后面的所有計(jì)算都是圍繞這兩個(gè)坐標(biāo)展開(kāi)的。2.2 油門(mén)管總能量升降舵管能量分配現(xiàn)在把控制邏輯對(duì)上號(hào)??偰芰康钠罱唤o油門(mén)來(lái)控制如果當(dāng)前總能量低于期望總能量TECS 就會(huì)加大油門(mén)指令讓發(fā)動(dòng)機(jī)輸出更多功率如果總能量盈余比如飛得又高又慢那就收油門(mén)。這樣做很符合直覺(jué)只有發(fā)動(dòng)機(jī)能往系統(tǒng)里“注入”能量。能量分配偏差則交給升降舵來(lái)控制如果高度比期望高但速度比期望低說(shuō)明能量過(guò)多地變成了高度也就是勢(shì)能占比太大TECS 會(huì)給出低頭俯仰指令讓飛機(jī)把一部分高度“還”給速度反之如果速度偏高但高度偏低就輕輕拉桿爬升。升降舵本身不改變總能量它只是通過(guò)改變氣動(dòng)力方向讓飛機(jī)在動(dòng)能和勢(shì)能之間做搬運(yùn)工。需要特別注意的是TECS 輸出的并不是油門(mén)百分比和舵面角度本身而是期望的推力指令和期望的俯仰角。在 ArduPilot 里推力指令會(huì)進(jìn)一步映射為油門(mén)的百分比期望俯仰角會(huì)交給底層的姿態(tài)控制器去執(zhí)行。所以 TECS 不是什么黑魔法它上面還有姿態(tài)內(nèi)環(huán)。如果底層姿態(tài) PID 調(diào)得稀爛TECS 算得再準(zhǔn)也沒(méi)用這點(diǎn)后面調(diào)參時(shí)還會(huì)再?gòu)?qiáng)調(diào)。2.3 幾個(gè)你必須理解的關(guān)鍵概念理解 TECS 時(shí)有幾個(gè)術(shù)語(yǔ)會(huì)頻繁出現(xiàn)在日志和參數(shù)說(shuō)明里提前搞清楚能省很多時(shí)間。第一個(gè)是SEP比剩余功率英文全稱 Specific Excess Power。它表示飛機(jī)當(dāng)前單位重量下“多余”的功率其實(shí)就是總能量變化率。日志里如果 SEP 一直是正的說(shuō)明飛機(jī)在穩(wěn)定積累能量空速或者高度必然會(huì)上升SEP 為負(fù)則說(shuō)明系統(tǒng)在“耗能”。TECS 對(duì)油門(mén)指令的計(jì)算本質(zhì)上就是讓期望推力對(duì)應(yīng)的 SEP 盡快收斂到所需值。第二個(gè)是能量分配誤差通常用日志里的 Errdot 等字段表示。正負(fù)代表當(dāng)前動(dòng)能勢(shì)能分配失衡的方向。我以前看日志只看高度和空速兩條曲線半天看不出問(wèn)題后來(lái)直接看 EPS 和能量誤差字段幾秒鐘就定位出“為何油門(mén)亂跳”的根源。這些字段在 Mission Planner 的 STATUS 頁(yè)面和 PX4 的 Flight Review 里都能找到。第三個(gè)是速度-高度權(quán)重對(duì)應(yīng)參數(shù)里的 SPDWEIGHT。它不是一個(gè)開(kāi)關(guān)而是一個(gè)連續(xù)權(quán)重決定當(dāng)總能量固定時(shí)系統(tǒng)更愿意把能量分配給速度還是高度。默認(rèn)值在 1.0 附近表示比較均衡大于 1 傾向于優(yōu)先保速度小于 1 傾向于優(yōu)先保高度。理解了這個(gè)后面調(diào)參數(shù)時(shí)你就可以根據(jù)自己的飛行需求去“定制”飛機(jī)的脾氣。3. Pixhawk 里 TECS 到底是怎么跑起來(lái)的3.1 ArduPilot 與 PX4 中 TECS 的位置Pixhawk 本質(zhì)上是一個(gè)硬件平臺(tái)真正的“飛控大腦”是它上面跑的固件。目前主流開(kāi)源固定翼固件里ArduPilot 和 PX4 都集成了自己的 TECS 實(shí)現(xiàn)思路源于 NASA 早期提出的總能量控制理論又在工程上做了不少適配。兩套代碼的入口不同但控制層級(jí)都是一樣的最外層是導(dǎo)航/制導(dǎo)層給 TECS 發(fā)期望高度和期望空速中間是 TECS解算出期望俯仰角和期望推力最內(nèi)層是姿態(tài)與油門(mén)伺服控制最終驅(qū)動(dòng)舵機(jī)和電調(diào)。我常跟新手說(shuō)TECS 是個(gè)“夾心層”。你調(diào) TECS 時(shí)如果把底層姿態(tài)環(huán)當(dāng)作不存在看著參數(shù)調(diào)了半天也是隔靴搔癢。反過(guò)來(lái)底層姿態(tài)環(huán)調(diào)得干凈利索TECS 的收斂速度能明顯變好。所以遇到飛行品質(zhì)問(wèn)題先分清是底層問(wèn)題還是頂層問(wèn)題再去碰對(duì)應(yīng)參數(shù)。3.2 TECS 在控制鏈路中的輸入輸出一次典型的自動(dòng)飛行任務(wù)里TECS 接收的量包括期望高度、期望空速、當(dāng)前高度、當(dāng)前空速以及來(lái)自導(dǎo)航層的爬升率/下沉率限制。高度來(lái)源可以是氣壓計(jì)或者 GNSS 輔助高度空速來(lái)自空速管如果飛機(jī)沒(méi)裝空速管只能用 GPS 地速近似——但這里我必須提醒一句沒(méi)有空速管時(shí) TECS 的性能會(huì)明顯下降。因?yàn)轱w機(jī)在逆風(fēng)順風(fēng)時(shí)地速和空速相差很大用 GPS 地速當(dāng)空速等于讓 TECS 在不同風(fēng)況下算出來(lái)的能量狀態(tài)失真。TECS 內(nèi)部會(huì)先濾波、再做能量狀態(tài)估計(jì)然后經(jīng)過(guò)一系列控制律計(jì)算輸出兩個(gè)關(guān)鍵值demanded pitch期望俯仰角demanded throttle期望油門(mén)百分比。在 Mission Planner 的飛行數(shù)據(jù)頁(yè)面里你其實(shí)可以直接看到 TECS 輸出的這兩個(gè)量一個(gè)寫(xiě)著 DEMPITCH一個(gè)寫(xiě)著 DEMTHR。如果實(shí)際俯仰角和實(shí)際油門(mén)始終跟不上期望值那就說(shuō)明問(wèn)題在下游的姿態(tài)環(huán)路不要在 TECS 參數(shù)上白費(fèi)力氣。3.3 核心參數(shù)速查表與分析正因?yàn)?TECS 在中間層工作它的調(diào)參參數(shù)數(shù)量并不多但每一個(gè)都影響“成敗”。我把 ArduPilot 固定翼里最常用的 TECS 參數(shù)整理成了表供你飛行前對(duì)照檢查。以下數(shù)值以 ArduPilot 4.x 常見(jiàn)的默認(rèn)參考值為例具體請(qǐng)以你所用固件版本的實(shí)際默認(rèn)值為準(zhǔn)。參數(shù)名默認(rèn)參考值作用調(diào)參方向TECS_TIME_CONST5.0高度控制時(shí)間常數(shù)決定響應(yīng)快慢越大越平緩越小越激進(jìn)過(guò)小引發(fā)震蕩TECS_SPDWEIGHT1.0速度與高度權(quán)重1 保速度1 保高度一般 0.7~2 之間調(diào)整TECS_PTCH_DAMP0.1俯仰阻尼抑制能量分配環(huán)的振蕩過(guò)小容易俯仰抖動(dòng)過(guò)大反應(yīng)遲鈍TECS_PITCH_MAX15最大俯仰角限制按機(jī)型特性和飛行場(chǎng)景調(diào)整千萬(wàn)別亂設(shè)過(guò)小TECS_THR_MIN0最小油門(mén)百分比滑翔機(jī)可以設(shè)為 0動(dòng)力機(jī)需要留一點(diǎn)怠速TECS_THR_MAX100最大油門(mén)百分比動(dòng)力不足時(shí)需開(kāi)到 100過(guò)大可能油門(mén)沖擊TECS_SINK_MAX2.0最大下沉率限制防止下降階段俯沖過(guò)快TECS_SINK_MIN-2.0最大爬升率限制防止爬升階段拉桿過(guò)猛PX4 里同樣前綴也是 TECS_參數(shù)名字段也高度相似比如TECS_SPDWEIGHT、TECS_TIME_CONST、TECS_PITCH_MAX等。你只要抓住 TIME_CONST、SPDWEIGHT、PTCH_DAMP、油門(mén)限幅這四類就抓住了調(diào)參的主線。剩下那些導(dǎo)數(shù)阻尼、垂直加速度限制等默認(rèn)值一般都能用屬于飛機(jī)出了異常再做“外科手術(shù)式微調(diào)”時(shí)才碰的量。4. 保姆級(jí)調(diào)參實(shí)戰(zhàn)從默認(rèn)參數(shù)到穩(wěn)如老狗4.1 調(diào) TECS 之前必須完成的前置條件很多人一上來(lái)就翻 TECS 參數(shù)表這里我要潑一盆冷水在開(kāi)始調(diào) TECS 之前你的飛機(jī)必須滿足幾個(gè)硬性條件否則后面的工作全白做。第一姿態(tài)控制器的常規(guī) PID 已經(jīng)整定完成。ArduPilot 固定翼的姿態(tài)環(huán)參數(shù)主要集中在 PTCH2SRV_、RLL2SRV_這幾組還有更底層的速率環(huán)參數(shù)。怎么判斷是否達(dá)標(biāo)手動(dòng)模式下做幾個(gè)爬升、下滑、橫滾動(dòng)作回中后飛機(jī)能干凈利落地恢復(fù)配平姿態(tài)沒(méi)有明顯超調(diào)和振蕩就算過(guò)關(guān)。如果手動(dòng)橫滾回中有來(lái)回?fù)u動(dòng)TECS 里的俯仰期望再穩(wěn)也救不回來(lái)。第二空速管必須校準(zhǔn)且讀數(shù)可信。我在沒(méi)有空速管的小翼展機(jī)型上試過(guò) TECS地面風(fēng)速稍大一點(diǎn)高度和速度權(quán)重就開(kāi)始“打架”巡航時(shí)油門(mén)曲線像心電圖。如果你實(shí)在不想加空速管至少也要在無(wú)風(fēng)天飛行并且理解此時(shí)的性能上限。第三電調(diào)校準(zhǔn)和動(dòng)力怠速確保合理。固定翼巡航時(shí)油門(mén)工作點(diǎn)通常不高如果電調(diào)未校準(zhǔn)油門(mén)最低點(diǎn)和期望推力映射對(duì)不上TECS 輸出的“期望推力 50%”可能實(shí)際只給了 30% 的轉(zhuǎn)速整個(gè)能量閉環(huán)就偏了。4.2 第一次飛行只動(dòng)三個(gè)參數(shù)第一次帶著 TECS 參數(shù)升空我建議你保持絕對(duì)克制只動(dòng)三個(gè)參數(shù)。第一個(gè)是TECS_TIME_CONST從默認(rèn) 5 起步不要一上來(lái)就改成 2 追求“跟手”。第二個(gè)是TECS_SPDWEIGHT大多數(shù)常規(guī)固定翼從 1.0 開(kāi)始等你摸清飛機(jī)的性格再?zèng)Q定向哪個(gè)方向偏。第三個(gè)是TECS_PITCH_MAX根據(jù)你的機(jī)型和舵面強(qiáng)度設(shè)置一個(gè)合理的最大值普通航模 15 度左右夠用特技機(jī)可以適當(dāng)放開(kāi)到 20~25 度但千萬(wàn)不要設(shè)到 45 度否則強(qiáng)風(fēng)或陣風(fēng)擾動(dòng)下飛控可能給出一個(gè)“神仙”俯仰角翼載荷小的飛機(jī)直接失速。第一次飛行的任務(wù)只有一個(gè)在較高的安全高度切入定高模式ALT_HOLD或者自動(dòng)任務(wù)觀察 20 秒??词裁纯此膫€(gè)東西一是俯仰角曲線是否平滑二是油門(mén)曲線是否連續(xù)三是高度是否圍繞目標(biāo)高度收斂四是空速是否穩(wěn)定。只要沒(méi)有劇烈的振蕩今天的飛行就算成功。即使高度有一點(diǎn)周期性的超調(diào)波動(dòng)也不要急著改參數(shù)把飛行日志存下來(lái)回地面看數(shù)據(jù)再動(dòng)。4.3 進(jìn)階調(diào)優(yōu)速度權(quán)重與時(shí)間常數(shù)的博弈當(dāng)你跑過(guò)幾次默認(rèn)參數(shù)飛行后就可以根據(jù)飛機(jī)的“性格”做針對(duì)性調(diào)整了。這里有兩個(gè)最常見(jiàn)的使用場(chǎng)景。如果你用的是一架動(dòng)力相對(duì)充足、但翼載荷大、速度范圍窄的飛機(jī)比如飛翼或者像真機(jī)你會(huì)發(fā)現(xiàn)在巡航時(shí) TECS 很容易“掉高度換速度”或者“掉速度換高度”。此時(shí)把TECS_SPDWEIGHT從 1.0 往 1.2~1.5 方向調(diào)讓算法更看重空速油門(mén)和俯仰的配合會(huì)明顯更協(xié)同不容易出現(xiàn)失速前兆。反過(guò)來(lái)如果你飛的是滑翔機(jī)或者動(dòng)力不足的老式航??罩心芰勘容^寶貴那就把 SPDWEIGHT 調(diào)小到 0.7~0.8優(yōu)先保住高度在熱氣流里能獲得更自然的飄飛體驗(yàn)。時(shí)間常數(shù)TECS_TIME_CONST和 SPDWEIGHT 是一對(duì)博弈關(guān)系。增大時(shí)間常數(shù)TECS 會(huì)更“平和”適合風(fēng)大的日子因?yàn)椴粫?huì)對(duì)高度擾動(dòng)反應(yīng)過(guò)度減小時(shí)間常數(shù)高度跟蹤更跟手但能量環(huán)對(duì)噪聲和風(fēng)切變的敏感度上升油門(mén)和俯仰容易出現(xiàn)高頻修正。我自己實(shí)測(cè)下來(lái)在 3~4 級(jí)風(fēng)里把 TIME_CONST 從 5 調(diào)到 6~7油門(mén)輸出抖動(dòng)明顯減少。而在無(wú)風(fēng)的小場(chǎng)地上飛 F3A 類飛機(jī)我會(huì)把 TIME_CONST 降到 4高度保持更緊湊。TECS_PTCH_DAMP是很多新手忽略的“防抖參數(shù)”。如果日志里期望俯仰角波動(dòng)很頻繁而實(shí)際執(zhí)行也算跟手說(shuō)明能量分配環(huán)在振蕩這時(shí)候不要?jiǎng)?TIME_CONST先加 PTCH_DAMP。我在一架后推飛翼上遇到過(guò)巡航時(shí) 0.3 Hz 左右的低幅俯仰振蕩把 PTCH_DAMP 從 0.1 加到 0.18振蕩直接消失。記住它壓的是“俯仰指令的噪聲”不要加太大否則氣動(dòng)響應(yīng)會(huì)被拖慢。5. 常見(jiàn)問(wèn)題排查與日志分析實(shí)錄5.1 現(xiàn)象油門(mén)忽大忽小像心跳圖這是 TECS 調(diào)參里最典型的問(wèn)題。油門(mén)忽大忽小通常不是 TECS 單點(diǎn)造成的要分情況看。如果油門(mén)抖動(dòng)頻率不高但幅度很大多半是能量誤差計(jì)算里混入了噪聲優(yōu)先檢查空速管是否堵塞、氣壓計(jì)是否受到機(jī)翼振動(dòng)干擾如果日志里 SEP 和期望推力都在抖再看 TIME_CONST 是不是設(shè)太小把時(shí)間常數(shù)調(diào)大 1~2 秒往往就能壓住如果只是油門(mén)變化很劇烈但 SEP 曲線正常問(wèn)題出在推力映射到油門(mén)的環(huán)節(jié)檢查油門(mén)限幅是否太窄、最低油門(mén)是否設(shè)得過(guò)高導(dǎo)致一個(gè)小推力誤差就引起很大的油門(mén)百分比變化。5.2 現(xiàn)象爬升掉速、下降增速飛機(jī)一進(jìn)入自動(dòng)爬升空速掉得厲害高度還沒(méi)上去多少一下降速度又開(kāi)始失控地沖。這種“能量分配失衡”的核心是 TECS 認(rèn)為當(dāng)前能量足夠把太多能量拿去換高度或者反而把高度換成了速度。先從 SPDWEIGHT 入手如果爬升掉速嚴(yán)重說(shuō)明算法給了高度過(guò)高的優(yōu)先級(jí)先把 SPDWEIGHT 加到 1.2 以上試飛如果下降階段增速嚴(yán)重通常和 SINK_MAX 限制過(guò)松有關(guān)把TECS_SINK_MAX從 2.0 往 1.5 左右收緊限制最大下沉率同時(shí)給 TECS 更多時(shí)間通過(guò)收油和帶桿來(lái)減速。還有一種隱蔽情況動(dòng)力系統(tǒng)推力響應(yīng)太慢。油機(jī)或者大槳距電機(jī)從怠速到全油門(mén)需要一兩秒TECS 按瞬態(tài)推力模型計(jì)算能量但實(shí)際推力滯后導(dǎo)致爬升初期掉速。這種情況下我會(huì)把TECS_THR_MAX適當(dāng)放開(kāi)同時(shí)檢查電調(diào)剎車(chē)設(shè)置保證油門(mén)響應(yīng)不過(guò)度延遲。注意如果你用的是 ArduPilot還可以看推力轉(zhuǎn)速估計(jì)是否準(zhǔn)確電機(jī)-電調(diào)-螺旋槳的推力曲線最好用實(shí)測(cè)數(shù)據(jù)標(biāo)定。5.3 現(xiàn)象俯仰震蕩與掉高如果是連續(xù)的俯仰振蕩先分清楚是姿態(tài)內(nèi)環(huán)的問(wèn)題還是 TECS 的問(wèn)題。判斷方法很簡(jiǎn)單切回手動(dòng)模式手動(dòng)推拉桿幾下如果回中后仍出現(xiàn)振蕩那基本是姿態(tài) PID 的事和 TECS 無(wú)關(guān)。如果手動(dòng)模式很干凈一切到定高或自動(dòng)模式就振優(yōu)先檢查T(mén)ECS_PTCH_DAMP是否太小把阻尼從 0.1 往 0.15~0.2 方向加同時(shí)確認(rèn)TECS_TIME_CONST是否被調(diào)得太小比如有人圖響應(yīng)快改成 2能量環(huán)會(huì)像神經(jīng)質(zhì)一樣不斷修正高度進(jìn)而引起俯仰高頻動(dòng)作。還有一種掉高現(xiàn)象很迷惑人飛機(jī)沒(méi)有俯仰振蕩但每次轉(zhuǎn)彎都會(huì)掉 10~20 米高度。這其實(shí)不一定是 TECS 參數(shù)問(wèn)題多半是轉(zhuǎn)彎時(shí)的協(xié)調(diào)性問(wèn)題。固定翼在傾斜轉(zhuǎn)彎時(shí)升力垂直分量減小TECS 理應(yīng)先預(yù)測(cè)到能量損失通過(guò)提前加油門(mén)來(lái)補(bǔ)償。如果你發(fā)現(xiàn)轉(zhuǎn)彎掉高明顯檢查轉(zhuǎn)彎過(guò)程中副翼、方向舵是否協(xié)調(diào)協(xié)調(diào)轉(zhuǎn)彎能讓 TECS 的能量估計(jì)更準(zhǔn)確而不是單純加大 PITCH_MAX 去“硬拉”。5.4 如何用日志定位問(wèn)題紙上談兵再多也不如親手看一次日志。ArduPilot 用戶可以用 Mission Planner 的“Flight Data”界面在 STATUS 頁(yè)面調(diào)出 TECS 相關(guān)字段TECS.EH是期望能量高度TECS.EHdot是期望能量高度變化率TECS.SEP是比剩余功率TECS.Err和TECS.Errdot分別是總能量誤差和誤差變化率TECS.DEMPITCH、TECS.DEMTHR是 TECS 輸出的期望俯仰和期望油門(mén)。PX4 用戶則用 Flight Review 打開(kāi) ULog查看tecs_status消息里的totalEnergyError、energyDistributionError等字段。我把排查流程簡(jiǎn)化成一個(gè)“三段式”問(wèn)題定位法第一步對(duì)比DEMPITCH和實(shí)際俯仰角如果兩者偏差大問(wèn)題在姿態(tài)內(nèi)環(huán)第二步對(duì)比DEMTHR和實(shí)際油門(mén)如果兩者偏差大問(wèn)題在動(dòng)力映射第三步如果 TECS 的輸入期望高度、期望空速本身就忽上忽下那問(wèn)題來(lái)自更上層的制導(dǎo)邏輯比如航線轉(zhuǎn)彎切換參數(shù)。按這個(gè)順序走你基本不會(huì)在錯(cuò)誤層級(jí)白折騰。我自己后來(lái)遇到任何奇怪現(xiàn)象都強(qiáng)迫自己先看這三個(gè)差別再?zèng)Q定動(dòng)哪個(gè)分區(qū)省下的時(shí)間遠(yuǎn)超調(diào)參本身。6. 寫(xiě)在最后一點(diǎn)個(gè)人體會(huì)最后分享一個(gè)我踩過(guò)兩次的坑。有一陣子我調(diào)一架大展弦比滑翔機(jī)始終覺(jué)得 TECS 高度收斂太肉于是把TECS_TIME_CONST一路從 5 降到了 2.5。結(jié)果呢?zé)o風(fēng)天飛起來(lái)確實(shí)利索一到陣風(fēng)天油門(mén)和俯仰就像兩個(gè)喝多了的人在搶方向盤(pán)來(lái)回劇烈修正。后來(lái)我把時(shí)間常數(shù)調(diào)回 5同時(shí)把空速權(quán)重加到 1.3飛機(jī)的表現(xiàn)立刻“紳士”了很多。這件事讓我印象極深——TECS 的魅力從來(lái)不是把響應(yīng)調(diào)得有多激近而是讓飛控學(xué)會(huì)“有分寸地用力”。另外送新手一個(gè)實(shí)操小技巧每次只改一個(gè)參數(shù)飛行記錄至少 3 分鐘回地面后導(dǎo)出日志對(duì)比同一航段的油門(mén)和高度曲線。多積累幾次參數(shù)改動(dòng)和曲線變化的對(duì)應(yīng)關(guān)系你很快就能建立起對(duì) TECS 的“手感”。加油門(mén)不拉桿飛機(jī)自己就能找到屬于自己的那條航跡。