louis
|
ead625bf2d
|
新增气体流量控制 GUI 与 Windows 可执行程序
新增 Tkinter 单窗口操作界面和后台设备状态机,支持连接与断开 PLC、在线设置目标流量、实时显示传感器数据与下发总开度,并在监测及闭环阶段统一执行安全保护。
默认将 valve_model_004.json 内置到单文件 EXE,同时支持校验并选择外部阀模型;整理标定 JSON/PNG 到 valve_model 目录并同步配置路径。补充运行层离线测试、PyInstaller 构建配置、交付文件和完整的 README 使用及重新打包说明。
|
2026-09-03 17:35:40 +08:00 |
|
louis
|
d7ed4181df
|
归档实验数据并移除根目录重复文件
将本轮流量实验 CSV 与图表统一保留在 data/2026.9.2 下,删除 data 根目录中的重复副本,保持数据目录结构清晰。
|
2026-09-02 16:53:23 +08:00 |
|
louis
|
0be3f813ae
|
完善流量控制前馈、稳态判定与阀门标定流程
- 前馈冻结改用可配置的 3 秒流量绝对误差滑窗,修复采样抖动造成的重复解冻,并保留下游扰动后的自动更新
- 支持非单调阀特性反解、最小可测面积以下直接全关,以及闭阀端精细扫点与辨识开关
- 调整双压力判稳、最长等待时间、在线入口全开收尾和闭环四联图
- 更新配置、README、阀模型及离线测试,归档本轮实验数据与诊断产物
|
2026-09-02 16:49:43 +08:00 |
|
louis
|
cfeedcf887
|
完善流量控制前馈、稳态判定与阀门标定流程
- 前馈冻结改用可配置的 3 秒流量绝对误差滑窗,修复采样抖动造成的重复解冻,并保留下游扰动后的自动更新
- 支持非单调阀特性反解、最小可测面积以下直接全关,以及闭阀端精细扫点与辨识开关
- 调整双压力判稳、最长等待时间、在线入口全开收尾和闭环四联图
- 更新配置、README、阀模型及离线测试,归档本轮实验数据与诊断产物
|
2026-09-02 16:14:42 +08:00 |
|
louis
|
5888b4ccce
|
从 MT2-AM8 模拟量模块迁移到 Easy521 PLC(Modbus TCP)
- 读取 D700(阀后流量)、D710(阀后压力)、D720(阀前压力),
读用功能码 03,0~32000 线性映射到各自量程(300 SLM / 400 kPa / 300 kPa)
- 输出 D730(电机位置,0~10V),写用功能码 06,行程仍为 0~1000、死区 800
- 复用 MT2 骨架,保留 get_flow/get_pressure/set_motor_position 接口,
channel 参数改为直接 Modbus 地址
- config.py 新增 PLC 设置,保留 MT2AM8 设置为死代码(MT2AM8Client 类保留)
- 同步更新 README.md 中的硬件接线、配置默认值与模块职责描述
|
2026-09-01 17:03:26 +08:00 |
|
louis
|
abab25326a
|
补充前馈+增益调度(MFC 结构)的 README 文档
|
2026-09-01 04:04:34 +08:00 |
|
louis
|
a03735387c
|
实现流量控制前馈 + 增益调度(MFC 结构)
按 plan.md 新增三个交付物,全部默认关闭以保持与纯 PID 的 A/B 兼容:
- valve_model.py:阀特性模型 Q_ss = A_eff(x)·P1_abs·F(r),含 ISO 6358
椭圆 F(r)、行程/面积互逆插值、单调性校验、JSON 存取。
- identify_valve.py:从 open_loop.py 扫点 CSV 拟合 A_eff 表并输出 JSON。
- 控制器集成:config/flow_control/main/data_logger 新增阀前压读取
(channel 2)、前馈打底 + PI 修残差、按 P1 增益调度,并记录/绘制前馈项。
新增配置 FEEDFORWARD_ENABLED / GAIN_SCHEDULE_ENABLED 默认 False,
VALVE_MODEL_PATH 默认空,未加载模型时行为与原先纯 PID 完全一致。
|
2026-08-27 16:00:51 +08:00 |
|
louis
|
d7e712ede7
|
Merge branch 'reset_target_while_running' of https://git.dominatedconvergence.com/louis/flow_control into reset_target_while_running
|
2026-08-27 15:27:33 +08:00 |
|
louis
|
37d41d666f
|
删除控流阀前流量传感器
|
2026-08-27 15:25:22 +08:00 |
|
louis
|
edece2cdd0
|
删除控流阀前流量传感器
|
2026-08-27 14:40:36 +08:00 |
|
louis
|
bec4c0ead1
|
修改控流阀死区为800,优化切换目标流量时PID模式切换逻辑,优化open_loop.py的--help显示,修改模式切换观察周期为10,更新了README.md
|
2026-08-25 14:42:07 +08:00 |
|
louis
|
5476dbf9cd
|
记录控压阀开度从0到100,控流阀目标90slm相关数据。发现:
1.压力传感器量程变为了1600(无伤大雅)。修改config.py。
2.控流阀几乎只在开度小于等于20%正常工作。
3.控压阀在开度大于等于20%时对控流阀调控90slm无显著影响。
目标120slm,控压阀开度为0时压力超过400kpa停止运行,后续修改安全上限为500kpa。
跑了一系列实验。
|
2026-08-24 18:34:40 +08:00 |
|
louis
|
6fa7185922
|
人为给定开度,流量变化有异,可能是电机有问题或者气路哪儿不对
|
2026-08-24 16:49:21 +08:00 |
|
louis
|
26d4cbc316
|
增加两档PID控制,针对流量误差大和小的情况分别控制,在误差大时快速调节,误差小时慢慢调节以减少震荡和稳态误差。
|
2026-08-21 17:25:30 +08:00 |
|
louis
|
c56858ab0f
|
跑了几次实验,PID参数和昨天一样,切换后不能稳定暂且不谈,第一次流量控制也和昨天比差远了
|
2026-08-21 14:43:11 +08:00 |
|
louis
|
292815e907
|
支持运行中切换目标流量:按 S 进入输入模式,回车生效、Esc 取消
- 输入模式下控制循环照常运行、原目标继续生效,直到回车确认新值
- 输入期间终端输出整体静默(状态行/性能报告均不打印),文件日志与 CSV 照常写入
- 新增 ConsoleGate 过滤器挂到 console_handler,退出路径统一解除静默
- 新增 PerformanceReporter.reset(),切换目标后重新判稳并再次输出性能报告
- 新增 config.TARGET_SWITCH_KEY 配置项,README 同步说明
|
2026-08-21 03:36:17 +08:00 |
|
louis
|
7732c36c55
|
更新了README.md
|
2026-08-20 18:03:49 +08:00 |
|
louis
|
14846278aa
|
修改了pid参数,跑了一些数据
|
2026-08-20 17:47:41 +08:00 |
|
louis
|
1d065d81d3
|
新增输出稳态时滑动窗口流量均值和标准差,以及稳态误差(判稳成功时目标流量减去当时流量)。
目前逻辑是「一直控制 + 每秒状态照常输出 + 稳态时额外多打印一次性能报告」。
新增一个可选的自动停止功能--config开关,「达到稳态后自动停止控制」,让 reporter 通知主循环退出。
|
2026-08-20 09:24:58 +08:00 |
|
louis
|
adfb5623b3
|
修改两个函数initial_opening为100
|
2026-08-20 01:51:01 +08:00 |
|
louis
|
c9984b1112
|
open_loop.py文件的记录数据部分再新加两列,一列是"P_abs_ratio",定义为阀后绝对压力比阀前绝对压力的,绝对压力为传感器读数加大气压值。另一列是"is_ratio_smaller_than_0.528",判断这个比值是否小于0.528(临界压力比),是的话就填Y,不是就填N.
然后再新画一个图,就是"P_abs_ratio"随时间变化的图,并且标出0.528代表的那条直线。这个图与已有的两幅图放在一个窗口中绘制。
|
2026-08-20 01:36:35 +08:00 |
|
louis
|
9bf9eb4205
|
Merge branch 'main' of https://git.dominatedconvergence.com/louis/flow_control
# Conflicts:
# __pycache__/config.cpython-313.pyc
# __pycache__/controllers.cpython-313.pyc
|
2026-08-19 17:40:57 +08:00 |
|
louis
|
0d85dd3c2c
|
1.原先程序启动后会先下发关闭位置,再开始闭环,现在启动后直接从当前阀门开度(默认全开)开始闭环。删除了safe_close相关的代码
2.新增open_loop.py进行开环控制,记录控流阀前后流量和压力数据,方便后面辨识拟合,以及观察动态特性。
3.新增README.md
|
2026-08-19 17:23:02 +08:00 |
|
louis
|
90648f3d35
|
chore: 更新 .gitignore 并停止跟踪 __pycache__
|
2026-08-19 09:21:58 +08:00 |
|
louis
|
2f4080f01e
|
修改了a0~a3系数计算公式
|
2026-08-17 17:33:15 +08:00 |
|
louis
|
bff24e8301
|
新增一个py模块,在稳态后记录、输出到终端:
该次调节用的kp,ki,kd参数以及控制效果如何,包括调节时间(调节至稳态花的时间,稳态用两个条件判断:用滑动时间窗口的方差/标准差判断,或者用滑动窗口均值介于目标值上下2%误差带之间)、超调量(记录绝对数值和相对目标值的百分比)、该次控制所设置的控制范围。
|
2026-08-14 15:35:05 +08:00 |
|
louis
|
9260fe20a8
|
删除"111.py"和"企业微信截图"
|
2026-08-14 14:46:33 +08:00 |
|
louis
|
8864d7cb05
|
试验了几次,得到了结果
|
2026-08-13 17:32:30 +08:00 |
|
louis
|
aabcd7441b
|
修改流量范围为0~300slm
|
2026-08-13 14:34:01 +08:00 |
|
louis
|
64be6d7c7a
|
修改问题.md,且新增data_logger.py画图模块
|
2026-08-13 14:28:03 +08:00 |
|