1.原先程序启动后会先下发关闭位置,再开始闭环,现在启动后直接从当前阀门开度(默认全开)开始闭环。删除了safe_close相关的代码

2.新增open_loop.py进行开环控制,记录控流阀前后流量和压力数据,方便后面辨识拟合,以及观察动态特性。
3.新增README.md
This commit is contained in:
2026-08-19 17:23:02 +08:00
parent 90648f3d35
commit 0d85dd3c2c
6 changed files with 785 additions and 60 deletions
+7 -4
View File
@@ -19,7 +19,7 @@ FLOW_METER_RANGE_SLM = 300.0
# AI/AO 通道均从 0 开始。AI0 和 AO0 属于不同的寄存器区,可以同时使用。
FLOW_INPUT_CHANNEL = 1
PRESSURE_INPUT_CHANNEL = 0 # 没有压力传感器时改为 None
MOTOR_OUTPUT_CHANNEL = 0
MOTOR_OUTPUT_CHANNEL = 1
# ---------------------------------------------------------------------------
# 控制目标和控制周期
@@ -62,18 +62,21 @@ STEADY_STATE_STD_PCT = 2.0 # 滑窗标准差阈值(相对目标百分比
# opening=0% -> MOTOR_CLOSED_POSITION(完全关闭)
# opening=100% -> MOTOR_OPEN_POSITION(打开端/机械死区边界)
MOTOR_CLOSED_POSITION = 1000.0
MOTOR_OPEN_POSITION = 240.0
MOTOR_OPEN_POSITION = 0.0
# 控制启动时的阀门初始开度;增量 PID 从该开度开始累加 Δu。
INITIAL_OPENING_PCT = 100.0
# ---------------------------------------------------------------------------
# 安全阈值
# ---------------------------------------------------------------------------
# 物理读数允许范围;超过范围立即关阀
# 物理读数允许范围;超过范围立即报故障停机(阀门不被驱动时回到全开)
FLOW_VALID_MIN_SLM = 0.0
FLOW_VALID_MAX_SLM = 300.0
MAX_PRESSURE_KPA = 400 # 必须按实际管路额定压力确认
# 短暂读取失败时保持上一输出,不下发新位置;连续达到阈值后关阀
# 短暂读取失败时保持上一输出,不下发新位置;连续达到阈值后报故障停机
MAX_CONSECUTIVE_FLOW_FAILURES = 3
MAX_CONSECUTIVE_PRESSURE_FAILURES = 3