python的工业过程控制场景模拟第五十篇:水力闸门液位流量数据,拟合水位—泄流量数学模型。
水力闸门水位—泄流量数学模型拟合系统 —— 基于 OOP 的曲线回归实战水利枢纽的中控室里操作员盯着屏幕上密密麻麻的闸门开度和水位数据手动对照着一张十几年前印的水位—流量关系曲线图来估算下泄流量。这张图还是按当时的河床断面画的这些年泥沙淤积、闸底板磨损曲线早就偏了。但没人重新测过——因为传统率定方法需要水文站的人带着ADCP声学多普勒流速剖面仪来现场测流一条船一天最多测几条垂线凑够一组完整曲线要花好几周。其实DCS里积累了几年连续的闸门开度、上下游水位、功率/电流数据这些数据本身就藏着那条曲线的答案——只是没人把它们挖出来。—— 哈尔滨工程大学《工业过程控制》课程核心思想延伸一、实际应用场景描述在水利枢纽、城市防洪排涝、灌区渠首等场景中水力闸门是最核心的调节设备。其控制目标通常是维持上游水位恒定防洪/蓄水或按调度指令精确下泄流量生态补水/发电。典型的闸门监控系统架构如下┌──────────────────────────────────────────────┐│ 闸门计算机监控系统 (PLC/DCS) ││ ││ 超声波/雷达液位计 ──→ 上游水位 H_up (m) ││ 超声波/雷达液位计 ──→ 下游水位 H_down (m) ││ 开度传感器 ──────→ 闸门开度 H_gate (m) ││ 流量计(可选) ─────→ 实际流量 Q_meas (m³/s) ││ ││ ┌──────────────────────────────────────────┐ ││ │ 水位—流量数学模型 │ ││ │ Q f(H_up, H_down, H_gate, ...) │ ││ │ │ ││ │ 已知: 上游水位 闸门开度 → 推算下泄流量 │ ││ │ 或: 目标流量 → 反算所需闸门开度 │ ││ └──────────────────────────────────────────┘ ││ ││ 输出 ──→ 液压启闭机 ──→ 闸门开度调节 │└──────────────────────────────────────────────┘常见的水位—流量关系模型模型类型 公式形式 适用场景堰流公式 Q C \cdot L \cdot H^{3/2} 闸门完全开启自由溢流孔口出流 Q \mu \cdot A \cdot \sqrt{2gH} 闸门局部开启淹没出流实用堰经验式 Q K \cdot (H - H_0)^n 宽顶堰/实用堰多变量多项式 Q a_0 a_1H a_2H^2 ... 数据驱动拟合哈尔滨工程大学《工业过程控制》课程在第五章流体过程控制与建模中专门讨论了水力过程的数学描述水力过程的非线性特性使得精确机理建模困难。对于闸门泄流这类问题经典的堰流/孔口公式是第一性原理的起点但实际工程中由于边界条件复杂河床形态、闸墩形状、淹没度变化往往需要在机理框架基础上利用实测数据进行参数辨识和模型校正。这就是数据驱动的灰箱建模思路。二、引入痛点2.1 现场的真实困境场景 现场发生了什么 根因曲线过时 十年前的率定曲线现在算出来的流量和实际差了 20% 河床冲淤变化测流成本高 请水文局来测一次流一条垂线 5000 块 传统测流依赖专业设备和人员数据沉睡 SCADA 里存了几年的水位/流量数据没人用来更新模型 缺乏分析工具和方法调度纠纷 上游说放了 100 个流量下游说只收到 80 个 双方用的曲线不一样自动控制难 PID 要投自动但流量反馈不准只能手动 缺乏可靠的软测量模型2.2 核心矛盾机理模型给你正确的方向但参数不准黑箱模型给你准确的数字但不可解释。最优解是灰箱建模用物理公式确定模型结构用历史数据拟合未知参数。这样既有物理解释性又能适应现场变化。2.3 我们要解决什么用一段 Python 程序构建一个水力闸门水位—泄流量数学模型拟合系统实现1. 历史数据加载 —— 读取 SCADA 导出的水位、开度、流量数据2. 数据清洗 —— 剔除异常点、稳态筛选3. 模型拟合 —— 基于物理结构的参数辨识最小二乘法4. 多模型对比 —— 堰流/孔口/多项式选最优5. 精度评估 —— RMSE、R²、残差分析6. 可视化 —— 拟合曲线 实测散点 残差图三、核心逻辑讲解3.1 理论基础闸门泄流物理模型本工具基于哈工程《工业过程控制》第五章流体过程控制与建模① 自由溢流堰流当闸门全开、水流呈自由跌落状态时Q C_d \cdot L \cdot \sqrt{2g} \cdot H^{3/2}其中 H 是堰上水头上游水位 - 堰顶高程 C_d 是流量系数 L 是堰宽。② 孔口出流闸门局部开启Q \mu \cdot b \cdot h \cdot \sqrt{2g(H_{up} - H_{down})}其中 b 是闸宽 h 是闸门开度 \mu 是孔口流量系数。③ 实用经验模型灰箱Q K \cdot (H_{up} - H_{threshold})^\alpha \cdot f(\text{gate})④ 参数辨识最小二乘法对于线性化后的模型 y X\beta 最小化残差平方和\hat{\beta} (X^T X)^{-1} X^T y3.2 系统数据流┌──────────────────────────────────────────────┐│ SCADA 历史数据 CSV ││ (timestamp, H_up, H_down, gate, Q) │└──────────────┬───────────────────────────────┘│┌──────────────▼───────────────┐│ ① 数据加载 清洗 ││ 去异常、稳态筛选 │└──────────────┬───────────────┘│┌──────────────▼───────────────┐│ ② 特征工程 ││ 构造 H_up, ΔH, gate 等特征 │└──────────────┬───────────────┘│┌──────────────▼───────────────┐│ ③ 模型拟合 ││ 最小二乘 / 非线性优化 │└──────────────┬───────────────┘│┌──────────────▼───────────────┐│ ④ 精度评估 ││ RMSE / R² / 残差分析 │└──────────────┬───────────────┘│┌──────────────▼───────────────┐│ ⑤ 可视化 报告 ││ 拟合曲线 残差诊断 │└──────────────────────────────┘四、代码讲解面向对象设计4.1 类结构总览类名 职责 设计模式FlowRecord 单条流量数据记录dataclass 值对象GateSpec 闸门物理规格值对象 值对象ModelConfig 模型配置值对象 值对象FitResult 拟合结果dataclass 值对象DataLoader CSV 数据加载与清洗 封装FeatureEngineer 特征工程 策略模式PhysicalModel 物理机理模型基类 模板方法WeirModel 堰流模型 继承OrificeModel 孔口出流模型 继承PolynomialModel 多项式经验模型 继承ModelFitter 模型拟合器最小二乘 策略模式AccuracyEvaluator 精度评估器 封装CurveVisualizer 曲线可视化器 封装ReportGenerator 分析报告生成器 模板方法GateFlowModelingSystem 系统编排器聚合根 聚合根4.2 数据模型层from dataclasses import dataclass, fieldfrom typing import List, Dict, Optional, Tuple, Callablefrom enum import Enumimport numpy as npimport csvfrom pathlib import Pathfrom datetime import datetimefrom abc import ABC, abstractmethodclass ModelType(Enum):模型类型WEIR 堰流模型ORIFICE 孔口出流模型POLYNOMIAL 多项式经验模型dataclass(frozenTrue)class FlowRecord:单条流量数据记录 —— 值对象timestamp: datetimeh_up: float # 上游水位 (m)h_down: float # 下游水位 (m)gate_opening: float # 闸门开度 (m)flow_rate: float # 泄流量 (m³/s)temperature: float 20.0 # 水温 (℃)dataclass(frozenTrue)class GateSpec:闸门物理规格 —— 值对象gate_id: strwidth: float 10.0 # 闸宽 (m)crest_elevation: float 100.0 # 堰顶高程 (m)max_opening: float 5.0 # 最大开度 (m)discharge_coeff: float 0.62 # 理论流量系数dataclass(frozenTrue)class ModelConfig:模型配置steady_state_window: int 10 # 稳态判定窗口 (个采样点)max_change_rate: float 0.05 # 最大变化率 (m/s)outlier_std_multiplier: float 3.0 # 异常值判定 (标准差倍数)poly_degree: int 3 # 多项式阶数dataclassclass FitResult:拟合结果model_type: ModelTypeparameters: Dict[str, float]rmse: float 0.0r_squared: float 0.0residual_mean: float 0.0residual_std: float 0.0n_samples: int 04.3 数据加载与清洗class DataLoader:流量数据加载与清洗CSV 格式:timestamp,h_up,h_down,gate_opening,flow_rate,temperature2024-06-01 08:00:00,105.2,102.1,2.5,45.8,22.5def __init__(self, config: ModelConfig None):self.config config or ModelConfig()self.records: List[FlowRecord] []def load_csv(self, file_path: str) - List[FlowRecord]:加载 CSV 数据self.records.clear()with open(file_path, r, encodingutf-8) as f:reader csv.DictReader(f)for row in reader:try:ts datetime.strptime(row[timestamp], %Y-%m-%d %H:%M:%S)except (ValueError, KeyError):continuetry:record FlowRecord(timestampts,h_upfloat(row.get(h_up, 0)),h_downfloat(row.get(h_down, 0)),gate_openingfloat(row.get(gate_opening, 0)),flow_ratefloat(row.get(flow_rate, 0)),temperaturefloat(row.get(temperature, 20.0)))self.records.append(record)except ValueError:continuereturn self.recordsdef clean_data(self, records: List[FlowRecord]) - List[FlowRecord]:数据清洗:1. 去除明显异常值 (流量为负或超过物理极限)2. 稳态筛选 (变化率小于阈值)3. 去除水位倒挂 (下游 上游且差值不合理)cleaned []for i, r in enumerate(records):# 规则1: 流量必须为正if r.flow_rate 0 or r.flow_rate 1000:continue# 规则2: 水位合理性head r.h_up - r.h_downif head 0 or head 30:continue# 规则3: 开度合理性if r.gate_opening 0 or r.gate_opening 10:continue# 规则4: 稳态判定 (与前一个点比较)if i 0:dt (r.timestamp - records[i-1].timestamp).total_seconds()if dt 0:dh_up abs(r.h_up - records[i-1].h_up)dh_down abs(r.h_down - records[i-1].h_down)dg abs(r.gate_opening - records[i-1].gate_opening)# 变化太快可能不是稳态if (dh_up / dt self.config.max_change_rate ordh_down / dt self.config.max_change_rate ordg / dt self.config.max_change_rate):continuecleaned.append(r)return cleaned4.4 特征工程class FeatureEngineer:特征工程构造模型输入特征:- head h_up - h_down (水头)- head_crest h_up - crest_elevation (堰上水头)- gate_ratio gate_opening / max_opening (相对开度)- sqrt_head, head^1.5, head^2 等非线性变换def __init__(self, gate_spec: GateSpec):self.spec gate_specdef build_features(self, records: List[FlowRecord]) - Tuple[np.ndarray, np.ndarray]:构建特征矩阵和目标向量Args:records: 清洗后的数据Returns:(X, y) 特征矩阵和目标流量n len(records)# 基础特征: [head, sqrt(head), head^1.5, gate_ratio]X np.zeros((n, 4))y np.array([r.flow_rate for r in records])for i, r in enumerate(records):head max(0.001, r.h_up - r.h_down) # 避免除零head_crest max(0.001, r.h_up - self.spec.crest_elevation)X[i, 0] headX[i, 1] np.sqrt(head)X[i, 2] head ** 1.5X[i, 3] r.gate_opening / self.spec.max_openingreturn X, ydef build_physical_features(self, records: List[FlowRecord]) - Tuple[np.ndarray, np.ndarray]:物理模型特征: 基于堰流/孔口公式的变换对于堰流: Q C * L * sqrt(2g) * H^1.5取对数: ln(Q) ln(C*L*sqrt(2g)) 1.5 * ln(H)n len(records)X np.zeros((n, 2))y np.log(np.array([max(0.001, r.flow_rate) for r in records]))for i, r in enumerate(records):head_crest max(0.001, r.h_up - self.spec.crest_elevation)X[i, 0] 1.0 # 截距项X[i, 1] np.log(head_crest)return X, y4.5 物理模型基类与派生类class PhysicalModel(ABC):物理模型基类 —— 模板方法模式定义统一的接口:- predict(): 根据输入预测流量- fit(): 拟合模型参数- equation(): 返回公式字符串abstractmethoddef predict(self, h_up: float, h_down: float, gate: float) - float:预测流量passabstractmethoddef fit(self, X: np.ndarray, y: np.ndarray) - Dict[str, float]:拟合参数passabstractmethoddef equation(self) - str:返回公式passclass WeirModel(PhysicalModel):堰流模型Q C_d * L * sqrt(2g) * (H - H_crest)^1.5待辨识参数: C_d (流量系数)def __init__(self, gate_spec: GateSpec):self.spec gate_specself.params {Cd: gate_spec.discharge_coeff}def predict(self, h_up: float, h_down: float, gate: float 0) - float:g 9.81head max(0, h_up - self.spec.crest_elevation)if head 0:return 0.0Q self.params[Cd] * self.spec.width * np.sqrt(2*g) * (head ** 1.5)return Qdef fit(self, X: np.ndarray, y: np.ndarray) - Dict[str, float]:基于对数线性化的最小二乘拟合ln(Q) ln(Cd * L * sqrt(2g)) 1.5 * ln(H)# X 应该是 [1, ln(H)] 的形式if X.shape[1] 2:return self.params# 最小二乘: beta (X^T X)^-1 X^T ytry:beta np.linalg.inv(X.T X) X.T yintercept beta[0]slope beta[1]# 从斜率验证 1.5 次方关系# 从截距恢复 Cdg 9.81log_term np.log(self.spec.width * np.sqrt(2*g))cd_estimated np.exp(intercept - log_term)self.params[Cd] max(0.1, min(1.0, cd_estimated))self.params[slope] slopeexcept np.linalg.LinAlgError:passreturn self.paramsdef equation(self) - str:Cd self.params.get(Cd, 0.62)return fQ {Cd:.4f} × {self.spec.width} × √(2×9.81) × (H - {self.spec.crest_elevation})^{{1.5}}class OrificeModel(PhysicalModel):孔口出流模型Q μ * b * h_gate * √(2g * (H_up - H_down))待辨识参数: μ (流量系数)def __init__(self, gate_spec: GateSpec):self.spec gate_specself.params {mu: 0.65}def predict(self, h_up: float, h_down: float, gate: float) - float:g 9.81head max(0, h_up - h_down)if head 0 or gate 0:return 0.0Q self.params[mu] * self.spec.width * gate * np.sqrt(2*g*head)return Qdef fit(self, X: np.ndarray, y: np.ndarray) - Dict[str, float]:线性化: Q / (b * gate * sqrt(2g*head)) μratios []for i in range(len(y)):x_row X[i]# X 的格式: [b*gate*sqrt(2g*head), ...]if x_row[0] 1e-6:ratios.append(y[i] / x_row[0])if ratios:self.params[mu] float(np.mean(ratios))return self.paramsdef equation(self) - str:mu self.params.get(mu, 0.65)return fQ {mu:.4f} × {self.spec.width} × h_gate × √(2×9.81×(H_up - H_down))class PolynomialModel(PhysicalModel):多项式经验模型Q a0 a1*H a2*H^2 a3*H^3 b*gate纯数据驱动不考虑物理结构def __init__(self, degree: int 3):self.degree degreeself.params {}def predict(self, h_up: float, h_down: float, gate: float) - float:head h_up - h_down# 简单多项式Q self.params.get(a0, 0)for i in range(1, self.degree 1):Q self.params.get(fa{i}, 0) * (head ** i)Q self.params.get(b_gate, 0) * gatereturn max(0, Q)def fit(self, X: np.ndarray, y: np.ndarray) - Dict[str, float]:多元线性回归try:beta np.linalg.inv(X.T X) X.T yself.params[a0] beta[0]for i in range(1, min(self.degree 1, len(beta))):self.params[fa{i}] beta[i]except (np.linalg.LinAlgError, IndexError):passreturn self.paramsdef equation(self) - str:terms [f{self.params.get(a0, 0):.3f}]for i in range(1, self.degree 1):c self.params.get(fa{i}, 0)terms.append(f{c:.3f}×H^{i})b self.params.get(b_gate, 0)terms.append(f{b:.3f}×gate)return Q .join(terms)4.6 模型拟合器class ModelFitter:模型拟合器 —— 策略模式支持:- 线性最小二乘- 非线性优化 (scipy)- 交叉验证def __init__(self, model: PhysicalModel):self.model modeldef fit(self, X: np.ndarray, y: np.ndarray) - Dict[str, float]:执行拟合return self.model.fit(X, y)def evaluate(self, X: np.ndarray, y: np.ndarray) - Tuple[float, float]:评估拟合精度Returns:(RMSE, R²)y_pred self._predict_all(X)rmse np.sqrt(np.mean((y - y_pred) ** 2))ss_res np.sum((y - y_pred) ** 2)ss_tot np.sum((y - np.mean(y)) ** 2)r2 1 - ss_res / (ss_tot 1e-10)return rmse, r2def _predict_all(self, X: np.ndarray) - np.ndarray:批量预测# 这是一个简化版本实际需要存储原始 records# 这里用参数直接计算return np.zeros(len(X)) # placeholder4.7 精度评估器class AccuracyEvaluator:精度评估器计算:- RMSE (均方根误差)- MAE (平均绝对误差)- R² (决定系数)- MAPE (平均绝对百分比误差)- 残差分布def evaluate(self, y_true: np.ndarray, y_pred: np.ndarray) - dict:全面评估Args:y_true: 实测流量y_pred: 预测流量Returns:评估指标字典residuals y_true - y_predrmse np.sqrt(np.mean(residuals ** 2))mae np.mean(np.abs(residuals))mape np.mean(np.abs(residuals / (y_true 1e-10))) * 100ss_res np.sum(residuals ** 2)ss_tot np.sum((y_true - np.mean(y_true)) ** 2)r2 1 - ss_res / (ss_tot 1e-10)return {rmse: round(rmse, 4),mae: round(mae, 4),mape: round(mape, 2),r_squared: round(r2, 4),residual_mean: round(np.mean(residuals), 4),residual_std: round(np.std(residuals), 4),n_samples: len(y_true)}4.8 曲线可视化器class CurveVisualizer:曲线可视化器生成:- 实测 vs 拟合散点图- 残差图- 水位-流量关系曲线def plot_fit(self, y_true: np.ndarray, y_pred: np.ndarray,model_name: str, output_path: str fit_result.png):绘制拟合效果try:import matplotlib.pyplot as pltfig, axes plt.subplots(1, 2, figsize(12, 5))# 左图: 实测 vs 拟合axes[0].scatter(y_true, y_pred, alpha0.6, s20)min_val min(y_true.min(), y_pred.min())max_val max(y_true.max(), y_pred.max())axes[0].plot([min_val, max_val], [min_val, max_val], r--, lw2)axes[0].set_xlabel(Measured Q (m³/s))axes[0].set_ylabel(Predicted Q (m³/s))axes[0].set_title(f{model_name}: Measured vs Predicted)axes[0].grid(True, alpha0.3)# 右图: 残差residuals y_true - y_predaxes[1].scatter(y_pred, residuals, alpha0.6, s20)axes[1].axhline(y0, colorr, linestyle--)axes[1].set_xlabel(Predicted Q (m³/s))axes[1].set_ylabel(Residual (m³/s))axes[1].set_title(Residual Plot)axes[1].grid(True, alpha0.3)plt.tight_layout()plt.savefig(output_path, dpi150)plt.close()except ImportError:print(⚠️ matplotlib 未安装跳过可视化)def plot_rating_curve(self, model: PhysicalModel, h_range: Tuple[float, float],gate: float, output_path: str rating_curve.png):绘制水位-流量关系曲线try:import matplotlib.pyplot as plth_vals np.linspace(h_range[0], h_range[1], 100)q_vals [model.predict(h, h - 1.0, gate) for h in h_vals]plt.figure(figsize(8, 5))plt.plot(h_vals, q_vals, b-, linewidth2)plt.xlabel(Upstream Water Level (m))plt.ylabel(Discharge (m³/s))plt.title(fRating Curve (Gate {gate}m))plt.grid(True, alpha0.3)plt.tight_layout()plt.savefig(output_path, dpi150)plt.close()except ImportError:pass4.9 分析报告生成器class ReportGenerator:分析报告生成器def generate_report(self, model_type: str, params: dict,metrics: dict, equation: str) - str:生成拟合报告lines [ * 65,f 水力闸门水位—泄流量模型拟合报告, * 65,, 【模型信息】,f 模型类型: {model_type},f 拟合方程: {equation},, 【辨识参数】]for k, v in params.items():lines.append(f {k}: {v:.6f} if isinstance(v, float) else f {k}: {v})利用AI解决实际问题如果你觉得这个工具好用欢迎关注长安牧笛

相关新闻

如何用WeChatFerry构建智能微信机器人:从零到实战的完整指南

如何用WeChatFerry构建智能微信机器人:从零到实战的完整指南

如何用WeChatFerry构建智能微信机器人:从零到实战的完整指南 【免费下载链接】WeChatFerry 微信机器人,可接入DeepSeek、Gemini、ChatGPT、ChatGLM、讯飞星火、Tigerbot等大模型。微信 hook WeChat Robot Hook. 项目地址: https://gitcode.com/GitHub_…

2026/8/27 15:39:52 阅读更多 →
现代C++ MQTT客户端库实战:设计原理与物联网应用集成

现代C++ MQTT客户端库实战:设计原理与物联网应用集成

1. 项目概述:为什么我们需要一个C的MQTT实战库?如果你正在用C做物联网项目,大概率已经和MQTT协议打过交道了。这个轻量级的发布/订阅消息协议,几乎成了物联网设备通信的“普通话”。但当你真正上手时,可能会发现一个尴…

2026/8/28 21:11:11 阅读更多 →
CSDN问答功能入口与使用全攻略

CSDN问答功能入口与使用全攻略

1. 问答功能入口位置详解作为CSDN平台创作者,掌握平台各项功能的入口位置是提升创作效率的基础。问答功能作为连接创作者与用户的重要桥梁,其入口设计直接影响着使用体验。今天我们就来全面解析CSDN问答功能的各个入口位置及使用场景。1.1 网页端主入口在…

2026/8/28 3:22:41 阅读更多 →

最新新闻

工业边缘AI落地指南:模型部署、推理优化与工程化实践

工业边缘AI落地指南:模型部署、推理优化与工程化实践

1. 为什么工业AI必须跑到边缘来 接触过工业现场的朋友都有体会,工厂车间和写字楼里的IT环境完全是两个世界。写字楼里GPU服务器随便上,网络带宽千兆起步,数据想传多少传多少。但工业现场呢?老旧的PLC、各种协议纷杂的传感器、时不…

2026/8/29 12:17:47 阅读更多 →
无人机边缘AI实战:从机载目标检测到模型量化部署

无人机边缘AI实战:从机载目标检测到模型量化部署

1. 项目到底在做什么:Red Cat与单兵侦察的AI化 Red Cat这个名字,关注无人机行业的朋友应该不陌生。这家公司做的是中小型无人机,旗下Teal系列是主打产品,过去几年一直在往军方市场挤。最近他们宣布拿下美国陆军短程侦察项目的合同…

2026/8/29 12:17:47 阅读更多 →
AI编程工具实战:Claude Code与Codex安装配置及报错排查

AI编程工具实战:Claude Code与Codex安装配置及报错排查

之前做一个小工具时,在 AI 编程工具的选择和安装上折腾了不少时间。网上关于 Claude Code 和 Codex 的资料很多,但要么只讲概念,要么只给几行安装命令,遇到报错后很难直接找到完整排查思路。这篇文章就把我从零开始使用 AI 编程工…

2026/8/29 12:17:47 阅读更多 →
Claude Code 完全指南:从终端安装到 VSCode 实战与排错

Claude Code 完全指南:从终端安装到 VSCode 实战与排错

很多开发者在首次接触 Claude Code 这类终端 AI 编程工具时,第一反应往往是“它和我一直在用的 AI 代码插件到底有什么区别”。这个疑问很正常,因为市面上很多 AI 编程产品的感知入口都是聊天窗口。在我长期使用终端工具的经验里,Claude Code…

2026/8/29 12:17:47 阅读更多 →
Claude Code自动起草反馈:从安装部署到代码审查实践

Claude Code自动起草反馈:从安装部署到代码审查实践

这次我们来看一个每天都要用的编程工具的变化:Claude Code 新增了自动起草反馈功能。如果你还没用过 Claude Code,可以把它理解成一个跑在终端里的 AI 编程助手,能直接读工程目录、改代码、执行命令、跑测试,也能和 VS Code、桌面…

2026/8/29 12:17:47 阅读更多 →
DeepSeek必备的50个高阶提示词

DeepSeek必备的50个高阶提示词

DeepSeek必备的50个高阶提示词 你是不是总被AI工具搞得一头雾水? 别人用DeepSeek写文案、做分析、写代码风生水起,你却连怎么提问都摸不着头脑? 别慌! 今天深AI夜校团队为你整理了50个超实用DeepSeek高阶提示词。覆盖职场、副业、学习、生活全场景,手把…

2026/8/29 12:16:47 阅读更多 →

日新闻

etc目录下的profile.d文件目录设置环境变量和全局脚本shell

etc目录下的profile.d文件目录设置环境变量和全局脚本shell

一、设置环境变量etc目录下的profile.d文件目录 /etc/profile.d1、编写 vi test.sh文件内容# jdk变量 export ZHK_HOME/root export PATH$PATH:$ZHK_HOME/test # 可以取出来ZHK_HOME变量给ZZZ_HOME赋值 export ZZZ_HOME${ZHK_HOME}/test2、刷新 执行source /etc/profile 命令使…

2026/8/29 0:00:24 阅读更多 →
【JavaScript】内存管理-垃圾回收机制-内存泄露

【JavaScript】内存管理-垃圾回收机制-内存泄露

内存管理 C 语言这样的底层语言一般都有底层的内存管理接口,比如 malloc()和free()。 而 JavaScript 是在创建变量(对象,字符串等)时自动进行了分配内存,并且在不使用它们时“自动”释放。释放的过程称为垃圾回收。 整…

2026/8/29 0:00:24 阅读更多 →
Labgrid-MCP:为嵌入式硬件实验室接入AI Agent操控能力

Labgrid-MCP:为嵌入式硬件实验室接入AI Agent操控能力

Labgrid-MCP 的目标是把 MCP(Model Context Protocol)能力延伸到真实嵌入式硬件实验室:AI Agent 通过一个标准化的 MCP Server,就能查看目标板状态、控制上电断电、复位开发板、读取串口日志,甚至执行镜像刷写。对于经…

2026/8/29 0:00:24 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/28 11:23:26 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/28 23:05:07 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/28 19:47:53 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/29 4:34:53 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/28 17:43:04 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/29 2:05:18 阅读更多 →