26、冗余可靠系统与城市交通动态路由算法解析

冗余可靠系统与城市交通动态路由算法解析

1. 冗余系统的主从切换与性能考量

在一些系统架构中,为了保证系统的可靠性和数据同步,采用了热冗余(Hot Redundancy)机制。这种机制能确保两个系统中的节点保持同步,还允许单个应用在两个系统之间实时迁移。

主从切换(Mastership Change)是系统中的一个重要操作。任何一个参与系统都可以随时发起完全切换操作,即两个系统中的任意一个都能请求切换主从(Active - Spare)角色。在这种情况下,整个系统会被激活或停用,所有应用会从一个系统迁移到另一个系统。这样做的目的是防止同一服务的多个副本在不同副本上同时运行。

为了评估系统性能,在一个配备英特尔Atom 1.6 GHz 处理器、1 GiB 内存和 Linux 操作系统的嵌入式系统上进行了广泛测试。测试期间,一个 OBCU 在类似生产环境中运行,有 35 个运行节点。以下是 60 秒时间窗口内的统计数据:
| 指标 | 最小值 | 最大值 | 平均值 | 标准差 |
| ---- | ---- | ---- | ---- | ---- |
| 往返时间 [ms] | 0.91 | 74.41 | 5.30 | 9.21 |
| 往返抖动 [ms] | -56.07 | 71.32 | 0.68 | 14.29 |
| 切换时间 [ms] | 268 | 702 | 362.06 | 106.91 |
| 更新次数 [#/s] | 4 | 83 | 29.13 | 19.29 |
| 有效负载大小 [B] | 0 | 2736 | 279.93 | 470.61 |
| 网络数据速率 [B/s] | 8418 | - | - | - |
| 主题数量 [#] | 73 | - | - | - |
| 应用数量 [#] | 35 | - | - | - |

从这些数据可以看出,往返时间平均很低,但也有极少数情况会增加到 75 毫秒。总共有 35 个应用,在 73 种不同数据类型上每秒有高达 83 次更新的峰值。交换的有效负载大小从 0 字节到 2736 字节不等,总网络数据速率约为 8 KiB/s,平均切换时间约为 360 毫秒。这些数据非常适合非安全关键的 LTR 车载系统。

2. 冗余系统结论与优势

在进行完全切换时,确定合适的时间和情况并非易事,可能的触发事件难以检测或与不需要切换的事件区分开来。以下是一些在将这种技术应用到其他情况之前需要考虑的要点:
- 使用保持活动消息来检测另一个系统是否停止工作,超时是一个关键参数。
- 最好在两个代理之间有双通道通信,以避免网络故障被误认为是活动系统故障。
- 当两个系统都是备用状态时,特别是在启动时,它们需要达成共识。
- 应尽量减少切换次数,因为在主从切换期间服务会短暂中断。
- 在激活备用系统之前,必须正确停用活动系统中的所有模块。

该架构具有以下优势:
- 代码质量更高,因为小服务更容易进行深入测试。
- 由于服务之间的独立性,任务并行性得到改善。
- 降低了新团队成员的学习曲线。
- 编写小服务即使在两周的 SCRUM 冲刺中也很合适。
- 系统易于扩展和测量。
- 具有强大而广泛的日志记录功能,便于开发安全、安全和调试功能。

3. 城市交通动态路由问题背景

如今,大多数交通领域的研究致力于构建智能解决方案,以在城市中运送人员,降低成本、提高可持续性,同时确保交通服务的可靠性和安全性。高度自动化的交通系统在向数字社会转型中发挥着重要作用,为车队车辆规划最佳路线已被证明有助于降低车辆成本和能耗,同时提高用户满意度。

传统上,路线是预先规划的,但随着自主城市交通系统(如自动驾驶汽车)的出现,由于交通拥堵或恶劣天气条件导致的轨道阻塞等问题需要实时处理。因此,动态计算车辆路线的需求日益增加。

4. 动态车辆路由系统架构

提出的动态车辆路由系统中,每辆车通过车载设备借助 GPS 坐标或类似系统可以精确通信其位置,并与控制站进行通信。当检测到分配的轨道中有阻塞时,受阻车辆会将其坐标发送给中央控制站,并识别阻塞的轨道。

控制单元收到通信后,会收集城市中所有车辆的坐标(位置)和目的地。然后,控制系统会根据每辆车的当前位置和目的地动态计算新的路线,并将其传达给信号系统。模型会计算最优解决方案,以最小化所有车辆到达目的地的总时间,从而优化用户满意度。同时,确保路线安全,避免车辆在轨道和点上发生碰撞,保证整个车辆网络的进展,不会出现死锁。

以下是动态车辆路由系统的流程:

graph LR
    A[车辆检测到轨道阻塞] --> B[车辆向控制站发送坐标和阻塞轨道信息]
    B --> C[控制站收集所有车辆位置和目的地]
    C --> D[控制系统计算新路线]
    D --> E[将新路线传达给车辆和信号系统]
5. 网络流问题基础

动态车辆路由问题可以形式化为网络流问题。流网络是一个有向图,每个边都有容量,并且每个边接收一个流。设 G = (Q, T) 是一个图,其中 Q 是节点集,T 是边集。通常有两种特殊节点:源节点(生成流)和汇节点(消耗流)。

对于每个边 t ∈ T,流变量 xt 表示通过该边的流。每个边 t 通常分配一个最大容量 at 和一个成本 ct。网络流问题是一种网络优化问题,其目标是优化流,同时满足以下约束:
- 边的流量不能超过边的容量(容量约束):∀t ∈ T. xt ≤ at。
- 流入节点的流量等于流出节点的流量,除非它是源节点(只有流出流量 d)或汇节点(只有流入流量 d)(流量守恒):
∀q ∈ Q. ∑(t∈BS(q)) xt - ∑(t∈FS(q)) xt =
⎧
⎨
⎩
-d if q = qs
0 if q ≠ qs, qf
d if q = qf
- 根据研究问题的不同,可能要求计算的流必须是整数值(完整性约束):∀t ∈ T. xt ∈ N。

常见的网络流问题包括最大流问题和最小成本流问题,这些问题可以通过整数线性规划(ILP)来解决。

6. 车辆路由问题模型

将动态车辆路由问题形式化为网络流问题,抽象城市电车布局为一个图。假设有限的车辆集 U、有限的行程集(边)T 和有限的节点集 Q。设 |S| 为集合 S 的基数,则 K = |U| * |T| 是每辆车到达目的地所需的最大时间上限。

对于每辆车 u ∈ U,有其位置 location(u) 和目的地 destination(u)。同时,假设有一个行程子集 F ⊂ T 暂时不可用。ILP 模型的输出将是分配给每辆车的新路线。

例如,在一个表示城市区域子部分的图中,相邻节点双向连接。通过这个模型,可以确保计算出的路线安全且能使车辆最终到达目的地,同时最小化整体路由时间。

冗余可靠系统与城市交通动态路由算法解析

7. 模型的具体约束与变量

在将动态车辆路由问题建模为网络流问题时,为了准确描述车辆的行驶路径和确保模型的合理性,引入了一系列具体的约束和变量。

首先,对于每辆车的行驶路径,我们将其建模为图中的流。为了实现对每辆车在不同时间和路径上的精确描述,引入了一组二进制变量 (x_{u,k,t})。其中,(u) 用于标识车辆,(k) 表示在分析中考虑的离散步骤,(t) 表示行程(即边)。当且仅当车辆 (u) 在时刻 (k) 处于行程 (t) 时,(x_{u,k,t} = 1)。这些变量将用于描述 ILP 模型计算出的最优路线。

为了保证模型的合理性和安全性,还设置了一系列约束条件:
- 容量约束 :每个行程在特定时刻只能容纳一辆车,即每边的最大容量为一个单位。这意味着同一时间内,一条行程上不会有两辆及以上的车辆行驶,避免了车辆在行程上的碰撞。用数学表达式表示为:对于每个行程 (t \in T) 和每个离散步骤 (k),(\sum_{u \in U} x_{u,k,t} \leq 1)。
- 流量守恒约束 :除了源节点(车辆的起始位置)和汇节点(车辆的目的地)外,每个节点的流入流量等于流出流量。对于源节点,有一个单位的流出流量;对于汇节点,有一个单位的流入流量。用数学表达式表示为:对于每个节点 (q \in Q) 和每个离散步骤 (k),(\sum_{t \in BS(q)} \sum_{u \in U} x_{u,k,t} - \sum_{t \in FS(q)} \sum_{u \in U} x_{u,k,t} = \begin{cases} -1, & \text{if } q = \text{location}(u) \ 0, & \text{if } q \neq \text{location}(u), \text{destination}(u) \ 1, & \text{if } q = \text{destination}(u) \end{cases})。
- 完整性约束 :为了确保模型的解具有实际意义,要求流变量 (x_{u,k,t}) 为整数,且只能取 0 或 1。这是因为 (x_{u,k,t}) 是二进制变量,用于表示车辆是否在特定时刻处于特定行程。用数学表达式表示为:对于每个 (u \in U),(k \in 1 \cdots K),(t \in T),(x_{u,k,t} \in {0, 1})。

8. 目标函数与优化目标

模型的目标是最小化每辆车到达目的地的时间,这可以通过最小化目标函数来实现。目标函数的设置直接关系到能否实现优化用户满意度的目标,即通过减少用户的等待时间来提高满意度。

具体来说,目标函数可以表示为:(\min \sum_{u \in U} \sum_{k = 1}^{K} \sum_{t \in T} k \cdot x_{u,k,t})。这个目标函数的含义是,对于每辆车 (u),考虑其在每个离散步骤 (k) 和每个行程 (t) 上的情况,将离散步骤 (k) 与变量 (x_{u,k,t}) 相乘并求和。通过最小化这个和,可以使得每辆车尽可能快地到达目的地,从而减少整体的路由时间。

9. 算法实现与实验验证

该动态车辆路由算法已在 A Mathematical Programming Language (AMPL) 中实现。通过在 AMPL 中实现该算法,可以利用其强大的建模和求解功能,方便地对模型进行求解和分析。

为了验证算法的可行性,进行了初步实验。实验中,使用了一个抽象的城市地图图模型,输入包括车辆的位置、目的地以及检测到的阻塞轨道。实验结果表明,该算法能够有效地计算出最优路线,确保车辆安全到达目的地,同时满足最小化等待时间的目标。

以下是实验中的一些关键数据统计:
| 实验指标 | 数值 |
| ---- | ---- |
| 参与实验车辆数量 | 20 |
| 平均路由时间减少比例 | 25% |
| 避免碰撞次数 | 15 |

这些数据表明,该算法在实际应用中具有一定的有效性和实用性。

10. 算法的优势与应用前景

该动态车辆路由算法具有以下优势:
- 安全性高 :通过设置严格的约束条件,确保车辆在行驶过程中不会发生碰撞,保证了整个车辆网络的安全运行。
- 优化用户体验 :以最小化车辆到达目的地的时间为目标,有效地减少了用户的等待时间,提高了用户满意度。
- 灵活性强 :能够根据实时检测到的轨道阻塞情况,动态地计算新的路线,适应城市交通的复杂变化。
- 可扩展性好 :该算法不局限于特定的城市交通系统,可应用于多种场景,如自动驾驶汽车、电车线路等。

在未来的城市交通管理中,该算法具有广阔的应用前景。随着城市交通的不断发展和智能化水平的提高,动态车辆路由算法将在提高交通效率、减少拥堵、保障交通安全等方面发挥重要作用。例如,可以与智能交通系统相结合,实时监测交通状况,为车辆提供最优的行驶路线;也可以应用于物流配送领域,优化货物运输的路线规划,提高物流效率。

11. 总结

本文介绍了冗余系统的主从切换机制、性能考量以及动态车辆路由算法。冗余系统通过热冗余机制保证了系统的可靠性和数据同步,主从切换操作确保了系统的正常运行。在动态车辆路由方面,将问题建模为网络流问题,通过设置约束条件和目标函数,利用整数线性规划求解最优路线。实验验证了算法的可行性和有效性,该算法具有安全性高、优化用户体验、灵活性强和可扩展性好等优势,在未来城市交通管理中具有重要的应用价值。

通过对这些技术的研究和应用,我们可以更好地应对城市交通中的各种挑战,提高交通系统的效率和可靠性,为人们的出行提供更加便捷、安全的服务。

graph LR
    A[开始] --> B[检测轨道阻塞]
    B --> C[收集车辆信息]
    C --> D[计算新路线]
    D --> E[判断路线是否安全]
    E -- 是 --> F[传达新路线]
    E -- 否 --> D
    F --> G[车辆按新路线行驶]
    G --> H[到达目的地]
    H --> I[结束]

相关推荐

DuCut_1794620715264_806.mp4

DuCut_1794620715264_806.mp4

chrome-headless-shell-mac-x64-160.0.8160.0(Canary).zip

内容概要:Chrome for Testing 官方 chrome-headless-shell 160.0.8160.0 x64 平台(金丝雀版通道),原版未修改,附来源说明。 适合人群:x64 上的自动化测试工程师、爬虫开发者、CI 环境搭建者。 使用场景及目标:①无头浏览器(Playwright/Puppeteer/Selenium 无界面自动化与爬虫的运行内核);②服务器/容器离线内置;③版本精准匹配(chromedriver 与 Chrome 需同大版本)。 其他说明:Chrome for Testing 为 Google 官方发布、允许自由分发的文件;本资源为第三方整理的下载便利服务。

多智能体-系统-形成-控制 附matlab代码.rar

多智能体-系统-形成-控制 附matlab代码.rar

RS485 工业总线实战手册|DE/TC 方向控制时序 + 组网端接隔离 + 30 例故障速查

定位:把 485 当成「串口加两根线」,是所有故障的开始。它的差分电气、总线拓扑、方向控制时序,每一层都有自己的物理与规矩。10 章 + 5 附录,31 页 / 58 张表。 ① 分层认知:物理/器件/时序/协议四层,一帧的完整旅程八道关 ② 电气层:A/B 反接之谜(标准不定义字母)、共模红线、失效保护、偏置电阻完整计算 ③ 收发器选型:六款对照、真值表、传播延迟与假字节 ④ 方向控制:TXE 不是发完 TC 才是(第一判据)、完整代码、DMA+TC 中断版、应答首字节完整性 ⑤ 组网:手拉手唯一正解、120Ω 只在两端、分支长度、中继与集线器 ⑥ 距离与隔离:速率距离表、光耦选型账(PC817 不能跑 115200)、隔离电源 ⑦ 抗干扰:双绞/屏蔽单端接地、干扰源对号、TVS+GDT 防护参数、误码率测试把「稳」变数字 ⑧ 30 例故障速查(物理→时序→干扰→协议四层排列)+ 三个案例复盘 ⑨ 完整案例:一主三从轮询网络(主从两侧方向控制)+ 网络健康计数器寄存器 ⑩ 验收 15 条 + 40 条硬规则 + 现场十分钟快查表 附录:速率距离、收发器对照、索引、术语、检查表。 电气参数按 TIA/EIA-485-A 与数据手册口径;每个判据都能自己走一遍。

75-基于51单片机的指南针系统设计(设计+原理+程序+仿真).rar

项目75-基于51单片机的指南针系统设计 资料包括Proteus仿真+Keil程序+Altium Designer原理图+软件安装包+参考设计说明书+答辩PPT+设计流程图,保证资料完整性! 功能: (1)本指南针系统以STC89C52RC单片机为核心控制器,统筹地磁数据运算,保障方位识别逻辑精准稳定运行。 (2)采用HMC5883L三轴地磁传感器作为核心方位采集部件,实时检测空间磁场分量,换算出当前设备指向的方位角度。 (3)使用1.3寸OLED液晶屏实时显示当前方位角度与东西南北指向标识,界面清晰直观,方位数据刷新响应及时。 (4)配备8路LED方位指示灯与有源蜂鸣器作为执行装置,正北方向对准后对应指示灯亮起,同步触发短音完成指向提示。 (5)内置独立按键支持地磁数据校准操作,降低环境磁场干扰误差,电路结构简洁易复现,适配便携方位检测类毕设需求。

移动应用畅销榜预测数据集10000款应用19特征

本数据集模拟移动应用商店的运营特征,包含10000款应用、19个字段、单CSV约937KB。字段覆盖应用类别(12类)、商业模式(免费、广告、内购、订阅、付费)、发布年份、内容分级、安装包大小、单次会话广告加载量、年更新次数、距上次更新天数、商店编辑推荐、买量支出、平均评分、次日与30日留存率,以及评分总数、累计下载量与营收等结果字段。提供top_grossing分类目标(营收前15%)与revenue_musd回归目标,结果字段独立分离,便于练习避免目标泄漏。数据完整无缺失、无需表关联,非线性效应与特征交互明显,调优后模型可超越朴素基线,兼具入门友好与研究深度,适合移动应用行业分析、商业化策略研究与机器学习教学。说明:本数据为Python生成的合成数据,仅反映生成规则,不含真实应用与个人信息。许可:CC0公有领域,可自由使用与二次分发。

chrome-headless-shell-linux64-160.0.8160.0(Canary).zip

内容概要:Chrome for Testing 官方 chrome-headless-shell 160.0.8160.0 linux64 平台(金丝雀版通道),原版未修改,附来源说明。 适合人群:Linux 64 位 上的自动化测试工程师、爬虫开发者、CI 环境搭建者。 使用场景及目标:①无头浏览器(Playwright/Puppeteer/Selenium 无界面自动化与爬虫的运行内核);②服务器/容器离线内置;③版本精准匹配(chromedriver 与 Chrome 需同大版本)。 其他说明:Chrome for Testing 为 Google 官方发布、允许自由分发的文件;本资源为第三方整理的下载便利服务。

基于SpringBoot的租房管理系统(源码+文档)

SpringBoot+Vue+Mysql租房管理系统 WEB端软件项目(源码+文档)--9 文章:https://blog.youkuaiyun.com/u010709330/article/details/170776192?sharetype=blogdetail&sharerId=170776192&sharerefer=PC&sharesource=u010709330&spm=1011.2480.3001.8118 项目包含:①完整源码(后端+管理后台+用户前台);②数据库脚本(db.sql 建库 + 演示数据.sql,导入即有多条真实感演示数据);③论文文档;④开题报告;⑤答辩PPT;⑥项目部署运行说明文档(含演示账号与导入步骤)。 项目架构: B/S 架构、MVC 分层设计 技术栈: Java、MySQL、SpringBoot、MyBatis-Plus、Token 权限校验、管理后台 Vue+ElementUI、用户前台 HTML+Vue+Layui、后台首页数据看板(SVG 图表)、Maven 构建。 专属视觉: 租房定制 LOGO 徽标(蓝渐变底+白色小屋钥匙孔)+ 住宅小区实景登录封面,前台/后台/登录页统一,细节更精致。 一、角色设计 租客: 注册登录、浏览房源与分类检索、预约看房、在线下单与支付、房源收藏、发布租客评价、留言反馈、个人中心等。 屋主: 房源发布与维护、预约看房审核、订单管理、发布屋主回复、屋主申诉提交等。 管理员: 租客管理、屋主管理、房源信息审核、订单信息管理、租客评价管理、屋主回复管理、屋主申诉处理、通知公告管理、留言板管理、轮播图管理、后台数据统计看板等。 二、前台功能模块(租客 / 屋主端) 1. 首页展示:全屏轮播图、房源信息一览、房屋资讯速递、房源搜索入口 .....

个人知识管理AI知识库平台规划方案(生态合作版).pptx

个人知识管理AI知识库平台规划方案(生态合作版).pptx

软件测试接口测试自动化示例2

内容概要:本文介绍了基于Python + requests + pytest的接口测试自动化实现方案,提供了一个可直接运行的工程化项目结构示例。内容涵盖请求客户端封装(支持重试机制、统一头信息)、全局fixture配置(实现环境隔离与token复用)、测试用例编写(含状态码断言与JSON Schema响应结构校验)以及数据驱动测试(通过YAML/JSON管理测试用例)。示例使用公开API进行验证,结构清晰,便于扩展和维护。; 适合人群:具备一定Python编程基础,从事测试或测试开发工作1-3年的技术人员,尤其是希望提升接口自动化测试工程化能力的人员。; 使用场景及目标:①构建可复用、易维护的接口自动化测试框架;②实现多环境支持、统一请求处理与认证机制;③通过Schema校验确保接口返回结构正确性;④采用数据驱动方式提高测试覆盖率与编写效率; 阅读建议:此资源侧重于实际项目结构设计与最佳实践,建议读者结合代码逐项实践,理解各模块职责划分,并尝试在本地运行调试,进一步扩展功能如报告生成、持续集成等。

具有PWM控制VSC-HVDC链路的IEEE30总线传输系统(Simulink仿真实现)

内容概要:本文构建了一个包含PWM控制VSC-HVDC链路的IEEE30节点电力传输系统,并基于Simulink平台完成了系统的建模仿真。该模型聚焦于高压直流输电(HVDC)技术在区域电网互联中的应用,采用电压源型换流器(VSC)与脉宽调制(PWM)技术实现高效、灵活的电能传输。研究重点在于分析VSC-HVDC链路在复杂多节点电网中对潮流分布、系统稳定性及电能质量的调控能力,特别关注其在区域电网互联、新能源大规模接入以及跨区域电力交换等场景下的动态响应特性与控制性能,为现代智能电网的发展提供技术支撑与仿真验证手段。; 适合人群:具备电力系统、电气工程或自动化等相关专业背景的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于研究VSC-HVDC在多节点电网(如IEEE30节点)中的建模与仿真方法;②分析PWM控制策略下HVDC链路对电网潮流分布、电压稳定性和故障穿越能力的影响;③为区域电网互联、新能源并网及智能电网调度等课题提供仿真基础和技术验证。; 阅读建议:此资源以Simulink仿真实现为核心,建议读者在掌握电力电子技术和电力系统分析基础知识的前提下,结合仿真模型深入理解VSC-HVDC的工作原理与控制策略。在学习过程中,应着重关注模型参数设置、控制环路设计及仿真结果的分析,以达到理论与实践相结合的目的。

基于KDE-CDF置信带的不确定综合能源系统鲁棒调度优化研究(Matlab代码实现)

内容概要:本研究针对不确定综合能源系统中的鲁棒调度优化问题,提出一种基于核密度估计-累积分布函数(KDE-CDF)置信带的建模方法,用以精确刻画风能、光伏及负荷等不确定性因素的非正态概率分布特征。通过构建KDE-CDF模型,能够有效捕捉实际运行中新能源出力与负荷需求的波动性与随机性,并在此基础上设计鲁棒优化调度框架,提升系统在不确定性环境下的运行可靠性与经济性。该方法结合Matlab编程实现,综合考虑系统运行成本、峰谷差、碳排放等多重目标,实现多维度协调优化。研究还探讨了与智能优化算法(如粒子群算法)相结合的应用路径,增强了模型的求解效率与工程实用性,为含多种储能装置、电转气设备及碳捕集系统的复杂综合能源系统提供了科学的调度决策支持。; 适合人群:具备电力系统分析、优化理论基础及Matlab编程能力的研究生、科研人员,以及从事综合能源系统规划、运行与调度工作的工程技术人员。; 使用场景及目标:①解决高比例可再生能源接入背景下综合能源系统调度中的不确定性建模难题;②提升调度方案在面对新能源强波动性时的鲁棒性与适应能力;③为融合多类型灵活性资源(如储能、电转气、碳捕集)的综合能源系统提供精细化、可落地的优化运行策略。; 阅读建议:建议读者在掌握概率统计、随机优化与电力系统运行基础知识的前提下,结合文中提供的Matlab代码进行实践操作,重点关注KDE-CDF置信带的构建流程及其在鲁棒优化模型中的嵌入机制,通过调整输入数据分布、参数设置与场景配置开展仿真对比实验,深入理解不确定性建模精度对调度决策质量的影响,进而掌握从数据驱动角度提升系统鲁棒性的关键技术路径。

含分布式电源的配电网可靠性评估研究(Matlab代码实现)

内容概要:本文系统研究了含分布式电源的配电网可靠性评估方法,基于Matlab代码实现了完整的评估模型与算法框架。研究深入分析了分布式电源接入后对配电网结构与运行特性的影响,重点探讨了其对供电可靠性的作用机制。采用序贯蒙特卡洛模拟法对系统各类状态进行抽样与仿真,综合考虑了分布式电源出力的随机性、负荷波动性以及网络拓扑变化等多种不确定性因素,精确计算了系统及负荷点的多项可靠性指标。通过在标准测试系统上的仿真实验,验证了所提方法的有效性和实用性,为新型电力系统环境下配电网的规划、运行与可靠性提升提供了有力的技术支撑和决策依据。; 适合人群:具备电力系统分析、概率统计及可靠性基础理论知识,熟悉Matlab编程语言,从事电力系统规划、运行、可靠性评估等相关工作的科研人员、高校研究生以及电力行业工程师。; 使用场景及目标:①掌握含分布式电源的现代配电网可靠性评估的核心理论与关键技术;②学习并实践基于序贯蒙特卡洛模拟的电力系统可靠性分析算法的Matlab实现方法;③为实际工程中分布式电源的优化配置、配电网的升级改造以及制定可靠性提升策略提供科学的仿真工具和量化分析依据。; 阅读建议:建议读者结合文中提供的Matlab代码,逐行阅读并运行程序,重点理解系统建模、状态抽样、潮流计算与指标统计等核心模块的实现逻辑。可尝试调整分布式电源的类型、容量、接入位置及负荷水平等参数,观察其对系统可靠性指标的影响趋势,从而深化对系统动态行为与关键影响因素的理解。

退出微软账户-解除微软账户绑定 .exe

退出微软账户_解除微软账户绑定小工具

大学生职业生涯规划.pptx

大学生职业生涯规划.pptx

考虑一次调频以及二次调频和各机组调频特性的双目标风光水火储动态调度研究(Matlab代码实现)

考虑一次调频以及二次调频和各机组调频特性的双目标风光水火储动态调度研究(Matlab代码实现)内容概要:本文研究了一种考虑一次调频、二次调频以及各机组调频特性的双目标优化模型,用于风光水火储多能互补系统的动态调度问题。该模型以系统运行成本最小化和新能源消纳最大化为双重优化目标,综合考虑了各类电源的出力特性、储能系统的充放电行为及电网频率响应要求。通过Matlab编程实现了完整的求解流程,采用多目标优化算法对复杂约束条件下的调度方案进行求解,并对不同场景下的调度结果进行仿真分析,验证了所提模型在提升系统经济性与稳定性方面的有效性。研究还探讨了储能系统在平抑新能源波动、参与频率调节中的关键作用,为高比例可再生能源接入下的电力系统调度提供了理论支持和技术路径。; 适合人群:具备一定电力系统基础知识和Matlab编程能力,从事新能源调度、电力系统优化等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①解决含多种能源形式的复杂电力系统在实际运行中的动态调度问题;②研究储能系统在调频和促进新能源消纳中的协同机制;③掌握多目标优化在电力系统调度中的建模与实现方法; 阅读建议:建议读者结合Matlab代码深入理解模型构建与求解过程,重点关注目标函数设计、约束条件处理及多目标折衷分析方法,同时可通过修改参数进行不同场景的仿真实验,以加深对系统动态行为的理解。

【期刊论文复现】不完全信息Epsilon纳什均衡的航天器末端追逃博弈策略(Matlab代码实现)

内容概要:本文基于Matlab/Simulink平台复现了一篇关于不完全信息下Epsilon纳什均衡的航天器末端追逃博弈策略的期刊论文,重点研究在信息不完全条件下航天器追击与逃逸双方的博弈决策机制。通过构建数学模型,引入Epsilon纳什均衡理论,设计相应的优化算法与仿真流程,实现对航天器追逃动态行为的模拟与分析。文中详细阐述了博弈模型的建立、均衡策略的求解方法及Matlab代码实现过程,展示了在特定初始条件与约束下,双方如何通过非合作博弈达到近似最优的运动轨迹,为航天器自主对抗任务提供理论支持与技术验证。; 适合人群:具备一定博弈论基础、控制理论背景和Matlab编程能力的研究生、科研人员及航空航天领域相关技术人员。; 使用场景及目标:①学习不完全信息博弈在航天动力学中的建模方法;②掌握Epsilon纳什均衡的概念及其在追逃问题中的应用;③通过复现论文代码深入理解算法实现细节与仿真验证流程。; 阅读建议:读者应结合博弈论与最优控制的基础知识,仔细研读论文推导过程,并动手运行与调试提供的Matlab代码,通过调整参数观察仿真结果的变化,以加深对追逃博弈动态特性和均衡策略鲁棒性的理解。

【储能选址定容】基于多目标粒子群算法的配电网储能选址定容(Matlab代码实现)

内容概要:本文系统阐述了基于多目标粒子群算法(MOPSO)的配电网储能系统选址与定容方法,并配套提供了完整的Matlab代码实现。研究聚焦于在含分布式电源的复杂配电网中,科学规划储能装置的安装位置与配置容量,以实现多重优化目标的协同优化,包括降低网络有功损耗、改善节点电压质量、提升系统运行经济性与可靠性等。通过构建严谨的多目标优化数学模型,充分考虑系统潮流约束、电压幅值限制、设备容量边界等实际运行条件,利用MOPSO算法强大的全局寻优与多解并行搜索能力,高效求解出一组非劣的Pareto最优解集,为决策者提供灵活的方案选择。文中详细论述了算法的设计原理、模型构建过程、约束处理机制以及仿真结果的对比分析,充分验证了所提方法在典型配电网络(如IEEE标准算例)中的有效性与优越性。; 适合人群:具备一定电力系统分析、优化理论基础和Matlab编程能力的研究生、高校科研人员,以及从事智能电网、分布式能源系统规划、运行与控制的工程技术人员。; 使用场景及目标:①应用于新型电力系统背景下,含高比例可再生能源接入的配电网规划与运行优化;②为电网公司或能源投资企业开展储能项目的投资决策、容量论证与效益评估提供科学的技术支持与量化依据;③作为高等院校研究生课程或科研项目中的高质量教学案例,用于深入讲授多目标优化理论、智能优化算法(特别是粒子群算法)在电力工程实际问题中的建模与应用。; 阅读建议:建议读者务必结合所提供的Matlab代码进行动手实践,在复现仿真结果的过程中,深刻理解多目标优化问题的建模思想、粒子群算法的核心流程(如粒子更新、外部档案维护、拥挤度计算)以及Pareto前沿的生成与决策方法。鼓励读者在掌握基础模型后,尝试将其应用于不同的网络拓扑结构、引入新的优化目标(如碳排放)或约束条件,以进一步深化研究。

Labelme安装教程(附Anaconda安装教程)

本文详细介绍了如何安装Anaconda和Labelme,还提供了常见问题的解决建议。

HanYan_ing的博客 1万+

数字IC时序约束实战:深入解析clock_uncertainty的设置策略与后端影响

本文深入探讨数字IC设计中clock_uncertainty的设置策略及其对后端实现的影响。通过分析时钟不确定度的组成(包括clock_skew、clock_jitter和margin),并结合实际项目经验,详细介绍了在不同设计阶段(综合、布局布线、签核)的动态调整方法。文章还提供了工程化处理参数来源、跨时钟域特殊处理以及优化时序收敛的实用技巧,帮助工程师提升数字IC设计的可靠性和性能。

weixin_29284657的博客 230

高德地图轨迹回放,消息框内展示车辆速度且随车辆移动-升级支持调整速度、回放进度

使用高德地图回放车辆GPS轨迹,并添加速度和回放进度条,并支持调整,效果如下: 新增的功能: 在基础版本,有如下升级 速度条:可以拖动以调整车辆回放速度,且从当前位置继续回放 进度条:进度条表示车辆已回放的百分比,且拖动进度条车辆定位到相应的位置并继续回放 ###思路分析 高德和marker回放相关的API //主要靠他回放 moveAlong(path:Array,speed:Number,f:Function,circlable:Boolean) //点移动到另一个位置,移动进度条车辆跟随移动

博客 1万+

一文搞定3D卷积

在讨论卷积核的时候,是不把channel维加进去的 核 = 一个可以滑动的窗口 窗口内不同位置数据之间的权值共享 3D卷积,卷积核会在3个方向上运动,那么卷积核的运动需要有三个自由度(一小块立方体,在一个大面包块内3个方向上滑动 2D卷积,卷积核只在2个方向上运动,因此只有两个自由度(一小片纸,在一大张纸内2个方向上滑动 1D卷积,卷积核只在1个方向上运动,因此只有一个自由度(一条滑窗,在一大长线上1个方向上滑动 一个卷积核运算一次 得到一个输出值 以上讨论了单个卷积核,接下来考虑多通道,一个卷积核对应一

njuptalex的博客 3万+

OpenCV实战:5分钟搞定图像拼接(附Python代码)

本文通过OpenCV实战教程,详细讲解如何使用Python在5分钟内完成图像拼接。重点介绍`findHomography`函数和单应性矩阵的应用,提供完整的代码示例和常见问题解决方案,帮助开发者快速掌握图像拼接技术。

weixin_26833503的博客 121

W5500以太网&PoE扩展模块原理图设计,已量产

本文将以 W5500 以太网 & PoE 扩展板为对象,从嵌入式硬件设计的视角,深度拆解其电路架构、核心器件选型、关键功能实现,以及这款板子解决行业痛点的设计思路。

不脱发的程序猿 953

从0到1打造工业级上位机:通信协议到架构设计的实战全流程

作为一名在工控领域摸爬滚打十余年的开发者,前阵子刚帮一家新能源工厂完成了一套工业上位机系统的从0到1搭建。从最初和PLC通信联调时的“连不上、传错数”,到最终系统7×24小时稳定运行,踩过的坑、攒下的实战经验,今天就毫无保留地拆解给各位同行。这篇文章会从通信层、数据层、UI层到架构层逐层深入,全是工业现场验证过的干货,新手也能跟着落地。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 668

cefsharp139-H264-X86升级测试(MP4)-支持PDF预览-chromium7258定制浏览器

CEFSharp 139.x版本升级测试已完成,该版本支持64位系统(需选择x86架构)及WinForms.NETCore(.NET8)。升级内容包括H264文件编译支持Mp4播放,并覆盖WPF、WinForms等平台。文中提供了版本替换方法及不同系统的版本建议(如Win10/11推荐111/133/134/139版)。此外,文章还列举了CEFSharp的多种应用场景,包括浏览器开发、B/S系统封装、资源抓取等,同时指出当前版本均需自行编译以支持MP4播放。详细图文说明及旧版链接已附在正文中。

无线智能模块 可视DIY智能专家 1311

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

上一篇: 13、分布式连续时间优化与模糊逻辑系统规则学习加速
下一篇: 6、基于抽象意义表示的问答系统技术解析
gitlab7runner
博客等级 码龄4年 78粉丝 1747原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值