瀏覽代碼

1:拆分超滤训练和开发版本

wmy 2 周之前
父節點
當前提交
363eae9059
共有 6 個文件被更改,包括 0 次插入235 次删除
  1. 0 8
      .idea/.gitignore
  2. 0 8
      Dockerfile
  3. 0 83
      Jenkinsfile
  4. 0 115
      README_UPDATES.md
  5. 0 6
      build.sh
  6. 0 15
      docker-compose.yaml

+ 0 - 8
.idea/.gitignore

@@ -1,8 +0,0 @@
-# 默认忽略的文件
-/shelf/
-/workspace.xml
-# 基于编辑器的 HTTP 客户端请求
-/httpRequests/
-# Datasource local storage ignored files
-/dataSources/
-/dataSources.local.xml

+ 0 - 8
Dockerfile

@@ -1,8 +0,0 @@
-# 基于你已构建的基础镜像(包含所有依赖)
-FROM 172.16.0.165:5000/simulations/ultrafiltration_model:v1
-
-WORKDIR /app
-
-COPY . .
-
-CMD ["python", "loop_main.py"]

+ 0 - 83
Jenkinsfile

@@ -1,83 +0,0 @@
-pipeline {
-    agent any
-
-    environment {
-        DEPLOY_SERVER = "greentech@39.105.38.31"
-        DEPLOY_REPO_PATH = "/home/greentech/services/ultrafiltration_model"
-        HARBOR_URL = "172.16.0.165:5000/simulations"
-        IMAGE_NAME = "ultrafiltration_model"
-    }
-
-    stages {
-        stage('获取commit哈希') {
-            steps {
-                git branch: "${APP_GIT_BRANCH}",
-                    url: "${APP_GIT_URL}",
-                    credentialsId: "git-public"
-            }
-        }
-
-        stage('拉取代码') {
-            steps {
-                withCredentials([usernamePassword(
-                    credentialsId: 'gpu1key',
-                    usernameVariable: 'USER',
-                    passwordVariable: 'PWD'
-                )]) {
-                    sh """
-                        sshpass -p '$PWD' ssh -o StrictHostKeyChecking=no $USER@39.105.38.31 "
-                            cd ${DEPLOY_REPO_PATH} &&
-                            git pull origin ${APP_GIT_BRANCH}
-                        "
-                    """
-                }
-            }
-        }
-
-        stage('构建并推送镜像') {
-            steps {
-                script {
-                    def gitCommitShort = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim()
-                    withCredentials([usernamePassword(
-                        credentialsId: 'gpu1key',
-                        usernameVariable: 'USER',
-                        passwordVariable: 'PWD'
-                    )]) {
-                        sh """
-                            sshpass -p '$PWD' ssh -o StrictHostKeyChecking=no $USER@39.105.38.31 "
-                                cd ${DEPLOY_REPO_PATH} &&
-                                export HARBOR_URL=${HARBOR_URL} &&
-                                export IMAGE_NAME=${IMAGE_NAME} &&
-                                export GIT_COMMIT_SHORT=${gitCommitShort} &&
-                                chmod +x build.sh &&
-                                ./build.sh
-                            "
-                        """
-                    }
-                }
-            }
-        }
-
-        stage('部署到生产环境') {
-            steps {
-                script {
-                    def gitCommitShort = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim()
-                    
-                    withCredentials([usernamePassword(
-                        credentialsId: 'gpu1key',
-                        usernameVariable: 'USER',
-                        passwordVariable: 'PWD'
-                    )]) {
-                        sh """
-                            sshpass -p '$PWD' ssh -o StrictHostKeyChecking=no $USER@39.105.38.31 "
-                            export GIT_COMMIT_SHORT=${gitCommitShort}
-                                cd ${DEPLOY_REPO_PATH} &&
-								docker compose pull && docker compose up -dV 
-                            "
-                        """
-                    }
-                }
-            }
-        }
-    }
-}

+ 0 - 115
README_UPDATES.md

@@ -1,115 +0,0 @@
-# 超滤系统 DQN 智能决策模块
-
-## 系统简介
-
-基于 DQN 强化学习模型,自动优化超滤膜的过滤时长和物理清洗时长,提升产水量、延长膜使用寿命。
-
-**核心流程**:
-1. 监控 TMP(跨膜压差)达到阈值(95%)
-2. 采集多次数据计算平均 TMP0
-3. DQN 模型决策最优 L_s(过滤时长)和 t_bw_s(物洗时长)
-4. 生成 PLC 指令并下发执行
-5. 发送决策结果到回调接口
-
-## 快速开始
-
-### 运行服务
-```bash
-python loop_main.py
-```
-
-程序会自动:
-- 加载 `config.json` 配置
-- 连接数据库和 API
-- 持续监控并在 TMP 达到阈值时触发决策
-
-### 配置文件 (config.json)
-
-```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` 后无需重启,下次循环自动生效
-
-## 核心模块
-
-### 1. DQN_decide.py
-- `run_uf_DQN_decide(uf_params, TMP0)`:DQN 模型决策
-- `generate_plc_instructions(...)`:生成 PLC 指令
-- `calc_uf_cycle_metrics(...)`:计算周期指标
-
-### 2. DQN_env.py
-- `UFSuperCycleEnv`:强化学习环境
-- `UFParams`:超滤参数配置
-- 模拟超级周期运行
-
-### 3. loop_main.py
-- 主监控循环
-- 数据采集和决策触发
-- PLC 更新和回调推送
-
-## 工作流程
-
-```
-监控 TMP → 达到阈值 → 采集数据 → 计算平均值 → DQN决策 
-    ↓
-生成指令 → 更新PLC → 回调推送 → 保存历史 → 继续监控
-```
-
-## PLC 数据更新
-
-系统自动通过 API 更新 PLC 参数:
-
-**接口**: `/api/v1/plc/set-var-values`
-
-**签名**: `MD5(record + secret + timestamp).toUpperCase()`
-
-**数据格式**:
-```json
-[{
-  "project_id": 92,
-  "item": "设备名称",
-  "old_value": "旧值",
-  "new_value": "新值",
-  "command_type": 1
-}]
-```
-
-## 日志记录
-
-日志保存在 `monitor_service.log`,自动轮转(单文件5MB,保留3个备份)。
-
-记录内容:
-- 配置加载和变更
-- 数据采集过程
-- 模型决策结果
-- PLC 更新状态
-- API 回调响应
-
-## 注意事项
-
-1. **模型文件**: 确保 `dqn_model.zip` 存在
-2. **数据库连接**: 检查数据库配置和网络连通性
-3. **API 认证**: 确认 JWT Token 和密钥正确
-4. **TMP 阈值**: 根据实际工况调整 `trigger_value`

+ 0 - 6
build.sh

@@ -1,6 +0,0 @@
-#!/bin/bash
-#zoumuyu
-
-docker build -t ${HARBOR_URL}/${IMAGE_NAME}:${GIT_COMMIT_SHORT} .
-docker push ${HARBOR_URL}/${IMAGE_NAME}:${GIT_COMMIT_SHORT}
-docker pull ${HARBOR_URL}/${IMAGE_NAME}:${GIT_COMMIT_SHORT}

+ 0 - 15
docker-compose.yaml

@@ -1,15 +0,0 @@
-version: '3.8'
-
-services:
-  ultrafiltration_model:
-    image: 172.16.0.165:5000/simulations/ultrafiltration_model:${GIT_COMMIT_SHORT}
-    container_name: ultrafiltration_model
-    restart: always
-    environment:
-      - TZ=Asia/Shanghai
-    networks:
-      - ultrafiltration_model
-
-networks:
-  ultrafiltration_model:
-    driver: bridge