当前位置: 首页 > news >正文

高压开关柜局部放电信号分析系统

高压开关柜局部放电信号分析系统 - 开发笔记

1. 项目概述

这个项目是我在2025年实现的高压开关柜局部放电信号分析系统,目的是通过采集分析局部放电信号,判断设备的工作状态和潜在故障。系统包含从信号模拟生成、特征提取、到深度学习模型训练的全流程,最终可自动生成分析报告。

2. 系统架构

系统分为四个核心模块:

  1. 数据生成模块
    基于物理模型模拟不同工况下的局放信号
    可配置参数:脉冲数量、中心频率、采样率等
    生成三种工况(A/B/C)的信号数据集

  2. 特征提取模块
    时域特征:最大值、均值、方差、偏度、峭度等
    频域特征:主频、频带能量比、频谱中心、带宽等
    生成特征矩阵和可视化图表

  3. 深度学习模型模块
    实现多种神经网络:1D-CNN、LSTM、GRU、SimpleRNN
    引入注意力机制,提高对关键特征的提取能力
    超参数优化和多种评估指标(准确率、精确率、召回率、F1值)
    模型结果可视化和比较

  4. 报告生成模块
    自动生成PDF分析报告
    支持中文和ASCII(英文)两种报告格式
    包含专业图表和分析结论

3. 数据说明

项目中的三种工况代表设备的不同运行状态,进一步细分为九种具体故障类型:

  • 工况A(10个脉冲,中心频率150Hz)
    A-1: 正常状态
    A-2: 轻微接触不良
    A-3: 轻微异物

  • 工况B(20个脉冲,中心频率200Hz)
    B-1: 中度接触松动
    B-2: 中度异物
    B-3: 中度过热

  • 工况C(30个脉冲,中心频率250Hz)
    C-1: 严重绝缘损伤
    C-2: 严重过热
    C-3: 严重接触故障

每个工况生成100个样本,通过随机分布的脉冲位置、振幅和噪声,模拟真实局部放电信号的特性。

4. 实现细节

4.1 信号生成

信号生成采用衰减振荡脉冲加带通滤波的方法:

def generate_pd_signal(fs=10000, duration=1, num_pulses=20, freq_center=200):# 创建时间数组和空信号t = np.arange(0, duration, 1/fs)n_samples = len(t)pd_signal = np.zeros(n_samples)# 随机生成脉冲位置和振幅pulse_positions = np.random.randint(0, n_samples - pulse_width, num_pulses)pulse_amplitudes = np.random.uniform(amplitude_range[0], amplitude_range[1], num_pulses)# 生成脉冲并添加到信号中for i in range(num_pulses):pos = pulse_positions[i]amp = pulse_amplitudes[i]pulse = amp * np.exp(-np.arange(pulse_width)/100) * np.sin(2*np.pi*freq_center*np.arange(pulse_width)/fs)pd_signal[pos:pos+pulse_width] += pulse# 添加噪声noise = np.random.normal(0, noise_level * np.max(pd_signal), n_samples)pd_signal += noisereturn pd_signal, t

4.2 特征提取

从原始信号中提取了多种特征,这里详细说明几个关键特征的计算方法:

  1. 脉冲检测和间隔计算

    def detect_pulses(sig, threshold_factor=0.3, fs=10000):threshold = threshold_factor * np.max(np.abs(sig))binary_signal = np.abs(sig) > thresholdbinary_signal = binary_erosion(binary_signal, structure=np.ones(5))labeled_signal, num_pulses = label(binary_signal)# 计算脉冲间隔pulse_positions = []for i in range(1, num_pulses + 1):pulse = np.where(labeled_signal == i)[0]if len(pulse) > 0:pulse_center = int(np.mean(pulse))pulse_positions.append(pulse_center)if len(pulse_positions) > 1:pulse_positions.sort()intervals = np.diff(pulse_positions) / fs  # 转换为秒return intervals, pulse_positionselse:return np.array([]), pulse_positions
    
  2. 频谱特征计算

    def calculate_spectral_features(f, Pxx):# 计算频谱中心spectral_centroid = np.sum(f * Pxx) / np.sum(Pxx) if np.sum(Pxx) > 0 else 0# 计算带宽(2阶频率矩)bandwidth = np.sqrt(np.sum(((f - spectral_centroid) ** 2) * Pxx) / np.sum(Pxx)) if np.sum(Pxx) > 0 else 0return spectral_centroid, bandwidth
    

4.3 深度学习模型

实现了四种模型架构,并引入了注意力机制,最终1D-CNN+Attention模型表现最佳(准确率达99.5%):

4.3.1 注意力机制实现
def attention_layer(inputs):"""实现注意力机制层"""# 输入的形状为(batch_size, time_steps, features)time_steps = inputs.shape[1]# 计算注意力权重a = Dense(time_steps, activation='tanh')(inputs)a = Dense(time_steps, activation='softmax')(a)# 将注意力权重应用到原始输入上a_probs = Permute((2, 1))(a)attention_weighted = Multiply()([inputs, a_probs])return attention_weighted
4.3.2 带注意力机制的CNN模型
def create_1dcnn_with_attention_model(input_shape, num_classes):"""创建带有注意力机制的1D-CNN模型"""inputs = Input(shape=input_shape)# 第一个卷积块x = Conv1D(filters=64, kernel_size=3, activation='relu')(inputs)x = MaxPooling1D(pool_size=2)(x)# 第二个卷积块x = Conv1D(filters=128, kernel_size=3, activation='relu')(x)x = MaxPooling1D(pool_size=2)(x)# 第三个卷积块x = Conv1D(filters=128, kernel_size=3, activation='relu')(x)# 应用注意力机制x_attention = attention_layer(x)# 池化层x = MaxPooling1D(pool_size=2)(x_attention)# 全连接层x = Flatten()(x)x = Dropout(0.5)(x)x = Dense(128, activation='relu')(x)outputs = Dense(num_classes, activation='softmax')(x)# 创建模型model = Model(inputs=inputs, outputs=outputs)model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])return model

引入注意力机制的优势:

  1. 使模型能够自动学习关注信号中的关键部分
  2. 提高了对重要故障特征的权重,降低了噪声干扰
  3. 在不增加大量参数的情况下提升了模型性能
  4. 提高了模型的可解释性,可以可视化模型关注的信号区域

4.4 评估指标体系

扩展了模型评估指标体系,不仅包括准确率,还包括:

  1. 精确率(Precision):模型预测为正例中实际为正例的比例
  2. 召回率(Recall):实际为正例中被模型预测为正例的比例
  3. F1值:精确率和召回率的调和平均数,综合评价指标
  4. ROC曲线与AUC:反映模型在不同阈值下的性能

评估结果表明,带注意力机制的模型在所有指标上都有明显提升:

模型准确率精确率召回率F1值
1D-CNN(原始)0.98250.98300.98250.9827
1D-CNN+Attention0.99500.99520.99500.9951
LSTM(原始)0.96500.96620.96500.9656
LSTM+Attention0.98250.98310.98250.9828
GRU(原始)0.96750.96810.96750.9678
GRU+Attention0.98750.98780.98750.9876

4.5 故障子类型分析

本项目进一步细化了故障类型分析,将三种主要工况细分为九种具体故障子类型。通过分析不同子类型的特征模式和模型识别能力,获得了更精细的故障诊断结果:

  1. 子类型混淆矩阵:分析模型在细分故障类型上的表现
  2. 子类型性能指标:计算每种具体故障类型的精确率、召回率和F1值
  3. 特征重要性分析:识别对不同故障子类型判断最关键的特征

结果表明,带有注意力机制的1D-CNN模型在绝大多数故障子类型上都取得了良好的识别效果,特别是针对"严重过热"和"严重绝缘损伤"等关键故障类型的识别准确率超过98%。

5. 使用说明

5.1 环境安装

为方便复现实验结果,可通过以下命令一键安装所需的环境依赖:

pip install -r requirements.txt

requirements.txt 文件内容如下:

numpy>=1.19.5
pandas>=1.3.0
matplotlib>=3.4.2
seaborn>=0.11.1
scikit-learn>=0.24.2
scipy>=1.7.0
tensorflow>=2.6.0
reportlab>=3.5.68

或者可以直接运行以下命令安装所有依赖:

pip install numpy pandas matplotlib seaborn scikit-learn scipy tensorflow reportlab

5.2 基本用法

运行完整分析并生成报告:

python run_reports.py

5.3 使用带注意力机制的模型:

python pd_models_attention.py

5.4 只生成模拟数据:

python pd_simulation.py

5.5 只进行特征提取:

python pd_analysis.py

5.6 生成ASCII版本报告(解决中文显示问题):

python run_reports.py --ascii

6. 开发过程中的挑战与解决方案

  1. 中文字体显示问题

    • 问题:PDF报告中无法正确显示中文字符
    • 解决:添加了字体检测和修复脚本(fix_fonts.py),同时提供了ASCII版本作为备选
  2. 特征提取参数调整

    • 问题:脉冲检测算法对噪声很敏感
    • 解决:加入了信号预处理和自适应阈值,同时引入形态学操作过滤干扰
  3. 模型训练优化

    • 问题:模型容易过拟合和训练不稳定
    • 解决:加入Dropout、正则化和早停策略;通过超参数优化寻找最佳配置
  4. 注意力机制实现挑战

    • 问题:如何在1D信号上有效实现注意力机制
    • 解决:开发了适用于时序信号的自注意力层,并在卷积特征图上应用
  5. 故障子类型数据不足

    • 问题:细分故障类型的标注数据不足
    • 解决:基于主类别的概率分布构建细分类别,实现对故障子类型的模拟分析

7. 可视化结果说明

系统在results_demo目录中生成了一系列可视化结果,直观展示了模型性能和数据分析成果:

7.1 模型性能比较

模型性能
model_performance_comparison.png展示了各模型的准确率、精确率、召回率和F1值的对比,清晰显示出带注意力机制的模型相比原始模型的性能提升。

对应的CSV文件model_performance_comparison.csv提供了详细的数值数据:

Model,Accuracy,Precision,Recall,F1,Model_Type,Base_Model
1D-CNN,0.9825,0.983,0.9825,0.9827,Original,1D-CNN
LSTM,0.965,0.9662,0.965,0.9656,Original,LSTM
GRU,0.9675,0.9681,0.9675,0.9678,Original,GRU
SimpleRNN,0.9235,0.9245,0.9235,0.924,Original,SimpleRNN
1D-CNN_Attention,0.995,0.9952,0.995,0.9951,With Attention,1D-CNN
LSTM_Attention,0.9825,0.9831,0.9825,0.9828,With Attention,LSTM
GRU_Attention,0.9875,0.9878,0.9875,0.9876,With Attention,GRU
SimpleRNN_Attention,0.955,0.9558,0.955,0.9554,With Attention,SimpleRNN

7.2 注意力机制可视化

在这里插入图片描述

attention_visualization.png直观展示了注意力机制的工作原理:
顶部:原始带噪声信号
中部:注意力权重分布,显示模型关注的信号区域
底部:应用注意力机制后的信号,突出了关键特征

这一可视化帮助理解注意力机制如何过滤噪声,聚焦于信号中最具诊断价值的部分。

7.3 故障子类型分析

在这里插入图片描述

fault_subtypes_f1_comparison.png比较了原始模型与注意力模型在9种故障子类型上的F1值,直观展示了注意力机制带来的诊断能力提升,特别是在B类(中度故障)上的显著改进。

fault_subtypes子目录包含更详细的故障子类型分析结果:

  • 子类型混淆矩阵:展示各子类型间的误判情况
  • 详细的子类型准确率、精确率和召回率数据

7.4 ROC曲线分析

在这里插入图片描述

roc_curves.png展示了模型在三种主要工况(A、B、C)下的ROC曲线:

工况A (AUC = 0.99):轻微故障识别效果最佳

工况B (AUC = 0.97):中度故障识别效果相对较弱但仍然出色

工况C (AUC = 0.98):严重故障识别效果也很好

ROC曲线直观展示了模型在不同决策阈值下的敏感性和特异性权衡,高AUC值表明模型具有优秀的分类能力。

这些可视化结果对于理解模型性能、故障特征和注意力机制的作用至关重要,同时也为电力设备维护决策提供了直观依据。

8. 结论

系统在三种工况及其细分的九种故障子类型的分类上取得了优异的性能,特别是引入注意力机制后,准确率、精确率、召回率和F1值等指标都有明显提升。1D-CNN+注意力机制模型表现最佳,准确率达到99.5%,证明了该方法在局部放电分析中的有效性。

系统不仅能够区分主要工况类别,还能进一步分析具体故障类型,为电力设备的精准预测性维护提供了有力工具,有助于及早发现设备异常,降低运维成本,避免严重故障的发生。


记录时间:2025年4月27日
最后更新:2024年4月28日

相关文章:

高压开关柜局部放电信号分析系统

高压开关柜局部放电信号分析系统 - 开发笔记 1. 项目概述 这个项目是我在2025年实现的高压开关柜局部放电信号分析系统,目的是通过采集分析局部放电信号,判断设备的工作状态和潜在故障。系统包含从信号模拟生成、特征提取、到深度学习模型训练的全流程…...

ai环境conda带torch整体迁移。

conda打包好的GPU版torch环境,其实很简单,就是conda装好的torch环境env整体打包,然后到新机器上再解压到env路径。 打开搭建好的环境,找自己路径,我默认的是这个。 cd/root/anaconda3/envs/ 然后整个文件夹打包。tar -…...

电价单位解析与用电设备耗电成本计算

一、电价单位 元/kWh 的解析 定义: 元/kWh 表示每千瓦时电能的费用,即1度电的价格。例如,若电价为0.5元/kWh,则使用1千瓦的电器1小时需支付0.5元。 电价构成: 中国销售电价由四部分组成: 上网电价&#xf…...

辛格迪客户案例 | 华道生物细胞治疗生产及追溯项目(CGTS)

01 华道(上海)生物医药有限公司:细胞治疗领域的创新先锋 华道(上海)生物医药有限公司(以下简称“华道生物”)是一家专注于细胞治疗技术研发与应用的创新型企业,尤其在CAR-T细胞免疫…...

C++(初阶)(十三)——继承

继承 继承概念示例 定义格式 继承和访问方式继承方式访问方式实例 继承类模板基类和派生类之间的转换继承中的作用域隐藏规则选择题 派生类的默认成员函数默认成员函数派生类中的实现 实现一个不能被继承的类继承与友元继承与静态成员多继承及其菱形继承问题虚继承多继承指针偏…...

S09-电机运行时间

感谢粉丝网友的支持,也欢迎你们的讨论和分享。昨天我们简单讨论了一下标准功能块的重要性,仅仅是拿电机块举了一个例子,有粉丝问能否把电机运行时间做到块里面,完善一下功能呢?那是绝对当然的100%可以的啊!…...

大语言模型(LLMs)微调技术总结

文章目录 全面总结当前大语言模型(LLM)微调技术1. 引言2. 为什么需要微调?3. 微调技术分类概览4. 各种微调技术详细介绍4.1 基础微调方法4.1.1 有监督微调(Supervised Fine-Tuning, SFT)4.1.2 全参数微调(F…...

python练习:求数字的阶乘

求数字的阶乘 eg:5的阶乘 54321 """ 求数字的阶乘 eg:5的阶乘 5*4*3*2*1 """count 1 for i in range(1,6):count count * iprint(count)运行结果:...

综合练习一

背景 某银行监管系统,需要设计并实现用户登入记录功能,每个用户登入系统时,系统自动记录登入用户的账户、登入时间、登入失败成功与否信息等,普通用户只能登入登出,管理员可以登入后查看日志及分析统计信息等。 用户…...

List--链表

一、链表 1.1 什么是List? 在C语言中,我们需要使用结构体struct来进行List(链表)的实现: struct ListNode {DataType Data;//DataType是任意类型的变量定义struct ListNode* next;//指向下一个结点的指针变量 }; 与之前的vect…...

SpeedyAutoLoot

SpeedyAutoLoot自动拾取插件 SpeedyAutoLoot.lua local AutoLoot CreateFrame(Frame)SpeedyAutoLootDB SpeedyAutoLootDB or {} SpeedyAutoLootDB.global SpeedyAutoLootDB.global or {}local BACKPACK_CONTAINER BACKPACK_CONTAINER local LOOT_SLOT_CURRENCY LOOT_SLOT…...

编程日志4.23

栈的C顺序表实现 #include<iostream> #include<stdexcept> using namespace std; //模板声明&#xff0c;表明Stack类是一个通用的模板&#xff0c;可以用于存储任何类型的元素T template<typename T> //栈的声明 //Stack类的声明&#xff0c;表示一个栈的…...

打印所有字段

package com.volvo.midend.vehicle;import com.volvo.midend.vehicle.dto.out.vista.VistaDemoVO;import java.lang.reflect.Field;public class TestAllFiled {// 递归打印类的所有字段public static void printAllFields(Class<?> clazz, int indentLevel) {// 根据缩…...

4G FS800DTU上传图像至巴法云

目录 1 前言 2 准备工作 2.1 硬件准备 2.2 软件环境 2.3 硬件连接 3 实现方案 4 巴法云平台账号创建与设备联网配置 4.1 创建账号 4.2 进入巴法云 4.3 获取联网参数 4.4 连接巴法云 5 拍照上传至巴法云 6 ESP32-CAM程序 7 总结 1 前言 巴法云(Bemfa Cloud)是一个…...

一键叠图工具

写了个拼图小工具 供大家测试 APP安卓的 测试下载 点击下载 百度网盘: https://pan.baidu.com/s/17B5KVIMMZlOAsF7a16KNug?pwd1234 提取码: 1234 拼图步骤&#xff1a;选图--选择变亮或变暗--滤镜发色 在正式开始之前&#xff0c;我们来定义几条原则先&#xff08;熟悉…...

【OSG学习笔记】Day 12: 回调机制——动态更新场景

UpdateCallback 在OpenSceneGraph&#xff08;OSG&#xff09;里&#xff0c;UpdateCallback是用来动态更新场景的关键机制。 借助UpdateCallback&#xff0c;你能够实现节点的动画效果&#xff0c;像旋转、位移等。 NodeCallback osg::NodeCallback 是一个更通用的回调类&…...

快速上手Prism WPF 工程

1、Prism 介绍 ​定位​&#xff1a; Prism 是 ​微软推出的框架&#xff0c;专为构建 ​模块化、可维护的复合式应用程序​ 设计&#xff0c;主要支持 WPF、Xamarin.Forms、UWP 等平台。​核心功能​&#xff1a; ​模块化开发​&#xff1a;将应用拆分为独立模块&#xff0c…...

Dockerfile讲解与示例汇总

容器化技术已经成为应用开发和部署的标准方式,而Docker作为其中的佼佼者,以其轻量、高效、可移植的特性,深受开发者和运维人员的喜爱。本文将从实用角度出发,分享各类常用服务的Docker部署脚本与最佳实践,希望能帮助各位在容器化之路上少走弯路。 无论你是刚接触Docker的…...

MATLAB Coder代码生成(工业部署)——MATLAB技巧

MATLAB Coder是MATLAB生态中用于将算法代码转换为C/C++代码的核心工具,其生成的代码可直接部署到嵌入式硬件、工业控制器或企业级应用中,尤其在智能制造、物联网和实时控制领域具有广泛应用。 通过 MATLAB Coder,可以轻松地将 MATLAB 代码转换为高效的 C/C++ 代码,适用于嵌…...

3、CMake语法:制作和使用动态库和静态库

动态库和静态库 1 动态库和静态库简介1.1 静态库静态库文件类型.lib 文件.pdb 文件 1.2 动态库动态库文件类型 1.3 总结 2. 制作和使用静态库2.1 CMake指定输出的路径 2.2 VS利用第三方库编译静态库 2.3 使用静态库CMake链接静态库VS链接静态库 3. 制作和使用动态库3.1 CMake指…...

使用双端队列deque模拟栈stack

使用双端队列deque模拟栈stack 今天的内容有点简单~ 众所周知&#x1f913;&#x1f446;&#xff0c;栈作为一个先进后出的结构&#xff0c;在计算机的世界确实能够发挥很多的作用。 而我们C祖师爷本贾尼是第一批把这个结构作为实实在在的容器做进std的人~ 那为了更好的了解…...

Spring系列四:AOP切面编程第三部分

&#x1f40b;AOP-JoinPoint 1.通过JoinPoint可以获取到调用方法的签名 2.其他常用方法 ●代码实现 1.com.zzw.spring.aop.aspectj.SmartAnimalAspect Aspect //表示是一个切面类 Component //会将SmartAnimalAspect注入到容器 public class SmartAnimalAspect {//给Car配置…...

为什么使用ThreadLocal后要调用remove()方法呢?

ThreadLocalMap中包含一个数组&#xff0c;每个节点对应的类名叫Entry&#xff0c;这个类继承WeakReference<ThreadLocal<?>>&#xff0c;entry中有两个属性&#xff1a;key和value。特别需要指出的是key来自于父类中的threadLocal对象。 为了避免内存泄露&#…...

如何在idea 中写spark程序

在 IntelliJ IDEA 中编写 Spark 程序可以通过以下步骤进行&#xff1a; 1. **安装 Scala 插件**&#xff1a;首先确保已经安装了 Scala 插件。在 IntelliJ IDEA 中选择 File -> Settings -> Plugins -> 搜索 Scala -> 安装插件。 2. **创建新项目**&#xff1a;在…...

国产全兼容ADS131E08芯片---LHA7878

LHA787X是一系列多通道同步采样、24位A-∑模数转换器(ADC)&#xff0c;内置可编程增益放大器(PGA)、内部基准和振荡器。凭借ADC的宽动态范围、可扩展数据传输速率以及内部故障检测监测计&#xff0c;LHA787X受到工业电源监测和保护以及测试和测量应用的青睐。真正的高阻抗输入支…...

免费LUT网站

FREE LUTs | Color Lookup Tables - Presetpro.com...

ICH CTD中ISS的关键内容与作用

1. ISS在ICH CTD中的定位 1.1 模块2与模块5的分工 1.1.1 模块2:整体总结的全局视角 模块2的2.7.4 ISS对所有临床研究安全性数据整合分析,涵盖I-III期试验,提供药物安全性全局视角,确保其在目标人群中的可接受性。 ISS需与风险控制措施关联,如说明书警示、风险管理计划,…...

Ocelot的应用案例

搭建3个项目&#xff0c;分别是OcelotDemo、ServerApi1和ServerApi2这3个项目。访问都是通过OcelotDemo进行轮训转发。 代码案例链接&#xff1a;https://download.csdn.net/download/ly1h1/90715035 1.架构图 2.解决方案结构 3.步骤一&#xff0c;添加Nuget包 4.步骤二&…...

OpenCV VC编译版本

vc12 Visual Studio 2013 vc14 Visual Studio 2015 vc15 Visual Studio 2017 vc16 Visual Studio 2019 vc17 Visual Studio 2022 opencv支持情况&#xff1a; OpenCV2.4.10 支持 VS2010&#xff0c;VS2012&#xff0c;VS2013 &#xff08;x64&#xff0c;x86&#xff09; …...

测试用例介绍

文章目录 一、测试用例基本概念1.1 测试用例基本要素 二、测试用例的设计方法2.1 基于需求的设计方法2.2 等价类2.3 边界值2.4 错误猜测法2.6 场景设计法2.7 因果图2.5 正交排列 三、综合&#xff1a;根据某个场景去设计测试用例&#xff08;万能公式&#xff09;四、如何使用F…...

Vue 2 中 Vue 实例对象(vm)的所有核心方法,包含完整示例、使用说明及对比表格

以下是 Vue 2 中 Vue 实例对象&#xff08;vm&#xff09;的所有核心方法&#xff0c;包含完整示例、使用说明及对比表格&#xff1a; 1. $mount() 作用&#xff1a;手动挂载 Vue 实例到 DOM 元素 参数&#xff1a; element&#xff1a;DOM 元素或选择器字符串&#xff08;可…...

大模型的scaling laws:Scaling Laws for Neural Language Models

一、TL&#xff1b;DR Loss与模型size、数据集大小以及用于训练的计算量呈幂律关系其他架构细节&#xff0c;如网络宽度或深度&#xff0c;在较宽范围内影响极小简单的公式可以描述过拟合与模型/数据集大小的依赖关系&#xff0c;以及训练速度与模型大小的依赖关系作用&#x…...

【Docker】使用 jq 管理镜像源

国内访问 Docker Hub 速度较慢&#xff0c;通过配置国内镜像加速器&#xff0c;可显著加快拉取镜像速度。使用 jq 操作 /etc/docker/daemon.json 的 registry-mirrors 字段&#xff0c;可避免手动编辑带来的格式错误&#xff0c;并在添加、替换、删除等场景下保持高效与安全。 …...

青年座谈会的读书汇报

今天&#xff0c;单位组织了一个五四青年座谈会&#xff0c;我们室由于大家都在出差忙之类的&#xff0c;我必须要参加&#xff0c;还要我做一个汇报&#xff0c;我一新来的还没深入到研发工作中&#xff0c;于是决定写了一篇简单的读书笔记&#xff0c;再用deepseek润色一下&a…...

leetcode刷题日记——两数相加

[ 题目描述 ]&#xff1a; [ 思路 ]&#xff1a; 通过两个循环将 l1, l2存储的数字读出&#xff0c;然后求和&#xff0c;再将结果存储链表中由此发了一个问题&#xff0c;结果溢出&#xff0c;如果使用更大的 long 类型&#xff0c;后续不出所料&#xff0c;仍然超出所以只能…...

使用腾讯地图检索地点

最近需求又多了&#xff0c;现在需要使用腾讯地图检索功能&#xff0c;需要经纬度返给商户后端 效果图&#xff1a; 把地图写成组件 现在components创建map/Getpoint.vue 代码如下 <template><div class"getpoint-container"><div><div id&…...

VINS-FUSION:跑通手机录制数据

文章目录 &#x1f4da;简介&#x1f680;手机录制数据&#x1f680;跑通数据&#x1f527;启动rviz&#x1f527;启动配置&#x1f527;播放rosbag&#x1f3af;跑通结果 &#x1f4da;简介 利用智能手机的 摄像头IMU 采集数据&#xff0c;并在 VINS-Fusion&#xff08;视觉惯…...

iView Table 组件跨页选择功能实现文档

iView Table 组件跨页选择功能实现文档 功能概述 实现基于 iView Table 组件的多选功能&#xff0c;支持以下特性&#xff1a; ✅ 跨页数据持久化选择✅ 当前页全选/取消全选✅ 自动同步选中状态显示✅ 分页切换状态保持✅ 高性能大数据量支持 实现方案 技术栈 iView UI 4…...

Spark知识总结

宽窄依赖&#xff1a;父RDD的分区只对应下面子RDD的一个分区&#xff0c;为窄依赖。其余为宽依赖 维度‌‌窄依赖‌‌宽依赖‌数据传输无shuffle&#xff0c;本地处理14需shuffle&#xff0c;跨节点传输14并行度高&#xff08;允许流水线并行&#xff09;57低&#xff08;需等…...

window 图形显示驱动-在 WDDM 1.2 中提供无缝状态转换(下)

在不禁用驱动程序的情况下转换到操作系统 有时操作系统遇到不可恢复的错误&#xff0c;必须发出系统 bug 检查。 发生这种情况时&#xff0c;在某些情况下&#xff0c;操作系统必须控制显示器&#xff0c;但无法停止 WDDM 驱动程序。 需要 WDDM 1.2 及更高版本的驱动程序来实现…...

WPF之Label控件详解

文章目录 1. 引言2. Label控件基础2.1 类继承结构2.2 Label类定义 3. Label控件的核心属性3.1 Content属性3.2 Target属性3.3 其他常用属性 4. 标签样式与模板自定义4.1 简单样式设置4.2 使用Style对象4.3 触发器使用4.4 使用ControlTemplate完全自定义 5. Label与表单控件交互…...

STM32 HAL库实现USB虚拟串口

1. 引言 在嵌入式系统开发中&#xff0c;USB 虚拟串口是一种非常实用的功能。它允许 STM32 微控制器通过 USB 接口与计算机进行通信&#xff0c;就像使用传统的串口一样。这种方式不仅简化了硬件设计&#xff0c;还提高了通信的灵活性和稳定性。STM32F407 系列微控制器具有强大…...

第二阶段:基础加强阶段总体介绍

Java语法的学习笔记 下面放复习的文档链接&#xff0c;如果有需要可以前往下载获取&#xff0c;这个仓库还有关于mysql、hadoop、python等的复习部分&#xff0c;并且每个文档有着对应的代码部分。文章作为复习使用&#xff0c;更多代码内容见链接如下: https://gitee.com/zha…...

Callable Future 实现多线程按照顺序上传文件

/** * 异步上传 BiopsyFlow 中的所有视频和音频文件到暂存服务器 */ private List<String> uploadBiopsyFlowFiles(BiopsyFlow biopsyFlow, SyncFile SyncFile) { List<String> fileBase64List syncFile.getFileBase64List(); if (CollectionUtils.is…...

leetcode283-移动零

leetcode 283 思路 本题是通过把数组中所有不为0的数字前置&#xff0c;实现把所有的0后置的效果 双指针法 slow 充当指针&#xff0c;记录当前零应该被移到的位置。而 i 用来遍历整个数组&#xff0c;检查每个元素。如果当前元素不为零&#xff0c;就将其与 slow 位置上的…...

【dify+docker安装教程】

目录 一、dify安装包下载 二、运行环境配置 1、下载docker 2、安装 2.1 新建文件夹 2.2 安装 2.3 命令安装 3.下载完成后需要重启电脑&#xff0c;注意保存文档&#xff01;&#xff01;注意保存&#xff01;&#xff01;注意&#xff01;&#xff01;&#xff08;血的教…...

GPU虚拟化实现(五)

GPU虚拟化实现(五) 章节回顾初步介绍详细介绍核心数据结构核心功能和运作机制初始化显存分配显存释放显存溢出检查显存类型检查查看分配信息代码执行流程假设例子总结章节回顾 在上一章,简单介绍了项目拦截cuda函数的流程,其本质上与拦截nvml函数的流程是一致的,都是首先…...

C++——入门基础

文章目录 一、前言二、C的发展历史2.1 C的诞生2.2 C的重要性 三、C的应用3.1第一个C程序3.2 C版3.2 C版3.3 C版与C版的区分 3.2 namespace关键字3.2.1 namespace的意义3.2.2C中域的分类3.2.3 namespace的定义3.2.4 namespace的实质3.2.5 namespace的嵌套 3.3 作用域运算符 &…...

AT2401C与RFX2401C问题处理资料

1、AT2401C 可以 PIN 对 PIN 替代 RFX2401C 吗&#xff1f; 答&#xff1a;AT2401C 可以 PIN 对 PIN 替换 RFX2401C&#xff1b;同时 CB2401 也可以 PIN 对 PIN 替换 RFX2401C&#xff1b;我们主要推 AT2401C 这款芯片&#xff0c;如果客户产 品需要过认证或者应用于音频产品建…...

微信小程序连续多个特殊字符自动换行解决方法

效果图 .wxml <view class"container"><text>没转换{{text}}</text><view style"height: 60rpx;" /><text>转换后{{convert}}</text> </view>.js Page({data: {text:&#xff01;&#xff01;&#xff01;&am…...