|
|
há 3 dias atrás | |
|---|---|---|
| .idea | há 1 mês atrás | |
| __pycache__ | há 1 mês atrás | |
| dqn_model | há 1 mês atrás | |
| DQN_decide.py | há 1 mês atrás | |
| DQN_env.py | há 1 mês atrás | |
| Dockerfile | há 3 semanas atrás | |
| Jenkinsfile | há 3 semanas atrás | |
| README_UPDATES.md | há 1 mês atrás | |
| build.sh | há 3 semanas atrás | |
| config.json | há 2 semanas atrás | |
| device_states.json | há 3 dias atrás | |
| docker-compose.yaml | há 3 semanas atrás | |
| dqn_model.zip | há 1 mês atrás | |
| loop_main.py | há 3 dias atrás | |
| monitor_service.log | há 1 mês atrás | |
| plc_test_dry_run.py | há 1 mês atrás | |
| requirements.txt | há 1 mês atrás | |
| save_uf_models.py | há 1 mês atrás | |
| test_plc_update.py | há 1 mês atrás | |
| uf_bw.pth | há 1 mês atrás | |
| uf_fp.pth | há 1 mês atrás |
基于 DQN 强化学习模型,自动优化超滤膜的过滤时长和物理清洗时长,提升产水量、延长膜使用寿命。
核心流程:
python loop_main.py
程序会自动:
config.json 配置{
"system": {
"use_model": 1, # 1=启用模型决策,0=仅记录数据
"trigger_value": 95, # TMP触发值(%)
"num_values_to_collect": 10, # 采集次数
"poll_interval": 2 # 轮询间隔(秒)
},
"api": {
"base_url": "http://example.com",
"jwt_token": "your_token"
},
"database": {
"host": "localhost",
"user": "root",
"password": "password",
"database": "scada_db"
},
"scada": {
"secret": "your_secret_key",
"project_id": 92
}
}
动态开关:修改 use_model 后无需重启,下次循环自动生效
run_uf_DQN_decide(uf_params, TMP0):DQN 模型决策generate_plc_instructions(...):生成 PLC 指令calc_uf_cycle_metrics(...):计算周期指标UFSuperCycleEnv:强化学习环境UFParams:超滤参数配置监控 TMP → 达到阈值 → 采集数据 → 计算平均值 → DQN决策
↓
生成指令 → 更新PLC → 回调推送 → 保存历史 → 继续监控
系统自动通过 API 更新 PLC 参数:
接口: /api/v1/plc/set-var-values
签名: MD5(record + secret + timestamp).toUpperCase()
数据格式:
[{
"project_id": 92,
"item": "设备名称",
"old_value": "旧值",
"new_value": "新值",
"command_type": 1
}]
日志保存在 monitor_service.log,自动轮转(单文件5MB,保留3个备份)。
记录内容:
dqn_model.zip 存在trigger_value