
1. 项目背景与整体设计思路1.1 为什么是 Trnsys从一次真实的“翻车”经历说起我最早接触 Trnsys 是在做某商业综合体的暖通方案比选时。当时空调负荷计算用的是 DeST全年能耗预测用的是 EnergyPlus结果两个软件算出来的冷负荷相差接近 20%。甲方要的是一个确定性的答案而我们的模拟结果却是一个“区间”评审专家一句“你们这个数到底能不能落地”直接把项目卡住了。后来我花了大半年时间把 Trnsys 用进实际项目里才发现问题不全在软件算得不准而在于我当时用错了工具。DeST 擅长逐时负荷和房间热过程模拟EnergyPlus 擅长围护结构热平衡和房间热响应但这两个工具在处理“系统级”的动态耦合——比如制冷主机部分负荷性能曲线、冷却塔与冷机的联动、水系统蓄能策略、地源热泵的土壤热平衡——都相当吃力。Trnsys 从一开始就不是单纯算负荷的软件它是个模块化瞬态仿真平台。你会把冷水机组、水泵、冷却塔、水箱、管路、控制器、气象数据全部搭成一个“可以运行的系统”让它们之间互相影响每一秒都在交换信息。换句话说DeST 和 EnergyPlus 更像是一个“计算出答案”的工具而 Trnsys 是一个“模拟出行为”的工具。如果你要回答“这套系统全年运行下来冷机能效比是多少”或“不同控制策略下水泵能耗相差多大”Trnsys 是目前最合适的平台之一。1.2 Trnsys 能做什么、适合谁来用Trnsys 的全称是 Transient System Simulation Program由美国威斯康星大学麦迪逊分校太阳能实验室开发后来由 Thermal Energy System SpecialistsTESS持续维护扩展。最初它主要是为太阳能热水系统服务的后来逐渐扩展成为覆盖暖通空调、建筑热过程、可再生能源、电力需求响应等多种瞬态物理过程的通用仿真平台。它的核心价值是“瞬态”也就是系统状态随时间变化的连续过程。暖通系统里很多问题本质上是瞬态的房间温度不是恒定 24 度而是随着太阳辐射、人员进出、设备启停而波动冷机不是一直满负荷运行而是在部分负荷工况下喘振、降频、启停水系统也不是一开就稳定而是存在水力失调和热力延迟。传统的稳态计算往往只能用“设计工况”去做设备选型但实际运行时系统 90% 以上的时间都处于部分负荷或瞬态过渡工况。Trnsys 恰恰能把这些过程仿真出来。适合的人群大概分三类暖通系统工程师尤其是做系统方案比选、能源站优化、控制策略验证的Trnsys 能提供一个“虚拟实验台”建筑节能咨询机构或科研院所做全年能耗模拟、既有建筑改造效果评估、可再生能源利用率分析的高校研究生特别是在做地源热泵、蓄冷蓄热、太阳能耦合、多能互补这类需要多系统耦合的课题时Trnsys 的模块化思路几乎就是为你准备的。1.3 项目定位从“会用软件”到“会做系统仿真”这项探索的定位不是教大家怎么点按钮而是帮助读者建立一套系统仿真的方法论——从物理模型到仿真模型从设备参数到控制逻辑从单点校核到全年动态分析。我会按实际项目的推进顺序来拆解先讲 Trnsys 的核心逻辑和建模思路再讲设备组件和参数配置的关键点接着用完整案例展示从零搭一个暖通系统仿真模型的过程最后整理常见的坑和排查经验。2. 核心原理与建模准备2.1 模块化思想搭积木一样“搭系统”Trnsys 最大的特点就是模块化。你不需要写大段程序描述一个系统的物理方程而是调用现成的组件Component把它们用连线连接起来构成一个完整系统。每个组件背后都对应一个数学模型这个模型可能是基于理论推导的也可能是基于厂商实验数据拟合的。组件之间通过“信息流”和“物流”两种方式交互。信息流传递比如温度设定值、控制信号、运行状态等物流传递比如流体质量流量、热量等。举一个简单的例子你需要模拟一台冷水机组那么在 Trnsys 中这个冷机组件会有输入口接收冷冻水回水参数和冷却水进水参数会有输出口输出冷冻水供水温度和消耗的电功率。你需要在其他组件中把水泵的流量信号、冷却塔的出水温度信号接过来冷机的输出再送到水泵和末端这样就形成一个闭环。这种“搭积木”思维的好处是透明。每次仿真的物理过程非常清晰哪条线代表流量哪条线代表温度哪条线代表控制信号一目了然。出了问题也容易定位比如冷却塔出水温度偏高你可以顺着线路逆向追溯找到是气象条件、风机控制还是水量分配的问题。2.2 时间步长与求解器为什么 Trnsys 的计算结果“会波动”Trnsys 采用的是显式时间推进求解。也就是说系统在某个时刻的状态是由上一个时刻的状态和输入条件推算出来的不迭代求解非线性方程组。这种方法的优点是稳定性好、实现简单、适合处理强非线性系统缺点是你必须把仿真时间步长设置得足够小否则结果会失真甚至发散。Trnsys 的默认仿真步长是 1 小时这适合全年能耗模拟但如果你要仿真水泵启停、冷机调节、阀门动作这类小时间尺度动态行为1 小时步长会导致系统来不及响应结果完全失真。我在做蓄能水罐相关仿真时曾吃过这个亏——用 1 小时步长导致水罐进出水温度完全混合均匀蓄冷能力被严重高估。后来把步长调整到 6 分钟甚至 1 分钟曲线才逐渐合理。实际操作中一般全年能耗评估用 15 分钟到 1 小时步长足够控制器响应和启停策略分析用 1 到 6 分钟如果涉及冷机启动过程、阀门动态、水泵变频响应这类亚分钟级别的动态可能需要 1 秒级步长。但步长越小计算量越大需要根据仿真目的做取舍。2.3 气象数据与建筑设计仿真的“输入边界”说到气象数据常见的是典型气象年TMY数据。我建议直接采用当地典型气象年如中国标准气象数据 CSWD 或国际通用的 IWEC 数据里面包含干球温度、湿球温度、太阳辐射、风速风向等全年 8760 小时数据。Trnsys 自带气象数据读取组件可以把 TMY 格式文件导入并按时间序列逐时驱动模型。建筑围护结构的参数则通过描述热特性来输入比如墙体传热系数U 值、窗户太阳得热系数SHGC、屋面反射率等。这里必须强调Trnsys 的建筑热过程模型比 EnergyPlus 简洁它采用热网络法处理房间热平衡如果你的研究重点在建筑负荷本身建议把负荷在专用软件里算好把逐时负荷序列作为输入导入 Trnsys 再做系统仿真这样最合理。2.4 版本选择与环境配置目前 Trnsys 的最新版本是 18相比 17 版本主要改进集中在界面交互、3D 建筑建模导入通过 TRNSYS3D 插件配合 SketchUp 使用、以及部分组件库的更新。对老用户来说核心组件架构变化不大但新版本对高分辨率屏幕的支持明显改善。安装配置时有几个注意点先装 Visual Studio C 运行库再装 Trnsys避免部分扩展组件编译报错如果用到 Python 或 Excel 交互需要保证环境变量里能够正确识别相关路径TRNSYS 安装目录尽量避免出现中文或空格否则部分 TESS 组件库加载时容易报错。3. 组件选型与参数配置要点3.1 常用组件库分类Trnsys 自带的标准库Standard Library已经覆盖了大多数暖通核心部件Type 2 温差控制器、Type 3 水泵 / 风机、Type 4 水箱单/多节点、Type 5 换热器、Type 6 辅助加热器、Type 14 时间控制器、Type 69 天空温度计算、Type 109 气象数据读取、Type 56 多区域建筑等。TESS 库则更加丰富按应用领域分成若干子库GHP地源热泵专用、HVAC暖通空调组件、Storage蓄能水箱/冰蓄冷、Solar太阳能集热器、Electrical光伏/燃料电池、Loads and Structures建筑负荷与结构。对于暖通制冷系统最常用的可能包括 Type 112 制冷机、Type 116 复杂冷水机组模型、Type 666 简单冷机模型、Type 709 冷却塔模型等。核心原则是能用内置库解决的不要自建模型组件模型越复杂参数需求越多调试难度也越大。你不需要一开始就追求全细节从简单可靠起步逐步叠加复杂性。3.2 冷机与水系统建模的参数准备冷机建模的重点在于性能曲线。Trnsys 中的冷机组件通常要求输入一组性能数据用来生成部分负荷下的 COP 曲线。工程上最直接的做法是收集厂商选型报告里不同冷却水进水温度、不同冷冻水出水温度下的 COP 和制冷量数据整理成二维或三维表格。实际操作中我一般用这样的工作流从厂商选型软件中导出 5 到 10 个工况点的性能参数整理成 Trnsys 组件要求的输入文件.dat 格式或直接在组件参数表中填写特别关注部分负荷率PLR在 0.2 到 0.5 之间的性能数据因为系统全年有大量时间运行在这个区间用厂家数据的额定工况与 Trnsys 内置修正模型做校核误差控制在 3% 以内。水泵建模相对简单核心是设定额定流量、额定功率和部分负荷性能系数。如果模拟变频泵需要接入控制信号让流量根据末端需求动态变化。变频泵的功率并非与流量线性相关一般可用这个规律近似估算功率占比 流量占比的 1.7 到 2.3 次方。不同泵效率差异较大实际应以水泵性能曲线为准。冷却塔建模需要注意湿球温度的敏感性。冷却塔出水温度极限逼近湿球温度如果气象数据中湿球温度高于预期塔出水温度也会随之升高导致冷机冷凝温度升高、COP下降。在做系统搭配时不能只看设计工况还要用全年逐时数据验证冷却塔是否满足需求。3.3 控制器与策略搭建仿真中最大的工作量往往不在设备建模而在控制逻辑。Trnsys 提供多种控制器组件从基础的温差控制器、时间控制器到可编程的方程控制器。对于复杂策略我建议用 Type 166 或直接嵌入公式组件实现判断逻辑。有一个很实用的技巧——用“可调参数”控制策略的组合开关。比如你想对比三种不同的冷冻水供水温度设定7 度、9 度、11 度对系统能耗的影响可以把设定温度设成一个全局参数然后用方程组件将它输出给冷机控制器。这样你只改一个数就能跑完整年的方案对比不用动模型结构。3.4 仿真结果显示与数据后处理Trnsys 自带的在线图形显示器和离线结果导出工具已经能满足基本需求但对于更专业的分析我建议将结果输出到 Excel 或 CSV再用 Pythonpandas matplotlib或专业数据处理软件做可视化。关键输出结果建议至少包含逐时系统总电耗、冷机功耗与 COP、水泵功耗、冷却塔风机电耗、系统供回水温度、蓄能装置蓄放能状态、室内温度波动等。全年能耗逐时曲线的可视化能让你迅速发现系统在哪些时段运行异常比如频繁启停、冷机低效区间过长等。4. 实操过程与关键环节实现4.1 案例目标与系统配置下面用一个实际案例拆解整个建模过程。假设某办公建筑面积 5000 平方米位于夏热冬冷地区空调系统采用集中式冷站配置一组风冷螺杆冷机假设 2 台单台制冷量 600 kW和若干循环水泵。末端采用风机盘管系统。需要仿真全年运行能耗并在三种控制策略冷冻水定流量、一次泵变流量、二次泵变流量中比较能耗水平。为简化模型建筑负荷不采用 Trnsys 内部建筑模型计算而是从 EnergyPlus 或 DeST 中导出一份全年逐时冷负荷序列作为末端需求输入。这样做可以使负荷边界一致避免模型差异干扰系统对比结论。4.2 模型搭建步骤详解第一步新建工程设置时间参数。仿真开始时间设为 1 月 1 日 0 时结束时间设为 12 月 31 日 24 时仿真步长设定为 15 分钟0.25 小时。这个步长适合全年能耗评估也能捕捉到大部分系统动态特征。第二步放置气象数据组件导入当地 TMY 气象文件连接到冷机、冷却塔等需要室外参数的组件。这里检查气象数据的日期格式和时间序列是否完整千万不能有缺测或乱序。第三步放置建筑逐时负荷读取组件。从外部文本文件读入 8760 小时逐时负荷数据如有 15 分钟步长则 35040 个数据点输出给末端侧的水路控制。这一步有一个容易出错的地方负荷方向定义。Trnsys 中负荷组件的输出通常定义为“房间需要从水中带走的热量”正值代表制冷需求。如果你定义反了仿真结果会彻底乱套。第四步搭建冷源系统。放置 2 台冷机组件Type 666 或 Type 112并联回路由分流器Tee Piece和合流器Mixer连接每台冷机配一台冷冻水泵和一台冷却水泵。冷机组的启停控制信号由负荷侧温差控制逻辑给出当回水温度超过设定值且持续一段时间防止频繁启停时启动第二台冷机当负荷下降、回水温度长期低于设定值时关闭第二台。第五步搭建末端侧水路。由于负荷已由外部数据给定不需要搭房间模型但需要用等效水力模块模拟末端盘管的换热。一般做法是用一个“负荷-换热器”模块把负荷序列转换为对冷冻水的换热需求同时根据供回水温差和流量计算出需要的冷冻水流量。第六步冷却侧如用风冷则无需冷却塔——如果用风冷螺杆机则可直接以室外干球温度为冷机冷凝侧输入但实际风冷冷凝器换热还与室外风速有关必要时加一个修正环节。若用水冷冷机则需要放置冷却塔组件Type 510 或 Type 709以及冷却水泵。第七步连接控制信号。设定冷冻水供水温度用比较器和 PID 控制器调节冷机输出。水箱如果需要模拟蓄能则在冷机和末端负荷之间串联一个蓄能水罐根据运行策略定时充放能。第八步连接输出模块。在关键节点供回水温度、各设备功耗、系统总功率、冷机COP放置在线输出和离线结果存储组件。4.3 参数设置与计算说明上面的参数看起来只是数据填写其实每一行背后都值得推敲。以冷机额定 COP 为例假设厂商样本给出额定工况冷冻水供 7°C / 回 12°C冷却水进 30°C / 出 35°C下 COP 为 6.0。那么在实际仿真中当冷却水进水温度上升到 32°C 或冷冻水供水温度下降到 5°C 时COP 会明显下降。Trnsys 通过性能曲线对额定值做修正。以水泵参数为例冷冻水系统设计供回水温差 5 度总冷负荷约 1200 kW则设计流量为 1200 × 0.86 ÷ 5 ≈ 206 m³/h。据此选两台泵并联一用一备单台设计流量也按此考虑。水泵额定功率可据扬程和效率估算假设扬程 32 m效率 70%取水泵轴功率公式 P Q × H × ρg / 3.6e6 / η则单台泵轴功率约 26 kW电机输入功率约 28 kW电机效率约 0.93。冷却塔选型时设计处理水量应满足制冷机排热量。排热量 制冷量 压缩机功耗 ≈ 1200 200 1400 kW。按 5°C 温差冷却水流量约 1400 × 0.86 ÷ 5 ≈ 241 m³/h。根据当地湿球温度按 28°C选塔要求出水温度不超过 35°C。这个设计过程看似繁琐但填参数时每个数都有依据才能让模拟结果经得起审计。4.4 运行策略对比与结果分析模型搭好后分别运行三个工况工况 A冷冻水定流量水泵始终满频运行冷机根据出水温度自动调节冷却侧定流量。这是最基础的方案。工况 B一次泵变流量负荷侧旁通管压差控制水泵变频冷机蒸发器通过旁通维持最小流量。这个方案需要加旁通阀和控制策略组件复杂度明显提升。工况 C二次泵变流量一级泵定流量保证冷机蒸发器流量恒定二级泵根据末端压差变流量。这种系统更适合末端支路多、阻力差异大的场合。用同一组负荷数据跑完 8760 小时对比全年水泵电耗。定流量方案下两台泵全年运行电耗最高工况 B 水泵大部分时间运行在 60% 到 80% 流量可节能约 25% 到 35%工况 C 的一次泵恒定 30 Hz 左右运行二次泵随负荷变化总节能效果与 B 类似但控制稳定性更好。这组对比本质上是“用控制复杂度换运行能耗”值得用 Trnsys 的逐时数据去量化评估。我给出的仅是示例趋势实际项目里变频泵效率下降会导致低负荷时段节能效果衰减这需要通过模拟数据精确评估。5. 常见问题与排查技巧实录5.1 仿真结果发散或出现 NaN非数值最常见的原因是时间步长过大导致的数值震荡。尤其是带水箱、蓄能装置的模型如果水箱分层节点过多、流量过大而步长较长容易出现数值不稳定。建议先把步长调小 5 到 10 倍观察曲线是否变平滑如果仍然发散检查是否存在代数环比如控制信号依赖输出值且二者之间没有延迟或滤波。另一个常见原因是某些组件在低流量或零流量下出现除零错误。水泵启停瞬间可能导致流量刚好为 0某些换热器计算模型不允许 0 流量需要在控制逻辑里加一个极小的下限值比如 1E-5 kg/s避免被零除。5.2 系统模拟与负荷模拟脱节很多新用户把 Trnsys 当负荷计算工具但 Type 56 建筑模型对房间热容、辐射、内围护结构等细节的设置要求较高如果输入粗糙算出的负荷和 DeST 或 EnergyPlus 差异可能非常大。我的建议是Trnsys 做系统负荷边界尽量用专门负荷软件输出确保边界条件唯一。如果非要直接用 Type 56至少要做一次与 EnergyPlus 的典型日典型工况对比校核。5.3 控制逻辑写入困难Trnsys 的图形化建模对复杂控制策略表现力不足。比如一个“先启 A 机、A 机加载到 90% 以上保持 15 分钟再启 B 机”的逻辑直接用连线实现会很尴尬。我建议先用文字把控制逻辑写成伪代码再用可以包含表达式的方程组件分步实现。如果逻辑实在过于复杂可以考虑用 Matlab/Simulink 做控制策略验证把验证过的控制映射到 Trnsys 中。5.4 求解慢、跑不动仿真一年 8760 小时、步长 15 分钟涉及几十个组件计算量并不小。如果控制逻辑复杂每个时间步的程序调用量会很大。我建议分区域调试先跑 3 到 5 天的短期数据验证动态行为没问题再跑全年仿真步长从 1 小时起步逐步减小到合理值没必要一上来就追求高时间分辨率。如果项目涉及大量工况组合可以把不同工况拆成独立小模型并行跑避免一个大模型从头跑到尾。5.5 设备负荷与选型偏离实际模拟用的设备性能曲线如果来自公开文献或估算数据容易出现模拟结果与厂家实际运行数据不一致。建议在关键项目里尽量向设备供应商索取标准工况和非标准工况性能数据输入到模型中。如果没有厂商数据宁可少做细节也不要在关键环节塞入不可靠的性能参数。5.6 气象数据与建筑位置不匹配如果气象文件选错或数据时间与建筑所在地不一致负荷预测和系统能耗结果都会失真。要注意气象数据的时区处理默认时区应与项目所在地一致否则太阳辐射峰值会与负荷峰值错位导致蓄能策略评价失真。6. 一些可能被忽略的经验细节我做了几年 Trnsys 仿真后有些经验很难从官方文档里找到但实际项目里非常关键。一个容易被忽略的点是仿真初始温度的设定。建筑和土壤等热惯性大的对象初始温度设置偏差会导致仿真初期一段时间内结果偏移。Trnsys 默认所有组件初始温度设为 20 度。但对于地源热泵这类系统土壤初始温度设定至关重要——如果设置偏差过大第一年运行结果会严重偏离需要采用“预热循环”先用典型气象年数据循环跑若干年让土壤温度场稳定下来再取最后一年的结果作为分析数据。我在做地埋管项目时通常会把同样的数据连续跑 5 到 10 年最后取稳定周期结果。Trnsys 的气象文件重复使用很简单但很多人一开始不知道要这么做。关于机组运行曲线的形状我在实际模拟中有一个对照规律冷机进水温度越低COP越高部分负荷率在 0.6 到 0.9 区间 COP 往往处于高位过低负荷率低于 0.2COP 会大幅下降。分布式模型中需要将这个规律体现到性能曲线中。厂商数据如果只有 25%、50%、75%、100% 四个负荷点建议在 0 到 25% 之间做插值曲线时限制最小制冷量。很多模拟结果中冷机频繁启停就是因为在模型中允许冷机在极低负荷率下继续运行而实际冷机有最小容量限制低于此限制会进入启停循环系统效率大降。还有一个经常踩的坑是关于结果文件单位。Trnsys 默认输出单位采用国际单位制比如能量是 kJ、功率是 kJ/h不是 kW温度是摄氏度。很多人第一次用把功率读出来直接在 Excel 里按 kW 求和最后全年能耗算大了 3.6 倍。建议在输出组件中直接设定单位换算系数或者导出后在数据处理时统一换算。从长远看Trnsys 的生态越来越丰富与 Python 的联合仿真为它在算法控制、机器学习预测、以及实时优化方面打开了更大的空间。我目前正在尝试用 Python 读取 Trnsys 的实时仿真数据再用优化算法在每小时步长上对冷站水温设定值做动态寻优效果很不错。以后有机会我会把这个过程整理出来分享。