
做电动和混合动力飞机组件尺寸设计最怕的不是电机选型手册翻得不够多而是把一堆规格书拼在一起之后发现系统级需求根本对不上。我这两年在用MATLAB/Simulink/Simscape搭这类模型时最深的体会是组件尺寸问题本质上不是查手册而是建系统。你选了一个100kW的电机它带来的重量会让飞机整机质量上涨整机质量上涨又会反过来抬高你需要的功率这个闭环不跑几轮你根本不知道自己设计的到底是一台飞机还是一台沉重的电池卡车。这篇文章就是围绕基于Simscape建模做电动/混动飞机组件尺寸这件事展开的。我会从架构选择、任务剖面分解、组件建模、参数化仿真到尺寸迭代完整梳理一条可落地的建模路线。适合刚入门电动飞机建模的研究生、做飞行器总体设计的工程师以及想从纯公式估算切换到系统仿真视角的从业者。1. 组件尺寸建模的核心逻辑不是选型是迭代1.1 功率需求与能量需求是两回事很多人在组件尺寸阶段犯的第一个错是把最大功率和总能量混在一起算。电动飞机的组件尺寸有两个独立的约束功率约束和能量约束。功率约束决定电机和逆变器的尺寸因为爬升或者单发失效工况需要在短时间内拉出大功率能量约束决定电池和发电机组的大小因为巡航和等待环节消耗的是持续的能量。这两个约束经常会打架。举个直观的例子一架起飞质量800kg的小型电动飞机巡航可能只需要30kW但爬升阶段要求爬升率不低于5m/s需要的功率可能一下冲到80kW。如果你只按巡航30kW去配电机爬升段就会过载电机温升直接爆表如果只按80kW配电池容量电池又多背了几百公斤巡航功率又变了。所以在Simscape里建模时我通常第一件事就是把任务剖面拆成功率段和能量段让模型同时输出P(t)和累计E(t)再看瓶颈在哪个环节。1.2 组件尺寸的质量闭环怎么破质量闭环是组件尺寸设计中最反直觉的部分。你最初给定一个起飞质量MTOW算完功率需求选完电机电池发现电池占了300kg。那么新的MTOW就不再是当初那个值而是MTOW 空机质量 电池质量 载荷质量 燃油质量混动。MTOW变了飞行性能就变了需要收窄或加宽的任务段功率也随之变化。如果用手算这个闭环每走一轮大概需要几个小时而且容易出错。用Simscape的优势在于可以把整机质量 → 气动需求 → 推进功率 → 组件能量全部参数化到同一个工作流里。每轮仿真结束脚本自动把电池质量更新回飞机质量变量再触发一轮新的仿真。通常三轮到五轮之后结果会收敛收敛的那个质量点才是真正可以用来写规格书的尺寸基线。提示一定要在模型里把组件质量做成一个独立参数不要把它埋在某个固定常量里。不然你每次换电池都要改七八个地方迟早漏改一处算出来的结果自洽性很差。1.3 Simscape为什么适合做这件事Simscape和传统Simulink数学建模的核心区别在于它用物理域的方式建模。你可以把电池、电机、螺旋桨、传动轴当成真实的物理对象连接起来信号方向不再是唯一理解方式能量可以从电气域流向机械域再流向气动负载。这对飞机推进系统来说非常自然因为一个电动推进单元本身就是多物理场耦合的。组件尺寸阶段最需要的不是高精度流场仿真而是中等保真度下的行为一致性。Simscape恰好落在这个区间它比纯解析公式保留更多的动态特性和效率特性比CFD电磁场仿真又轻量很多。你在同一套模型里改电池容量、换电机效率图、调整螺旋桨直径几秒钟就能看到系统层面的功率和能量响应变化这对于尺寸迭代来说是至关重要的效率基础。2. 建立电动/混动飞机模型的常用架构2.1 全电动构型电池-逆变器-电机-螺旋桨全电动构型在所有方案里最直接没有中间发电路径能量从电池出来经过逆变器DC/AC驱动永磁同步电机电机输出轴功率给螺旋桨。在Simscape里这条链路的建模素材非常成熟电池用Simscape Electrical的电池模块可以设置SOC初值、内阻、开路电压曲线逆变器用平均模型或开关模型组件尺寸阶段我建议用平均模型仿真速度快已经能反映效率和电压降电机用永磁同步电机模块输入效率Map或者更简单点用理想扭矩源加效率系数螺旋桨用负载模块或者自定义的功率系数-前进比曲线。全电动构型的组件尺寸关注点比较集中电机按最大功率选电池按总能量选逆变器按峰值电流和电压选。在Simscape里你甚至可以把三者画成一条功率链跑一次完整任务剖面立刻看到哪个环节先到达极限。2.2 串联混动构型发动机-发电机-电池-电机串联混动是在全电动链路上插入一台发动机和一台发电机发动机带动发电机发电电能既可以直供电机也可以给电池充电。这个构型的好处是发动机可以始终工作在高效转速区因为机械上它和驱动轮之间没有直接连接。在Simscape里搭串联混动我会在电气域做一个直流母线节点把发电机输出端、电池端、逆变器输入端接到同一个Bus上。然后能量管理逻辑决定发电机输出多少功率、电池补充多少缺口。组件尺寸难点就在这个母线节点上发动机和发电机的尺寸由持续巡航功率需求决定电池的尺寸由峰值补充功率和总能量缓冲决定。一套完整的Simscape模型能帮你把这两个尺寸需求同时输出而不是靠拍脑袋分配。2.3 并联与串并联构型并联混动是发动机和电机都可以向螺旋桨输出机械功率的构型需要用传动齿轮箱或者离合器等机械元件把两条动力路径耦合起来。Simscape Driveline里恰好有齿轮箱、离合器、行星排模块可以很自然地搭建这种机械耦合节点。并联构型的尺寸逻辑和串联完全不同。发动机承担巡航的主要功率电机做爬升助推和能量回收电池不需要太大但机械耦合机构会增加重量和复杂度。串并联构型则在低速时用串联模式发电驱动高速时切换成并联机械直驱适合更宽的速度包线。在组件尺寸阶段我不建议一上来就做串并联因为控制策略的维度会急剧增加。通常先把串联和并联两种边界构型跑出尺寸基线再评估串并联能优化多少值不值得增加系统和控制复杂度。用Simscape的好处是改构型不用全盘重来只要把机械耦合部分替换一下大部分电气域组件可以保留。2.4 架构对比表与选择逻辑构型电机尺寸电池尺寸发动机/发电机尺寸机械复杂度典型场景全电动峰值功率决定大全能量承担无低短途城市空中交通串联混动仍按全功率中等缓冲用按巡航功率较低支线通勤、混合任务并联混动助推功率较小按巡航功率中高航程与峰值动力兼顾串并联根据模式切换中等中等最高宽速域、多模式任务选择逻辑很简单如果任务剖面里的最高功率段占比很低大部分时间都在巡航串联混动通常尺寸最优化如果任务里经常需要短时大功率比如频繁起降的电动垂直起降那么电池峰值放电能力会成为约束可能需要并联或者直接全电动加高倍率电池。3. 实操第一步把任务剖面变成组件需求3.1 任务剖面建模在Simscape里做组件尺寸所有工作的起点都是任务剖面。任务剖面不是一个单独模块而是你用信号源或者表格数据表达的一条期望工况曲线。我习惯用一组时间-高度-速度-大气密度数值来定义具体分成几个典型阶段起飞滑跑短时间大推力持续数十秒爬升从起飞高度爬升到巡航高度通常要求最低爬升率巡航维持匀速平飞速度在南ATE目标和高度之间下降减少动力螺旋桨可能进入风车状态备降与等待应急场景通常占额外能量预算。任务剖面的精细度直接影响组件尺寸。如果你只给一个平均功率电池容量会明显偏小因为爬升和起飞瞬间的功率峰值会拉高电流电池端电压会下降可用能量有一部分损耗在内阻上。Simscape能呈现这种动态效应所以你一定要把任务剖面按时间序列灌进去而不是用一个常数功率。3.2 功率需求计算任务剖面定了之后每个时间步的功率需求可以用下面的关系在模型中算出来。平飞时推力T等于阻力D功率P T × V。阻力D和重量W之间隔着升阻比L/D所以P (W / (L/D)) × V。爬升段还要加上爬升率ROC对应的额外功率P_climb W × ROC。我把这些公式直接写进Simulink的表达式模块让模型根据每一步的高度、速度和当前飞机质量自动计算需求功率。这个当前飞机质量必须是从组件质量参数实时求和得到的否则就断了质量闭环。注意L/D不是常数在不同速度、不同高度下会变化。组件尺寸阶段可以使用一个保守的平均L/D但要留下参数入口等后续气动数据更新后可以直接替换成表格不需要改动模型结构。3.3 能量需求积累与容量估算功率需求曲线积分后就是能量需求。在Simscape里我会直接用积分器对电机输入功率做累计同时在电池模块后端读取累计放电能量两者对比就能知道传动链损耗占了多少比例。容量估算时电池总能量E_bat要大于等于任务总能量需求E_req再乘一个安全裕度。用公式表示就是E_bat E_req / (DOD × η_e)其中DOD是放电深度η_e是电气链路综合效率。放电深度直接决定一个重量修正系数比如你只允许电池放电80%那么同样的任务能量电池标称能量需要多配25%。这些系数看起来很小放在几百公斤的电池包上就是几十公斤的差异组件尺寸阶段必须算进去。4. 实操核心Simscape组件模型的搭建与参数化4.1 电气域电池、逆变器、电机选型库Simscape Electrical的基于物理域建模的模块库在组件尺寸阶段只需要用到几个核心元件电池模块、DC-DC变换器可选、三相逆变器、永磁同步电机或异步电机、母线节点。我建议用电子库里的平均值逆变器模型而不是开关模型因为组件尺寸迭代要跑很多轮开关模型会让仿真步长压得很小一轮任务剖面可能要跑几分钟尺寸迭代完全不实用。电池建模有两种思路一种是固定内阻模型设置开路电压、内阻和容量比较简单另一种是查表式模型开路电压和内阻都随SOC变化。做组件尺寸至少要用随SOC变化的查表模型。原因很简单电池在低SOC时内阻增大放电效率下降如果忽略这一点容量估算会偏乐观最后一圈巡航段可能提前触发低压保护这个在纯手算是很难预判的。4.2 机械域螺旋桨负载与传动链电机输出的轴功率最终要给螺旋桨。螺旋桨负载在Simscape里可以用一个扭矩-转速特性模块表达也可以用经验公式T C_p × rho × n^2 × D^5C_p是功率系数n是转速D是桨径。这个公式看着简单但它是组件尺寸建模里很有价值的部分因为你一旦确定螺旋桨直径电机的转速范围和扭矩范围就被锁定了。传动链部分如果电机和螺旋桨之间没有齿轮箱直接在机械端口上连一条轴就能传递扭矩如果有减速器Simscape Driveline里有对应的齿轮箱模块只需设置齿数比和效率。尺寸阶段我通常忽略轴的扭转弹性设成刚性轴少一个状态变量仿真也会快很多。4.3 混动系统发动机-发电机组与功率分配混动系统的核心额外组件是发动机和发电机。在Simscape里发动机可以用一个扭矩源模块配合转速特性来近似输入是油门指令输出是机械扭矩。发电机则用电气域的同步电机模块以电动机模式反向运行或者直接用一个功率转换模块输入机械功率输出电功率。串联混动中发动机-发电机组和电池在直流母线上并列这个节点的功率平衡关系用基尔霍夫电流定律就自然成立。模型里你需要的是一个能量管理策略模块决定每个时刻发电机组输出多少功率。组件尺寸阶段不需要复杂优化用一条简单的规则就行巡航时发电机输出巡航功率并给电池涓流充电爬升时发电机满功率输出不足部分由电池补充。这样的规则简单可靠后续优化控制策略时再替换即可。4.4 参数化用脚本还是GUI推荐方式组件尺寸阶段最忌讳的做法是把所有参数散落在GUI界面里然后靠鼠标一个一个改。因为你要迭代至少五轮每轮要改电机功率、电池容量、发动机功率、飞机质量等十来个参数手改一定会出错。我推荐的办法是所有组件参数用MATLAB工作区变量定义Simscape模块的参数对话框引用这些变量名。比如电机额定功率设成Motor.P_nom电池容量设成Batt.Ebat飞机质量设成Aircraft.MTOW。然后写一个参数配置文件跑仿真前用脚本把这些赋值一遍跑完后在脚本里读结果、更新质量、再跑下一轮。这样整个尺寸迭代流程是可复现的团队成员拿到你的脚本也能立刻复现你的结果。5. 仿真与组件尺寸迭代5.1 求解器与仿真配置Simscape物理模型的求解器选择对仿真体验影响非常大。组件尺寸模型既有电气惯性母线电容、电机电感又有机械惯性转子、螺旋桨转动惯量还有热时间常数如果加入电机温升数值刚性很强。我的一种可靠配置是连续时间、可变步长、ode23tb求解器相对容差设为1e-4。第一次跑仿真时我通常会先把所有惯性参数调成理想值比如填上初始稳态条件确认模型能稳定运行再逐步加入更有挑战的组件。这一步很像做实验前先跑一遍空载测试能省下大量排查时间。注意Simscape模型对初始条件很敏感。如果电池初始SOC、母线电压初始值跟稳态工作点不匹配仿真开头的几毫秒可能会出现剧烈的数值震荡。我的做法是在仿真前先用Simulink的trimming工具或者设置稳态初始条件确保模型从平衡点启动。5.2 尺寸迭代方法尺寸迭代其实是一个固定点迭代。基本流程如下根据任务需求设定初始MTOW根据任务剖面算出峰值功率和总能量需求按功率密度和能量密度估算电机、逆变器、电池、发动机的质量更新MTOW重新计算气动需求和功率需求重复2到4步直到MTOW变化小于某个阈值。在Simscape模型基础上做这个迭代可以用MATLAB脚本驱动每次仿真结束以后从输出日志里提取最大功率和累计能量用这些数据更新组件质量参数然后重新运行。我一般会在脚本里设定最大迭代次数和收敛容差比如连续两轮MTOW变化小于1%就停止。实测下来典型构型三轮左右就能收敛复杂构型可能需要五到七轮。5.3 典型案例1000kg级短途通用飞机的算例我用一个简单的公共算例说明整个流程。假设目标是起飞质量1000kg、巡航速度50m/s、航程200km、巡航高度3000m、平均升阻比15。巡航阶段需求推力D W / (L/D) 1000×9.81 / 15 654N巡航功率P_cruise D × V 32.7kW假设爬升率5m/s爬升段额外功率P_climb W × ROC 49kW总需求功率约80kW任务巡航时间预计约67分钟加上爬升和下降总能量需求大约50kWh如果电池按200Wh/kg计算50kWh对应250kg电池这个质量已经占了起飞质量的四分之一加上电机和逆变器的重量MTOW大概率要上涨把上面的逻辑循环跑起来之后最后的收敛结果可能不是1000kg而是1120kg左右巡航功率和总能量需求也会跟着上涨。这个放大效应就是组件尺寸迭代必须用模型跑的原因你只看初始估算的话会严重低估电池规模。6. 高频坑点与排查速查表6.1 不收敛与数值刚性Simscape仿真最常见的失败现象是报Solver failed to converge或者Singularity。多数情况来自三个方面初始条件不匹配、数值刚性太大、模型里有代数环。我的排查顺序是先检查初始条件电池SOC、母线电压、电机转速是否物理自洽然后检查求解器设置换成ode23tb、降低容差最后再看模型里是不是有不必要的理想元件制造了代数约束。还有一个非常关键的排查技巧把Simscape的物理信号转换禁用掉一部分比如先用恒定控制输入替代能量管理闭环看模型能不能跑通。如果恒定输入能跑、闭环不能跑问题几乎都在控制环路增益或者反馈信号的初始化上和物理模型本身无关。6.2 单位、状态初始化和物理信号Simscape是多物理域建模电气域用V、A机械域用N·m、rad/s往复转换的时候最容易出单位错误。我在模型里有一个习惯所有的Simulink-PS Converter和PS-Simulink Converter模块我都在注释里标明物理量名称和单位。经验是90%的奇怪结果都出在单位换算或信号方向上查起来比查模型逻辑快得多。另外要提醒一点Simscape的物理端口没有方向性能量可以双向流动。电机可以工作在电动模式也可以工作在发电模式螺旋桨可以正转也可以风车转。如果你在机械端口上强行加了一个单向的约束后续一旦仿真出现能量回流模型就会报出很费解的约束不满足错误。组件尺寸阶段建议保留双向自由度只在需要精确控制的地方添加方向约束。6.3 仿真速度与模型保真度的平衡尺寸迭代需要跑很多轮次模型仿真速度就显得格外重要。我踩过的最大的坑是为了追求看起来更真实把模型里加入了开关级逆变器和详细的电磁暂态模型。结果单轮仿真从5秒变成了5分钟五轮迭代下来时间完全不可接受。后来我把逆变器换成平均模型把电机改成效率Map加惯量单轮仿真又回到几秒而组件尺寸结果几乎没有变化。组件尺寸阶段的模型保真度应该遵循一个原则只保留对尺寸结果有显著影响的行为其余全部降阶。影响尺寸的行为包括任务段的功率峰值、能量效率、组件质量、系统级限制如电池SOC、电机过载能力。不影响尺寸的细节包括开关纹波、三相不平衡、电磁谐波、器件开关损耗的精确分布这些等进入控制设计阶段再补充不迟。以太网我个人经验是Simscape做电动/混动飞机组件尺寸建模最大的价值不在于它算得比公式更聪明而在于它把质量-功率-能量这个三角闭环变成了每天都愿意跑一遍的工作流。很多初学者拿到模型文档以后一直在纠结某个电机效率Map的精度、某个电池内阻拟合曲线的R²够不够高但真正从项目周期来看组件尺寸阶段最该做的是快速覆盖大量备选方案找到两三套值得往下细做的构型参数然后尽快把精力转到详细的子系统设计上。最后再分享一个小技巧不要把所有组件尺寸模型都放在一个巨大无比的文件里。我一般按任务剖面_动力链_能量源_总体质量拆成四个模块封装每个模块只露出几个端口和参数。这样任何人拿到模型不用打开子系统就能理解整个飞机的尺寸估算逻辑也方便你在不同项目之间复用这套框架。仿真模型的价值不是一次性的运行结果而是你可以反复修改并积累经验的平台这一点在新机型方案论证时尤其值钱。