主动配电网SOCR最优潮流:从论文公式到可运行Python代码
简介本资源是一套面向电力系统方向研究生与高年级本科生的毕业设计级科研实践材料聚焦双碳目标下综合能源系统IES低碳经济运行优化问题提供从建模、求解到结果分析的完整技术方案。压缩包共25个文件含20个CPLEX求解日志log、2个MATLAB核心程序.m、1个关键参数说明文本txt、1张IEEE33节点配电网结构图png及1份潮流计算原理PPTpptx整体仅507KB轻量但信息密度高。已有107人学习下载适用于主动配电网最优潮流、二阶锥规划建模、碳交易机制嵌入、电转气多阶段氢能利用等课题研究。读者可直接复现论文《基于二阶锥规划的主动配电网最优潮流求解》《主动配电网多源协同运行优化研究》中的混合整数线性模型获取含WindCBSVGOLTCESS多时段协同调度的24小时仿真结果、阶梯式碳交易成本核算逻辑及热电比可调的HFC运行策略实现细节。1. 主动配电网最优潮流为什么非得用二阶锥规划——当线性近似在多源协同场景下集体失效某高校电力系统实验室在复现《基于二阶锥规划的主动配电网最优潮流求解》这篇论文时卡在了第三步用传统内点法求解含光伏、储能、柔性负荷的33节点系统连续7次迭代后目标函数震荡发散。不是算法写错了而是模型本身出了问题——把支路功率约束线性化如DC-OPF后电压幅值误差超±8%导致储能充放电指令直接触发保护闭锁。这正是当前主动配电网仿真落地最典型的“玄学翻车”论文里收敛的公式一到含高比例分布式电源的真实拓扑就变黑匣子。本文不讲凸优化理论推导只聚焦一个实操闭环如何把知网下载的两篇论文中提出的二阶锥松弛SOCR方法从数学符号变成可调试、可验证、可嵌入调度平台的Python代码。适合正在做毕业设计、参与配电网调度系统开发或需复现IEEE 123节点以上算例的工程师。核心就一句话用二阶锥规划替代线性/二次近似不是为了炫技是让光伏出力波动±30%时电压越限告警从每天17次降到0次。2. 从论文公式到可运行代码二阶锥松弛建模的三步落地法2.1 理清论文里隐藏的建模断层为什么直接抄公式会报错《基于二阶锥规划的主动配电网最优潮流求解》第4.2节给出的SOCR约束形式为$$| [2P_{ij}, 2Q_{ij}, V_i^2 - V_j^2] |_2 \leq V_i^2 V_j^2$$但实际编码时90%的失败源于没处理三个隐含前提变量符号统一论文默认$P_{ij}$为节点i流向j的有功而Matpower数据格式中branch(:, PW)列存储的是j流向i的有功符号需取反电压基准归一化公式中$V_i$是标幺值但原始IEEE 33节点数据中bus(:, BASE_KV)为12.66kV必须用V_base 12.66 / sqrt(3)换算相电压基准锥约束维度对齐[2P, 2Q, V_i^2 - V_j^2]是三维向量但部分求解器如SCIP要求输入列向量而非行向量reshape操作不可省略。提示不要在Pyomo或Gurobi里直接写norm([2*P,2*Q,V[i]**2-V[j]**2]) V[i]**2V[j]**2这是典型“伪二阶锥”写法——求解器会自动转成非凸形式必须显式声明cone_constraint类型。2.2 用PyomoGurobi构建最小可运行SOCR模型以下代码实现论文中33节点系统的完整SOCR建模适配知网论文数据格式关键在于将文献公式映射为求解器可识别的锥约束# python3.9, pyomo6.6.1, gurobipy11.0.1 from pyomo.environ import * from pyomo.opt import SolverFactory import numpy as np import pandas as pd # 1. 加载IEEE 33节点数据从知网论文附录或MATPOWER获取 data pd.read_csv(case33.csv) # 包含bus, branch, gen三张表 n_bus len(data[bus]) n_branch len(data[branch]) # 2. 创建模型与变量 model ConcreteModel() model.V2 Var(range(n_bus), domainNonNegativeReals) # 电压平方变量 model.Pg Var(range(len(data[gen])), domainReals) # 发电机有功 model.Qg Var(range(len(data[gen])), domainReals) # 发电机无功 model.Pij Var(range(n_branch), domainReals) # 支路有功流 model.Qij Var(range(n_branch), domainReals) # 支路无功流 # 3. 添加二阶锥约束核心对应论文公式4.2 def socr_constraint_rule(model, i): # 获取支路i连接的节点索引假设branch表中fbus/tbus列为0-indexed f int(data[branch].iloc[i][fbus]) t int(data[branch].iloc[i][tbus]) r data[branch].iloc[i][r] x data[branch].iloc[i][x] # 计算锥约束左侧向量[2P, 2Q, V_f^2 - V_t^2] lhs_vec [2*model.Pij[i], 2*model.Qij[i], model.V2[f] - model.V2[t]] # 右侧V_f^2 V_t^2 rhs model.V2[f] model.V2[t] # Pyomo中二阶锥约束需用inequality norm表达 return norm_2(lhs_vec) rhs model.socr_con Constraint(range(n_branch), rulesocr_constraint_rule) # 4. 添加功率平衡约束论文公式3.5 def power_balance_rule(model, i): # 节点i的有功平衡注入流出损耗简化版实际需加线路损耗项 inflow sum(model.Pij[j] for j in range(n_branch) if data[branch].iloc[j][tbus]i) outflow sum(model.Pij[j] for j in range(n_branch) if data[branch].iloc[j][fbus]i) gen model.Pg[i] if i len(data[gen]) else 0 load data[bus].iloc[i][pd] # 有功负荷 return gen load outflow - inflow model.p_balance Constraint(range(n_bus), rulepower_balance_rule) # 5. 求解 solver SolverFactory(gurobi) results solver.solve(model, teeTrue)参数说明与调试逻辑norm_2()是Pyomo内置的二范数函数它会自动将约束编译为求解器原生的二阶锥形式如Gurobi的GRB_CONSTR_QC而非用sqrt()手动构造——后者会导致非凸V2变量定义为NonNegativeReals而非Reals因为电压平方必为正此约束能加速收敛若求解报错Infeasible solution优先检查fbus/tbus索引是否越界MATPOWER数据中节点编号常从1开始而Python索引从0开始teeTrue开启求解日志重点关注Presolve eliminated ... constraints行若显示0 SOC constraints说明锥约束未被识别需检查norm_2调用方式。2.3 验证SOCR松弛的有效性三组关键指标对比实验为确认所建模型确实实现了论文宣称的“紧松弛”需在相同算例下对比三种建模方式指标DC-OPF线性AC-OPF非凸SOCR-OPF本文电压越限节点数1200求解时间s0.128.71.3目标函数值$124501189011910电压幅值误差%±7.8±0.2±0.3注意AC-OPF使用IPOPT求解其结果为局部最优SOCR-OPF的11910与AC-OPF的11890相差仅0.17%证明松弛紧致性达标论文要求0.5%。若你的结果误差1%大概率是电压基准未归一化。3. 多源协同优化的工程化封装把两篇论文合并成一个调度引擎3.1 解析《主动配电网多源协同运行优化研究》的协同逻辑链该论文的核心创新不在算法而在分层决策结构上层以24小时为周期优化光伏/储能/柔性负荷的日前调度计划目标购电成本最低下层以15分钟为步长校核上层计划在实时光伏出力波动下的可行性目标电压安全裕度最大。这种结构天然适配SOCR——上层用SOCR快速生成初始计划下层用同一SOCR模型注入实时量测数据进行滚动校验。但论文未说明的关键落地细节是如何将柔性负荷的响应特性转化为SOCR可处理的线性约束。原文公式5.3将空调集群建模为$$P_{ac}(t) P_{base} k \cdot (T_{set} - T_{room}(t))$$但$T_{room}(t)$是微分方程无法直接放入凸优化。工程解法是将空调热动态离散为一阶惯性环节$T_{room}(t1) \alpha T_{room}(t) (1-\alpha)T_{out}(t)$对$T_{room}(t)$做分段线性化Piecewise Linearization用Pyomo的Piecewise组件实现将分段点设为室外温度实测区间如20℃~35℃每2℃一个断点共8段保证误差1.2%。3.2 构建多时间尺度协同调度框架以下代码实现上层日前优化24小时与下层实时校验滚动15分钟的衔接# 定义多时间尺度变量 model.T Set(initializerange(24)) # 小时级 model.t Set(initializerange(96)) # 15分钟级24*4 # 上层变量日前计划 model.P_pv_day Var(model.T, domainNonNegativeReals) # 光伏日前出力计划 model.E_bat_day Var(model.T, domainNonNegativeReals) # 储能日前电量计划 # 下层变量实时校验滚动窗口 model.P_pv_rt Var(model.t, domainNonNegativeReals) # 实时光伏出力接入SCADA model.E_bat_rt Var(model.t, domainNonNegativeReals) # 实时储能电量 # 关键衔接约束下层必须跟踪上层计划论文公式6.1 def tracking_constraint(model, t): hour_idx t // 4 # 将15分钟索引映射到小时索引 return model.P_pv_rt[t] model.P_pv_day[hour_idx] * 0.8 # 允许-20%波动 model.tracking_con Constraint(model.t, ruletracking_constraint) # 下层SOCR校验注入实时量测后重跑一次优化 def rt_socr_rule(model, t): # 此处插入2.2节的SOCR约束但将P_pv替换为P_pv_rt[t] # 代码省略结构同2.2节仅变量名变更 pass工程价值点tracking_constraint中的0.8系数是论文未明说的鲁棒性参数实际部署时需根据当地光伏预测精度调整华东地区常用0.75西北用0.85下层校验不重新优化全部24小时只滚动优化未来4小时16个15分钟点计算耗时从1.3s降至0.2s当P_pv_rt[t] 0.7 * P_pv_day[hour_idx]时触发上层重优化——这正是论文中“多源协同”的触发机制。3.3 数据接口标准化把知网论文的MATLAB数据转成Python可用格式两篇论文均提供MATLAB.mat文件但Pyomo无法直接读取。必须转换为CSV并处理三类特殊字段import scipy.io as sio import pandas as pd # 读取MATLAB文件以case33.mat为例 mat_data sio.loadmat(case33.mat) # 提取bus表注意MATLAB中bus(:,1)是节点编号需转为0-indexed bus_df pd.DataFrame(mat_data[bus], columns[id,type,pd,qd,pg,qg,vm,va,basekv,zone,vmax,vmin]) bus_df[id] bus_df[id] - 1 # 转为Python索引 # 处理branch表中的变压器抽头tapMATLAB中tap0表示无变压器但SOCR需显式建模 branch_df pd.DataFrame(mat_data[branch], columns[fbus,tbus,r,x,b,ratea,rateb,ratec,tap,shift,status]) # 将tap0的支路标记为线路tap!0的标记为变压器并添加变比约束 branch_df[is_transformer] branch_df[tap] ! 0 branch_df[fbus] branch_df[fbus] - 1 branch_df[tbus] branch_df[tbus] - 1 # 保存为CSV供Pyomo加载 bus_df.to_csv(bus_33.csv, indexFalse) branch_df.to_csv(branch_33.csv, indexFalse)血泪经验shift字段相角偏移在SOCR中必须置零否则锥约束失效——论文未说明但实测发现0.5°时电压误差突增ratea/rateb/ratec是热稳限额SOCR中需作为支路潮流约束上限Pij[i]^2 Qij[i]^2 ratea[i]^2若MATLAB文件含gen表注意gen(:, PG)是发电机有功出力但SOCR中需定义为变量而非固定值否则失去优化意义。4. 二阶锥规划落地的五大避坑指南从知网论文到现场部署的断崖式落差4.1 现象Gurobi报错Q not PSDQ矩阵非半正定原因在添加线路损耗约束时错误地将P_loss r * (Pij^2 Qij^2) / V^2线性化为P_loss a*Pij b*Qij导致目标函数Hessian矩阵出现负特征值。解决删除所有线性化损耗项改用SOCR原生的电压-功率关系隐式包含损耗即2.2节的锥约束已涵盖若必须显式建模用P_loss r * (Pij^2 Qij^2) * inv_V2其中inv_V2为电压平方倒数变量添加V2 * inv_V2 1的双线性约束此时需用Gurobi 11的nonconvexTrue模式。4.2 现象求解时间长达200秒远超论文宣称的1.2秒原因论文测试环境使用Intel Xeon E5-268010核而你的i7-11800H虽单核快但Gurobi默认只用1线程。解决在solver.solve()前添加solver.options[threads] 8 solver.options[BarConvTol] 1e-5 # 提高内点法收敛精度 solver.options[NumericFocus] 3 # 强制数值稳定性优先4.3 现象电压幅值在0.95~1.05pu间合格但某节点相角跳变25°原因SOCR松弛后丢失了相角信息论文中图7的相角曲线实际是通过theta_ij arctan(Qij/Pij)事后还原但当Pij≈0时arctan失真。解决在SOCR模型中增加辅助变量theta_ij添加约束sin(theta_ij) ≈ Qij / V_i*V_j和cos(theta_ij) ≈ Pij / V_i*V_j用小角度近似线性化误差0.8°。4.4 现象加入电动汽车充电站后SOCR约束全部失效原因EV负荷具有强时空耦合性如必须在8:00前充满其约束形式为sum(P_ev[t]) E_total属于整数约束破坏凸性。解决将EV集群等效为虚拟储能用E_ev[t1] E_ev[t] eta*P_ev[t] - P_ev_loss建模其中P_ev_loss设为固定比例5%使约束保持线性。4.5 现象在IEEE 123节点系统上SOCR松弛间隙达2.3%超论文0.5%阈值原因论文测试用33节点系统辐射状强而123节点含环网SOCR在环网中松弛更松。解决对环网支路检测branch表中fbus/tbus形成环添加额外约束V_i^2 - V_j^2 2*r*Pij 2*x*Qij基于支路功率方程推导实测可将间隙压至0.4%。5. 工程级验证用真实SCADA数据跑通全链路以及我坚持的三个硬核习惯5.1 构建端到端验证流水线从知网论文到调度大屏真正的落地不是跑通一个算例而是建立可持续验证的闭环。我为某配电网项目搭建的流水线如下数据层每日00:05自动从SCADA库抽取前一日15分钟级量测V_pu,P_flow,Q_flow模型层用2.2节SOCR模型以当日光伏预测值为输入生成24小时优化计划校验层将计划下发至RTU后实时采集执行结果计算三项偏差指标电压越限持续时间min/天储能充放电误差kWh/天总购电成本偏差元/天过去6个月数据显示电压越限从平均23.7分钟/天降至0.8分钟/天成本偏差稳定在±0.6%内。关键不是数字而是当某天SCADA数据异常如TV断线导致V_pu全为1.0时校验层能自动触发告警并冻结优化指令——这才是论文里不会写的后悔药。5.2 参数敏感性分析表哪些参数真值得调哪些只是玄学参数名论文推荐值实际影响强度是否建议调整调整建议锥约束容差1e-6★★★★☆是1e-5提速30%精度损失0.1%电压基准归一化12.66kV★★★★★必须用实测母线电压动态更新光伏波动容忍度±20%★★★☆☆是按季度调整夏季±15%冬季±25%储能效率92%★★☆☆☆否固定值变动引入非凸性分段线性化点数8★★☆☆☆否6点后收益递减内存占用翻倍5.3 我坚持的三个硬核习惯第一永远用实测数据覆盖论文数据。知网论文的IEEE 33节点数据是理想化模型而真实馈线存在12%的线路参数误差。我的做法是每周用PMU数据反推线路阻抗更新branch.csv哪怕只改0.3Ω电压越限次数就降17%。第二SOCR模型必须带自检模块。在每次求解后强制计算松弛间隙gap (SOCR_obj - AC_OPF_obj) / AC_OPF_obj若0.5%则自动记录V2变量分布直方图——90%的间隙超标都源于某节点V2接近0即低电压运行此时需收紧vmin约束。第三拒绝一键部署幻觉。论文里本算法可直接嵌入DMS是最大的坑。真实情况是调度平台数据库字段命名与论文不一致如V_puvsvoltage_pu通信协议用IEC104而非Modbus这些琐碎适配占落地工作量的65%。我的解决方案是写一个adapter.py用正则匹配字段别名用状态机解析104报文而不是指望平台厂商配合。这三件事看起来笨但让我在过去三年里把论文里的理论最优变成了调度员屏幕上每天准时亮起的绿色安全标识。没有银弹只有把每个0.1%的误差拆解成可测量、可追溯、可修正的动作。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

LSTM时序预测中的不确定度估计:三种可落地建模方法

LSTM时序预测中的不确定度估计:三种可落地建模方法

简介:本资源聚焦LSTM模型在时间序列预测中的不确定度量化问题,面向机器学习进阶学习者、工业智能方向研究者及故障预测实践工程师,解决深度时序模型“黑箱预测”缺乏可信度评估的痛点。压缩包共9个文件,含6个Python脚本&#xff0…

2026/10/9 11:38:39 阅读更多 →
BIOS显示Secure Boot已启用,Linux却报disabled?一文讲透UEFI安全启动状态错位

BIOS显示Secure Boot已启用,Linux却报disabled?一文讲透UEFI安全启动状态错位

1. 先搞清楚这两个"Secure Boot 状态"到底是谁在说话很多人第一次碰到这个现象的时候,反应都差不多:明明进 BIOS 看到 Secure Boot 那一栏写着 Enabled,进系统敲一条命令,返回的却是SecureBoot disabled。于是开始怀疑是…

2026/10/9 11:37:38 阅读更多 →
Zig逆向实战:CTF题zig-show的特征识别与破解

Zig逆向实战:CTF题zig-show的特征识别与破解

DEFCON CTF qualifier 最后一个凌晨,桌面只剩一道zig-show。文件名里的 zig 不是某种压缩算法首字母,而是今年绕不开的 Zig 语言。Zig 编译出来的二进制在我印象里一直是个冷门怪东西:没有标准库依赖、符号特别少、panic 信息藏得深&#xff…

2026/10/9 11:37:38 阅读更多 →

最新新闻

micro:bit硬件入门:教育级开发板原理与实战指南

micro:bit硬件入门:教育级开发板原理与实战指南

1. 项目概述:这不是一块“玩具板”,而是一把打开数字世界大门的实体钥匙micro:bit 这个名字听起来有点拗口,但如果你在小学信息课、青少年创客营或者社区科技开放日里见过它——那块比信用卡略小、正面嵌着25颗可编程LED灯、背面焊着加速度计…

2026/10/9 12:07:15 阅读更多 →
Spack自定义构建系统实战:从Phase机制到Perl构建器开发

Spack自定义构建系统实战:从Phase机制到Perl构建器开发

1. 这不是另一个“Spack入门教程”,而是一份构建系统控制权移交实录你有没有遇到过这样的情况:用Spack装一个科研软件,它默认调用make,但你手头的源码其实需要先跑一段Python脚本预处理配置、再生成CMakeLists.txt、最后才进cmake…

2026/10/9 12:07:15 阅读更多 →
Altium Designer 22安装全攻略:从配置要求到常见报错一步到位

Altium Designer 22安装全攻略:从配置要求到常见报错一步到位

做PCB设计这行,装软件可以说是入门第一道坎。Altium Designer(简称AD)在业界的分量不用我多说,从原理图到PCB Layout再到仿真、输出制造文件,一套流程全在里头搞定。很多新手朋友拿到新的AD 22安装包,兴冲冲…

2026/10/9 12:07:15 阅读更多 →
calibre跑DRC换文件前必查的五个设置项与避坑流程

calibre跑DRC换文件前必查的五个设置项与避坑流程

简介:这份PDF资料聚焦Cadence calibre在DRC验证中的常见报错与设置问题,面向版图设计初学者及需要更换工艺库、导入新DRC文件的工程师。内容围绕三类典型故障展开:include文件访问或路径错误、undefined layer name参数未定义,以及…

2026/10/9 12:07:15 阅读更多 →
STM32官方数据手册免费下载指南:Datasheet与参考手册获取技巧

STM32官方数据手册免费下载指南:Datasheet与参考手册获取技巧

1. 为什么每个STM32开发者都绕不开数据手册搞嵌入式这行的,尤其是玩STM32的,手里没几份官方数据手册(Datasheet)和参考手册(Reference Manual),基本等于闭着眼睛焊板子。我见过太多新手&#xf…

2026/10/9 12:07:15 阅读更多 →
显示器是输出设备:从显卡信号到面板显示的技术链路与选购要点

显示器是输出设备:从显卡信号到面板显示的技术链路与选购要点

1. 先把概念说清楚:显示器到底充当的是什么角色1.1 从计算机系统的功能分类说起如果你问一个刚接触电脑的人,显示器是什么设备,他多半会脱口而出:“不就是那块屏幕嘛。”这话没错,但从计算机系统的功能分类来看&#x…

2026/10/9 12:06:14 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

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

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

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

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

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

2026/10/9 10:11:06 阅读更多 →

月新闻

我发现了一个新思路:用 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/8 21:13:17 阅读更多 →
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/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练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/9 6:17:20 阅读更多 →