
做燃气轮机热电联产项目前期方案最让人头疼的往往不是满负荷设计而是部分负荷性能。厂家给的保证值通常只写额定功率、额定热耗、满负荷排气温度这些点可真要做调峰测算、供热方案比选、运行成本评估的时候偏偏要回答60%负荷时排气温度还剩多少、能回收多少热量、燃料要烧多少。最近我把一篇关于单轴燃气轮机及其热电联产部分负荷性能解析解与典型特性的论文完整复现了一遍把压气机-燃烧室-透平的功平衡关系推导成归一化表达式再挂上余热锅炉模型用几十行脚本就得到了从30%到100%负荷的完整性能曲线。这篇文章就记录推导思路、代码实现和调试经验适合做概念设计、方案测算和运行优化的人参考。1. 这篇论文到底解决了什么问题先说结论论文的核心贡献是把单轴燃气轮机余热锅炉这套热电联产系统在部分负荷下的功率、效率、排气温度、可回收热量全部用一组解析或半解析表达式描述出来。不需要依赖厂家详细变工况曲线只需要设计点几个参数。这样做工程的人就能在几分钟内完成一套性能估算而不是翻手册或者对着商业软件发呆。1.1 部分负荷曲线为什么这么难拿燃气轮机不是只在额定点跑。电网调峰、昼夜负荷波动、热用户用汽量变化都会让机组长期停留在部分负荷工况。对热电联产项目尤其明显电负荷跟着电网调度走热负荷跟着蒸汽用户走两者经常互相错位。如果只按满负荷设计后面一定出问题——热用户端汽量不足、余热锅炉实际产汽参数偏低、燃料单耗比预期高这些都是满负荷思维留下的坑。但想拿到精确的部分负荷曲线并不容易。厂家性能数据在招标、合同谈判阶段通常不会完全公开尤其是带技术保密的变工况曲线。商业热力仿真软件虽然能算但建模型、标定参数、学习软件本身都要时间对前期方案阶段的快速迭代来说太笨重。论文走的解析解路线恰好用很少的输入参数换取了工程上足够用的精度。1.2 解析解的价值不只是能算解析解的核心优势是把复杂的部件特性压缩成一组代数方程方程连续、可导可以直接放进优化算法里做灵敏度分析。我在复现之后的一个实际体会是当你要回答负荷率从70%降到60%总效率变化多少热电比怎么变这类连续性问题解析模型可以秒出结果而查表或者数值仿真还要做插值、对齐、反复试算。另外一个隐藏价值是物理含义清楚——哪一项参数对效率影响大、哪个环节损失占比高看公式结构就知道比黑盒仿真直观得多。当然代价是精度。解析模型通常把压气机效率、透平效率、燃气组分变化都当常数或者用设计点修正系数吸收掉所以中低负荷段会有偏差。我复现后对比几个公开典型特性电效率趋势和排气温度趋势能保持高度一致绝对值偏差大约在1~3个百分点内用于方案比选绰绰有余。1.3 这个模型适合什么场景给模型划个使用边界很重要。适合用它的场景有三类手头只有额定功率、压比、透平初温等公开设计参数没有厂家详细的变工况数据。需要快速生成热电联产系统的负荷-效率-产汽量特性曲线用于热网规划、冷热电三联供方案比选。要把机组特性嵌进区域能源优化模型解析式能提供连续、光滑的特性函数避免优化器在分段离散点上震荡。反过来如果要出投标保证值、做燃烧调整、判断机组寿命那就别用这套模型了那种场合必须上详细设计软件和厂家实测数据。模型是快速估算工具不是设计复核工具。2. 单轴燃气轮机解析模型的设计与推导复现的核心在于把单轴机组在恒定转速下的压比-温比-负荷耦合关系梳理清楚。这一步做对了后面所有输出都会顺理成章。2.1 部件模型与设计点参数约定单轴燃气轮机的热力循环通常用四个状态点表达压气机入口(1)、燃烧室出口/透平入口(3)、透平出口(4)。压气机耗功、燃烧室燃料量、透平做功三个方程构成了整台机组的骨架。压气机出口温度按等熵压缩加效率修正计算T2 T1 × [1 (π^mc - 1) / ηc]压气机耗功Pc G × cpc × (T2 - T1)燃烧室燃料量把燃烧效率考虑进去mf G × cpt × (T3 - T2) / (ηcc × LHV)透平出口温度用等熵膨胀加效率修正T4 T3 × [1 - ηt × (1 - π^(-mt))]透平做功Pt G × cpt × (T3 - T4)净发电功率P_net (Pt - Pc) × ηm这里面mc (kc-1)/kcmt (kt-1)/kt取压气机绝热指数1.40、透平绝热指数1.33其他参数如表所示。确定设计工况参数时我按某型10MW级工业燃机的公开量级来取数确保模型自洽额定功率约10.3MW、压比12、TIT 1200℃、空气流量30kg/s。验算下来净功率10.3MW、简单循环电效率35%左右落在同级别机型的合理区间。参数符号数值单位环境温度T1288.15K环境压力P1101.325kPa空气流量G30.0kg/s压比π12.0-透平进口温度T31473.15K压气机效率ηc0.87-透平效率ηt0.89-燃烧效率ηcc0.99-机械/发电效率ηm0.98-空气比热cpc1.005kJ/(kg·K)烟气比热cpt1.150kJ/(kg·K)燃料低位发热量LHV50145kJ/kg2.2 恒定转速下的压比-温比耦合关系前面公式里给定T3还缺一个π。满负荷时π和T3都是设计值部分负荷时两者怎么联动单轴并网机组的转速恒定透平通流面积又不变这给了我们一个关键近似只要透平膨胀比处于临界状态以上通过透平的折合流量基本保持常数。用公式写就是G × √T3 / P3 ≈ 常数把P3近似看作压气机出口压力P2两侧同除以环境压力P1就能得到单轴机组部分负荷时最著名的近似关系π_part π_d × √(T3 / T3_d)这个关系可以这么理解透平的喷嘴就像一个尺寸固定的阀门进口气体温度越高气体膨胀越厉害同样流量下需要更高的压力才能把它挤过去。所以TIT一降压比也跟着降。这个近似是整个解析模型的胜负手。如果换成双轴机组高压转子转速和动力透平转速解耦就不存在这么简单的显式关系了这也正是论文标题特意强调单轴的原因。2.3 从负荷反解透平初温解析解与数值求根有了π≈f(T3)的关系压气机耗功和透平做功都变成了T3的一元函数。给定目标净功率就能反解T3。把净功率表达式整理后会发现它与T3的关系是幂函数叠加的形式。论文里通常会在设计点附近做泰勒展开只保留线性项于是得到形如P_net ≈ a × T3 b的显式式由此推出T3 (P_target - b) / a这就是解析解最快的形式。a、b由设计点参数和斜率决定不同负荷率可以连续求值对优化算法非常友好。我复现时没有死磕纯显式公式而是直接用了数值求根。原因很简单现代工程脚本里求根就是一行函数调用比手工推导线性化系数更省事还能保留非线性精度。论文里的解析解思路用来理解物理规律、生成初始迭代值代码里用求根来精确求解两者互补。实际做的时候我会用T3_d × √load作为求根的初值几分钟就能跑完全部负荷点。3. 把模型扩展到热电联产总效率与典型特性单轴燃机的排气温度通常在500~600℃之间直接排掉就是白白浪费。热电联产的价值就是把这部分余热通过余热锅炉回收变成用户可用的蒸汽或热水。3.1 余热锅炉热回收模型工程上最常用的简化模型只关心烟气侧放热Q_heat G × cpt × (T4 - T_stack) × η_HRSG这里T_stack是烟囱排气温度η_HRSG是余热锅炉的综合换热效率包含散热损失、排烟损失等。烟囱温度不能定得太低。燃机烧天然气时含硫量很低酸露点相对低但工程上习惯还是把排烟温度控制在130~150℃以上避免低温腐蚀。我取了140℃也就是413.15K。η_HRSG取0.80对单压余热锅炉来说是比较普遍的工程量级。这套模型不会给你精确的蒸汽参数但用来算能回收多少热量、总效率到多少完全够用。3.2 总能源利用率与热电比在热电联产系统里效率不能只看发电。常用的三个指标电效率η_el P_net / (mf × LHV)热效率η_heat Q_heat / (mf × LHV)总能利用率η_total η_el η_heat还有一个评价热电系统结构的重要参数——热电比β Q_heat / P_net需要特别强调计算口径P_net是发电机出口电功率Q_heat是热用户侧可用的有效热量分母是燃料化学能。总能利用率反映的是燃料能量中被有效利用的份额做到75%~80%是完全合理的。这里不存在超过100%的悖论因为电和热本来就不同品级只要指标计算口径清晰就不会踩误区。3.3 典型特性曲线的物理趋势用设计点参数跑完30%~100%负荷区间得到一组非常典型的特性数据负荷率透平初温T3(K)排气温度T4(K)电效率η_el热效率η_heat总效率η_total热电比β30%~920~57326.7%37.8%64.5%1.4250%~1083~65830.6%40.3%70.9%1.3275%~1279~76633.4%42.2%75.6%1.26100%147387035.0%42.9%77.9%1.23这张表浓缩了热电联产部分负荷的几大典型特征电效率对负荷最敏感。从100%降到30%电效率掉了8个多百分点原因是透平初温下降、压比下降简单循环的热效率被明显压缩。热效率下降温和得多。负荷降了排气温度降了但空气流量基本不变烟气仍然具有换热能力所以热回收降幅滞后于发电量降幅。总效率曲线相对平缓。这恰好说明热电联产系统具备很好的部分负荷柔性即便发电出力下降整体燃料利用率依然能维持在较高水平。热电比随负荷降低而升高。这个特性对热电解耦运行很重要意味着在低负荷工况下系统会表现得更像一台锅炉。4. 复现实操从公式到能跑的脚本下面给出一套可以直接跑通的脚本框架。我用的是Python语言加开源数值库这也是目前工程前处理最顺手的环境。4.1 脚本结构与计算流程整个脚本分三块设计点校验、部分负荷求解、余热回收与输出。核心流程是先用设计点参数验算整机功率、效率确认模型自洽。对目标负荷率用数值求根反解透平初温T3。由T3顺推压比、排气温度、燃料量、电效率、回收热量、总效率。4.2 核心代码逐段拆解第一段参数与部件方程import numpy as np from scipy.optimize import fsolve # 设计工况参数 T1 288.15 # 环境温度 K G 30.0 # 空气流量 kg/s pi_d 12.0 # 设计压比 T3_d 1473.15 # 设计透平初温 K cp_c 1.005 # 空气比热 kJ/(kg.K) cp_t 1.150 # 烟气比热 kJ/(kg.K) kc 1.40 # 空气绝热指数 kt 1.33 # 烟气绝热指数 eta_c 0.87 eta_t 0.89 eta_cc 0.99 eta_m 0.98 LHV 50145.0 # 天然气低位发热量 kJ/kg mc (kc - 1.0) / kc mt (kt - 1.0) / kt def compressor_outlet(T1, pi, eta_ceta_c): return T1 * (1.0 (pi**mc - 1.0) / eta_c) def turbine_outlet(TIT, pi, eta_teta_t): return TIT * (1.0 - eta_t * (1.0 - pi**(-mt))) def gas_turbine_cycle(T3): # 恒定转速下的压比-温比耦合近似 pi pi_d * np.sqrt(T3 / T3_d) T2 compressor_outlet(T1, pi) T4 turbine_outlet(T3, pi) Pc G * cp_c * (T2 - T1) Pt G * cp_t * (T3 - T4) P_net (Pt - Pc) * eta_m mf G * cp_t * (T3 - T2) / (eta_cc * LHV) eta_el P_net / (mf * LHV) return pi, T2, T4, P_net, mf, eta_el第二段设计点校验与负荷反解# 设计点校验 pi_d0, T2_d, T4_d, P_net_d, mf_d, eta_el_d gas_turbine_cycle(T3_d) print(f设计点: 净功率 {P_net_d:.1f} kW, 电效率 {eta_el_d*100:.1f}%) def solve_tit_for_load(load_ratio): # 目标负荷功率 P_target P_net_d * load_ratio # 初值取设计点按负荷率折算再给一点偏置 x0 T3_d * np.sqrt(load_ratio) 50.0 def residual(T3): _, _, _, P_net, _, _ gas_turbine_cycle(T3) return P_net - P_target return fsolve(residual, x0x0)[0]第三段余热回收与结果汇总T_stack 413.15 # 烟囱温度 140℃ eta_hrsg 0.80 # 余热锅炉综合效率 def hrsg_heat(T4): return G * cp_t * (T4 - T_stack) * eta_hrsg loads np.linspace(0.3, 1.0, 8) # 30%~100%负荷 print(负荷率 T3(K) T4(K) Pnet(kW) Qheat(kW) eta_el eta_total chi) for r in loads: T3 solve_tit_for_load(r) _, _, T4, P_net, mf, eta_el gas_turbine_cycle(T3) Q_heat hrsg_heat(T4) mf_LHV mf * LHV eta_total (P_net Q_heat) / mf_LHV chi Q_heat / P_net print(f{r*100:.0f}% {T3:.1f} {T4:.1f} {P_net:.0f} {Q_heat:.0f} f{eta_el*100:.1f}% {eta_total*100:.1f}% {chi:.2f})这段脚本跑出来的数据就是上一节表格里的那些值。要注意的是低负荷时fsolve对初值敏感上面取了T3_d * sqrt(load)作为初值同时加了50K的偏置这是调试后比较稳的组合。4.3 运行结果与曲线判读脚本运行后会直接输出负荷、透平初温、排气温度、净电功率、回收热量、电效率、总能利用率和热电比。把数据扔进绘图脚本画出来会看到三条形状完全不同的曲线电效率单调下降较快热效率平缓下降总效率从78%慢慢滑到65%附近。典型特性一目了然。我复现时最关注的检查项是满负荷电效率是否落在35%左右、低负荷电效率是否低于满负荷、热回收量是否始终为正、总效率是否始终小于100%。这几条只要都成立模型基本就是自洽的后续按需调整参数即可。5. 调试现场五个最容易踩的坑复现过程中我踩了不少坑有些是物理建模问题有些纯属工程习惯问题。挑五个典型记录下来能帮你少走弯路。5.1 低负荷算不出来根直接飞了第一次跑脚本负荷率低于30%时fsolve直接报错或者解出负温度。原因很简单解析模型里T3降得太低排气温度几乎接近烟囱温度热回收热量趋近于零方程组进入病态区。真实机组低负荷时也不可能维持模型假设的恒定流量和恒定效率燃烧室稳燃、辅助蒸汽、机组最小技术出力这些约束开始起作用。解决办法给模型设定使用下限我统一取30%负荷作为最低工况点如果必须算更低就得换更详细的变工况模型。5.2 效率曲线出现越走越高的假象有一次跑出部分负荷电效率比满负荷还高我检查了很久最后发现是透平初温迭代初值给得不对导致求根落到了非物理解上。具体表现是T3解得很低但压比算得很高两个参数失配。根源在于π π_d × sqrt(T3/T3_d)是强耦合约束不能单独调一个变量。排查方法很简单把每一个负荷点的π、T3、T2、T4打出来看看是否满足单调递增关系。如果出现T3下降但π上升一定是迭代出了问题。5.3 排气温度和热回收量对不上实测预期模型里排气温度随负荷下降比较线性地下降但实际机组配了IGV后中低负荷段排气温度会被托住并不像模型预测的那么低。我刚复现完拿它跟公开典型曲线对比发现50%负荷时模型排气温度偏低了几十度。这不是计算错误而是IGV调节导致低负荷段流量减少、TIT维持较高排气温度自然更高。理解这个偏差来源很重要最简单的修正办法是给空气流量加一个随负荷变化的修正系数后面会说。5.4 与厂家数据对不齐问题多半在IGV厂家变工况曲线和模型对不齐我几乎不怀疑模型方程本身优先怀疑两个假设空气流量恒定、效率恒定。实际单轴机组在中高负荷段为了保持较高排气温度会主动关小IGV导致流量下降、效率曲线形态和模型不同。复现论文里的解析模型大多为了简洁忽略了IGV所以在做工程对比时要明确模型对应的是无IGV调节的理想单轴机组而不是某台具体的带优化控制策略的机组。真要接手实际机组数据建议把IGV修正项加进去。5.5 单位混用导致万倍跳变这个坑最蠢但最容易犯。G是kg/scp是kJ/(kg·K)温差是K三者相乘得到的是kW。但燃料量mf也是kg/s乘以LHV得到kW。整条链路里只要哪个地方用了MW和kW混用、或者把LHV当成kJ/kg却又不除以1000结果就会差出千倍甚至上万倍。我的检查习惯是每步计算都标注单位跑通后用设计点功率反推一次确保满负荷净功率在同一量级再去做部分负荷扫描。6. 这个模型还能往哪里扩展解析模型最大的优势是方便扩展。复现完基本版之后我顺手加了三个常用修正工程里价值不小。6.1 引入IGV调节修正针对前面提到的问题IGV修正可以这么处理定义折合流量修正系数f_igv(load)空气流量G_part G_d × f_igv同时透平初温的求根式也会相应变化。修正后的典型效果是中低负荷段效率抬高、排气温度抬高曲线更接近真实带IGV机组。具体修正系数可以用少量实测点拟合也可以用厂家公开曲线反算适合在方案阶段做快速标定。6.2 环境温度修正与折合负荷率燃气轮机出力受环境温度影响极大夏天气温升高满负荷发电能力可能下降10%以上。引入环境温度修正有两种思路要么把设计点参数随T1重新标定一遍要么用折合负荷率把实际出力归一到标准工况。前一种做法更直接后一种更适合做全年逐时能耗模拟。我在做区域能源规划时会在模型外套一层环境温度扫描直接生成不同温度-不同负荷率-总效率的三维曲面。6.3 从能量指标到经济与碳排放指标解析模型把电功率、热功率、燃料量都算清楚了后面接经济指标就很容易燃料成本、售电收入、供热收入、单位发电碳排放、单位供热量碳排放都是一步代数运算的事。这让我在做热电联产项目可行性研究时可以直接用一套模型完成技术特性经济性联算不用再手工把效率曲线搬进Excel。复现这篇论文给我的最大收获是明白了解析模型在工程前期的独特位置它不能替代详细仿真却能让你在十分钟内对一台机组的部分负荷行为形成肌肉记忆。后续我打算把双轴燃气轮机联合循环的部分负荷特性也按这个思路重构一遍那套模型的压比-温比耦合会更复杂但拆开来看依然是功平衡和质量守恒这两条主线在支撑。