MATLAB实现综合能源系统优化调度:含综合需求响应与阶梯碳机制的MILP建模
搞过综合能源系统调度的人应该都有同感论文里一句“考虑综合需求响应和阶梯型碳机制”看着挺简单真正动手用MATLAB复现的时候各种问题就全涌上来了。多层能量平衡、设备耦合约束、非线性碳成本还有动不动就上百个整数变量对着公式敲一周代码都不一定能跑出一个可行解。我最近正好把这套模型完整复现了一遍代码从零搭到出结果踩了不少坑今天把这套“综合能源系统优化调度”的建模思路、MATLAB实现方法以及求解时最容易翻车的地方一次性讲透。这套东西适合正在复现论文、做毕业设计或者想在自己研究里加入综合需求响应和碳机制的读者。我会从模型结构讲起逐步讲到求解器和代码写法最后专门用一节说调试经验都是常规文档里不会写的实操细节。1. 复现之前先吃透模型这套调度策略到底在优化什么动手写代码之前得先把论文里的模型拆明白。很多同学复现失败不是因为MATLAB代码能力不行而是根本没理解他在优化什么、约束在限制什么。这个模型的核心其实可以浓缩成一句话在满足电、热、气多种负荷需求的前提下协调各设备出力让系统总运行成本最低同时把碳排放压到尽量低的水平。1.1 综合能源系统的调度本质是“多能源耦合下的成本最小化”综合能源系统里通常包含热电联产机组CHP、燃气锅炉、电锅炉、光伏、风电以及电储能和热储能。这些东西之间不是独立的最典型的耦合点是CHP它烧天然气同时发出来电和热而且电出力和热出力之间存在强耦合。你让CHP多发一点电它的产热也跟着上去了可如果这时候热负荷并不高多余的热就得想办法消纳或者浪费掉。这就是综合能源系统调度的难点——电、热、气三条平衡线互相牵制调了这条那条就动。打个比方你就明白了。这相当于家里同时装了燃气热水器、电暖器和空调燃气和电都能产生热你要在每个时段决定到底用哪个设备更划算同时还得保证屋里温度舒服。家庭版只有三个设备系统级版本也就是把这个场景放大几十倍设备多了、约束多了但本质还是同一个优化问题每个时段设备出多少力总成本最小同时满足所有负荷和运行约束。具体到数学模型里这就要写成混合整数线性规划MILP。因为设备存在开停机状态所以有0-1整数变量因为功率、储能SOC等是连续的所以还有一堆连续变量。MILP的解法现在很成熟这也是为什么绝大多数论文都用商业化求解器来算而不是自己写算法。1.2 综合需求响应不是“削峰填谷”那么简单传统需求响应只考虑电负荷削峰填谷、避峰让电。但综合需求响应IDR的关键词是“综合”——它是把电、热、气多种负荷放在一起做响应。我复现的这篇论文里IDR分成了两部分一部分是价格型需求响应用户看到电价变化主动调整用电行为。在建模上通常用弹性系数矩阵来描述电价变化和负荷变化之间的关系。另一部分是激励型需求响应通过签协议的形式约定哪些负荷可以在特定时段转移或削减系统给用户一定补偿。实际建模时激励型更常用因为它好量化、好写约束。比如电负荷一部分是可转移负荷一部分是可削减负荷。可转移负荷要满足总量守恒——转移前后总用电量不变只是把某个时段的电量挪到了另一个时段可削减负荷则有削减上限比如每时段最多削减负荷的10%。热负荷也类似只不过热负荷的削减上限通常由热舒适度区间决定。这些约束都不复杂但加上去之后系统运行灵活性明显提高了弃风弃光率降下来总成本也能降一些。1.3 阶梯型碳机制的好处是“排得越多单价越贵”碳交易机制大家不陌生但论文里用的不是固定碳价而是阶梯型碳价。阶梯的意思是把碳排放量分成几个区间段每一段对应不同的碳价排得越多单位碳排放的价格就越高。比如说排放量在5000吨以内碳价是60元/吨超过5000吨但不超过8000吨的部分碳价升到90元/吨再超过的部分按120元/吨算。这就和手机流量套餐超量收费越来越贵是一个道理。对调度策略的影响也很直接系统为了压低碳成本会主动少用高碳排的设备比如减少纯燃气锅炉的出力、让CHP在高效区运行、提高光伏风电的消纳比例。从结果上看引入阶梯碳机制之后碳排放总量一定比固定碳价时更低但成本怎么变化就要看模型参数了。阶梯碳机制之所以比固定碳价更贴近实际是因为真实碳交易市场本来就带有配额和阶梯惩罚的特征。论文里用这种机制比单设一个碳价更能体现低碳调度的价值。2. MATLAB实现前的四个关键决策求解器、建模方式、碳机制线性化、目标函数结构模型理解了下一步是选工具。这里我直接给结论用Yalmip做建模层用CPLEX或Gurobi做求解层。这是我复现这类论文最顺手的一套组合。2.1 求解器选型为什么我坚持Yalmip CPLEXMATLAB自带的intlinprog不是不能用但你要有个心理准备24时段、四五台设备、再加储能和需求响应整数变量随随便便就上百个。intlinprog在MILP上的表现是真的拉胯求解时间动辄几分钟甚至更久而且有些情形还会报错。Yalmip是免费的MATLAB工具箱它最大的价值是让你用接近数学公式的方式写优化问题。你不用手动把约束拼成矩阵直接声明sdpvar变量、binvar变量把约束和目标函数加进去最后交给求解器就行。CPLEX和Gurobi是商业求解器性能强求解MILP是它们的看家本领。学生可以申请免费学术许可证个人用来复现论文完全够用。如果你实在拿不到CPLEX/GurobiYalmip底层也可以调免费的SCIP或者退一步用intlinprog但你的模型规模就要适当缩小比如把24时段改成12时段或者简化CHP的热电耦合方式。总之工具选型直接影响你能不能跑出结果不值得在这一步省时间。2.2 阶梯碳价的分段线性化先看论文假设再选方法阶梯碳成本是一个分段线性函数直接写进MILP可能会出问题关键要看论文里的碳价机制到底怎么定义的。如果碳价随排放量单调递增也就是排得越多单价越高这种情况可以走捷径。因为你的目标是最小化总成本求解器在最优点会自然地把碳排放量先填满低价段再进入高价段不需要额外引入0-1变量去强制区间顺序。具体代码可以直接设每段容量上限% 阶梯碳价分段线性化碳价单调递增版本 seg_upper [5000, 8000, 10000]; % 区间右端点 seg_price [60, 90, 120]; % 各段碳价 seg_width diff([0, seg_upper]); % 每段容量 n_seg length(seg_width); E_seg sdpvar(n_seg, 1); E_carbon_total sum(E_seg); con [con, 0 E_seg seg_width]; % 各段容量约束 C_carbon seg_price * E_seg; % 碳成本但如果你看的那篇论文里碳价机制是先高后低或者每一段算的是平均价而不是增量价那上述简化就不成立了必须老老实实引入二进制变量来指示排放量落在哪一段。复现的第一步永远是先搞清楚论文的机制假设模型假设搞错了后面全是白忙活。这也是我强调的最重要的一件事不要看到“阶梯”两个字就套线性化模板先看区间价格是递增还是递减。2.3 目标函数与约束的整体骨架怎么搭有了求解器和碳机制线性化方法接下来就是把模型的“骨架”搭起来。目标函数我习惯写成min F C_purchase C_fuel C_carbon C_DR C_OM其中C_purchase是购电成本按分时电价乘以各时段购电量C_fuel是购气成本天然气耗量乘以气价C_carbon是阶梯碳成本按前面说的方式计算C_DR是需求响应补偿成本给用户可转移、可削减负荷支付的补偿费用C_OM是设备运行维护成本一般按出力量乘以维护系数。约束条件分五大类能量平衡约束电、热、气三条线、设备运行约束出力上下限、CHP热电耦合、爬坡、储能动态约束SOC递推、充放互斥、需求响应约束转移量守恒、削减上限、电网交互约束购电上限、购气上限。这五大类是IES优化调度的标准配置绝大多数论文都会涉及。搭建时按这个分类去组织代码调试起来会清晰很多。3. 从零搭建优化模型数据、设备、需求响应、碳机制一步步来现在进入正题讲整个模型的MATLAB具体实现。我按照最终代码的模块划分从数据准备到碳机制建模一个一个过。3.1 数据准备先把单位和参数表抠干净复现这类论文最优先做的一件事是把所有参数整理进一个结构体或者Excel表而不是散落在代码里。我一般用24时段做一天调度数据包括电负荷曲线、热负荷曲线、光伏预测出力、风电预测出力、分时电价、天然气价格以及设备参数。下面是一组我实际用的典型参数你可以直接拿来当模板用设备参数数值CHP额定发电功率 / 电热比 / 发电效率2MW / 1.3 / 0.35燃气锅炉额定热功率 / 效率4MW / 0.9电锅炉额定热功率 / 效率2MW / 0.95电储能容量 / 充放功率上限 / 效率1MWh / 0.25MW / 0.95热储能容量 / 充放功率上限 / 效率2MWh / 0.5MW / 0.9电网交互购电功率上限5MW碳排放系数电网购电 / 天然气燃烧0.58 t/MWh / 0.20 t/MWh特别注意单位问题。论文里功率经常写MW但很多同学代码里习惯用kW一差就是1000倍。我的习惯是代码里全部统一用kW和kWh只有最后输出结果做展示时才转成MW。这个习惯帮我省了无数次Debug的时间。3.2 设备建模CHP、燃气锅炉、电锅炉、储能设备建模是整个程序的物理核心。CHP我用的简化模型是燃气耗量等于发电功率除以发电效率热出力等于发电功率乘以电热比。这种线性关系写起来简洁也是多数论文的标准做法。如果需要更精确的热电可行域多边形表示可以在基础代码跑通之后再去扩展。% CHP模型P_chp为发电功率H_chp为热出力 G_chp P_chp / eta_chp_e; % 耗气量 单位kW H_chp P_chp * alpha_chp; % 热电耦合 con [con, P_chp_min P_chp P_chp_max]; con [con, H_chp_min H_chp H_chp_max];燃气锅炉和电锅炉相对简单都是输入能源、输出热效率已知直接写线性关系就行。储能是容易写错的地方重点有三条SOC递推方程、容量上下限、充放互斥约束。特别是充放互斥忘记加这一条约束求解器就会给出“一边充电一边放电”的荒谬结果虽然目标函数理论上会惩罚它但数值上容易出问题不如直接约束死% 电储能建模 soc sdpvar(T, 1); p_ch sdpvar(T, 1); p_dis sdpvar(T, 1); u_ch binvar(T, 1); u_dis binvar(T, 1); con [con, u_ch u_dis 1]; % 充放互斥 con [con, 0 p_ch P_ch_max * u_ch]; con [con, 0 p_dis P_dis_max * u_dis]; con [con, SOC_min soc SOC_max]; con [con, soc(1) SOC_init]; % 初始SOC也可要求首末一致 for t 1:T-1 con [con, soc(t1) soc(t) eta_ch * p_ch(t) - p_dis(t) / eta_dis]; end首末SOC一致这个约束很重要。一天调度结束时储能如果还有大量剩余结果会失真所以我通常额外加一条soc(T) SOC_final或者soc(T) SOC_final看论文要求。3.3 综合需求响应建模先加转移再加削减需求响应建模我是从简单到复杂一步步加先把可转移负荷写对再写可削减负荷。可转移负荷的关键约束是总量守恒无论你怎么转移总耗电量不变。这一点很直观但容易被写错。转出负荷要小于该时段的可转移上限转入负荷也要有上限不然凌晨狂转电也是不符合实际的。每个时段转入和转出不能同时发生如果需要精确建模还可以加0-1变量但多数论文为了可解性直接用上限和总量守恒控制。% 可转移电负荷 P_tr_in sdpvar(T, 1); % 其他时段转入的负荷 P_tr_out sdpvar(T, 1); % 本时段转出的负荷 con [con, sum(P_tr_in) sum(P_tr_out)]; % 总量守恒 con [con, 0 P_tr_in P_tr_in_max]; con [con, 0 P_tr_out P_tr_out_max]; % 可削减电负荷 P_cut sdpvar(T, 1); con [con, 0 P_cut 0.1 * P_load_base]; % 削减上限10% % 修正后的净电负荷 P_load_net P_load_base P_tr_in - P_tr_out - P_cut;需求响应补偿成本要写进目标函数。可转移负荷通常不付补偿或者按转移量支付少量费用可削减负荷按削减量乘单位补偿价格支付。具体补偿价格论文里会给出一般比电价低一些这样用户才愿意参与系统也有利可图。热负荷的需求响应逻辑类似但削减上限的来源不同热负荷的上限由用户热舒适度决定比如供热量可以在基础需求的80%到110%之间波动。这比电负荷更好建模也更好理解。3.4 阶梯碳机制建模两句代码搞定碳排放统计碳排放计算分两块购电的间接排放和天然气燃烧的直接排放。购电排放等于购电量乘以电网排放因子天然气排放等于总耗气量乘以燃气排放系数。加在一起就是系统总碳排放量然后进入阶梯碳成本分段函数。% 碳排放总量计算 E_carbon_total sum(P_grid) * EF_grid sum(G_chp G_gb) * EF_gas; % 阶梯碳成本递增碳价分段线性化 seg_upper [5000, 8000, 10000]; seg_price [60, 90, 120]; seg_width diff([0, seg_upper]); n_seg length(seg_width); E_seg sdpvar(n_seg, 1); con [con, E_carbon_total sum(E_seg)]; con [con, 0 E_seg seg_width]; C_carbon seg_price * E_seg;为什么这个写法不需要二进制变量我再强调一遍因为碳价单调递增目标函数最小化时会自动优先填满低价段。这是凸分段线性函数的一个天然性质直接用就行。如果你的模型里还有碳捕集设备碳成本会变成非单调的函数那就得换另一套做法。值得说明的是有些论文还会设置免费碳排放配额。比如前3000吨不收费那你的第一段碳价就要设为0段宽从3000开始切。这种变体本质上还是递增分段函数代码框架不用变改一下seg_price和seg_upper就行。4. 求解、结果分析以及我踩过的那些坑模型搭建完成之后进入求解和调试阶段。这一步是最消耗耐心的我把自己遇到的典型问题和排查方法整理成了一套流程照着做能省不少时间。4.1 完整求解流程与结果验证方法我用的是分层递进的方法强烈推荐你也这么做先跑一个不含需求响应、不含碳机制的基准模型确认能量平衡和设备约束都正确再加入需求响应对比最后加入碳机制对比。每次加一层都对比各方案的成本和出力变化这样一旦数据不对能立刻定位到是哪一层引入的问题。典型的结果呈现方式是三方案对比方案总成本元碳排放t峰谷差kW无IDR无碳机制基准值最高最大仅IDR下降无明显变化明显减小IDR 阶梯碳机制可能上升或持平明显下降减小第三行很关键引入碳机制后系统会为了降碳多买电、少用气购电成本上去但碳成本又下来了总成本变化方向取决于你设置的碳价水平。复现论文时如果你算出来的总成本不降反升而且幅度很大先别怀疑程序错了继续往下看碳排放是否下降了——这其实是论文想表达的核心结论。4.2 常见报错与排查速查表一路调试下来我把最常见的几个问题整理成了速查表在你复现的时候可以直接对着排查症状可能原因处理方式模型不可行能量平衡或设备约束互相矛盾加松弛变量逐条放宽看哪条约束被激活Yalmip报“no bounds”某个变量没有设置上下限检查所有变量的边界条件求解特别慢整数变量太多或Big-M常数太大减少二进制变量检查CHP启停建模储能结果荒谬缺少充放互斥约束检查u_ch u_dis 1碳成本一直是0E_seg段宽设错或E_carbon_total连接错误打印E_seg和E_carbon_total中间值结果离论文数值很远单位不统一或时段数不同检查功率单位、24h还是96时段模型不可行是最让人崩溃的我的排查方法是给所有等式约束加上松弛变量。比如电平衡等式改成“等式左边 slack_e(t) - slack_e2(t) 等式右边”然后看求解完之后哪些松弛变量不为0。不是0的那个约束就是罪魁祸首直接从那里入手改。Big-M参数也是个大坑。M值不是越大越好大M会让求解器的线性松弛很差求解速度和数值稳定性都崩。我的原则是用物理意义上的最大值比如功率上限乘以最大时段数够用就行不要随手写个1e6。4.3 结果对不上论文时先查这三样东西如果你代码跑通了但结果和论文对不上大概率问题不在你代码而在数据口径。我这两年调过十几个复现项目90%的差异来自三个方面。第一是单位。论文里如果电源功率写的是MW负荷数据却是kW你要么全转成MW要么全转成kW。我见过最夸张的一次一个同学用电负荷曲线是MW但设备参数表给的是kW能量平衡约束怎么看怎么奇怪整整折腾了两天。第二是时段数。有的论文写的是一天96个时段15分钟一个点你按24小时跑日内分时电价、负荷曲线形态全变了结果自然对不上。先确认论文的调度周期和步长。第三是隐藏参数。很多论文在正文里只给关键设备参数储能初始SOC、储能末时段SOC要求、需求响应补偿价格、碳排放免费配额这些细节可能藏在附录或者根本没写清楚。遇到对不上的时候回去把论文的附录和数据表格逐行看一遍经常能发现遗漏的参数。我的建议是读论文时就把参数整理成表格缺的参数用合理值假设并标注别用“随便填一个”的心态。你对不上数值的时候反而要先怀疑这些自己假设的参数而不是怀疑求解器。最后说点个人体会复现这种带综合需求响应和阶梯碳机制的综合能源系统优化调度我最深的感受是这个模型的难度不在某个单独环节而在所有环节互相耦合。CHP的热电比会影响储能策略储能策略又受阶梯碳价影响碳价又关系到购电还是购气的抉择。所以写代码的时候一定不要指望一次成型。我自己现在的习惯是分模块写、分层验证先基准模型再叠加IDR再叠加碳机制。每一步都确认结果合理再往下一步走。这样虽然前期看起来慢但调试的总时间其实最少。最后一个实用技巧把每个约束都用变量名标记清楚比如con_e_balance、con_chp_thermo、con_storage_soc这样报错或者不可行的时候你能一眼看出是哪条约束出了问题。这个习惯帮我避免了好几次“在几百行约束里大海捞针”的灾难。你如果也在复现这个模型希望这篇文章能让你少走几个弯路。

相关新闻

100份文本用sklearn做批量分析更稳更快的实操指南

100份文本用sklearn做批量分析更稳更快的实操指南

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

2026/10/10 15:40:12 阅读更多 →
Euro-Office DocumentServer接入GlitchTip:3步搭建自托管错误监控系统

Euro-Office DocumentServer接入GlitchTip:3步搭建自托管错误监控系统

【免费下载链接】DocumentServer 项目地址: https://gitcode.com/gh_mirrors/doc/DocumentServer 点击查看 免费下载 本文介绍如何为 Euro-Office DocumentServer(在线文档协作服务器)接入开源错误追踪工具 GlitchTip,只需 3 步就…

2026/10/10 15:39:10 阅读更多 →
Neo4j实战:水浒传人物关系可视化与问答系统构建全流程

Neo4j实战:水浒传人物关系可视化与问答系统构建全流程

简介:这份资源是一套基于Neo4j图数据库的水浒传人物关系可视化与问答系统毕业设计项目,面向计算机、人工智能等相关专业学生,适用于课程设计、大作业或毕设参考。项目以Python为主要开发语言,结合Neo4j存储人物关系,通…

2026/10/10 15:39:10 阅读更多 →

最新新闻

YOLOv8实战:可口可乐产品识别数据集训练与避坑指南

YOLOv8实战:可口可乐产品识别数据集训练与避坑指南

简介:这是一份面向YOLO系列算法学习者的产品识别目标检测数据集,内含5166张带标签图像,覆盖可口可乐等产品的识别场景。数据集已按训练/验证需求划分,并配备data.yaml配置文件,可直接用于yolov5、yolov8、yolov9、yolo…

2026/10/10 18:11:45 阅读更多 →
异或运算从原理到实战:位运算中的对称加减法

异或运算从原理到实战:位运算中的对称加减法

最近在网上翻到一道很经典的题:一组整数里,每个数字都出现了偶数次,只有唯一一个数字出现了奇数次,要求把它找出来。很多人第一反应是哈希表,数一遍再遍历。但如果再加一条限制,空间复杂度必须做到 O(1)&am…

2026/10/10 18:11:45 阅读更多 →
练题簿在线免费刷题:创建个人任务,把刷题、听题和模考目标放到每天的学习中

练题簿在线免费刷题:创建个人任务,把刷题、听题和模考目标放到每天的学习中

练题簿在线免费刷题:创建个人任务,把刷题、听题和模考目标放到每天的学习中选择题库、设置目标与时间,查看任务进度,再通过通知和完成记录跟进自己的复习。准备考试或复习课程时,明确今天练什么、还差多少,…

2026/10/10 18:11:45 阅读更多 →
Python实现多无人机任务分配:PSO优化与约束求解

Python实现多无人机任务分配:PSO优化与约束求解

简介:本资源是一套面向算法工程师、智能无人系统开发者及高校相关专业学生的多无人机协同任务分配实战项目,聚焦于用Python实现粒子群优化(PSO)算法解决动态任务调度难题,适用于农业巡检、应急响应、物流配送等实际场景…

2026/10/10 18:10:44 阅读更多 →
插件“消失“之谜:从缓存到市场同步,Codex 插件加载机制到底怎么工作

插件“消失“之谜:从缓存到市场同步,Codex 插件加载机制到底怎么工作

插件"消失"之谜:从缓存到市场同步,Codex 插件加载机制到底怎么工作 【免费下载链接】plugins OpenAI Plugins 项目地址: https://gitcode.com/GitHub_Trending/plugins123/plugins "打开 Codex 的插件页面,搜 Playwrig…

2026/10/10 18:09:43 阅读更多 →
全卷积网络实战:Penn-Fudan行人分割数据集解析与训练

全卷积网络实战:Penn-Fudan行人分割数据集解析与训练

简介:这份资源围绕全卷积网络(FCN)在Penn-Fudan Database上的行人检测与分割实践展开,面向具备一定深度学习基础、希望掌握像素级语义分割的开发者与研究者。内容涵盖FCN的核心原理——以卷积层替代全连接层、通过上采样与跳跃连接…

2026/10/10 18:08:43 阅读更多 →

日新闻

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

1. 从“卫星轨道分类”这个标题说起:为什么值得花时间搞懂第一次接触“卫星轨道分类”这个概念,很多人会觉得它离自己很远——不就是天上的星星怎么转吗?但如果你正在做航天任务规划、遥感数据接收、星座设计,甚至只是准备一场航天…

2026/10/10 0:00:39 阅读更多 →
Spring AOP 核心原理与实战:从概念到日志切面落地

Spring AOP 核心原理与实战:从概念到日志切面落地

1. 从一个真实痛点说起:为什么你的代码里到处都是重复逻辑刚入行那会儿,我写过一个用户管理模块,注册、登录、改密码、注销四个接口。每个接口里都塞了几乎一样的日志打印、参数校验、事务开启和提交。当时觉得没什么,能跑就行。直…

2026/10/10 0:00:40 阅读更多 →
Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

简介:这是一套面向计算机相关专业学生与项目实战学习者的Python数据采集与分析可视化完整项目,以Boss直聘岗位数据为对象,适合用作毕业设计、课程设计或期末大作业。资源包共38个文件,约246KB,以13个py源码文件为核心&…

2026/10/10 0:00:40 阅读更多 →

周新闻

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/10 11:14:25 阅读更多 →
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/10 1:36:08 阅读更多 →
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/10 11:14:58 阅读更多 →

月新闻

我发现了一个新思路:用 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/10 5:23:50 阅读更多 →
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/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练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/10 10:38:42 阅读更多 →