Pixhawk固定翼TECS调参指南:从能量控制原理到实战日志分析

发布时间:2026/10/3 2:07:30
Pixhawk固定翼TECS调参指南:从能量控制原理到实战日志分析 1. 为什么固定翼飞控绕不开TECS从一次惨痛炸机说起先讲个我早年的真实案例。那时候我刚从多旋翼转固定翼第一次用Pixhawk飞一套自组的1.4米塞斯纳当时对TECS完全没有概念只按多旋翼那套思路调PID。结果起飞后一加油门飞机猛烈抬头我下意识推升降舵压机头速度反而越来越快紧接着又因为速度太大拉飘整个飞机在50米高度上画着正弦波最后迎角过大失速直接拍在地上。事后回看日志油门和升降舵全程在打架——油门推了升降舵就压升降舵拉了油门就收两个通道互相干扰能量全消耗在内耗上了。这次炸机让我明白一件事固定翼的控制逻辑和多旋翼有本质区别。多旋翼可以独立控制四个电机转速升力和姿态天然解耦但固定翼只有油门和升降舵两个主要能量相关通道而速度、高度、姿态全都耦合在一起。你推升降舵抬头不仅变高度还会因为阻力增大而减速你加油门不仅变速度还会因为升力增加而改变高度。如果我们还用高度误差→升降舵、速度误差→油门这种独立的PID闭环两个回路必然冲突。TECSTotal Energy Control System总能量控制系统就是为解决这个问题而生的。它的核心思想非常直白别再分别盯着速度和高度了把飞机看作一个能量系统油门负责总能量升降舵负责能量分配。油门决定飞机有多少能量升降舵决定这些能量是变成高度还是速度。这在数学上彻底解决了油门和升降舵的耦合问题。Pixhawk从ArduPilot 3.x时代开始就把TECS嵌入到了固定翼的固定高度飞行模式FBWA、CRUISE、AUTO等中只要你在用这些模式做航线飞行、自动降落TECS就在全程工作。你即使不调它它也按默认参数在工作——但默认参数只保证能飞不保证飞得好。这篇教程我会从能量控制的数学原理讲到Pixhawk里TECS的具体参数再到实飞日志怎么分析尽量让零基础的朋友也能看懂。内容会涉及一些公式但我会用通俗的方式去讲不会让你卡死在微积分上。如果你想手工把固定翼调得既稳又准或者正在被高度振荡速度忽快忽慢油门和升降舵互相较劲这类问题困扰这篇应该能帮到你。2. 先把总能量的概念掰开揉碎TECS到底在算什么2.1 一架飞机在空中藏着两个能量账户TECS的理论根基最早可以追溯到1980年代NASA兰利研究中心针对运输机的研究。当时研究人员发现把速度控制和高度控制分开做在强风切变、发动机推力大范围变化等工况下效果很差于是提出把飞机看成一个能量系统来整体控制。具体来说一架飞机在空中的总能量由两部分构成动能决定速度。势能决定高度。你可以把这两个能量想象成两个银行账户。油门推力是往这两个账户里存钱的动作升降舵不是存钱或取款的动作而是决定钱存到哪个账户里的操作——它是转账不是存取。数学表达式是这样的[ E \frac{1}{2}mV^2 mgh ]其中 (E) 是总机械能(m) 是质量(V) 是空速(g) 是重力加速度(h) 是高度。但从控制角度我们更关心的是能量随时间的变化率因为飞控最终输出的是油门大小和舵面偏转量这些是每秒做什么的问题。对时间求导后两边同时除以 (mV)注意这一步在能量控制里是常规操作因为能量变化率正比于比功率得到比能量变化率的一条关键公式[ \frac{\dot{E}}{mV} \dot{V} \frac{g\dot{h}}{V} ]等式右边第一项是速度变化率第二项是高度变化率除以速度并乘以重力加速度。这个式子告诉我们总能量的变化率 速度的变化率 折算后的高度变化率。为什么要除以 (V)因为不同速度下同样的高度变化对应的能量变化是不同的。150km/h巡航时掉10米高度损失的势能换算成速度变化和80km/h慢速飞行时掉10米是完全不同的。除以速度后两个物理量才有可比性。2.2 还有一个能量分配账本为什么升降舵只管能量的分配光有总能量还不够。总能量控制解决了油门和升降舵不打架的问题但两个账户之间也可能失衡——比如速度正常、高度偏低这时候总能量是够的你不需要猛推油门只需要把一部分动能转成势能让飞机爬升一点同时保持总能量不变。TECS引入第二个变量叫能量分配也成为能量平衡差定义为动能变化率减去折算后的势能变化率[ B \dot{V} - \frac{g\dot{h}}{V} ]当速度偏高、高度偏低时(B 0)说明能量太多地集中在动能账户里需要升降舵把一部分动能转化为势能——也就是向后拉杆抬头爬升。当速度偏低、高度偏高时(B 0)需要升降舵推杆低头把势能转换为速度。所以TECS的控制逻辑一句话就能概括油门控制总能量总能量误差大就加油门总能量盈余就收油门。升降舵控制能量分配动能太多就抬头消耗掉势能太多就低头换回速度。听起来是不是很简单但这套逻辑在传统PID框架下很难实现因为传统的高度误差→升降舵、速度误差→油门是直接拿误差信号去驱动执行机构耦合关系完全没处理。2.3 从公式到控制律TECS的两个控制通道Pixhawk中TECS的实际实现是在上述能量公式基础上做了进一步细化。整体的控制律可以拆成两个主通道左端——油门通道总能量控制[ \delta_T k_{Tp} \left( E_{error} \right) k_{Ti} \int E_{error} , dt k_{Td} \frac{dE_{error}}{dt} \text{前馈} ]其中 (E_{error}) 是总能量设定值与实际值之间的误差(k_{Tp})、(k_{Ti})、(k_{Td}) 对应油门PID参数。前馈部分会基于当前的油门设定值和需求加速度做预测这在大油门大幅机动时非常重要。右端——升降舵通道能量分配控制[ \Delta_e k_{Bp} \left( B_{error} \right) k_{Bi} \int B_{error} , dt k_{Bd} \frac{dB_{error}}{dt} \text{俯仰姿态前馈} ](B_{error}) 是能量分配误差。升降舵还混入了俯仰姿态阻尼信号这个在ArduPilot里面叫 pitch damping目的是抑制俯仰振荡。这里有一个特别容易搞混的点TECS中的升降舵通道最终不是直接输出舵面偏角而是先输出一个目标俯仰角target pitch angle再由后级的内环PID通常是Pitch控制器去跟踪这个目标俯仰角。所以TECS是外环Pitch控制器是内环。外环管能量内环管姿态跟踪。提示你调TECS的时候如果发现飞机虽然能量控制对了但姿态波动大问题可能出在内环俯仰PID上而不是TECS本身。这是很多人的认知误区后面我会专门讲怎么区分。3. 从飞行模式到实际效果Pixhawk中的TECS长什么样3.1 你猜TECS什么时候在工作很多飞友以为TECS只在自动飞行里才起作用其实这是个常见的误解。在ArduPilot固定翼中只要有以下几个条件TECS就在后台运行飞行模式使用了航向/高度导航比如 FBWAFly By Wire A、CRUISE、AUTO、GUIDED、RTL、LOITER。没有手动直接油门模式比如手动模式、STABILIZE模式下油门是手动控制的就不走TECS。也就是说你只要在天上开着 FBWA 飞油门杆的物理位置其实并不直接控制电机转速而是作为TECS的一个速度/油门偏移参考。你推油门杆TECS会理解为我想飞得更快或允许使用更多推力然后由TECS内部算法决定实际油门输出。具体到ArduPilot代码里TECS模块会生成四个核心输出量throttle_dem期望油门百分比。pitch_dem期望俯仰角。aspeed_estimate估算空速如果有空速传感器。height_estimate估算高度融合气压计、GPS等。这四个量再交给后续的姿态控制器和内环PID。所以你在Mission Planner的状态页面看到TS:、TP:之类的字段就是TECS在汇报工作。3.2 TECS工作流程的阶段拆解TECS的内部计算流程大致可以分为三个阶段。理解这个流程对参数调试特别有帮助因为你会知道某类参数影响的是哪个阶段。阶段一期望值生成飞控根据当前飞行模式的任务高度、空速设定生成期望高度 (h_{sp}) 和期望空速 (V_{sp})。这些期望值不是突变跳跃的TECS内部有速率限制器climb rate limit和加速度限制器accel limit防止飞控发出过于剧烈的指令。比如你在AUTO模式里设了巡航高度120米当前高度80米TECS不会立刻要求飞机以最大的爬升率冲上去而是按照你设定的爬升率限制默认 2.5 m/s 左右生成一条平滑的高度曲线。这个设定直接关系乘客舒适度——虽然咱们的飞机没有乘客但剧烈的高度指令会让舵机、结构件承受很大应力。阶段二误差计算与能量分配TECS计算当前总能量和能量分配值与期望值对比得到两个误差信号。这个阶段同时会做一些滤波和限制比如对空速和高度信号做低通滤波以减少传感器噪声对控制量的影响。阶段三PID控制与前馈综合两个误差信号分别进入两组PID控制器。同时前馈环节会根据期望加速度/期望爬升率提前计算一部分控制量输出。前馈的意义在于提前行动而不是事后矫正。比如你期望飞机以 3 m/s 爬升仅靠误差驱动的PID需要先看到高度误差增大才会加油门响应自然滞后。而前馈会知道要达到3 m/s爬升需要额外多少推力并直接加上去油门响应快一大截。ArduPilot中对应的参数是TECS_THR_DAMP和TECS_PITCH_DAMP这两个阻尼系数本质上就起到了前馈/能量转换作用。3.3 默认参数到底靠不靠谱一个容易复习的参考表ArduPilot的TECS默认参数是经过大量测试得出的对于一架常规布局、常规动力配置的固定翼翼载荷不大、推重比适中、巡航速度合理默认参数大部分时候能飞。但注意能飞和飞得好是两码事。下面几个核心参数我会在第四章逐一讲解调优逻辑这里先给一个速览表参数名默认值作用调节方向TECS_CLMB_MAX5.0 m/s最大爬升率爬升能力不足时适当增大TECS_SINK_MAX2.0 m/s最大下降率下降太慢时可以增大TECS_TIME_CONST5.0 s总能量时间常数控制响应快慢越大越柔和TECS_THR_DAMP0.3 s油门通道阻尼/前馈增益过大油门振荡过小响应迟钝TECS_PITCH_DAMP0.4 s俯仰通道阻尼/前馈增益影响俯仰姿态响应TECS_PITCH_MAX20.0 deg最大俯仰角限制限制机动幅度TECS_PITCH_MIN-20.0 deg最小俯仰角限制防止抬头过大或低头过猛TECS_ALT_ACCEL1.0 m/s²高度通道加速度限制防止高度修正过猛TECS_INTEG_GAIN0.1积分增益处理稳态误差过大易振荡我对初学者的建议是先按默认参数飞几次记录问题再有针对性地调。不要一上来就动一堆参数因为TECS各参数之间的关联性很强改一个可能牵动另一个乱改最后会把自己绕晕。4. 手把手调参从飞机特征出发的TECS参数整定思路4.1 调参之前先回答三个问题在打开Mission Planner的参数页之前你要先搞清楚三个关于自己飞机的问题。这三个问题的答案直接决定TECS参数的大致量级也决定飞机能否在空中被稳定控制住。问题一这架飞机动力冗余大不大也就是最大推力与飞机重量之比。如果是像冲浪者、塞斯纳这种用3S/4S锂电带八九寸桨的常规飞机推重比大约0.6~1.0属于正常动力。如果像有些竞速机、飞翼推重比超过1.5甚至2动力冗余大油门通道要更保守地调否则一点油门误差就会带来很大的高度/速度变化。反之像某些老式像真机推重比只有0.4油门响应迟钝需要把时间常数调小一点、增益调大一点才能让TECS及时响应。问题二翼载荷大不大翼载荷是翼面积和起飞重量之比。翼载荷大比如超过 80g/dm²的飞机速度范围窄失速速度快对速度控制要求高高度调整时需要更大的俯仰角、更快的响应翼载荷小的滑翔机速度范围宽能量存储能力强TECS可以调得比默认更懒一点。问题三有没有靠谱的空速传感器这是很多人容易忽略的一点。TECS的核心变量是空速和高度如果飞机只靠GPS地速和气压计估算空速在风大的时候误差会很大TECS会出现看起来一切正常但实际能量控制不正确的情况。如果你暂时没有空速计也不是不能飞Pixhawk会用GPS地速去代替空速做估算但风大的时候控制品质会变差这点要有心理准备。我个人强烈建议玩固定翼至少装一个便宜的皮托管空速计一个空速计对飞行品质的提升非常明显。4.2 油门通道调优先保证能量充放跟得上油门通道对应的参数主要是TECS_TIME_CONST、TECS_THR_DAMP和TECS_INTEG_GAIN。第一步设置时间常数TECS_TIME_CONST这个参数的单位是秒含义是TECS校正总能量误差的响应速度。默认为5秒意思大约是在5秒内校正掉63%的能量误差类似一阶惯性系统的时间常数。时间常数越大响应越慢越柔和适合飞得比较保守的飞机时间常数越小响应越快越敏感适合机动性强、推力大的飞机。从我的经验看常规泡沫机、新手练习机6~8秒比较舒服修正柔和油门不容易抽风。飞翼、竞速机、需要快速能量响应的飞机3~4秒比较合适。大型像真机、低速滑翔机8~10秒也不为过。判断过大的表现是高度偏离后飞机会慢悠悠地回补半天回不到目标高度甚至看起来懒得管。 判断过小的表现是油门频繁剧烈变动电调容易过热飞行轨迹前冲后仰“像个不会开车的司机一直在修方向盘”。第二步设置油门阻尼/前馈TECS_THR_DAMP这个参数的单位也是秒默认0.3。它的物理意义是当飞机需要变化一个单位的动能时需要在多少秒内通过油门完成。实际上ArduPilot会用它来计算油门对速度误差的前馈。数值取大的时候油门响应更激进因为前馈增益更大爬升/加速更快但更容易出现油门振荡数值取小的时候油门响应更温和但可能感觉动力跟不上。我在调的时候有一个经验先用默认0.3观察飞行日志中油门曲线的振荡情况。如果油门曲线在平飞时持续高频抖动试着每次降0.05直到抖动消失如果油门响应太慢速度稳定要很久试着每次加0.05。第三步积分增益TECS_INTEG_GAIN默认0.1。这个参数负责消除稳态误差比如飞机以恒定的速度误差持续飞行、高度误差一直存在等。积分增益太大会出现周期性的油门呼吸感——油门一上一下、飞机高度跟着波浪形起伏。太小则可能有固定偏差比如巡航空速设定30m/s实际稳定在28m/s就回不去了。实际中我通常把这个值设成 0.1~0.15很少超过0.2。4.3 升降舵通道调优让能量转账更利落升降舵通道对应TECS_PITCH_DAMP、TECS_PITCH_MAX、TECS_PITCH_MIN以及TECS_ALT_ACCEL。TECS_PITCH_DAMP默认0.4。它相当于俯仰前馈增益决定了高度变化时飞机会以多大的俯仰角度去响应。这个值调大飞机抬头/低头更积极高度修正更快但太大时飞机会频繁点头抬头机身在航线中走出一条S形轨迹。调小则修正柔和但会出现高度不对但飞控不太管的感觉。一个值得注意的点是TECS_PITCH_DAMP 和 TECS_THR_DAMP 需要配合。理想状态下飞机高度误差修正时应该尽量借助油门改变总能量同时借助升降舵改变能量分配。如果油门阻尼调得大、俯仰阻尼调得小飞机在高度低的时候会通过猛加油门的方式爬升升降舵只是轻微抬头这样速度会先增加再慢慢转为高度修正过程长且轨迹不直。反过来油门阻尼小、俯仰阻尼大飞机倾向于用抬头的方式换高度速度会掉得比较多容易失速。TECS_PITCH_MAX/TECS_PITCH_MIN是俯仰角的硬限幅默认±20度。如果飞机满油飞行时抬头太多或者俯冲加速时低头太多都可能导致不可控制。原则上新手飞机我建议限制在±15度以内防止迎角过大失速。飞翼、坡航这类机动型可以放宽到±25度。不过要注意俯仰角限制不能过小否则高度修正能力会被严重削弱在大风天气里可能航迹维持不住。TECS_ALT_ACCEL默认1.0 m/s²这是高度修正时的垂直加速度限制。这个值限制飞机以多猛的方式去回补高度误差。值越大修正越猛适合小翼载荷飞机值越小修正越柔和适合大翼载荷或结构较脆弱的飞机。太猛时会在回补高度时出现拉G过大的情况对翼梁和舵机都有额外应力。4.4 爬升率和下降率限制这是被很多人忽略的安全阀TECS_CLMB_MAX和TECS_SINK_MAX分别限制最大爬升率和最大下降率这个参数组对安全性的影响非常大。我见过有些朋友为了让飞机快速爬升到巡航高度把 TECS_CLMB_MAX 从默认5.0调到9.0结果飞机每次从低高度往高高度回补时都是全油门爬升空速掉得很厉害在迎角大、速度低的状态下很容易失速。我的建议是对绝大多数常规飞机爬升率上限设置在 3~5 m/s 就足够了。翼载荷大、动力弱的飞机甚至要设到 2~3 m/s这样TECS会提前开始爬升而不是到了目标高度附近才猛拉。下降率也一样TECS_SINK_MAX默认2.0 m/s建议别超过4.0否则高高度下大下滑角会让空速迅速增加对结构压力很大。注意这两个参数是安全阀也是前置规划器。TECS会依据这两个限制规划期望高度曲线所以合理的慢速爬升/下降设定能让整个修高过程平滑进行避免冲过头的过冲和振荡。4.5 参数联动为什么不能单独只调一个TECS最考验人的地方在于参数关联。我画个简化的关系图TECS_TIME_CONST 越小 → 误差校正越快 → 对油门和俯仰的响应需求越高 → 需要 THR_DAMP / PITCH_DAMP 同步加大。TECS_THR_DAMP 加大 → 油门响应快 → 能量输入快 → 高度回补可能过冲 → 可能需要加大 ALT_ACCEL 限幅让它不要冲太猛。TECS_PITCH_DAMP 加大 → 俯仰响应快 → 高度修正快 → 但速度波动可能变大 → 要确认 TIME_CONST 是否匹配。最大爬升率/下降率限制加大 → 允许更快的能量变化 → 对前馈增益的要求更高。所以调参的系统性做法是先定时间常数骨架再调油门/俯仰前馈最后用限制器做安全兜底。每次只改一个参数飞一个起落看日志再改下一个。一次性改多个参数出问题的时候你根本不知道是哪个参数造成的。5. 上层设定你以为无关紧要空速、重量和巡航参数的隐形影响5.1 重量参数错了TECS能量估算全错这是几乎每一个Pixhawk固定翼新手都会踩的坑。TECS计算能量时公式 (E \frac{1}{2}mV^2 mgh) 里是有质量的 (m) 的虽然在实际控制律中质量会被约掉一部分我们在前面的推导中两边同除了 (mV)但有些重量相关的参数如重力补偿、最小油门限制等仍然依赖你正确填写飞机重量。更关键的是ArduPilot 里有一个参数叫AHRS_TRIM_X、AHRS_TRIM_Y、AHRS_TRIM_Z这是加速度计安装角度和重心的补偿。如果飞机重心靠后、安装角有偏移TECS计算出来的能量误差会有系统偏差导致平飞时油门忽大忽小。所以当你发现TECS行为“奇怪”时先检查参数BATT_VOLT_PIN之类的电池参数有没有配好电调输出对应的电压、电流是否正常参数ARMING_REQUIRE相关的基础配置是否正确最重要的是有没有用 Mission Planner 做完整的加速度计校准和水平校准重心位置有没有在厂商推荐范围内这些基础问题没解决之前调TECS是事倍功半的。我见过很多飞友抱着参数页狂调最后发现只是因为机头配重不对导致舵面要一直带偏转补偿TECS看到的永远是能量一直在偏。5.2 巡航空速设置TECS的期望值从哪来在 AUTO 和 CRUISE 模式中期望空速一般来自TRIM_ARSPD_CM单位是cm/s或者航点任务里的DO_CHANGE_SPEED指令。这个参数决定了TECS认为的巡航速度是多少。期望空速设置不合理直接表现为平飞时油门开度过大或过小。比如你设的巡航空速是18m/s但飞机的经济巡航速度其实是14m/sTECS会一直以为速度不足持续输出较高的油门期望飞机飞行时整机带着多余能量导致高度不好稳住。更麻烦的是在AUTO模式下如果你用了DO_CHANGE_SPEED更改航段空速TECS会在每一个航点切换时重新计算期望能量。如果相邻航段的空速设定跳动大TECS需要同时改变动能和势能此时它的响应水平直接决定飞机的航迹品质。所以你设置的期望空速要和飞机的实际性能匹配滑翔机可以设低一点竞速机可以设高一点要让TECS在能量控制上有得玩。我用一个很直观的经验判断巡航时油门应该稳定在40%~70%之间。如果平飞巡航油门长期超过80%说明要么期望空速设太高了要么飞机阻力太大动力不足如果长期低于30%说明期望空速太低或飞机动力过剩。这两种情况都需要调期望空速让TECS工作在合理的能量区间内。5.3 风的影响TECS并不可怜——它需要空速真值TECS不是一个抗风算法它是一个能量管理算法。在强风中飞行TECS需要准确区分地速变化和空速变化。举一个具体的例子逆风飞行时地速可能只有15m/s但空速是25m/s飞机动能其实就是按25m/s算的顺风飞行时地速30m/s但空速只有20m/s真实动能是按20m/s算的。如果没有空速计TECS用GPS地速替代空速它就会在逆风时低估动能、顺风时高估动能能量分配随之出错表现为逆风时油门偏大、顺风时油门偏小高度在风中起伏明显。装上空速计以后TECS的抗风性能会显著提升因为能量控制重新基于真实的空速和气压高度。还在用GPS地速替代空速的朋友如果你的飞机有多余的AUX口强烈建议加一个空速计几十块钱的东西带来的飞行品质改善是立竿见影的。我个人在风力超过8m/s时调参的经验是适当减小TECS_TIME_CONST从默认5调到3.5左右让能量校正更快同时把TECS_PITCH_MAX适当放宽一点让飞机有更多俯仰权限去对抗风的扰动。6. 实战日志分析看懂这三条曲线你就能精准定位问题6.1 飞行日志里的TECS关键信号在哪里Mission Planner 的 Flight Data 界面里下拉菜单选择TECS组或者直接搜TS、TP、THR等关键词就能看到TECS相关的数据。但很多人打开日志后一脸懵不知道看什么。我的建议是你最需要关注三组曲线第一组期望高度 vs 实际高度TECS_SPEED、TECS_ALT 相关如果期望高度曲线是平的而实际高度一直在它上下波动说明TECS在反复过度校正——典型表现是高度超调。这时应该增大TECS_TIME_CONST让校正速度放缓或者检查TECS_ALT_ACCEL是否过大。如果实际高度曲线在期望高度下方像爬坡一样缓慢接近迟迟不汇合说明响应太慢应减小TECS_TIME_CONST或增大TECS_PITCH_DAMP。第二组期望空速 vs 实际空速注意期望空速信号是TECS_SPEED或ARSPD_DEM。如果实际空速经常比期望空速高不少而油门已经很低说明期望空速设低了飞机一直在滑翔减速如果实际空速经常低于期望油门一直高企一是可能期望空速设高了二是可能TECS_THR_DAMP前馈不足。第三组期望油门 vs 实际油门输出期望油门是TECS计算的throttle_dem实际油门一般看CTUN_ThrOut或RCOU的输出值。如果这两条线高频抖动说明PID增益或阻尼配置偏激进先降增益再看。6.2 一个实战案例高度振荡问题的完整排查链路我最近调一架2米翼展的飞翼现象是AUTO模式下高度设定80米实际高度在70~90米之间反复穿越航迹像个正弦波。排查链路是这样的第一步看高度和空速的曲线对应关系。发现高度波峰处空速最低波谷处空速最高——这说明飞机在用俯仰换高度的过程中能量没有被油门通道及时补偿。典型的特点是牺牲速度换高度再掉回来说明油门通道响应慢或者前馈不足。第二步看期望油门曲线。发现期望油门在高度波峰之后才开始增加滞后明显。这印证了前馈不足的判断。于是我把TECS_THR_DAMP从默认0.3加到0.45再飞。第三步复飞后的日志。高度振荡幅度从原来的±10米减小到±3米但出现了一个新问题油门曲线开始高频抖动看起来像油门在快速喘息。第四步把TECS_INTEG_GAIN从0.1降到0.05。高频抖动明显缓解。第五步把TECS_TIME_CONST从5.0降到4.0。整体响应快了一拍高度追踪更紧振荡完全消失。整个过程经历了三个起落、六次参数修改。每一次只改一个参数而且每次改完以后看完整段日志再决定下一次改动。这就是调TECS的标准流程急不来。6.3 容易误判的假故障当问题出在内环而不是TECS前面反复提过TECS的输出是期望俯仰角而实际舵面偏转由内环俯仰控制器完成。所以当你看到高度控制变差时要先确认是不是内环跟踪出了问题。怎么看对比期望俯仰角如ATT_PitchDem或CTUN_PitchDem和实际俯仰角ATT_Pitch这两条曲线。如果两者贴合得很好说明内环正常问题在TECS外环如果两者偏差大尤其在机动时说明内环俯仰PID参数不合适这时调TECS也白搭。我遇到过一架飞机TECS参数怎么调都振荡最后发现是升降舵舵量太大、俯仰内环增益过高飞机对俯仰指令响应过灵敏造成了级联振荡。这个例子说明排查问题时一定要先分清问题发生在控制回路的哪一级。提示ArduPilot固定翼内环俯仰PID参数主要是PTCH2SRV_P、PTCH2SRV_I、PTCH2SRV_D。调TECS之前先确认这几个参数在你的飞机上表现正常。7. 进阶玩法TECS和自动降落的配合以及后续可以怎么扩展7.1 自动降落时TECS的能量走廊逻辑TECS在自动降落阶段的表现最值得研究。ArduPilot的自动降落AUTO模式带LAND航点中飞机会在进场阶段按照下滑道通常3度下降此时TECS需要同时管理动能和势能让飞机沿着下滑道精准飞行。如果TECS参数不合适常见的问题有两种一种是在下滑道上点头——飞机反复低头加速再抬头减速航迹呈现波浪另一种是进场速度不稳——时快时慢最后接地位置发散。正确的调节思路是在自动降落前先把TECS_CLMB_MAX和TECS_SINK_MAX设成合理的值建议下滑阶段下降率不超过2~3m/s然后用油门通道控制总能量沿下滑道衰减用升降舵维持迎角和攻角。很多飞友在自动降落时喜欢把TECS_PITCH_MAX限制得特别小怕飞机抬头失速结果TECS为了维持下滑道不得不频繁调整油门反而让速度不稳。7.2 从TECS到更广阔的能量控制思路TECS的价值不仅限于固定翼。在多旋翼的垂直起降固定翼VTOL中TECS同样被用于前飞阶段的能量管理。在倾转旋翼、复合翼等构型的过渡飞行中TECS负责协调升力面和推力的能量分配。如果你吃透了TECS的核心思想再看这些更复杂的构型控制会发现底层逻辑是共通的。另外如果你对航迹规划感兴趣TECS还提供了很好的期望值规划思路——通过限制速率、加速度生成平滑的期望曲线让后级控制器有更好的参考。这种前馈规划误差反馈的结构在现代飞行控制里应用极广不光是TECSL1导航、LQR航迹控制也都沿用了类似思路。7.3 排障自查清单如果TECS仍然让你头疼最后我把自己这些年在群里帮人排查TECS问题时的检查清单列出来给大家做一个速查手册加速度计校准了吗水平校准、安装方向对不对重心对吗机头是否过重或过轻有没有带着配重飞行空速计校准了吗零风速下读数是否为0安装位置会不会被螺旋桨滑流影响期望空速设得合理吗平飞巡航时油门是否在40%~70%电池电压和电量充足吗低电量下动力不足TECS的期望能量可能达不到。舵机行程和舵量够吗升降舵最大偏角是否达到飞控要求通常建议±25度以上俯仰内环跟踪好吗期望俯仰角和实际俯仰角是否贴合是只调了一个参数吗每次改参后有没有充分验证是不是用的默认机架类型ArduPilot里固定翼机架类型FRAME_TYPE不同默认参数也有差异。如果以上都排查过了还是有问题那就把日志完整发出来让别人看看。但如果你能自己看懂TS、TP、期望油门这几条曲线绝大多数问题都能自己定位。固定翼的控制从来不是调好一个参数就行而是一个系统性的工程。TECS作为这套系统里的核心模块值得每一个玩Pixhawk固定翼的人花时间理解。一旦你把能量控制的思维内化了再看飞控参数时你看到的就不再是一堆数字而是飞机在空中的每一次能量流动。