
简介基于MATLAB SimPowerSystems的飞机电源网络模型仿真资料包是一套面向航空电气系统设计工程师、电力电子方向学习者以及Simulink使用者的实用资源可用于解决飞机交直流电源系统建模、负载管理、能量转换及故障诊断等复杂场景中的理解与验证问题。资源共包含117个文件压缩包大小约2.5MB其中既有22个slx仿真模型、20个m脚本、14个mat数据文件和6个ssc电路文件也配有jpg与png截图、docx与html报告、PDF文档和Excel清单等辅助说明完整覆盖模型构建、参数配置、网络连接、仿真运行与结果分析等全部环节。目前已有133人学习文件夹内按功能区分便于快速定位模型、脚本与文档。用户可以直接加载并运行现成模型对照报告理解飞机电源网络的设计要点也可以修改发电机、变换器、负载及保护逻辑等参数开展故障注入、容错评估和性能优化实验免去从零搭建模型的繁琐过程尤其适合教学演示、课程设计或预研验证场景。1. 内置飞机电源网络模型为什么你不该从零搭一个起动/发电系统当你在SimPowerSystems里做飞机电源仿真最常见的工作不是设计主电路拓扑而是验证工况直流母线电压在脉冲负载下掉多少飞控计算机那路供电能不能撑住这些需求其实不需要从同步电机开始自己搭——SimPowerSystems已经内置了一个可运行的飞机电源网络模型它把发电机、整流、蓄电池和多种负载组织成一个完整示例能直接仿真、改参数、做控制整定。很多工程师不知道有这个库结果花了几天搭电路最后又因为求解器和初始条件的问题卡住。这篇文章就从这个内置模型入手讲清它的结构、运行方法、参数修改和常见坑帮你在几分钟内把系统仿真跑起来再按自己的工况去改造。适合航空电源工程师、电力电子研究生以及所有想快速验证交直流混合配电想法的人。2. 认识SimPowerSystems里的飞机电源网络模型结构与仿真原理2.1 内置模型的层级结构从主发电机到直流负载内置模型通常不只有一条供电路径而是一个小型的配电网络。以我常用的power_aircraft模型为例它的顶层看起来是一张配电单线图左侧是变速传动下的三相交流主发电机中间是变压器整流器TRU和自耦变压整流器ATRU右侧汇流到270V或28V直流母线再接上蓄电池、应急负载和普通直流负载。打开这个模型的命令很简单open_system(power_aircraft);如果你的版本里没有这个名字也可以打开Simulink库浏览器在Simscape Electrical Specialized Power Systems分类下搜索“Aircraft”或者查看示例库中带“aircraft”的模型。open_system是Simulink的标准模型打开命令它会直接把模型窗口弹出来同时把模型加载到内存。加载之后你可以双击顶层模型里的子系统一层层往下看同步电机模块里定义了几对极、励磁方式TRU模块里可以看到二极管整流桥和滤波器参数直流母线部分是带寄生电阻的传输线模型。这种分层结构的好处是你把某一条回路的器件参数改成自定义值之后仍然保留整体架构的合理性。SimPowerSystems里的这个模型并不是单纯的稳态相量模型。它用“Specialized Power Systems”SPS域的瞬时值模型描述功率电路开关管用实际的二阶或三阶电路模型所以能反映换相过电压和母线谐波。与之对应纯Simulink里要用传递函数或微分方程来搭电路那就丢失了开关暂态也无法模拟整流二极管的正向导通压降。这也是为什么做飞机电源系统级仿真通常都直接用SimPowerSystems而不是搭纯数学模块。2.2 为什么用SimPowerSystems而不是纯Simulink功率平衡与电气网络求解器飞机电源网络里充满非线性整流桥是典型的强非线性器件发电机是旋转电机母线电容和负载之间又有持续的能量交换。纯Simulink环境里你必须为每个开关状态写切换逻辑否则无法确定电路拓扑。SimPowerSystems则把电气部分作为一套常微分方程系统在仿真每个步长内建立一套关联矩阵然后求解整个网络的电压电流。你只需要设置变步长求解器比如ode23tb剩下的换相重叠、续流过程都由求解器处理。还有一个容易忽略的点SimPowerSystems的电气网络会自动满足基尔霍夫定律不用你手动去计算功率平衡。比如在直流母线侧加一个阶跃负载发电机的电磁转矩会自动变化机械端的转速会随传动系统的运动方程变化最后在一个新的工作点稳定。这本质上是一个机电状态方程在时域积分。如果换成纯Simulink你要自己算功率平衡很容易出现输出功率和输入功率对不齐的时间步导致仿真结果不满足能量守恒。另外SimPowerSystems在R2021a之后叫Simscape Electrical提供了两种域Simscape Physical Network域和Specialized Power Systems域。飞机电源模型老版本里大都是SPS域也就是带“powerlib”的元件集合。SPS域的优点是和Simulink信号直接互联——你可以在电模型的Scope上接控制信号或者把控制信号反馈给电机励磁。这对后面改控制器特别方便。2.3 关键参数表典型飞机电源参数与模型对应内置模型的参数值并不神秘它遵循典型的民用飞机电源系统特点。为了方便对照我整理了一份常见参数表你可以在模型里逐一找到对应位置参数名典型值在模型中的位置交流发电机功率150 kVA同步电机模块“Nominal power”相电压115 V电机额定电压 vRMS电气频率400 Hz由转速和极对数决定直流母线电压270 V整流桥输出逆变器前端TRU拓扑12脉波变压器整流器顶层“TRU”子系统蓄电池容量约 40 Ah蓄电池等效模型“SOC”参数负载阶跃功率25 kW直流负载子系统里 STEP 模块这张表只是参考实际模型里的数值可能和你打开的版本有出入。你可以通过双击模块打开参数窗口或者用get_param拿到具体值get_param(power_aircraft/TRU,R1)这里TRU对应模型里的变压器整流器模块R1只是示意属性名。更多时候我习惯直接在图形界面里双击模块下拉 select 参数因为 SPS 模块的属性名字并不统一。先搞清楚这些参数点后面改模型才有方向。3. 动手跑通内置模型从打开模型到分析波形3.1 一次完整仿真命令、参数与仿真时间打开模型之后第一件事是跑一次默认仿真验证模型在你当前环境下能正常工作。我的习惯是直接用命令行便于后续脚本化open_system(power_aircraft); set_param(power_aircraft,StopTime,5); set_param(power_aircraft,Solver,ode23tb); sim(power_aircraft);这段代码第一行打开模型窗口第二行把仿真停止时间设为 5 秒这是模型对应物理时间的 5 秒第三行设置变步长求解器为ode23tb它是处理刚性电气系统的常用选择既能跟踪开关暂态又不会因为高频开关导致步长过小第四行运行仿真。sim函数会直接返回仿真结果同时把模型里的 Scope 窗口在仿真过程中实时更新。如果你希望把仿真结果存成工作区变量可以用[t, y] sim(power_aircraft)但内置模型一般都用自带 Scope我一般直接看模型里的波形缺点是 Scope 的图不能像工作区那样做任意数学运算。所以更推荐在运行前取消勾选 Scope 的“Data history”限制或者用logsout记录。一个最简单的方法是运行out sim(power_aircraft);然后把out.logsout打开里面默认记录了模型里标了日志标记的信号。如果没有日志标记你可以在 Scope 信号线上右键“Add Viewers and Generators Send to workspace”但这一步需要手动点击。仿真设置里有一些关键项列成表格方便快速检查项目设置说明StopTime5物理时间 5 秒Solverode23tb变步长刚性求解器Powergui ModeDiscrete固定步长仿真速度更快Simulation ModeNormal标准仿真模式如果只是想快速看结果Powergui的 Mode 保持Continuous也可以只是速度慢一些。我在做参数扫描或批量仿真时会切到Discrete模式并设固定步长 50 微秒。3.2 用Scope观察关键总线上的波形模型里通常已经预置了几个 Scope比如交流发电机输出电压、直流母线电压、蓄电池电流。你要找它们直接看模型顶层输入输出记号即可。我常用的命令方式open_system(power_aircraft/Scope);如果这条命令报错说明 Scope 在子系统深处可以按层级一层层打开。打开后按键盘CtrlT或工具栏上的“Run”按钮跑仿真你就可以看到动态波形。为了更清楚地观察直流母线的稳定过程建议把仿真时间改为 1 秒先看启动瞬间的冲击。对电气工程师来说直流母线电压的启动超调是关键指标。你会看到电压从 0 冲到接近 400V 再回落。这是因为发电机励磁建立过程中输出电压幅值逐渐上升整流后的直流电压也随之爬坡当电压反馈闭环开始作用时又会产生一个超调。这个现象在真实飞机电源中就是“上电浪涌”内置模型把这一过程模拟得非常直观。3.3 做一个阶跃负载实验观察直流母线动态响应内置模型的意义在于你能快速验证系统动态。我在仿真时最喜欢做的一件事是在直流母线上加一个阶跃负载这直接对应“阶跃响应”的用法。具体做法是找到模型里的直流负载子系统把其中的电阻负载模块的“Active power”参数在仿真中途触发切换。这里给出一个脚本化示例% 先在模型里找到负载模块的路径假设它叫Load1 % 第一次运行轻载 set_param(power_aircraft/Load1,ActivePower,10000); simout1 sim(power_aircraft); % 第二次运行重载 set_param(power_aircraft/Load1,ActivePower,50000); simout2 sim(power_aircraft);代码里ActivePower是负载模块的功率参数单位是瓦。两次仿真的区别仅在于稳态负载功率不同。跑完后比较两次的直流母线电压波形你会看到负载增加瞬间电压会下垂一个幅度然后再由发电机的电压调节器拉回额定值。这个下垂幅度和恢复时间就是后面设计补偿器时最看重的指标。提示如果模型里的负载模块不是用功率参数而是用电阻值就改Resistance属性。每个模块参数名不一样先用get_param查看该模块的所有参数。4. 把内置模型改成你需要的飞机电源工况参数调整与常见坑4.1 修改发电机输出电压与频率在励磁系统里改参数飞机电源系统的核心是交流发电机的励磁控制。你要改变稳态输出电压可以直接改同步电机的励磁模块里的参考电压但更常见的做法是改“Voltage regulator”里的目标电压。假设模型里发电机名字是Gen你可以用一行命令set_param(power_aircraft/Gen/Excitation,RefVoltage,130);其中Excitation是我假设的励磁子系统名RefVoltage是参考电压标幺值。改完运行你会在 Scope 里看到交流电压幅值提高直流母线电压随之上升。在这里我要提醒一点不要把频率直接改发电机本体的“Frequency”因为频率是由转速决定的而转速由传动系统模型决定。如果你要模拟变频飞机电源需要改的是传动链的齿轮比或者原动机转速设定而不是发电机本体。如果你想更系统地调参可以使用set_param配合脚本写一个循环自动扫描某个参数从 90% 到 110% 时的母线电压范围。这个思路和“matlab 优化工具箱”相关但优化工具箱更适合多目标调节单参数扫描用脚本更快vals 110:2:130; for i 1:length(vals) set_param(power_aircraft/Gen/Excitation,RefVoltage,num2str(vals(i))); sim(power_aircraft); % 从 Scope 或 logsout 提取稳态直流电压 dc_voltage(i) mean(dc_signal); end plot(vals, dc_voltage);这样改的参数会影响整个交流源所以要注意母线电容耐压等级。4.2 在直流母线上增加一个外部负载模块内置模型带的负载可能不满足你的工况比如你要模拟一个雷达脉冲负载。我一般会用 SimPowerSystems 库里的“Three-Phase Dynamic Load”或者单相“RLC load”模块直接接到直流母线。下面命令从库中添加一个电阻负载load_system(power_aircraft); add_block(powerlib/Elements/RLC Branch, power_aircraft/PulseLoad, ... R,100, L,0, C,0);add_block的第一个参数是库路径第二个是目标模型中的新块路径。这里我添加了一个 100 欧姆的纯电阻电感 L 和电容 C 设为 0。然后需要在 Simulink 里用线把它连到母线上或者用add_lineadd_line(power_aircraft,Bus DC/Out1,PulseLoad/1,autor,on);add_line有四个参数模型名、起始端口、终点端口、自动连线选项。注意端口名必须和实际模块一致所以如果你在别的位置加了负载这段脚本要按具体名字改写。添加负载后运行仿真你会发现带载后电压有压降电容大小决定了纹波幅度。如果你想做一个周期性的脉冲负载最稳妥的方式是直接用 SimPowerSystems 里的“Breaker”模块定时接入电阻。在线路中串联一个受控制的时间开关然后用脉冲信号控制它闭合和断开这是飞机电源系统抗脉冲负载测试的常用做法。4.3 常见坑初始化失败、求解器步长和电机起动过程我把遇到最多的三个问题整理成表格方便排查现象原因处理办法初始化不收敛电容无初始电压稳态扫描失败在 Powergui 里点击“Set Initial States”自动计算仿真步长变小仿真卡住连续求解器处理整流桥换相改用 Powergui 的 Discrete 模式直流电压持续振荡负载过大或控制器相位裕度不足减小负载功率或重新整定电压环参数初始化报错很常见。SimPowerSystems 模型在仿真开始前会计算稳态初始值如果某个电容电压或电机转速没有给定初始条件计算会不收敛。解决办法是双击模型里的“Powergui”模块选择“Set Initial States”让软件自动计算初始值或者手动设置电机的初始转速为额定值。第二个坑是变步长求解器在整流器换相时步长会缩得很小。你看到仿真几乎卡住时先不要修改默认容差而是检查是否为 Powergui 选择了 Discrete 模式。离散模式以固定步长采样对于电力电子开关模型只要步长选取合适比如 50 微秒仿真速度会快很多。注意改成离散模式后需要在 Powergui 里设置采样时间一般取控制系统步长的五分之一到十分之一。第三个坑是模型自带的蓄电池模型在长时间仿真时可能电压计算不准确。内置模型为了标准化会用诺顿等效电路模拟电池但它并不包含温度特性。如果你要做低温启动的供电分析最好换成 Simscape Battery 库里的电芯模型。这是更专业的方向但至少你要明白内置电池模块只能用于逻辑仿真。最后补充一个实际经验不管怎么改模型都要把 Powergui 的“Steady state”扫描功能用好。它能在仿真起始时刻直接把电机加到一个预先算好的稳态势省去启动过渡过程这在分析稳定负载响应时非常有用。具体操作是在 Powergui 里选“Tools Steady-State voltages and currents”点击“OK”后软件会计算稳态值并写入初始条件。5. 进阶用法从内置模型提取线性化模型做控制设计5.1 在运行点附近做线性化内置飞机电源模型是非线性的但如果你只做小扰动分析比如负载功率变化 10%系统可以近似为线性时不变。SimPowerSystems 提供linearize命令它能直接对模型在运行点求取状态空间矩阵。使用方法% 定义输入输出点输入是励磁参考电压输出是直流母线电压 io(1) linio(power_aircraft/Gen/Excitation/RefVoltage,1,input); io(2) linio(power_aircraft/DC Bus Voltage,1,output); sys linearize(power_aircraft,io); bode(sys);linio函数指定了线性化端口第一个参数是端口路径第二个是端口号第三个是类型输入或输出。运行后sys就是围绕当前工作点的一个状态空间模型bode画出它的频率响应。你会发现从励磁参考电压到直流母线电压的传递函数大约在几十赫兹的带宽处有相位滞后这个频响就是后面设计电压环的依据。5.2 用线性化模型设计一个电压补偿器得到传递函数后可以用pidtune直接设计 PI 控制器避免自己反复试参数C pidtune(sys,PI,50); % 目标带宽 50 rad/s feedback_sys feedback(C*sys,1); step(feedback_sys);这里pidtune的目标带宽按物理系统决定飞机直流电源的电压环带宽一般不用太高。整定好的控制器参数可以写成常数填回 SimPowerSystems 模型的 PID 模块里。注意线性化模型只代表那一个工作点所以如果你把负载功率改得很大要重新做一次线性化并重新整定控制器。实际使用中建议把linearize、pidtune和脚本循环结合起来自动扫描多个负载功率点下控制器参数最后把这些参数做成一个查表放进励磁系统。这样你既享受了内置模型的准确非线性动态又拿到了适合工程实现的增益调度方案。本文还有配套的精品资源点击获取