一条流量回路的比例带可能只差几个百分点,却足以让阀门频繁摆动;一次“自动整定”也可能为了测出参数,先把回路切到手动并驱动阀门。讨论 bhtune,应该先看后一件事。这个开源工具把修改型继电反馈测试(MRFT)接入传统 OPC DA 回路,再给出待审核的 P/PI/PID 参数。它不是只读取历史曲线、离线拟合一个公式的计算器。
GitHub 的 v0.1.0-rc.3 发布页显示发布时间为 2026 年 9 月 19 日,并标为 Pre-release;页面当时显示“49 commits to main since this release”。这 49 次提交是发布页对该标签到 main 的比较计数,属于后续修改,不能算进 rc.3 的交付内容。仓库在该标签下的说明称 CLI 和 Web GUI 已能在仿真器或经网关连接的 OPC DA 回路上跑完测试、计算常数及记录历史,同时承认仍处预发布阶段。许可证标识为 AGPL-3.0-or-later;若部署修改后的网络服务,应自行核对许可证的源码提供义务。RC 能试验,不等于能在生产装置无人值守地运行。发布页|标签版 README
继电振荡测到了什么
传统闭环整定常用极限增益 Ku 和极限周期 Tu 描述过程。继电反馈的做法是暂由继电器代替 PID:围绕原有操作点,让操纵量 MV 在两侧切换,观察过程变量 PV 的持续振荡。理想对称、弱噪声条件下,可以从继电幅度 d 和 PV 振荡幅度 a 估算 Ku≈4d/(πa),周期则由相邻振荡测得。这个近似关系描述的是继电反馈方法;bhtune 各过程类型及模板的内部公式仍须按标签版实现核对。死区、滞后、执行器饱和和非正弦波形也会破坏简单近似。测到 Ku、Tu 也不等于验证了闭环稳定裕度。继电幅度按 MV 量程百分比设置,工程师真正要检查的是它换算成阀门或变频器输出后的绝对变化。例如 0—100% 的输出设置 5% 幅度,中心点附近可能在 45% 与 55% 间来回驱动;如果阀门在这个区间有明显回差、机械限位或最小开度,测出的振荡主要反映执行机构而非对象的线性动态。PV 贴近高低报警限时,更不该靠缩小继电幅度赌一次“温和”的试验:幅度太小又可能淹没在噪声里。
项目自己的 MRFT 概念文档把“modified”说得更具体:切换点附近引入滞回,跳过起始周期以避开暂态,并在换向前后加入噪声保护延迟。运行时先读 PV、MV、上下限、模式和作用方向;校验后切手动,按用户设置的 MV 量程百分比施加继电幅度,轮询、存样、计满周期,最后尝试恢复原 MV 和控制模式。默认轮询间隔是 800 ms,但采样速度需要相对现场振荡周期决定。文档说明真实 OPC DA 运行以单调时钟计时,主机或网关延迟不会被“补采样”掩盖;BHTune 不是硬实时控制器。对周期只有几秒的快回路,800 ms 一次轮询可能只得到寥寥几个点,周期和峰谷幅度都会偏;对热惯性很大的对象,完整计数则可能超过允许的试验窗口。参数表前应先看历史中的实际采样间隙和每周期点数,再看曲线是否形成稳定重复的循环。哪怕数字落在“有效”状态,PV 的单向漂移、整流噪声造成的尖峰、MV 触顶造成的扁平波形,都足以使工程师否决本次结果。
计算结果不是一个神奇的“最佳 PID”。项目按过程类型的整定常数矩阵产生 Aggressive、Moderate、Sluggish 三档,再交给工程师看超调和抗扰需求。P、PI 面向所列过程类型;在 rc.3 文档中,PID 仅提供给两类温度过程,流量或压力回路不应被解读为自动支持微分项。结果表里的有效性校验会拒绝非正、非有限的振幅或周期及非法换算值;采样充分性 adequate、marginal、not_assessed 是提示,不是闭环验收。文档没有证明它自动计算增益裕度、相位裕度或鲁棒稳定性指标,不能把继电试验推导出的 Ku/Tu 写成“已量化安全裕度”。MRFT 文档|CLI 快速入门
真正容易出错的是控制器方言
同样写“P”,某些控制器用比例增益 Kp,有些用比例带 PB=100/Kp;积分可能是复位时间 Ti、复位率 1/Ti 或积分增益 Kp/Ti,秒与分钟还可互换。把 0.4 的增益直接填到期望比例带的字段,会得到完全不同的控制作用。bhtune 的 DCS/PLC 模板因此不仅存 PV、MV、设定值、模式和 P/I/D 的 tag 后缀,也声明增益/比例带、积分/微分单位、手自动的原始值。标签版本内置 Yokogawa CentumVP、Honeywell Experion、Schneider Modicon、Allen-Bradley PlantPAx 四个家族;这是映射起点,不是这些设备所有型号、固件、控制块都已现场验证的兼容清单。用户需逐项核对 OPC ItemID、量程、正反作用、手动写入权限和参数单位。模板按 PV 路径最后一个分隔符后的组件替换后缀,比如 Area01.FIC101.PV 推导到同一控制块的 MV,而不是保证该工厂正好把这些量放在相邻节点。尤其装置经过迁移、重命名或包控制器封装后,“可以读到同名标签”与“它对应这台阀”是两件事。建议由 DCS 工程师把推导出的每个地址与控制组态交叉核验,在镜像或仿真服务端故意注入错误方向、缺失读数和只读点,确认测试在切手动之前拒绝错误配置。模板说明
OPC DA 也不能因为“跨平台”四个字就忽略 Windows。bhtune 的 Rust 主程序可以在 Linux、macOS、Windows 运行,连接传统 OPC DA 时依靠 Windows 侧 opcda-bridge-gateway;COM/DCOM 与注册的 OPC DA 服务器交互仍在 Windows 一侧,跨机器则由网关提供网络接口。现场要处理 ProgID/位数、服务账户的 COM/DCOM 权限、OPC 服务器的读写权限、Windows 防火墙和网关到服务端的可达性。桥接不是 OPC UA 升级,更不是自动消除 DCOM 配置问题。网络边界也有两层:从 bhtune 主机到网关的通信,以及网关本机到 OPC DA 服务器的 COM/DCOM 会话。若网关与 OPC 服务器不在同一 Windows 主机,还需调查远程 DCOM 身份验证、端点映射和动态端口;在同机部署可以减少这部分跨主机复杂度,但不会替代服务账户授权。桥接仓库的当前 README 还警告其网关服务未内置认证与加密,不能只因为“能连通”就跨生产网段裸露服务。项目的 路线图把 OPC UA、Modbus 驱动列为未来工作;当前受支持的现场路径是 OPC DA。桥接项目目前的 部署说明需与实际部署版本核对,尤其要限制网关可访问的客户端和写入范围。
把验收分成两道门
第一道门完全不接装置。使用该标签构建或验证对应发行物,在隔离环境跑 bhtune simulate,随后执行 bhtune history show <run-id>,保存导出的采样 CSV。内置仿真是一次合成过程上的完整 MRFT 流程,不需要 OPC DA 网关,也没有真实 PID 参数 tag 可写。更值得做的是改变仿真增益、时间常数、死时间与噪声、固定随机种子复现问题,检查三档参数、PV/MV 趋势、异常结果标志以及取消后的恢复记录;再用站点自己的过程模型做离线闭环试验,包括扰动、设定值变更、测量噪声、输出限幅和阀门卡涩。公共 Demo 的结果不能直接抄进 DCS。可给离线验收设一张简单的判定表:相同参数和随机种子能否重现同一趋势;增大死时间后候选参数是否出现需要人工审查的激进响应;中途取消是否留下可追溯状态;导出样本与历史页面显示的 PV、命令 MV 是否一致。还要记住,趋势里的 MV 是整定引擎发出的命令序列,现场执行的 MV 读回保存在另一套执行证据里;离线仿真本身不能证明现场网关会按时响应。CLI 快速入门
第二道门才是与现场系统交互,而且应拆成“连通和读数检查”与“获批后的受控试验”。先在测试 OPC 服务器或停产训练环境核对所有 tag、质量码、上下限、手自动动作及读回,复核桥接网络的访问控制。生产现场若真的安排 MRFT,必须有工艺和控制人员共同确认的窗口、允许的 MV 摆幅与 PV 偏差、联锁和手动接管预案;确认该阀门动作不会影响相邻回路。该标签的安全文档称现场试验会切手动、驱动 MV;正常退出、取消或超时均尝试恢复,但恢复是尽力而为,记录 incomplete 时仍须由操作员检查阀位、模式与设定值。别把“支持回滚”理解成无条件物理恢复。每次写入后的 OPC 读回也只能说明标签反馈,不等于独立验证了阀杆位置。原始 PV 若质量码变坏、网关读写超时、操作系统调度抖动,都会改变“这次试验是否可信”的判断;安全说明列出单次操作、总运行和恢复时限,但它们不是现场安全仪表功能。操作员仍需要能够通过既有 DCS 操作站接管,确认最终输出、回路模式和被恢复的设定值。尤其两次 Ctrl+C 的行为不同:第一次取消并开始恢复,恢复中再次强停可能留下待人工处理的回路状态,不可把脚本里的“进程已退出”当成“现场已还原”。安全说明
在参数落地阶段,先比较旧值、新值和控制器实际字段。项目文档称默认试验并不写 PID 常数;CLI 要求显式 --write-pid <level> --yes,Web 端有复核写入的动作,写前保存旧值,逐项写入并读回,失败时尝试回滚。即使返回成功,仍应由工程师选定保守档位、按单位转换审查参数,并在低风险运行条件下观察设定值跟踪、扰动恢复和输出动作;必要时回退。尤其 PI 写回时 D 会被明确置零,P-only 的禁积分表达则依赖模板,不能只盯一个 Kp 数字。将“恢复成功”与“参数好用”分开签字也很必要:前者查初始 MV、模式、设定值和写回审计,后者查重新投入自动后的趋势。选用温和档位后,先限定操作条件和观察时间,记录旧参数、操作员姓名、切换时刻及退出阈值;若出现持续振荡、阀门频繁反向或报警逼近,按事先批准的回退步骤处理。整定候选值只是试验输出,最终变更仍属于现场变更管理。安全说明
这份 rc.3 更适合被当作一套可审计的测试工具链候选,而非即插即用的整定按钮。它把继电试验、控制器模板、历史采样和写回核对放到了同一流程;工程价值需要在具体装置的时序、权限、恢复和闭环表现上逐项证实。发布页上的 49 次后续提交恰好提醒读者:评估务必钉住版本与文档,别让 main 分支的新增保护替一个早期 RC 背书。本文引用的实现细节以 v0.1.0-rc.3 标签下的文档为准;真实部署前还应核对下载文件对应的提交与许可证文本,并在测试系统复现读写、取消和恢复路径。能算出参数是第一步,能说明每一次阀门动作以及失败后谁负责接管,才有资格进入现场试运行。
配图为概念示意。