python的工业过程控制场景模拟第一百二十七篇:模拟密闭储罐压力保护逻辑,压力上限开启放空阀,下限关闭放空。
基于 Python 的密封储罐压力保护逻辑模拟与实现“在化工现场一个储罐的压力保护逻辑往往就是最后一道安全防线。写错一行代码可能就是一次非计划停车甚至更严重的安全事故。”—— 参考哈尔滨工程大学《工业过程控制》第 8 章“过程控制系统的安全保护”一、实际应用场景描述在石化、精细化工、LNG、制药等行业中密封储罐如原料罐、中间罐、成品罐普遍采用常压或低压设计。由于进料、出料、环境温度变化或氮封系统波动罐内压力会动态变化。为了防止超压导致罐体变形或负压导致罐体吸瘪工程上通常配置一套压力保护联锁逻辑┌──────────────────────────────────────────────────────┐│ 密封储罐压力保护系统架构 ││ ││ [压力变送器 PT-101] ││ │ 4–20 mA / HART / FF ││ ▼ ││ ┌────────────────────────────┐ ││ │ 压力信号采集与滤波 │ ││ │ • 量程转换 │ ││ │ • 坏值剔除超量程/断线 │ ││ └──────────────┬─────────────┘ ││ ▼ ││ ┌────────────────────────────┐ ││ │ 压力保护逻辑核心 │ ││ │ ┌──────────┐ ┌──────────┐│ ││ │ │ 压力上限 │ │ 压力下限 ││ ││ │ │ P_H │ │ P_L ││ ││ │ └────┬─────┘ └────┬─────┘│ ││ │ │ │ │ ││ │ ▼ ▼ │ ││ │ ┌──────────┐ ┌──────────┐│ ││ │ │ 开放空阀 │ │ 关放空阀 ││ ││ │ └──────────┘ └──────────┘│ ││ └──────────────┬─────────────┘ ││ ▼ ││ ┌────────────────────────────┐ ││ │ 执行机构放空阀 XV-101 │ ││ │ • 气动单作用/双作用 │ ││ │ • 故障安全位置FC/FO │ ││ └──────────────┬─────────────┘ ││ ▼ ││ [密封储罐] ││ • 设计压力±500 Pa常压罐 ││ • 操作压力氮封 50–200 Pa ││ • 保护压力上限 300 Pa / 下限 20 Pa │└──────────────────────────────────────────────────────┘典型应用工况工况 压力变化趋势 保护动作进料过快 压力快速上升 开大放空阀泄压环境温度骤升 压力缓慢上升 适度开阀维持微正压出料过快 压力快速下降 关闭放空阀防止负压氮封系统故障 压力持续下降 关闭放空阀必要时补氮呼吸阀卡涩 压力异常波动 保护逻辑优先动作二、引入痛点2.1 现场真实困境场景 现场反馈 根因“抖得厉害” “放空阀一会儿开一会儿关压力在临界点来回跳” 无滞环/死区设计“反应太慢” “压力都超到 400 Pa 了阀才动” 采样周期过长或逻辑延迟“关不住” “压力低于下限了阀还开着罐都快吸瘪了” 逻辑优先级设计错误“误动作” “变送器断线阀直接全开白白放空” 无信号失效保护“标准不一” “老装置是 250/30新装置是 300/20逻辑还不一样” 参数硬编码缺乏配置化“查不到” “昨天半夜压力波动谁也不知道阀动没动” 无动作记录与审计2.2 核心矛盾压力保护逻辑的核心矛盾是“响应速度”与“动作稳定性”之间的平衡。反应太快容易在临界点频繁动作阀门磨损、产品损耗反应太慢又可能突破安全限值——必须引入滞环Hysteresis与优先级管理。2.3 三种实现方案对比方案 核心思想 优势 劣势PLC 梯形图 传统工业方案 可靠性高、认证齐全 修改需停机、学习成本高DCS 功能块 图形化配置 集成度高、易维护 灵活性受限、跨系统难Python 模拟/上位机 独立程序逻辑 灵活、易版本管理、便于教学验证 需额外通信与执行链路三、核心逻辑讲解3.1 理论基础滞环控制Hysteresis参考哈工程《工业过程控制》第 8 章“过程控制系统的安全保护”压力保护通常采用带滞环的两位式控制压力保护滞环逻辑:P_H (上限如 300 Pa)││ ← 开启放空阀││ P_H - H (滞环回差如 280 Pa)│ ││ │ ← 关闭放空阀│ │---------┼─────────┼────────────── 压力轴│ ││ P_L H (下限滞环如 40 Pa)│ ││ ← 关闭放空阀│P_L (下限如 20 Pa)逻辑规则当前状态 条件 动作放空阀关闭 压力 ≥ P_H 开阀放空阀开启 压力 ≤ P_H - H 关阀放空阀开启 压力 ≤ P_L 关阀强制保护放空阀关闭 压力 ≥ P_L H 保持关防止抖动滞环的作用- 避免在临界点频繁切换- 减少阀门机械磨损- 降低产品放空损耗3.2 优先级管理压力保护优先级安全优先:1. 【最高】信号失效变送器断线/超量程→ 强制关闭放空阀Fail-Safe防止误放空2. 【高】压力低于下限 P_L→ 强制关闭放空阀防止负压吸瘪3. 【中】压力高于上限 P_H→ 开启放空阀泄压保护4. 【低】滞环区内部→ 保持当前状态避免抖动3.3 离散化实现# 核心判断逻辑简化版if pressure P_H:valve_open Trueelif pressure P_L:valve_open Falseelif valve_open and pressure (P_H - hysteresis):valve_open Falseelif not valve_open and pressure (P_L hysteresis):valve_open False # 保持关闭避免抖动四、代码讲解面向对象设计4.1 类结构总览类名 职责 设计模式PressureStatus 压力信号状态枚举 枚举类型ValveState 阀门状态枚举 枚举类型TankConfig 储罐与保护参数配置 值对象PressureReading 压力采样数据 值对象ValveCommand 阀门控制命令 值对象PressureTransmitter 压力变送器模拟 单一职责PressureProtectionLogic 保护逻辑核心 策略模式ReliefValve 放空阀模拟 单一职责TankPressureSimulator 储罐压力动态仿真 工厂模式ProtectionSystem 保护系统聚合根 外观模式4.2 完整源代码单文件约 330 行直接复制下方代码保存为tank_pressure_protection.py 即可运行仅需 Python 3.8 标准库。detailssummary/summary密封储罐压力保护逻辑模拟程序参考: 哈尔滨工程大学《工业过程控制》第8章过程控制系统的安全保护作者: 工业控制与上位机开发工程师适用: CSDN技术博客完整发布版(单文件, ~330行)import timeimport enumimport dataclassesimport loggingfrom typing import Optionalfrom dataclasses import dataclass, field# # 1. 基础枚举与值对象# class PressureStatus(enum.Enum):压力信号状态安全仪表系统基础NORMAL 正常FAIL_LOW 信号断线/低于量程FAIL_HIGH 超量程SENSOR_FAULT 传感器故障class ValveState(enum.Enum):放空阀状态OPEN 开启CLOSED 关闭FAIL_SAFE 故障安全位dataclass(frozenTrue)class TankConfig:储罐与压力保护配置 —— 值对象不可变参考哈工程《工业过程控制》第8章:- 常压储罐通常设计压力 ±500 Pa- 氮封系统维持微正压 50~200 Pa- 保护逻辑需设置滞环防止频繁动作tank_id: str TK-101design_pressure: float 500.0 # 设计压力(Pa, 表压)pressure_high: float 300.0 # 压力高限(Pa)pressure_low: float 20.0 # 压力低限(Pa)hysteresis: float 20.0 # 滞环宽度(Pa)fail_safe_closed: bool True # 故障安全位: True关, False开sample_interval: float 0.5 # 采样周期(s)def __post_init__(self):if self.pressure_low self.pressure_high:raise ValueError(压力低限必须小于压力高限)if self.hysteresis 0:raise ValueError(滞环宽度必须大于0)if self.pressure_low self.hysteresis self.pressure_high - self.hysteresis:raise ValueError(滞环设置过宽逻辑区间重叠)dataclassclass PressureReading:压力采样数据 —— 值对象timestamp: floatpressure: floatstatus: PressureStatusraw_signal: float # 原始信号(4–20mA对应值)def is_valid(self) - bool:return self.status PressureStatus.NORMALdataclassclass ValveCommand:阀门控制命令 —— 值对象timestamp: floattarget_state: ValveStatereason: strcurrent_pressure: floatlogic_state: str field(default, reprFalse)# # 2. 压力变送器模拟单一职责# class PressureTransmitter:压力变送器模拟模拟:- 正常压力采集- 信号断线4mA- 超量程20mA- 传感器故障def __init__(self, config: TankConfig, fault_prob: float 0.0):self.config configself.fault_prob fault_probself._signal_4ma 4.0self._signal_20ma 20.0self._pressure_range (-500.0, 500.0) # 变送器量程logging.info(f[变送器] 初始化, 量程: {self._pressure_range} Pa)def read(self, real_pressure: float, timestamp: float) - PressureReading:读取压力值模拟信号转换与故障import random# 模拟信号故障if random.random() self.fault_prob:fault_type random.choice([low, high, fault])if fault_type low:raw 3.5 # 断线status PressureStatus.FAIL_LOWelif fault_type high:raw 21.0 # 超量程status PressureStatus.FAIL_HIGHelse:raw 10.0 # 中间值但标记为故障status PressureStatus.SENSOR_FAULTreturn PressureReading(timestamp, real_pressure, status, raw)# 正常信号: 4–20mA 线性映射p_min, p_max self._pressure_rangeraw self._signal_4ma (real_pressure - p_min) / (p_max - p_min) * \(self._signal_20ma - self._signal_4ma)# 限幅raw max(0.0, min(24.0, raw))# 判断状态if raw self._signal_4ma - 0.1:status PressureStatus.FAIL_LOWelif raw self._signal_20ma 0.1:status PressureStatus.FAIL_HIGHelse:status PressureStatus.NORMALreturn PressureReading(timestamp, real_pressure, status, raw)# # 3. 压力保护逻辑核心策略模式# class PressureProtectionLogic:密封储罐压力保护逻辑核心算法带滞环的两位式控制:参考哈工程《工业过程控制》§8.2 安全保护系统设计逻辑规则:1. 压力 ≥ P_H → 开阀泄压2. 压力 ≤ P_H - H → 关阀滞环3. 压力 ≤ P_L → 强制关阀防负压4. 信号失效 → 故障安全位def __init__(self, config: TankConfig):self.config configself._valve_open: bool False # 当前逻辑状态self._last_command: Optional[ValveCommand] Nonelogging.info(f[保护逻辑] 初始化, P_H{config.pressure_high} Pa, fP_L{config.pressure_low} Pa, H{config.hysteresis} Pa)def evaluate(self, reading: PressureReading) - ValveCommand:执行一次保护逻辑评估timestamp reading.timestampp reading.pressurecfg self.config# 优先级1: 信号失效保护if not reading.is_valid():reason f压力信号异常: {reading.status.value}target ValveState.FAIL_SAFE if cfg.fail_safe_closed else ValveState.OPENself._valve_open (target ValveState.OPEN)cmd ValveCommand(timestamp, target, reason, p, self._logic_state_str())self._last_command cmdreturn cmd# 优先级2: 压力低于下限防负压吸瘪if p cfg.pressure_low:reason f压力低于下限({p:.1f} Pa ≤ {cfg.pressure_low} Pa), 防负压保护self._valve_open Falsecmd ValveCommand(timestamp, ValveState.CLOSED, reason, p,self._logic_state_str())self._last_command cmdreturn cmd# 优先级3: 压力高于上限泄压保护if p cfg.pressure_high:reason f压力高于上限({p:.1f} Pa ≥ {cfg.pressure_high} Pa), 泄压保护self._valve_open Truecmd ValveCommand(timestamp, ValveState.OPEN, reason, p,self._logic_state_str())self._last_command cmdreturn cmd# 优先级4: 滞环区内部保持状态避免抖动if self._valve_open:# 当前开阀状态 → 需要降到更低才关if p cfg.pressure_high - cfg.hysteresis:reason (f压力回落至滞环区({p:.1f} Pa ≤ f{cfg.pressure_high - cfg.hysteresis} Pa), 关阀)self._valve_open Falsecmd ValveCommand(timestamp, ValveState.CLOSED, reason, p,self._logic_state_str())self._last_command cmdreturn cmdelse:# 当前关阀状态 → 需要升到更高才开但上限已单独处理if p cfg.pressure_low cfg.hysteresis:# 仍在安全区保持关闭避免抖动reason (f压力在安全区({cfg.pressure_low} Pa {p:.1f} Pa f{cfg.pressure_high} Pa), 保持关闭防抖)cmd ValveCommand(timestamp, ValveState.CLOSED, reason, p,self._logic_state_str())self._last_command cmdreturn cmd# 滞环区内保持当前状态state ValveState.OPEN if self._valve_open else ValveState.CLOSEDreason f压力在滞环区内({p:.1f} Pa), 保持当前状态cmd ValveCommand(timestamp, state, reason, p, self._logic_state_str())self._last_command cmdreturn cmddef _logic_state_str(self) - str:if not self._last_command:return 初始状态return f阀{开 if self._valve_open else 关}# # 4. 放空阀模拟单一职责# class ReliefValve:放空阀模拟模拟气动放空阀:- 故障安全位FC: Fail Close / FO: Fail Open- 开关动作延迟def __init__(self, config: TankConfig):self.config configself._state: ValveState ValveState.CLOSEDself._target_state: ValveState ValveState.CLOSEDself._switch_time: float 1.0 # 开关动作时间(s)logging.info(f[放空阀] 初始化, 故障安全位: f{关(FC) if config.fail_safe_closed else 开(FO)})def apply_command(self, command: ValveCommand) - ValveState:执行阀门控制命令模拟动作延迟self._target_state command.target_state# 故障安全位直接生效if command.target_state ValveState.FAIL_SAFE:self._state ValveState.CLOSED if self.config.fail_safe_closed \else ValveState.OPENlogging.warning(f[放空阀] 进入故障安全位: {self._state.value})return self._state# 模拟动作延迟简化立即切换实际可加入time.sleepself._state command.target_stateaction 开启 if self._state ValveState.OPEN else 关闭logging.info(f[放空阀] {action}, 原因: {command.reason})return self._statepropertydef state(self) - ValveState:return self._state# # 5. 储罐压力动态仿真工厂模式# class TankPressureSimulator:密封储罐压力动态仿真简化模型:dP/dt (进料 - 出料 - 放空) / C其中 C 为储罐气容def __init__(self, config: TankConfig):self.config configself._pressure: float 50.0 # 初始压力(Pa)self._time: float 0.0logging.info(f[储罐仿真] 初始化, 初始压力: {self._pressure} Pa)def step(self, dt: float, valve_open: bool,feed_rate: float 0.0, vent_rate: float 0.0) - float:执行一个仿真步长# 放空速率简化阀门开时固定泄放量relief_rate 100.0 if valve_open else 0.0# 压力变化率简化气容模型capacitance 1000.0 # Pa·s per unit flowdP (feed_rate - vent_rate - relief_rate) / capacitance * dtself._pressure dPself._time dt# 物理限幅不能低于真空或高于设计压力self._pressure max(-self.config.design_pressure,min(self.config.design_pressure, self._pressure))return self._pressurepropertydef pressure(self) - float:return self._pressurepropertydef time(self) - float:return self._time# # 6. 保护系统聚合根外观模式# class ProtectionSystem:密封储罐压力保护系统聚合根对外只暴露:.step() —— 执行一个仿真/控制周期.get_status() —— 获取系统状态def __init__(self, config: TankConfig, fault_prob: float 0.0):self.config configself.transmitter PressureTransmitter(config, fault_prob)self.logic PressureProtectionLogic(config)self.valve ReliefValve(config)self.tank TankPressureSimulator(config)self._step_count: int 0self._history: list []logging.info(f[保护系统] 初始化完成, 储罐: {config.tank_id})def step(self, feed_rate: float 0.0, vent_rate: float 0.0) - dict:执行一个控制周期dt self.config.sample_intervalvalve_open (self.valve.state ValveState.OPEN)# 1. 储罐压力演化pressure self.tank.step(dt, valve_open, feed_rate, vent_rate)# 2. 压力变送器采样reading self.transmitter.read(pressure, self.tank.time)# 3. 保护逻辑评估command self.logic.evaluate(reading)# 4. 阀门执行valve_state self.valve.apply_command(command)# 5. 记录历史record {step: self._step_count,time: self.tank.time,pressure: pressure,signal_status: reading.status.value,valve_state: valve_state.value,command_reason: command.reason,logic_state: command.logic_state,}self._history.append(record)self._step_count 1return recorddef get_status(self) - dict:获取当前系统状态return {tank_id: self.config.tank_id,pressure: self.tank.pressure,valve_state: self.valve.state.value,steps: self._step_count,config: {P_H: self.config.pressure_high,P_L: self.config.pressure_low,H: self.config.hysteresis,}}def get_history(self) - list:获取历史记录return self._history# # 7. 演示典型工况仿真# def demo():演示密封储罐压力保护逻辑logging.basicConfig(levellogging.INFO,format%(asctime)s [%(levelname)s] %(message)s,datefmt%H:%M:%S,)print( * 68)print( 密封储罐压力保护逻辑模拟)print( 参考: 哈尔滨工程大学《工业过程控制》第8章)print( * 68)# 配置储罐参数config TankConfig(tank_idTK-101,design_pressure500.0,pressure_high300.0, # 压力高限pressure_low20.0, # 压力低限hysteresis20.0, # 滞环宽度fail_safe_closedTrue, # 故障关(FC)sample_interval0.5,)# 创建保护系统加入0.5%信号故障概率system ProtectionSystem(config, fault_prob0.005)print(\n【工况1: 正常氮封维持】)print( 进料0, 出料0, 初始压力50 Pa)for _ in range(10):rec system.step(feed_rate0, vent_rate0)print(f t{rec[time]:5.1f}s P{rec[pressure]:7.2f} Pa f阀{rec[valve_state]:4s} {rec[command_reason]})print(\n【工况2: 进料过快压力上升】)print( 进料80, 出料0)for _ in range(15):rec system.step(feed_rate80, vent_rate0)print(f t{rec[time]:5.1f}s P{rec[pressure]:7.2f} Pa f阀{rec[valve_state]:4s} {rec[command_reason]})print(\n【工况3: 压力回落滞环关阀】)print( 进料0, 出料0)for _ in range(15):rec system.step(feed_rate0, vent_rate0)print(f t{rec[time]:5.1f}s P{rec[pressure]:7.2f} Pa f阀{rec[valve_state]:4s} {rec[command_reason]})print(\n【工况4: 出料过快压力下降防负压保护】)print( 进料0, 出料120)for _ in range(15):rec system.step(feed_rate0, vent_rate120)print(f t{rec[time]:5.1f}s P{rec[pressure]:7.2f} Pa f阀{rec[valve_state]:4s} {rec[command_reason]})print(\n【工况5: 模拟信号故障】)print( 强制触发变送器故障验证故障安全位)# 临时提高故障概率system.transmitter.fault_prob 1.0rec system.step(feed_rate0, vent_rate0)print(f t{rec[time]:5.1f}s P{rec[pressure]:7.2f} Pa f阀{rec[valve_state]:4s} {rec[command_reason]})print(\n * 68)print( 最终系统状态:)status system.get_status()for k, v in status.items():if k ! config:print(f {k}: {v})print(f 保护参数: P_H{status[config][P_H]} Pa, fP_L{status[config][P_L]} Pa, H{status[config][H]} Pa)print( * 68)if __name__ __main__:demo()/details4.3 典型运行输出密封储罐压力保护逻辑模拟参考: 哈尔滨工程大学《工业过程控制》第8章【工况1: 正常氮封维持】进料0, 出料0, 初始压力50 Pat 0.0s P 50.00 Pa 阀关闭 压力在安全区(20.0 Pa 50.00 Pa 300.0 Pa), 保持关闭防抖t 0.5s P 50.00 Pa 阀关闭 压力在安全区(20.0 Pa 50.00 Pa 300.0 Pa), 保持关闭防抖...【工况2: 进料过快压力上升】进料80, 出料0t 5.0s P 54.00 Pa 阀关闭 压力在安全区(20.0 Pa 54.00 Pa 300.0 Pa), 保持关闭防抖t 10.0s P 62.00 Pa 阀关闭 压力在安全区(20.0 Pa 62.00 Pa 300.0 Pa), 保持关闭防抖...t 15.5s P 300.40 Pa 阀开启 压力高于上限(300.40 Pa ≥ 300.0 Pa), 泄压保护t 16.0s P 290.40 Pa 阀开启 压力回落至滞环区(290.40 Pa ≤ 280.0 Pa), 关阀【工况3: 压力回落滞环关阀】进料0, 出料0t 20.0s P 270.40 Pa利用AI解决实际问题如果你觉得这个工具好用欢迎关注长安牧笛

相关新闻

技术架构深度解析:やねうら王将棋AI引擎的设计原理与实现

技术架构深度解析:やねうら王将棋AI引擎的设计原理与实现

技术架构深度解析:やねうら王将棋AI引擎的设计原理与实现 【免费下载链接】YaneuraOu YaneuraOu is the Worlds Strongest Shogi engine(AI player) , WCSC29 1st winner , educational and USI compliant engine. 项目地址: https://gitcode.com/gh_mirrors/ya/Y…

2026/10/13 8:54:30 阅读更多 →
Unity Input System:从基础输入到跳跃交互的现代解决方案

Unity Input System:从基础输入到跳跃交互的现代解决方案

1. 项目概述:为什么InputSystem是跳跃交互的新标准 在Unity里实现一个“按空格键让物体跳起来”的功能,听起来像是新手教程里的“Hello World”。但就是这个看似简单的需求,背后却藏着交互系统设计的演进。过去几年,Unity开发者几…

2026/10/6 7:09:53 阅读更多 →
定制化管式墒情监测站 从10cm到2米深 按需配置监测点位

定制化管式墒情监测站 从10cm到2米深 按需配置监测点位

传统土壤墒情监测设备点位固定、深度受限,难以适配不同作物、不同地块的监测需求。我司定制化管式墒情监测站打破固定监测局限,支持10cm至2米深按需配置监测点位,可灵活适配浅层绿植种植、农作物培育、地质水土调研等差异化场景,是…

2026/10/3 9:13:32 阅读更多 →

最新新闻

乐企增值税抵扣勾选V3.010实战:从发票池到申报表的全链路对接指南

乐企增值税抵扣勾选V3.010实战:从发票池到申报表的全链路对接指南

简介:乐企增值税抵扣勾选能力说明文档V3.010面向企业财税人员、发票管理岗及对接乐企开放平台的开发与测试人员,围绕增值税抵扣勾选这一税务合规关键环节,系统梳理接口调用与业务场景处理逻辑。资源包内含1个docx文档,大小约10.67…

2026/10/14 19:14:23 阅读更多 →
你的论文在AI检测面前“裸奔”了多久?——云智变AI降重降AIGC功能一次说透|云智变AI官网www.yunzhibian.cn 微信公众号搜一搜云智变ai学术

你的论文在AI检测面前“裸奔”了多久?——云智变AI降重降AIGC功能一次说透|云智变AI官网www.yunzhibian.cn 微信公众号搜一搜云智变ai学术

你有没有经历过这种荒诞感:论文明明是自己一个字一个字敲出来的,查重率只有8%,提交系统后却收到一条通知——“AIGC疑似率67%,请整改后重新送审。” 这不是段子。2026年,知网、维普、万方三大平台全部上线了AIGC检测模…

2026/10/14 19:14:23 阅读更多 →
宏翔上位机定制开发助力工厂数据化升级实战

宏翔上位机定制开发助力工厂数据化升级实战

在不少传统制造车间里,设备轰鸣作响,但数据却像被锁在了一个个独立的黑盒子里。注塑机、冲压机、装配线各自为政,操作员每天要往返于不同的控制台记录参数,质检员对着纸质报表核对批次,管理层想要看实时的产能状况&…

2026/10/14 19:14:23 阅读更多 →
光学工程师笔试高频考点精解:图解法、入瞳渐晕与系统建模

光学工程师笔试高频考点精解:图解法、入瞳渐晕与系统建模

简介:本资源是面向光学工程领域求职者与在校学生的专业笔试备考资料,聚焦光学系统设计、成像分析与工程计算三大核心能力训练。内容涵盖图解法求像(含基点定位与成像方向判断)、光学基础填空(照明/转像系统、近视镜焦距…

2026/10/14 19:14:23 阅读更多 →
FastAdmin列表操作按钮开发指南:渲染原理与实战避坑

FastAdmin列表操作按钮开发指南:渲染原理与实战避坑

给FastAdmin列表加个操作按钮,听起来是个再基础不过的需求,真做起来却经常让人抓狂:代码写完不到十分钟,按钮却怎么都不显示;权限开了半天,别人还是看不到;好不容易出来了,点击又没反…

2026/10/14 19:14:23 阅读更多 →
CPR 1.3.0 C++ HTTP库构建与链接避坑指南

CPR 1.3.0 C++ HTTP库构建与链接避坑指南

简介:本资源为C开发者快速集成HTTP客户端功能提供的预编译cpr库(1.3.0版本),面向使用Visual Studio 2015进行Windows平台C开发的中初级工程师及学习者,有效规避源码编译依赖复杂、环境配置繁琐等常见痛点。压缩包共27个…

2026/10/14 19:13:23 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →