尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
基于蒙特卡洛法的电动汽车充电负荷计算MATLAB仿真程序
简介针对电动汽车充电负荷预测这一电力系统规划的关键问题这份MATLAB程序提供了基于蒙特卡洛法的完整计算方案面向电力系统研究人员、电动汽车方向学生及工程师适用于充电基础设施规划与电网调度分析。程序通过大量随机抽样模拟出行时间、行驶距离、充电习惯等不确定因素将出行特性量化为概率分布并综合车辆数量、行程分布、充电时段、充电速率与电池容量等参数最终输出充电负荷的统计分布。资源包共3个文件含2个m脚本main.m主程序与pev_n.m核心计算模块及1份模型说明文档docx压缩包大小2.07MB。程序涵盖输入参数设置、随机抽样、负荷计算、结果统计与可视化展示全流程便于直接运行和调整参数观察负荷变化已有2947人学习下载。适合需要快速上手蒙特卡洛仿真、掌握充电负荷建模方法的读者参考学习。1. 蒙特卡洛法算电动汽车充电负荷一条概率曲线比一个精确数更有用你可能正在做片区充电设施规划也可能是在写一篇需要负荷曲线支撑的论文然后被告知一句“用蒙特卡洛法算一下电动汽车充电负荷”。这套基于蒙特卡洛法的电动汽车充电负荷计算matlab程序做的不是预测明天几点有多少辆车来充电而是把成千上万种可能的充电行为批量抽出来叠出一条概率意义上的日负荷曲线——均值、峰值、5%到95%分位都在里面。它适合配电网规划、充电桩选址、有序充电策略研究也适合刚入门、想在自己电脑上跑出第一版结果的硕士研究生。整套逻辑没有黑匣子拆开不过三张概率分布和一次加法聚合。2. 先立模型再写代码把充电行为拆成三个随机变量和一个时序骨架2.1 为什么解析法在这里失效而蒙特卡洛法刚刚好电动汽车充电负荷和传统居民负荷最大的区别在于你不能把“一辆车平均每天充几度电”乘上保有量就交差。因为充电行为在时间轴上是高度集中的——晚高峰回家的那两三个小时里大量车辆同时插枪负荷会迅速抬升而凌晨两三点可能只有零星几辆车在慢充。规划变压器容量、判断台区是否过载看的恰恰是这种“同时性峰值”不是一天的充电总量。如果走解析路线理论上可以把车辆到达时间、起始SOC、充电功率三个随机变量联立起来求叠加分布。但问题是到达时间一般用正态或双峰分布描述起始SOC由日行驶里程和电池容量耦合而来充电功率又是离散分档的三者在时间轴上卷积之后根本没有闭式解。强行用期望值代替每个变量最后算出来的峰值会明显偏低而且没法给出“这个峰值有多大概率出现”这种信息。蒙特卡洛法做的恰恰是把困难转移给计算量随机抽样成百上千次每次得到一条可能的日负荷曲线最后把这一批曲线做统计。不需要推导联合概率密度只需要定义好每个变量的分布和相互约束关系。这也是为什么配电网规划里做充电负荷预测时蒙特卡洛法几乎是默认选项——它能天然体现“同时率”而不是拍脑袋给定一个0.3或0.4的同时系数。2.2 建模第一步抽哪几个随机变量怎么抽我把一个充电事件拆成四个要素谁的车、从多少电开始充、什么时候插枪、用多大功率充。对应到程序里就是车型决定电池容量、日行驶里程决定起始SOC、到达时刻tStart决定充电时段、充电功率P决定充电时长。其中起始SOC一般不直接抽分布而是先抽日行驶里程再用里程反推。三个核心随机变量的常用分布如下表。注意这是“常用”不是“必须”——如果你的数据源显示某个城市晚高峰有两个明显高峰那就应该换成双峰混合分布下面第4章会展开讲。随机变量常用分布选择理由起始充电时刻 tStart正态分布反射到 0~24h通勤用户回家插枪时间集中在 17~20 点日行驶里程 mileage对数正态分布里程数据右尾长均值附近集中充电功率 P离散分布慢充/快充多档位由充电桩类型和额定功率决定起始SOC的计算逻辑是SOC0 1 - mileage × energyPerKm ÷ batteryCapacity。意思是一辆车当天跑了多少公里就消耗了多少电量剩余电量就是起始SOC。这样抽出来的SOC和里程自然相关不会出现“车只跑了10公里但SOC只有0.2”这种自相矛盾的样本。如果你手里有大量真实充电日志甚至可以用bilstm这类时序模型预测下一次插枪时的起始SOC把分布抽样换成模型输出——那是拿到数据之后做精细化的玩法本程序要解决的是没有日志、只有统计参数时的蒙特卡洛抽样问题。2.3 时序骨架把一天切成96个时段做叠加充电负荷最终要落到时间轴上。我习惯把一天按15分钟切成96个时段tAxis 0, 0.25, 0.5, …, 24h。为什么是15分钟而不是1分钟变压器容量校核和台区规划通常看15分钟或30分钟级负荷这个粒度已经足够捕捉晚高峰的抬升过程如果切成1分钟曲线上的毛刺会非常多反而干扰对峰值形态的判断计算量还大。本质上这就是在做一个离散时间系统的逐点叠加——每辆车的充电过程按起止时段映射到96个点同一时段内的所有车功率相加。具体映射方法是起始时刻tStart换算成起始时段索引 idxS ceil(tStart × 4) 1充电时长Dur换算成结束时段索引 idxE ceil((tStart Dur) × 4)。Dur由“需要充入的电量 ÷ 充电功率”得到而需要充入的电量 (SOC_max - SOC0) × batteryCapacity。这里有一个容易忽略的边界tStart Dur完全可能越过24点idxE会超过96。这时要决定跨过零点的负荷怎么处理这个问题我放到第5章避坑部分专门讲但建模时脑子里要时刻记着“负荷会跨日”。3. 用MATLAB跑通最小实现初始化、抽样、96时段负荷叠加3.1 参数初始化固定随机种子是第一个好习惯打开MATLAB新建一个脚本先把参数都写在文件头部。不要写到一半再补参数后面调参数时你会感谢这个习惯。以下是我的常用初始化和抽样代码。% 基于蒙特卡洛法的电动汽车充电负荷计算 - 参数初始化 % 时间分辨率: 15 min/点, 一天 96 个点 rng(20240801); % 固定随机种子, 保证结果可复现 N 3000; % 区域内电动汽车保有量 Nsim 500; % 蒙特卡洛模拟轮数 nSlot 96; % 一天 96 个时段 % 车辆固定参数: 电池容量分三档, 单位 kWh batteryCap [40, 60, 80]; % 对应紧凑型/中型/长续航车型 carRatio [0.45, 0.40, 0.15]; % 三类车型的保有量占比, 求和为 1 % 充电功率配置: 慢充和快充各有两档, 单位 kW slowP [3.5, 7]; % 家用慢充桩常见额定功率 fastP [60, 120]; % 直流快充桩常见额定功率 fastRatio 0.28; % 选择快充的车辆比例 % 出行与能耗: 日均里程均值和对数标准差 avgMileage 35; % 单位 km sigmaMile 0.5; % 对数标准差 energyPerKm 0.15; % 单位 kWh/kmrng(20240801)的作用是把随机数生成器初始化到一个确定状态。固定种子之后你每次打开脚本跑出来的结果完全一样这在你调参数、复现论文结果、或者把代码交给同事复核时非常关键。随机参数这件事不是玄学但随机数流如果不固定它就是玄学。batteryCap和carRatio是一组配套参数。比如区域里如果以家用代步车为主小电池占比就高如果出租车和网约车占比大长续航车型的占比要上调。fastRatio是慢充和快充的比例这个值和区域类型强相关居民区可能只有0.1~0.2高速服务区会到0.4以上。后面的抽样都依赖这一组基础参数所以调参时优先调这一块。3.2 抽样与叠加起始SOC用里程反推不要独立硬抽下面是整个程序的核心循环每跑一轮就模拟一整天的充电过程。500轮下来得到500条日负荷曲线。dayLoad zeros(nSlot, 1); % 当日96个时段的累计功率, 单位 kW for sim 1:Nsim % 1) 抽取车型, 得到每辆车的电池容量列向量 idxCar randsample(1:3, N, true, carRatio); C batteryCap(idxCar); % 2) 日行驶里程: 对数正态分布, 上限截断到 120 km mileage lognrnd(log(avgMileage), sigmaMile, N, 1); mileage min(mileage, 120); % 3) 起始 SOC: 由里程反推, 再夹在 [0.10, 0.95] 之间 soc0 1 - mileage .* energyPerKm ./ C; soc0 max(soc0, 0.10); % 保留最低电量, 防止完全放空 soc0 min(soc0, 0.95); % 4) 充电起始时刻: 晚高峰到家插枪, 正态分布落在 17~20 点 tStart normrnd(17.5, 2.5, N, 1); tStart mod(tStart, 24); % 反射回 [0,24), 防止 0 点附近堆积 % 5) 快充/慢充功率分配 isFast rand(N, 1) fastRatio; P zeros(N, 1); P(isFast) randsample(fastP, sum(isFast), true); P(~isFast) randsample(slowP, sum(~isFast), true); % 6) 充电时长与起止时段索引 Dur (0.95 - soc0) .* C ./ P; % 从 soc0 充到 95% 所需小时数 idxS ceil(tStart * 4) 1; % 起始时段, 落在 [1, 96] idxE ceil((tStart Dur) * 4); % 结束时段, 可能超过 96 % 7) 将功率叠加到对应时段 for k 1:N eToday min(idxE(k), 96); % 今天内实际覆盖到哪个时段 dayLoad(idxS(k):eToday) dayLoad(idxS(k):eToday) P(k); % 如果充电过程跨过零点, 跨日部分要放到 nextDayLoad 数组, % 详细写法见第 5.3 节 end end这段代码要解释几个关键设计。第三部分“起始SOC由里程反推”是程序的核心逻辑它保证了你抽出的每个样本在物理上是自洽的——跑了里程才消耗了电量消耗了电量才会有充电需求。如果你直接对SOC0抽一个正态分布抽出来的样本里会出现大量“SOC很低但里程很短”的车最后总充电量会明显偏离真实情况。第四部分用mod(tStart, 24)而不是if过滤是因为直接丢弃24点之外的样本会改变正态分布的密度形状导致0点到6点这段时段的样本异常偏多。mod反射是把超出边界的部分折回区间另一侧能维持大致均匀的覆盖。复杂度方面第7步的for循环在N3000、Nsim500时大概要跑150万次迭代MATLAB里大约需要几十秒。这个量级完全可接受所以没必要强行向量化。如果你的车辆规模到十万辆级再考虑把内层循环改造成按时段累计的histcounts方式。另外注意dayLoad叠加的是功率单位是kW一天总充电能量等于sum(dayLoad) × 0.25单位是kWh算出来可以和“日均里程×电耗×车辆数”做交叉验证数量级对不上说明抽样逻辑有bug。3.3 结果统计别拿单次曲线当结论看均值和分位带500次模拟结束后你会得到一个96×500的矩阵每一列是一天的负荷曲线。这时最忌讳的做法是拿最后一次模拟的曲线去画图写报告——单次曲线毛刺很大而且带不进概率信息。正确的做法是对每一时段求均值、5%分位数、95%分位数画出一条均值曲线和一条分位带。% 统计每日峰值的分布, 并画出 5%~95% 分位带 dailyPeak zeros(Nsim, 1); loadCurve zeros(nSlot, Nsim); for sim 1:Nsim % ... 第 3.2 节的抽样与叠加过程, 每轮得到一根 dayLoad 曲线 dailyPeak(sim) max(dayLoad); loadCurve(:, sim) dayLoad; dayLoad(:) 0; % 清空, 准备下一轮模拟 end tAxis (1:nSlot) / 4; % 横轴: 0~24 h avgLoad mean(loadCurve, 2); % 每个时段的均值 p05 prctile(loadCurve, 5, 2); % 5% 分位 p95 prctile(loadCurve, 95, 2); % 95% 分位 figure; patch([tAxis fliplr(tAxis)], [p05 fliplr(p95)], ... [0.85 0.92 1], EdgeColor, none); hold on; plot(tAxis, avgLoad, b-, LineWidth, 1.5); xlabel(时刻 (h)); ylabel(充电负荷 (kW)); grid on; legend(5%-95% 分位带, 均值曲线, Location, best); title(sprintf(%d 次蒙特卡洛模拟的日充电负荷, Nsim));patch画分位带的原理是把p05曲线和反转后的p95曲线首尾相连围成一个封闭多边形填充浅蓝色。这样从图上能直接读出两个信息——均值曲线告诉你典型日负荷形态分位带告诉你负荷波动的可能范围。规划场景里变压器容量校核通常看95%分位峰值而不是均值峰值因为均值对应的是“普通一天”而95%分位对应的是“充电需求偏旺盛的一天”。这整段程序从R2020b到较新的版本都能直接跑因为只用到了统计工具箱里的randsample、lognrnd、normrnd、prctile这些最基础函数接口多年没有变化。如果你用的是MATLAB Online注意把生成的结果文件及时下载保存云环境里的工作目录每次会话可能重置。4. 参数怎么标定分布类型、典型值与数据来源优先级4.1 参数表先有一组能跑的默认值再按你的场景微调下面这张参数表是我在多个项目里积累的一套默认范围。注意我这里给的是“标定来源和做法”不是让你直接照抄数值——不同城市的通勤结构、不同车型的保有量差异非常大。参数符号典型范围标定来源与做法电池容量C40 / 60 / 80 kWh车型公告 区域保有量结构百公里电耗energyPerKm0.12 ~ 0.20 kWh/km车型公告实测, 冬季开暖风偏高日均行驶里程均值avgMileage25 ~ 50 km交通年报 / 问卷 / 充电平台日志里程对数标准差sigmaMile0.3 ~ 0.7对里程样本取对数后求标准差起始充电时刻均值mu_t17 ~ 20 h充电桩插枪时间日志起始充电时刻标准差sigma_t2 ~ 3 h充电桩插枪时间日志快充占比fastRatio0.15 ~ 0.45按区域类型: 居民区低, 高速服务区高充电上限SOC_max0.90 ~ 1.00车企BMS策略 / 用户充电习惯参数标定的优先级我一般按这个顺序充电运营平台日志 本地交通统计年报 问卷数据 论文参考值。平台日志最可靠因为插枪时间、充电时长、充电功率都是实测记录交通年报能给出区域内的车辆日均行驶里程分布问卷数据偏差较大但至少能确定车型构成和通勤习惯。如果这些都没有才考虑参考同类型论文的参数。随便填参数的结果就是曲线形态看起来正常但和真实量测数据一对拍就翻车。4.2 分布类型的选择正态不是唯一解要配合数据形态tStart用正态分布是一个很粗的近似因为它假设所有用户的到达时间围绕一个均值对称波动。如果你的数据来源显示某城市晚高峰有两个波峰——比如17点半的回家流和19点半的商场流——那就要用双峰混合分布程序里改成两个normrnd按比例混合即可。同理日行驶里程用对数正态是因为里程数据通常是右偏的大部分人每天开30公里左右但少部分人跑网约车或长途能到150公里。如果你用正态分布去拟合这种数据右侧长尾会被严重低估导致极端里程样本偏少SOC偏低的情况抽不出来。起始充电时刻还有一个隐藏问题工作日和周末的分布完全不同。工作日是明显的晚高峰单峰周末则是上午和下午各有一个小峰。我在实际项目里的做法是对工作日和周末分别跑仿真然后按一周5天工作日加2天周末做加权合成。如果你想快速得到一条全年平均曲线可以用权重0.714和0.286合成如果论文要分别讨论典型工作日和典型周末就输出两条曲线。快充占比fastRatio要注意的是它与时段强相关。居民区晚上是慢充主导但高速服务区白天快充比例可能超过0.6。如果你的研究区域包含多种用地类型建议按“居住地充电、目的地充电、应急充电”三类场景分别建模而不是用一个全局比例糊过去。这里不需要改程序框架只需要把参数抽成每个场景独立的一组。4.3 仿真次数与收敛性跑多少轮才敢用结果蒙特卡洛法的收敛速度是1/sqrt(Nsim)也就是说想把结果的波动降低一半要把模拟次数放大四倍。这决定了“跑多少次够用”没有标准答案要看你对峰值稳定性的要求。我自己的经验是做方案比选时跑200次就够看趋势但要对外发布峰值和95%分位至少跑到500次如果结果要用于变压器容量校核我会跑到1000次以上。实操判断方法跑完先看dailyPeak的直方图。如果直方图形态高而窄说明峰值集中在很小的区间内结果稳定如果又矮又宽说明输入参数的方差太大或者模拟次数不够。更精确一点可以算dailyPeak的标准误差std(dailyPeak) / sqrt(Nsim)这个值一般控制在峰值的2%~3%以内我就认为结果可用。注意Nsim增大的收益是递减的——从100次加到500次效果明显从1000次加到2000次几乎看不到曲线变化这时再把算力花在调参数上更值得。5. 蒙特卡洛充电负荷计算避坑指南四个高频问题的现象、原因与解法5.1 深夜充电比例虚高正态分布边界截断的坑现象算出来的曲线里凌晨0点到6点居然有相当可观的充电负荷甚至和晚上22点差不多。这明显不合理——深夜不是没有车充电但不该高到这种程度。原因你如果写了“if tStart 0, tStart 0; if tStart 24, tStart 24”这种硬截断所有原来落在24点之后的样本都会被强行压到24点0点之前的被压到0点导致边界上堆积大量样本。正态分布的尾部虽然概率低但在N3000的样本量下尾部样本绝对数量并不少硬截断会产生数百辆“恰好0点插枪”的车。解决用mod(tStart, 24)反射回区间而不是直接截断。mod的副作用是会让部分样本从0点附近“弹”到24点附近但相比硬截断在边界上攒出一个人造高峰反射的扭曲要小得多。如果追求更严谨用截断正态分布工具包或拒绝抽样也能做但对工程计算来说mod反射已经足够。5.2 起始SOC和充电时长对不上独立抽SOC的连锁反应现象统计出来的日均充电电量比“日均里程×电耗×车辆数”低15%~20%或者出现充满后仍然显示在充电的样本。你检查半天发现抽样逻辑没写错但总能量就是守恒不了。原因起始SOC被独立抽分布时会出现“SOC很低但里程很短”甚至“SOC为0.1但电池容量60kWh的车当天只跑了5公里”这种物理矛盾样本。SOC太低导致充电时长被拉长部分充电过程超出24小时而你在叠加时又只截断到当天24点能量就悄悄丢了。解决严格用“先抽里程再反推SOC”的顺序并加上限幅。这是第3.2节代码里已经采用的做法。加一个总额校验sum(dayLoad) × 0.25应该等于所有车辆充入的电量总和也就是sum((0.95 - soc0) .* C)两者偏差超过5%就说明有样本在环节里被截断或者重复计算了。5.3 充电过程跨过零点时段索引越界和凌晨负荷漏记现象程序报错“Index exceeds the number of array elements”或者不报错但凌晨0点到2点的负荷明显偏低日总能量对不上。原因idxE ceil((tStart Dur) * 4)算出来的结束时段可能超过96。如果你直接写dayLoad(idxS:idxE) dayLoad(idxS:idxE) PMATLAB必然报越界。另一种错误是只把到96为止的部分加进去跨过零点的部分完全丢弃静默丢失能量。解决把内层循环改成先取eToday min(idxE(k), 96)今天内只加到eToday同时额外维护一个nextDayLoad数组承接跨日部分代码形如eToday min(idxE(k), 96); dayLoad(idxS(k):eToday) dayLoad(idxS(k):eToday) P(k); if idxE(k) 96 nextDayLoad(1:idxE(k)-96) nextDayLoad(1:idxE(k)-96) P(k); end如果你想偷懒还有一个更干净的做法多跑48小时只取第24小时到第48小时之间的96个点作为结果。这样所有充电过程都在仿真窗口内完成不需要处理跨日承接。代价是每轮模拟的车辆事件量和计算时间增大一倍但对准确性有实打实的提升。5.4 parfor并行时结果不可复现随机数流失控现象把for改成parfor代码跑得飞快但每次运行结果都不一样哪怕你已经写了rng(20240801)。你的同事复现时拿到的峰值相差20%。原因parfor会把循环迭代分发给多个worker并行执行每个worker有独立的随机数流主线程上的rng设置并不能约束worker的底层随机序列。MATLAB对parfor的随机数处理是自动生成独立流但迭代与随机流之间的映射在不同运行环境下可能不同结果自然不可复现。解决严格的科学计算复现需求下我建议串行for跑蒙特卡洛500次也就一分钟左右完全没必要并行。如果车辆规模到十万级、模拟轮次上千再考虑用RandStream为每次模拟创建独立子流并在parfor内部显式使用sp.randn这些方法而不是全局randn。5.5 中文注释乱码代码交付阶段才暴露的坑现象你把自己的脚本发给同事或者在另一台电脑上打开所有中文注释全部变成乱码程序没法读。原因MATLAB在部分中文Windows环境下默认源码编码是GBK而你的脚本可能是UTF-8编码或者反过来。这是老版本到新版本切换、不同区域电脑之间传输代码时最容易踩的坑尤其是R2023a/b这一代对编码的默认行为有变化。解决最省事的做法是代码内全部用英文或拼音注释这不算丢人工程交付里常见如果坚持中文注释在偏好设置里把MATLAB源码编码固定为UTF-8或者在文件传输前用文本编辑器统一转码后再打开。脚本开头不要写“注意中日韩文本”直接开工干活。编码问题不影响计算结果但会让你的程序看起来像一块没法维护的黑匣子。6. 最后再补一招峰值灵敏度分析与CSV导出让结果能被后续规划直接用6.1 参数敏感性分析哪些参数值得你花力气去调研程序跑通之后你最需要回答的问题通常是快充占比提高到0.4峰值会涨多少日均里程增加10公里晚高峰负荷怎么变这时候把主程序封装成函数只留下fastRatio或任意参数作为输入循环调用即可。% 将第 3 节的抽样与叠加逻辑封装为函数: loadCurve chargeLoadSim(fastRatio) fastRatioSet 0.15:0.05:0.45; avgPeak zeros(size(fastRatioSet)); for i 1:length(fastRatioSet) loadCurve chargeLoadSim(fastRatioSet(i)); dailyPeak max(loadCurve, [], 1); avgPeak(i) mean(dailyPeak); end plot(fastRatioSet, avgPeak, -o); xlabel(快充占比); ylabel(平均峰值负荷 (kW)); grid on;做一轮这样的单参数敏感性分析你就能直观看出哪些参数是“敏感参数”。我的经验里快充占比和起始充电时刻均值通常排在前两位电池容量构成的影响反而没那么大。这意味着你调研时应该优先把区域里的充电桩类型比例摸清楚而不是纠结电池容量分三档还是五档。敏感性分析的结果写进论文或报告里也能有效回应“你这个参数凭什么这么设”的质疑。6.2 把结果导出成CSV后面所有环节都用得上最后把均值曲线和分位带导出成CSV配电网规划软件、Excel报告、后续的有序充电策略仿真都能直接吃这个格式。% 导出均值曲线与分位带, 供后续网架计算或报告使用 T table(tAxis, avgLoad, p05, p95); T.Properties.VariableNames {Time_h,AvgKW,P05_KW,P95_KW}; writetable(T, EV_charge_load_curve.csv);个人习惯是导出文件后马上画一张图确认曲线形态再检查一下sum(avgLoad) × 0.25和理论充电需求总量是否一致。这个数字如果差超过5%回去查SOC反推逻辑别急着往下游送数据。最后说一个血泪经验我早期做这类仿真图省事只跑了50次就拿结果去配变压器容量算出来的峰值波动极大差点按高值多买了一台变压器。后来所有结论统一先看dailyPeak直方图确认分布收敛再对外输出。这个方法我前后用了好几轮希望这次沉淀下来的版本能帮到你。本文还有配套的精品资源点击获取
RELATED

相关推荐

微服务架构在数据开发中的实践与优化

微服务架构在数据开发中的实践与优化

1. 微服务设计模式与数据开发的天然契合 数据开发领域正经历着从传统ETL管道向实时化、智能化方向的演进。在这个过程中,微服务架构展现出了与数据开发需求高度匹配的特性。我们团队在过去三年中,逐步将单体数据平台拆分为微服务架构,最直观的…

📅 2026/11/2 10:29:02
A2A 1.0协议:智能体间通信的标准化解决方案

A2A 1.0协议:智能体间通信的标准化解决方案

1. A2A 1.0协议概述 A2A(Agent-to-Agent)1.0协议是Google Cloud主导开发的智能体间通信开放标准。这个协议解决了一个关键痛点:在AI代理生态系统中,不同厂商开发的智能体往往采用各自封闭的通信方式,导致系统间形成信息…

📅 2026/11/2 10:24:02
openrig开源模拟赛车驾驶舱:铝型材机架选型与直驱方向盘组装实录

openrig开源模拟赛车驾驶舱:铝型材机架选型与直驱方向盘组装实录

第一次看到 openrig 这个项目名时,我下意识把它和“矿机”“摄影机架”联系到了一起——没办法,rig 这个词在硬件圈子里被用得太泛滥。直到我把它的开源文档和设计文件从头翻了一遍,才确认这是一套真正的模块化赛车模拟器驾驶舱机架。这两年模…

📅 2026/11/2 10:24:02
MORE NEWS

更多资讯

📰

YOLO26最新创新改进系列:样条KAN令牌主干,1×1 卷积给每个通道一个固定权重:让 YOLO26 的主干用样条函数去表达非线性!

YOLO26最新创新改进系列:样条KAN令牌主干,11 卷积给每个通道一个固定权重:让 YOLO26 的主干用样条函数去表达非线性! 截止目前,YOLO26最新创新改进系列已更新100种,排列组合后可达到上万种创新模型&#x…

📰

人生有哪些突破:辞掉稳妥的工作去做一件自己真正在意的事、搬到一个谁也不认识的城市、把攒了三年的钱投进一个还没验证的产品、四十岁去学一门和本职毫无关系的技能、把“不好意思开口“的那句话认真说一遍

人生有哪些突破:一份从临终遗憾倒推出来的清单 有位护士叫布朗妮韦尔(Bronnie Ware),在姑息护理病房工作了很多年。她记录下临终者最常说的遗憾,后来写成《临终前最后悔的五件事》。这几条被转述过无数次,因为它们几乎一模一样: 我希望能有勇气过忠于自己的生活,而不是…

📰

写给果酒创业者|十一月,我们打算这么干[特殊字符]

写给果酒创业者|十一月,我们打算这么干🔥 常有人说:做工厂、做品牌,只盯月度计划,格局不大。 但我们坚信: 所有好结果,都不是突然爆发, 而是月月落地、慢慢沉淀出来的。 …

📰

RK3588上手笔记:1、MobaXterm连接与串口接收解析

MobaXterm 选择: 波特率:`1500000` 数据位:`8` 停止位:`1` 校验:`None` 流控:`None` 也就是:`1500000-8-N-1`。野火 LubanCat-4 的 Debug 串口默认参数就是这个。 电脑必须接 3.3V USB-TTL 串口模块,才会出现 COMx。 板子上的 USB-C OTG 烧录口不能直接作为调试串口。 …

📰

多 Agent 客服的短期记忆改造:用 Redis + Checkpointer 管理会话状态

前言 mall-customer 的短期记忆原本是一个手写的 Redis 封装:把对话消息按会话 ID 存进 Redis list,读的时候取最近 N 条。封装本身是通的,但它和 Agent 图之间是断开的——消息存下来了,模型看不到。用户第一轮说"我要退款…

📰

FreeRTos 正点原子 笔记(2):解读 FreeRTOSConfig . h;函数名前缀 v x u 等;port 代表移植层,平台适配层;configTOTAL_HEAP_SIZE 的内存管理

(6)FreeRTOSConfig.h 配置文件作用 :(7) 还是老师例题里的版本, F429,加上老师的讲解 : #ifndef FREERTOS_CONFIG_H #define FREERTOS_CONFIG_H/* 头文件 */ #include "./SYSTEM/sys/sys.h" #include "…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬