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

Python TensorFlow的CNN-LSTM-GRU集成模型在边缘物联网数据IoT电动汽车充电站入侵检测应用

全文链接:https://tecdat.cn/?p=43881
原文出处:拓端抖音号@拓端tecdat

随着物联网(IoT)技术在电动汽车充电站(EVCS)中的普及,充电站不仅成为智能交通的关键节点,更因连接电网、用户设备与管理系统,成为网络攻击的重点目标。传统入侵检测系统(IDS)要么难以处理IoT环境的动态数据,要么在多类型威胁识别中精度不足,这给充电站的安全运营带来极大隐患。
 

一、引言

本文内容改编自我们团队为某客户提供的IoT安全咨询项目——当时客户面临充电站数据泄露、充电流程被篡改等问题,我们通过构建深度学习集成模型成功解决了这些痛点。现在将项目核心技术整理为报告,方便相关领域学生与从业者参考。
报告中,我们采用Python结合TensorFlow/Keras框架,基于Edge-IIoTset真实边缘物联网数据集,设计了融合卷积神经网络(CNN)、长短期记忆网络(LSTM)与门控循环单元(GRU)的集成模型:CNN负责提取网络流量的空间特征(如异常数据包结构),LSTM+GRU负责捕捉时序特征(如多步攻击序列),最终实现对“正常行为”与“DDoS、注入攻击、扫描攻击”等多类威胁的精准识别。测试显示,模型在二分类任务中准确率达100%,15类细分威胁识别中准确率仍保持96.90%,完全满足实际应用需求。


完整项目代码和数据文件已分享在交流社群,阅读原文进群和600+行业人士共同交流和成长。

二、IoT电动汽车充电站的安全挑战与入侵检测需求

1. IoT电动汽车充电站的特殊性

IoT技术让充电站实现了“车-站-网”联动(如图1),图中清晰展示了可再生能源、电网、IoT设备与待充电车辆之间的互联关系,每一条连接都代表实时数据交互——这些交互是充电站高效运行的核心,但也放大了安全风险。与普通IoT系统相比,充电站的IoT架构有三个关键差异:

  • 实时性要求高:充电过程中数据延迟可能导致设备故障,甚至引发安全事故,因此IDS必须低延迟;
  • 多系统融合:同时连接能源系统(电网、光伏)、IT系统(用户数据、支付)和OT系统(充电设备控制),任何一个系统被攻击都会影响整体运营;
  • 协议特殊:采用Open Charge Point Protocol(OCPP)专用协议,传统IDS难以解析这类协议的异常流量。

2. 主要网络威胁类型

实际应用中,充电站面临的威胁主要有四类:

  • 充电流程篡改:攻击者修改充电参数,导致电池过充损坏或设备过载;
  • 数据拦截:窃取用户支付信息、车辆电池数据等敏感内容;
  • 电网联动攻击:通过篡改充电站与电网的通信数据,影响区域电网稳定;
  • 恶意软件入侵:植入后门程序,长期控制充电设备。

三、CNN-LSTM-GRU集成模型设计与实现

1. 模型核心思路

传统单一模型存在短板:CNN擅长空间特征提取但无法处理时序数据,LSTM/GRU能捕捉时序关系但对空间特征敏感度过低。我们的集成模型通过“空间特征提取→时序特征分析→联合分类”的流程,实现优势互补(模型架构如图2)。

为了让大家更清楚各组件的作用,这里补充三个关键结构的示意图:

  • CNN空间特征提取(图3):通过卷积滤波器滑动扫描网络流量数据,捕捉如“异常数据包长度”“协议字段异常值”等空间特征,这些特征是区分正常流量与攻击流量的基础。
  • LSTM时序记忆机制(图4):通过“记忆单元”和“门控结构”(输入门、遗忘门、输出门),记住长序列中的关键信息——比如DDoS攻击中“连续多数据包请求频率异常”这类跨时间步的特征,避免传统RNN的“梯度消失”问题。
  • GRU简化门控机制(图5):将LSTM的“输入门”和“遗忘门”合并为“更新门”,在保证时序特征捕捉能力的同时,减少参数数量,提升模型运行效率——这对充电站边缘设备的算力适配至关重要。

2. 关键步骤与代码实现

(1)数据预处理

包含10+类IoT设备的真实流量数据,涵盖14种攻击类型(如DDoS_UDP、SQL注入、端口扫描等)。预处理需解决“分类变量数值化”“特征冗余”“数据分布不均”三个问题,代码如下:

 
  1.  
    import pandas as pd
  2.  
    import numpy as np
  3.  
    from sklearn.preprocessing import LabelEncoder, OneHotEncoder, StandardScaler
  4.  
    from sklearn.feature_selection import SelectKBest, chi2
  5.  
    from sklearn.model_selection import train_test_split
  6.  
    # 1. 读取数据集(实际应用中需替换为本地数据集路径)
  7.  
    data = pd.read_csv("Edge-IIoT.csv")
  8.  
    # 2. 分类变量处理:先标签编码(字符串转数值),再独热编码(避免序数偏差)
  9.  
    label_encoder = LabelEncoder()
  10.  
    # 对OCPP协议类型、HTTP方法、MQTT主题等分类列进行编码
  11.  
    data["ocpp_proto_code"] = label_encoder.fit_transform(data["ocpp_protocol"])
  12.  
    data["http_method_code"] = label_encoder.fit_transform(data["http_method"])
  13.  
    data["mqtt_topic_code"] = label_encoder.fit_transform(data["mqtt_topic"])
  14.  
    # 独热编码:处理多类别特征,避免模型误判“类别顺序”
  15.  
    onehot_encoder = OneHotEncoder(sparse=False, drop="first") # drop="first"避免多重共线性
  16.  
    encoded_cols = onehot_encoder.fit_transform(data[["ocpp_proto_code", "http_method_code", "mqtt_topic_code"]])
  17.  
    encoded_df = pd.DataFrame(encoded_cols, columns=["proto_1", "proto_2", "http_1", "http_2", "mqtt_1"])
  18.  
    data = pd.concat([data, encoded_df], axis=1)
 
 
(2)模型构建与训练

模型输入需调整为Conv1D要求的“(样本数,时间步长,特征数)”格式,再依次叠加CNN、LSTM、GRU层,代码如下:

 
  1.  
     
  2.  
    # 2. 构建集成模型
  3.  
    model = Sequential(name="EVCS_IoT_IDS_Model")
  4.  
    # CNN模块:提取空间特征(如异常数据包结构、协议字段异常)
  5.  
    model.add(Conv1D(filters=64, kernel_size=3, activation="relu", input_shape=input_shape, name="Conv1"))
  6.  
    model.add(MaxPooling1D(pool_size=2, name="Pool1")) # 降维,保留关键特征,减少计算量
  7.  
    model.add(Conv1D(filters=32, kernel_size=3, activation="relu", name="Conv2"))
  8.  
    model.add(MaxPooling1D(pool_size=2, name="Pool2"))
  9.  
    # LSTM+GRU模块:提取时序特征(如多步攻击的流量序列变化)
  10.  
    model.add(LSTM(units=64, return_sequences=True, name="LSTM_Layer")) # return_sequences=True:输出序列给后续GRU
  11.  
    model.add(GRU(units=32, name="GRU_Layer")) # 简化门控,提升效率,捕捉近期时序特征
  12.  
    # 分类模块:输出威胁类型概率
  13.  
    model.add(Flatten(name="Flatten_Layer")) # 展平特征图,连接全连接层
  14.  
    model.add(Dense(units=64, activation="relu", name="Dense1"))
  15.  
    model.add(Dropout(rate=0.3, name="Dropout_Layer")) # 随机失活30%神经元,防止过拟合
  16.  
    model.add(Dense(units=15, activation="softmax", name="Output_Layer")) # 15类分类(1正常+14攻击)
 
 

四、模型应用测试结果

我们从“二分类(正常/攻击)”“六分类(正常+5大类攻击)”“十五分类(正常+14小类攻击)”三个维度测试模型,所有测试均基于数据的真实流量数据,确保结果贴合实际应用场景。

1. 二分类测试结果(正常/攻击)

二分类任务的目标是快速区分“正常流量”与“任意攻击流量”,适合充电站的实时初步预警。模型仅训练6轮就达到稳定性能,测试损失接近0,准确率100%(表1)。

性能指标 二分类结果
测试损失 0.0000
测试准确率(%) 100
训练时间(秒) 1885.46
测试时间(秒) 42.53

从准确率与损失曲线(图6)可见,训练轮次增加后,训练集与验证集的准确率始终保持100%,损失快速降至0,说明模型无过拟合,且学习效率高。

混淆矩阵(图7)和归一化混淆矩阵(图8)进一步验证了模型的完美分类能力:所有“正常流量”(279,968条)和“攻击流量”(109,122条)均被正确识别,无任何误判——这意味着模型能100%拦截攻击,且不会产生“正常流量被误判为攻击”的 false alarm(误报),避免影响充电站正常运营。


相关文章

​CNN-LSTM、GRU、​XGBoost、LightGBM风电健康诊断、故障与中国银行股票预测应用实例

原文链接:https://tecdat.cn/?p=41907


2. 六分类测试结果(正常+5大类攻击)

六分类任务将攻击分为“DDoS、注入攻击、扫描攻击、恶意软件、MITM(中间人攻击)”5大类,需要模型区分不同攻击的核心特征。测试结果显示,模型准确率达97.44%,测试损失0.0532(表2)。

性能指标 六分类结果
测试损失 0.0532
测试准确率(%) 97.44
训练时间(秒) 14803.63
测试时间(秒) 42.20

准确率与损失曲线(图9)显示,模型在50轮训练后收敛,验证集准确率稳定在97%左右,无明显波动,说明模型对大类攻击的分类能力稳定。


从分类报告看,“正常流量”“DDoS”“MITM”的精确率、召回率、F1值均为1.00或接近1.00,而“注入攻击”(精确率0.72)和“恶意软件”(召回率0.62)存在少量误判——这是因为部分“注入攻击”的数据包特征与正常HTTP请求相似,部分“恶意软件”的流量签名较隐蔽。混淆矩阵(图10)和归一化混淆矩阵(图11)进一步显示,误判主要集中在“注入攻击”与“正常流量”、“恶意软件”与“扫描攻击”之间,但整体误判比例低于3%,不影响实际使用。


 

3. 十五分类测试结果(正常+14小类攻击)

十五分类任务是最精细的测试,需区分“正常流量”和14种具体攻击(如DDoS_UDP、SQL注入、端口扫描、勒索软件等)。测试结果显示,模型准确率仍达96.90%,测试损失0.0632(表3),仅比六分类低0.54个百分点,表现远超传统模型。

性能指标 十五分类结果
测试损失 0.0632
测试准确率(%) 96.90
训练时间(秒) 14719.47
测试时间(秒) 40.65

准确率与损失曲线(图12)显示,模型在50轮训练后收敛,训练集与验证集准确率差距小,说明模型对细分类别的学习能力强,无过拟合。


分类报告显示,“正常流量”“DDoS_UDP”“DDoS_ICMP”“MITM”的精确率和召回率均为1.00,而“SQL注入”(精确率0.62)、“XSS攻击”(精确率0.64)、“指纹识别攻击”(召回率0.27)的表现相对较弱——这是因为这些攻击的流量特征更细微(如SQL注入的恶意语句被加密、XSS攻击的脚本片段短)。混淆矩阵(图13)和归一化混淆矩阵(图14)显示,主要误判集中在“密码攻击”与“后门程序”、“指纹识别”与“端口扫描”之间,但整体正确分类比例仍达96.9%,满足充电站对细分类别攻击的识别需求。


 

4. 与传统模型的对比优势

我们将本模型与近年主流IDS模型对比(表4),可见在多分类任务中,本模型优势明显:

  • 十五分类准确率(96.90%)比DNN(94.67%)高2.23个百分点,比RNN(90.22%)高6.68个百分点;
  • 六分类准确率(97.44%)仅比“CNN-LSTM”(98.69%)低1.25个百分点,但计算效率更高(训练时间缩短约8%);
  • 二分类准确率与“CNN-LSTM”“VGG-16”持平(100%),但模型参数更少,更适合边缘设备部署。
     
模型名称 年份 二分类准确率(%) 六分类准确率(%) 十五分类准确率(%)
DNN 2022 99.99 96.01 94.67
Inception Time 2022 - - 94.94
CNN-LSTM 2022 100 98.69 -
VGG-16 2023 100 - 94.86
RNN 2023 100 92.53 90.22
CNN-LSTM-GRU 2023 100 97.44 96.90

五、结论与展望

本文提出的CNN-LSTM-GRU集成模型,通过“CNN空间特征提取+LSTM-GRU时序特征捕捉”的融合架构,解决了IoT电动汽车充电站IDS的“低延迟”“多威胁识别”“边缘设备适配”三大核心问题。基于Edge-IIoTset真实数据集的测试证明,模型在二分类、六分类、十五分类任务中均保持高准确率,且计算效率优于多数传统模型,可直接部署到充电站的边缘设备中,为实际运营提供安全保障。
未来,我们将从两个方向优化模型:一是适配加密流量场景(如HTTPS协议下的威胁识别),通过提取TLS握手阶段的特征,解决“加密流量不可见”的问题;二是模型压缩(如量化、剪枝),进一步降低对边缘设备的算力要求,让模型能在低配置IoT设备上运行。
希望本文能为相关领域学生提供清晰的技术思路——从数据预处理到模型构建的每一步都有实际代码和图表支撑,便于理解和复现;同时也为企业IoT安全建设提供参考,帮助更多新能源企业解决充电站的网络安全痛点。

相关文章:

Python TensorFlow的CNN-LSTM-GRU集成模型在边缘物联网数据IoT电动汽车充电站入侵检测应用

全文链接:https://tecdat.cn/?p=43881原文出处:拓端抖音号@拓端tecdat随着物联网(IoT)技术在电动汽车充电站(EVCS)中的普及,充电站不仅成为智能交通的关键节点,更因连接电网、用户设备与管理系统,成为网络攻击的重点目标。传统入侵检测系统(IDS)要么难以处理IoT环境…...

C++多线程编程—线程控制、同步与互斥详解

本文将深入探讨C++多线程编程中的核心概念:线程控制、同步与互斥。 1.线程控制:join 与 detach当我们创建一个线程(std::thread)后,我们必须明确在这个线程对象销毁之前,如何管理它所代表的执行线程。这就是 join 和 detach 的用武之地。join()作用:阻塞当前线程(通常是…...

MySQL启动失败:mysqld.log Permis 报错处理.250916

报错:Could not open file /var/log/mysqld.log for error logging: Permis 解决办法: sudo setenforce 0 systemctl restart mysqld systemctl status mysqld如果好了,就更改selinux策略: sudo semanage fcontext -a -t mysqld_db_t "/home/mysql/data(/.*)?" …...

源码管理—密钥硬编码问题

源码管理—密钥硬编码问题目录密钥硬编码的定义: 指在代码、配置里硬编码密码/明文密码在配置文件中,但是不论是通过 AES 加密过的密码,还是将明文密码存储在远程配置文件中,都属于硬编码密钥。 常见的密钥硬编码场景:密钥放在环境变量 密钥加密存储在代码里 密钥放在服务…...

无速度传感器交流电机的扩展Luenberger观测器

扩展Luenberger观测器是一种用于无速度传感器交流电机控制的重要技术,它能够估计电机的内部状态(如转子磁链)和转速。 理论背景 对于感应电机,在静止α-β坐标系下的模型可以表示为: 状态方程: dx/dt = A(ω)x + Bu y = Cx其中: x = [isα, isβ, ψrα, ψrβ]^T u = […...

AI Ping体验记:终于有人做大模型服务的“性能监控”了

引言 最近几个月,我们公司在开发AI应用平台并集成到现有系统中。作为项目的技术选型负责人,我被MaaS平台API的选择问题折磨得不轻。面对市面上众多的大模型服务商,如何选出最适合我们的那一个,真的是个大难题。 市面上的MaaS平台越来越多,光是国内的就有20多家,这还是我知…...

数据库原理-第二章——关系型数据库

pass...

mac 的任务栏 Windows-Style Taskbar For macOS

https://lawand.io/taskbar/...

快手Java一面

线程池七大参数和作用?有大量执行时间短的任务如何设置线程池参数? Synchronized和ReentrantLock实现上的区别?哪个能尝试获取锁?tryLock方法参数是什么?返回是什么? ReentrantLock的公平锁和非公平锁怎么实现的? JVM堆内存怎么划分的? CMS垃圾回收机制下新生代和老年代…...

详细介绍:Elastic APM 入门指南:快速设置应用性能监控

详细介绍:Elastic APM 入门指南:快速设置应用性能监控pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", mon…...

想找Axure替代?这6个原型设计工具值得一试

引言 在原型设计工具里,Axure可以说是最为经典、老牌的一款了。它在产品圈内有着较高的知名度和地位,但随着工具生态的不断丰富,越来越多产品经理在学习和使用Axure的过程中,逐渐放弃转为寻找Axure替代工具。其实,如今想找到能替代Axure的工具并不难,本文就为大家介绍6款…...

H5游戏性能优化系列-----cpu相关优化

cpu优化主要是优化cpu使用率,帧率平稳性(卡帧,长耗时任务),主要从以下几个方面优化设置合适的帧率。根据游戏类型设置合适的帧率,比如slg,回合制这种类型游戏一般开30帧,mmo等即时战斗的或者对流畅度有很高要求的可以开60帧。 帧同步与状态同步的抉择。一般来说状态同步会…...

IPA 混淆实战 IPA 混淆、IPA 加固、ipa 文件安全与成品包防护全流程指南

本文详解 IPA 混淆实战:为何做 ipa 混淆、Ipa Guard 在成品包加固中的角色、与源码混淆的区别、工具链(MobSF、class-dump、Frida)验证流程,以及灰度发布、白名单与映射表管理等落地经验,面向开发与安全团队。在移动应用交付链中,“源码混淆”与“成品 IPA 混淆”是两条互…...

实用指南:javaweb HTML基本介绍/常见标签

实用指南:javaweb HTML基本介绍/常见标签pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !impor…...

文档处理控件Aspose.Words教程:在 C# 中将 Markdown 转换为 PDF

Markdown 被广泛用于使用纯文本语法创建格式化文本。许多开发人员喜欢用它来编写文档、注释和内容格式。然而,我们经常需要将Markdown文档生成专业的PDF文件。本文将学习如何借助Aspose.words for .NET,使用 C# 将 Markdown 转换为 PDF。Markdown 被广泛用于使用纯文本语法创…...

TCP协议与wireshark

...

docker容器mysql导入sql文件

sudo docker exec -i mysql8 mysql -u root -pSxygsj123 whpt_specialwork < /opt/sql/whpt-specialwork.sql...

ObjectSense 包与模块:代码组织的艺术

在编程世界中,随着项目规模扩大,代码的组织管理变得至关重要。ObjectSense 引入了包(Package)和模块(Module)机制,为代码的结构化管理提供了完美解决方案。 包:代码的基础组织单元 包是 ObjectSense 中最基础的代码组织形式,它通过目录结构与逻辑结构的统一,解决了命…...

IDE工具RAD Studio 13 Florence重磅发布:64 位 IDE + AI 组件全面升级!

近日,Embarcadero 正式宣布推出 RAD Studio 13 Florence,同时发布了 Delphi 13 与 C++Builder 13。这一版本带来了 全新的 64 位 RAD Studio IDE、更新的 C++Builder Clang 编译器、全新 Delphi 语言扩展、AI 组件与 AI 助手,并对现有功能进行了全面增强,重点聚焦在 质量与…...

C# 批量修改数据库

我这里有个例子,是整合数据后批次写入数据库的,只连接一次,希望对你有帮助using (SqlBulkCopy bc = new SqlBulkCopy(conn, SqlBulkCopyOptions.Default, trans)){bc.DestinationTableName = "ExamDetails";//要插入的表的表名bc.BatchSize = 10000;bc.ColumnMapp…...

Job for network.service failed because the control process exited with error code.

问题描述:VMware workstation 安装centos7启动后修改网络ip无效,报错;启动后主机还会蓝屏。 原因:windows10/11需要适配VMware workstation 16及以上,并打开虚拟配置。 解决方案:官网下载安装VMware workstation 17,17已经对个人免费。 新建虚拟机时,设置处理器》开启虚…...

负荷聚类及其在MATLAB中的实现

一、什么是负荷聚类? 负荷聚类 是指通过对用户或测量点的用电负荷数据(通常是功率随时间变化的曲线,即“负荷曲线”)进行处理和分析,根据其用电模式的相似性,自动地将它们划分为不同的类别(簇)。目标:发现数据中内在的、未知的分组模式,实现“物以类聚”。 输入:多个…...

移动安全框架(MobSF)静态分析入门指南

本文详细介绍了如何使用Mobile Security Framework(MobSF)进行移动应用静态安全分析,包含环境搭建、代码克隆、权限配置和基础扫描流程,适合移动安全入门人员学习实践。移动安全框架(MobSF)静态分析第一部分 这是一个用于分析移动应用的强大框架。在本博客中,我们将学习…...

列表项点击,逻辑梳理

列表项点击,从viewHolder >> adapter >> fragment,理清关系了。 mClickListener是传过来的,MyRecordViewHolder << MyRecordPageAdapter << MyRecordPage 最终在presenter中执行...

CRMEB标准版PHP批量发货功能深度解析

订单批量发货,批量发出当前需要发货的订单 1、导出发货单 点击批量发货—>导出发货单。注:导出发货单无需选择订单,只会导出当前待发货(不包含虚拟商品)的订单列表 2、完善发货单 导出的excel发货单中填写订单对应的快递名称,快递编码,快递单号 3、导入发货单 将填写…...

数学之美 第一章读后感

作者从人类远古时期讲起,首先指出古人传情达意的方式与如今通信方式并无差别的观点。从埃及的象形文字开始,因表意文字的增加,古人开始采用一字多意,而读者不产生歧义的话就需要联系上下文,这与解码与机器学习的原理相差不大。对于数字的发展,人类根据手指数量发明了十进…...

【SPIE出版】第九届交通工程与运输系统国际学术会议(ICTETS 2025)

第九届交通工程与运输系统国际学术会议(ICTETS 2025)将由大连理工大学主办,大连理工大学建设工程学院交通运输系承办,于2025年9月26-28日在大连隆重召开。【SPIE独立出版!连续多年EI稳定检索!】 【大连理工大学主办!】 第九届交通工程与运输系统国际学术会议(ICTETS 20…...

模型上下文协议(Model Context Protocol,MCP)

一. MCP 概述 模型上下文协议(Model Context Protocol,MCP),是由Anthropic推出的开源协议,旨在实现大语言模型与外部数据源和工具的集成,用来在大模型和数据源之间建立安全双向的连接。 模型上下文协议是专为高效获得模型所需要上下文信息而设计的通用接口,可以将推动大…...

大华设备视频平台EasyCVR视频分析设备平台双轨视频数据存储方案全解读

大华设备视频平台EasyCVR视频分析设备平台双轨视频数据存储方案全解读随着物联网、AI、云计算、大数据等新兴技术的发展、海量设备的接入、视频质量的不断提升,监控视频存储也面临着巨大的挑战。当前用户对视频监控数据的存储问题,主要考虑到以下三个因素: 1)数据的安全性和…...

AI音乐创作新突破:ACE-Step模型开启放克音乐智能生成时代

AI音乐创作新突破:ACE-Step模型开启放克音乐智能生成时代 专业级音乐创作进入AI时代 近日,Gitee AI平台正式开源其创新性音乐生成模型ACE-Step,这一技术突破将彻底改变专业音乐创作的生产方式。该模型通过深度学习算法实现了从歌词到完整编曲的端到端生成,特别在流行放克(F…...

【ABSR出版】第二届农业工程与生物学国际研讨会(ISAEB 2025)

第二届农业工程与生物学国际研讨会(ISAEB 2025)将于2025年9月26日至28日在马来西亚吉隆坡举行。【农业、生物会议 | 马来西亚国际会议】 【Scopus, CNKI, Google Scholar, Inspec (IET)检索】 第二届农业工程与生物学国际研讨会(ISAEB 2025) 2025 2nd International Symposiu…...

符号执行技术实践-求解程序密码

符号执行是什么 符号执行(Symbolic Execution)是一种程序分析技术,它使用符号值而不是具体的数值来执行程序。与传统的程序执行不同,符号执行将程序的输入用符号变量表示,然后沿着程序的执行路径收集这些符号变量必须满足的约束条件。 如果我们把普通的程序执行比作用具体的…...

博客皮肤

https://www.yuque.com/awescnb...

低轨卫星跟踪对星方式

低轨卫星跟踪对星方式 参考 https://zhuanlan.zhihu.com/p/1934304295236400209 低轨卫星的跟踪参考 https://zhuanlan.zhihu.com/p/1937283578066076622 遥测自跟踪天线低轨卫星对星的关键技术点 低轨(LEO)卫星的特点是轨道高度低(通常在200km至2000km之间),比如Starlin…...

开源中国社区发布AI赋能2.1版本:打造企业级私有化知识中枢新范式

开源中国社区发布AI赋能2.1版本:打造企业级私有化知识中枢新范式 在数字化转型浪潮席卷全球的当下,开源中国(OSCHINA.NET)正式推出社区2.1版本,以"私有化部署+AI智能引擎"为核心,重新定义企业知识管理的技术边界。这一重大升级标志着国内领先的技术社区从传统内…...

PL/SQL 性能优化指南

PL/SQL 性能优化指南 本文系统梳理了在SQL编写和PL/SQL程序设计中常见的性能问题,并提供可落地的优化策略,帮助开发者写出更高效、更稳定的数据库代码。一、表连接与解析顺序优化 1. 选择最优的表名顺序(适用于RBO,现代已不敏感但建议保留习惯) Oracle在基于规则的优化器(…...

jdbcType-java 类型

在 JDBC 中,jdbcType 用于指定数据库字段的数据类型,确保 Java 类型与数据库类型正确映射。MyBatis 等持久层框架常使用 jdbcType 处理参数和结果集的类型转换。以下是常见的 jdbcType 类型及其说明:JDBC 类型对应 Java 类型说明常见数据库映射示例ARRAY java.sql.Array 数据…...

支配对

本质思路是,通过可接受复杂度个支配对来表示所有点对。找支配对的核心条件是,在任何情况下其他点对都会被支配对淘汰。找支配对往往有两个限制,一是值是否更优,二是是否更容易满足限制。这相当于一个二维偏序问题,只不过我们要自己找偏序的对象。 在序列上,一般是区间问题…...

macOS Sonoma 14.8 (23J21) 正式版 ISO、IPSW、PKG 下载

macOS Sonoma 14.8 (23J21) 正式版 ISO、IPSW、PKG 下载macOS Sonoma 14.8 (23J21) 正式版 ISO、IPSW、PKG 下载 利用小组件进行个性化设置、令人眼前一亮的全新屏幕保护、Safari 浏览器和视频会议的重大更新 请访问原文链接:https://sysin.org/blog/macOS-Sonoma/ 查看最新版…...

DamiBus v1.1.0 发布(给单体多模块解耦)

DamiBus是一款专为单体多模块通讯解耦设计的工具,结合了Bus与RPC的特点,支持事件分发和接口调用。新版本简化了API,弃用了部分方法并新增了更直观的调用方式。其特点包括事务传导、事件标识、监听者排序等,与EventBus和Api相比耦合度更低。性能测试显示处理千万级事件仅需1…...

最小环 Floyd 算法 无向图的最小环问题

P6175 无向图的最小环问题 - 洛谷 k次插点前更新 ans=min(d[i][j]+w[j][k]+w[k][i]) 注意 i,j下边循环范围小于k // Floyd 最小环 O(n^3) #include<bits/stdc++.h> using namespace std;const int N=110; int n,m,a,b,c,ans=1e8; int w[N][N],d[N][N];int main(){cin>…...

macOS Sequoia 15.7 (24G222) Boot ISO 原版可引导镜像下载

macOS Sequoia 15.7 (24G222) Boot ISO 原版可引导镜像下载macOS Sequoia 15.7 (24G222) Boot ISO 原版可引导镜像下载 iPhone 镜像、Safari 浏览器重大更新和 Apple Intelligence 等众多全新功能令 Mac 使用体验再升级 请访问原文链接:https://sysin.org/blog/macOS-Sequoia-…...

Nginx 安装过程

一、安装 1、安装依赖 命令:yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel 若出错,可重复执行该命令,直至成功。 在Debian及其衍生系统中使用命令:sudo apt install -y g++ libpcre3 libpcre3-dev zlib1g zlib1g-dev openssl libssl-dev …...

Xcode 26 (17A324) 正式版发布 - Apple 平台 IDE

Xcode 26 (17A324) 正式版发布 - Apple 平台 IDEXcode 26 (17A324) 正式版发布 - Apple 平台 IDE IDE for iOS/iPadOS/macOS/watchOS/tvOS/visonOS 请访问原文链接:https://sysin.org/blog/apple-xcode-26/ 查看最新版。原创作品,转载请保留出处。 作者主页:sysin.orgXcode …...

macOS Tahoe 26 (25A354) Boot ISO 原版可引导镜像下载

macOS Tahoe 26 (25A354) Boot ISO 原版可引导镜像下载macOS Tahoe 26 (25A354) Boot ISO 原版可引导镜像下载 Liquid Glass 惊艳新设计亮相,电话 app 和实时活动丰富连续互通体验,聚焦搜索迎来最大更新 请访问原文链接:https://sysin.org/blog/macos-tahoe-boot-iso/ 查看最…...

mysql数据库服务主从复制实现(基于position)

复制环境搭建 1.1 备份主库信息# mysqldump https://www.cnblogs.com/lifeiLinux/p/19066160 # pxb https://www.cnblogs.com/lifeiLinux/p/19066181 # 克隆 https://www.cnblogs.com/lifeiLinux/p/190942511.2 主数据库二进制日志功能开启 vim /etc/my.cnf server_id=51 log_b…...

海量接入、毫秒响应:易易互联携手阿里云构筑高可用物联网消息中枢

面对换电生态高速发展的通信挑战,易易互联通过采用阿里云 MQTT + RocketMQ 的融合解决方案,成功构建了“海量接入、实时响应、弹性处理、安全可信”的物联网通信底座。作者:横槊、仁中 易易互联:打造安全、便捷、便宜的智能换电网络 易易互联科技有限公司成立于 2017 年,是…...

macOS Sequoia 15.7 (24G222) 正式版 ISO、IPSW、PKG 下载

macOS Sequoia 15.7 (24G222) 正式版 ISO、IPSW、PKG 下载macOS Sequoia 15.7 (24G222) 正式版 ISO、IPSW、PKG 下载 iPhone 镜像、Safari 浏览器重大更新和 Apple Intelligence 等众多全新功能令 Mac 使用体验再升级 请访问原文链接:https://sysin.org/blog/macOS-Sequoia/ 查…...

C++ std::list

std::list 是 C++ STL 中基于双向链表实现的序列容器,其设计目标是提供高效的任意位置插入 / 删除操作。 1、底层结构与核心原理 1.1 节点与链表结构 节点组成:每个元素存储在独立的节点中,节点包含三部分 template <typename T> struct ListNode {T data; /…...

函数是编程范式的原理是什么?

函数式编程范式(Functional Programming,简称 FP)是一种以函数为核心的编程范式,它将计算视为数学函数的求值,强调纯函数、不可变数据和无副作用,避免使用可变状态和命令式控制流。函数式编程范式(Functional Programming,简称 FP)是一种以函数为核心的编程范式,它将…...