主题
PI 控制
PI 控制(类型名
ddc_pi):PI回路控制,输出0~100。正比例=true用于制冷(输入↑输出↑),false用于制热。积分时间Ti(秒)越大积分越弱,0=关闭积分(对齐西门子"常数",默认128秒)。死区:偏差进入半死区7个周期后输出冻结。每个块是独立实例。
这块是什么
- 编辑器里的名字:PI 控制
- 类型名:
ddc_pi(写在程序文件 ddc.json 里的身份,AI 生成或改逻辑时按它对名,别猜中文名) - 分类:HVAC(暖通专业块)
- 形态:值块
- 状态:有状态
PI回路控制,输出0~100。正比例=true用于制冷(输入↑输出↑),false用于制热。积分时间Ti(秒)越大积分越弱,0=关闭积分(对齐西门子"常数",默认128秒)。死区:偏差进入半死区7个周期后输出冻结。每个块是独立实例。
块面长什么样
图上这一颗就是刚把它从工具箱拖到画布时的样子:下拉框和输入框里是默认值,凹口(←形的那个孔)是要接值的地方,右边凸起是能被别人接的输出口。
块面参数(在块上直接填/选)
- KP:数 10(0.01~+∞)
- TI:数 128(0~+∞)
连线端子(从别的块接进来)
- 输出 Number
- 端子 EN、DIRECT、XCTR、SP、NZ
下发到设备变成什么
- 生成 ddc.json 的操作(op):pi;const
状态什么时候没
这个块跨扫描周期记住东西(上一轮的电平、计时到几秒),所以每个块都是独立实例,复制一块互不影响。实例在程序里靠一个**实例标识(id)**认领:同一个程序内不能重复,也不能为空 —— 校验会报「有状态块实例标识重复」或「块缺少实例标识(id),有状态块必须能跨周期保存状态」。重新下发程序或设备重新上电后,状态全部回到初始值 —— 见 3.1 下发与设备端运行。
手册里其它相关位置
- 所属分类章节:2.5 本章导览
- 同类块一览:2.0 功能块速查总表
把实际值平稳拉到设定值
做恒温恒湿这类连续调节,输出 0~100(可直接当阀门开度、变频器频率百分比用)。
输入端子:
| 输入 | 含义 |
|---|---|
| 使能 | 为真才调节;为假时停止调节 |
| 正比例 | 选择作用方向:正作用(测量值偏高于设定 → 输出加大,如制冷)或反作用(偏低才加大,如加热) |
| 输入 | 测量值(如实际温度) |
| 设定 | 目标值(如 26℃) |
| 死区 | 测量值与设定值之差在这个范围内时不动作,避免执行器在临界点来回抖 |
块面参数:
- 比例系数 Kp:默认 10。越大响应越快,太大容易来回震荡
- 积分时间 Ti(秒):默认 128,用来慢慢消除稳定误差。设为 0 或负数表示关闭积分,只做比例调节
输出:0~100。已进入死区并且连续若干轮偏差没有超出死区时,输出会保持不动(防止小偏差下阀门一直微动磨损)。
一个房间温度调节的最小系统
应用逻辑主循环(每 200ms~1s)
└─ 赋值 D210 ← PI控制
├─ 使能 ← D220(系统运行标志)
├─ 正比例 ← 1(制冷:温度高了加大输出)
├─ 输入 ← D110(实测温度,经线性变换换算)
├─ 设定 ← 26
├─ 死区 ← 0.5
└─ 输出 D210 → 写给阀门 / 变频器调参建议
先只用比例(Ti 填 0):Kp 从 10 开始,输出震荡就减小 Kp,反应太慢就加大。稳了之后再把 Ti 加上(比如 60~300 秒)消除剩余的稳定偏差。改动参数重新下发后调节从头开始。
这一块记的是「积分累计到多少」
改完参数重新下发、或设备重新上电,调节都从头开始 (实例标识与状态复位的通用规矩,见本页上方的「状态什么时候没」)。