零极点追踪与附加零点设计:提升控制系统自适应整定能力的工程实践
做过控制工程现场调试的朋友应该都碰见过这种糟心事一套系统在实验室里调得好好的电流环、速度环参数都背得滚瓜烂熟结果一换工况或者机器跑热了响应就完全变样。我之前在一套直流电机驱动系统上就遇到过类似问题电机温升导致电枢电阻变化极点位置肉眼可见地往虚轴方向挪原来整定的PID增益在高温下控制效果越来越差甚至出现低频振荡。后来用了一套“零极点追踪方案”并且在控制器里主动附加了一个零点才把系统在全温度范围里的动态特性稳住。这篇文章就把这套方案从思路到实操完整拆一遍内容包括零极点到底怎么影响动态、附加零点为什么有效、在线辨识和控制器更新怎么搭、以及我实际调试中踩过的坑。搞电机控制、电力电子或者任何需要自适应整定的控制系统工程师都可以参考这套框架。1. 项目背景零极点漂移是工程里的常规敌人实际上“零极点追踪”这个名字听起来有点像学术概念但在工程里对应的问题非常具体被控对象不是一成不变的设备发热、负载变化、器件老化都会让系统的动态特性在运行过程中慢慢移动。假如控制器参数固定不变控制品质自然会恶化。要做的事情其实就是把系统当前的动态特征实时“抠”出来然后让控制器跟着调整保持闭环性能稳定。1.1 先理解零极点到底在表达什么我尽量用不绕弯子的方式讲。对线性时不变系统传递函数可以写成分子多项式除以分母多项式分母等于零的根就是极点分子等于零的根就是零点。极点决定系统响应里有哪些“固有频率成分”对应暂态过程的衰减速度和振荡趋势零点则决定这些固有成分在输出里占多大比例。打个比方极点有点像人自身的体质底子——这个人天生是容易感冒还是身体扛造零点则像平时穿的厚薄——同样的体质穿厚点可能就不感冒穿薄点立马就趴下。控制设计里极点是系统的“骨架”零点则是我们可以灵活调配的“破绽”或者“助力”。极点偏向虚轴系统振荡越强越过虚轴就发散零点如果离主导极点很近会对系统阻尼产生非常明显的影响。1.2 实际工况里零极点为什么会漂移极点和零点不是恒定值。以直流电机为例电枢回路的电气时间常数由电感和电阻决定而电阻会随温度上升明显增大。温度从25度升到85度电枢电阻可能涨个20%到30%对应电气时间常数变化零极点位置自然随之移动。再比如电力电子变换器负载从轻载切到重载输出滤波器等效参数也会变化系统带宽和阻尼都会变。更麻烦的是很多系统里的变化是缓慢但持续的。你用固定参数控制等于拿一套旧地图开新路短期看还行时间一长偏差累积控制效果一定走样。这也是为什么零极点在线追踪有价值它不是重新调一次参数而是让参数的调整变成一个跟随系统状态变化的持续过程。2. 附加零点的设计与作用分析既然极点在跑那就得想个办法把系统动态“拉回来”。我当时最直接的思路是调整增益但这只有在一定范围内有效。增益调大了系统响应快但容易超调振荡增益调小了系统变慢抗扰能力下降。后来真正解决问题靠的是在控制器里附加一个零点。2.1 零点为什么能顶半边天零点在频域上最直观的效应是提供相位超前。一个位于左半平面的零点会在它的转折频率附近让相频曲线向上抬这正是阻尼和稳定裕度的来源。时域上合适位置的零点能提前抵消系统其他模态的滞后影响让主导极点更接近设计预期。举一个更具体的情形一个二阶系统阻尼比只有0.3阶跃响应会有一大截超调振荡好几拍才稳定。我不去强行加大阻尼很多物理系统也不让你随便加而是在控制器里塞一个负实零点让系统的等效阻尼比提升到0.6甚至0.7动态响应就明显变得干脆了。这个零点就是方案标题里的“附加零点”。2.2 附加零点在控制器里怎么落地实际控制器中附加零点最常见的形式就是PID里的微分项和前馈通道。一阶PD控制器写成比例加微分C(s) Kp Kd·s Kd·(s Kp/Kd)括号里的零点就是Kp/Kd。所以调微分时间本质就是在调附加零点的位置。另一种落地方式是前馈补偿。对可测的给定信号把它的导数按一定比例叠加到控制输出上等效于系统输入通道上出现一个零点。这个方法在伺服系统里很常用好处是不影响反馈回路的闭环极点又能显著改善跟踪响应。实际选用哪种取决于你控制系统硬件和算力限制——单片机实现PID的D项很便宜但前馈需要更干净的信号导数否则噪声会放大得很厉害。2.3 零点位置的选取标准附加零点的位置不是拍脑袋定的。工程上常用的一条经验是零点放在期望闭环主导极点实部的2到4倍处这样既能让相位超前发挥作用又不会因为零点离虚轴太近而放大高频噪声。太靠近虚轴的零点会让系统对高频干扰异常敏感太远离主导极点又基本没作用。另一条思路是从根轨迹看。附加零点会把根轨迹往左边拉让系统在所有增益下都更容易稳定这是它最大的优势。我常用的做法是先根据期望阻尼比和带宽算出期望闭环主导极点位置然后把零点放在这个主导极点实部的一倍半到两倍附近再微调增益让闭环极点落在期望位置附近。这样设计出来的响应曲线基本一次就能看。3. 零极点追踪方案的总体设计有了附加零点这个“执行手段”接下来就该搭建追踪系统了。整体思路分三步在线辨识当前系统的动态模型参数从参数里解算出零极点再根据期望性能指标更新控制器里的零点和增益。下面把这个闭环流程展开讲。3.1 在线辨识拿到系统此刻的“体检报告”在线辨识最常用的首选是带遗忘因子的递推最小二乘FF-RLS。它每来一个采样点就更新一次模型参数旧数据的影响力按指数衰减这样系统参数缓慢漂移时辨识结果能一直跟踪上去。我刚上手时踩过一个惊醒遗忘因子不能随便设。λ取值越接近1算法记忆越长抗噪声能力好但跟踪慢λ取值小跟踪快但参数估计方差大控制信号会跟着抖。对于温度这种秒级甚至分钟级的缓慢漂移λ取0.995到0.999之间比较合适。如果系统参数变化更快才需要降到0.98甚至更低。实际调试时我习惯先采集一段数据离线辨识把系统结构定下来再切到在线模式。递推过程我这里给一个简化版的Python示例核心是每一步用新数据修正参数估计import numpy as np # 系统模型简化为二阶离散传递函数 # y(k) -a1*y(k-1) - a2*y(k-2) b1*u(k-1) theta np.zeros(3) # [a1, a2, b1] P np.eye(3) * 1000 # 协方差矩阵初值取大值表示初始不确定 lam 0.995 # 遗忘因子 def rls_update(phi, y): global theta, P # 计算增益向量 K P phi / (lam phi.T P phi) # 更新协方差矩阵 P (P - K phi.T P) / lam # 计算预测误差并更新参数 e y - phi.T theta theta theta K * e return theta # 每次采样时构造回归向量 phi[-y(k-1), -y(k-2), u(k-1)] 并调用这段代码我实际用来验证过收敛性初值全部置零大概几十个采样点之后参数就收敛到真实值附近了。要注意的是代码里P矩阵的初值不能给太小否则算法会过早“自信”参数基本不动也就失去了追踪能力。3.2 从辨识参数里解算零极点辨识出来的离散模型参数还需要转成零极点。二阶连续对象G(s)K/(s²a1·sa0)对应的离散化形式是z域的二阶模型。理论上可以通过双线性变换或者直接根求解做映射工程上更省事的做法是直接对离散特征多项式求根再换算到s域。下面是提取连续域极点的简化逻辑def extract_poles(a1, a2): # a1, a2 是连续域分母多项式系数 disc a1*a1 - 4*a2 if disc 0: return np.roots([1, a1, a2]) else: real -a1 / 2.0 imag np.sqrt(-disc) / 2.0 return np.array([complex(real, imag), complex(real, -imag)])拿到极点后更新控制器的规则就可以写成对比当前实际极点和期望极点位置的差距计算附加零点和增益的调整量。实际控制系统中我会把期望极点位置固化成一张表中按不同工况查表这样比较稳定避免控制器参数跳变。3.3 追踪回路整体逻辑整套追踪控制回路可以理解为两个环路嵌套。内环是常规的反馈控制根据误差信号和当前控制器参数计算输出外环是参数更新对控制对象做在线辨识算出零极点变化再更新内环控制器。外环更新的频率不需要太高通常几十毫秒到几百毫秒一次就足够因为物理系统的参数漂移不会快到毫秒级。我实际搭的系统里外环更新频率是内环的十分之一。这样做的好处是内环控制保持相对平滑的行为不给信号引入额外抖动外环则相当于有一个“低频巡检”的逻辑一直在观察系统的健康状态。每次更新前还要加一步合理性判断——算出的新参数如果偏离上次值超过一定比例就去除这次更新防止传感器毛刺把控制器带偏。4. 实操过程从建模到仿真验证的完整路径这一节我以具体的二阶机电系统为例把整个方案的落地过程完整走一遍从对象建模、辨识仿真到附加零点的整定和追踪效果验证每一步都给出可参考的参数和结果逻辑。4.1 系统建模与参数设定设被控对象为一台直流电机带固定负载的速度控制系统忽略摩擦非线性后从电压到转速的连续域传递函数近似为G(s) 100 / (s² 10s 100)这个标准二阶系统的阻尼比是0.5自然频率是10 rad/s对应的阶跃响应大概有16%左右的超调。我把这个作为标称工况。但是电机温度升高后电枢电阻变大电气时间常数变长实际模型变成G(s) 100 / (s² 5s 60)这时阻尼比降到大约0.32自然频率约7.75 rad/s系统振荡明显加剧。这里我特意让极点向右半平面方向移动模拟参数漂移的威胁。4.2 辨识环节的程序化实现在仿真环境里我生成一段带有噪声的速度阶跃响应数据作为“实测数据”然后调用RLS在线辨识。模型结构取二阶ARX结构y(k) -a1·y(k-1) - a2·y(k-2) b1·u(k-1)。噪声我加了5%的测量白噪声算是很接近真实传感器水平。辨识结果方面标称工况下a1、a2、b1大约在40个采样点收敛到真实值的98%以内漂移工况下因为遗忘因子存在参数能持续跟上变化滞后大概在20个采样点以内。如果把λ降到0.98滞后会明显减少但参数曲线会出现类似噪声的毛刺控制器输出也会跟着小幅跳动。所以最终我选0.995跟踪速度和抗噪折中得比较理想。4.3 附加零点的闭环整定步骤控制器结构采用带附加零点的比例积分形式C(s) Kc · (s z) / s这里用积分保证稳态精度用附加零点z来修正阻尼。整定分三步走第一步定期望闭环极点。我期望阻尼比0.707、自然频率10 rad/s所以期望主导极点是-7.07 ± j7.07。这个极点位置很经典超调约4.3%调节时间大约0.5秒以内适合大多数速度伺服场景。第二步定附加零点。按零点放在主导极点实部1.5到2倍的经验取z在10到14之间。我从z12开始试观察闭环阶跃响应超调量从无零点时的约20%降到7%左右但零点移太近比如z5时系统噪声明显变大。最终z12是个不错的平衡点。第三步整定增益Kc。闭环特征方程写出来之后把Kc作为未知量让闭环极点尽量靠近期望位置。仿真表明Kc取8.6左右时闭环极点实部约为-7.1与期望值基本重合。下面是参数更新逻辑的简化代码def update_controller(p1, p2): # p1, p2 为当前辨识出的极点 zeta_d, wn_d 0.707, 10.0 # 期望主导极点 sigma -zeta_d * wn_d omega wn_d * np.sqrt(1 - zeta_d*zeta_d) # 附加零点放在期望主导极点实部的1.2~1.5倍 z_new 1.2 * abs(sigma) # 增益按简化公式估算使闭环极点接近期望 k_new (wn_d * wn_d) / abs(p1 * p2) * 0.8 return z_new, k_new实际工程里Kc不会真的用这么简单的公式一次算准我会再叠加一个梯度微调步骤让闭环极点误差最小化但上面的逻辑已经够用作初值能省不少试凑时间。4.4 追踪效果评估我把整套方案放到仿真里连续跑了几百秒模拟从冷机到热机的过程。固定PID对照组在冷机时表现尚可热机后超调涨到接近25%调节时间拉长到接近1.2秒。而零极点追踪加附加零点的方案在温度漂移过程中始终保持阻尼比在0.68到0.72之间超调稳定在5%上下调节时间基本没变化。另一个让我印象深刻的点是抗扰性能。系统热机后受到一次突加负载扰动固定PID的恢复时间比冷机长了将近一倍追踪方案的恢复时间则几乎不变。这说明它的价值不只是“曲线好看”而是实实在在维持了系统的动态刚度和抗扰动能力这对于生产设备的稳定运行非常关键。5. 常见问题与排查技巧实录方案从仿真走向实物多半不会一帆风顺。这里把我调试中遇到过的典型问题整理成一个速查表再拎几个展开讲基本覆盖了初次搭建这套系统最容易踩的坑。现象可能原因排查与解决方向辨识参数长时间不收敛激励信号不够丰富或P矩阵初始值过小注入PN序列/扫频信号增大P初值参数收敛但控制效果变差模型结构误差零点附加位置过近检查系统阶次调整附加零点位置控制器更新时输出跳变参数更新无平滑外环频率过高增加低通滤波降低外环更新频率高温段系统仍振荡追踪滞后遗忘因子偏大适当减小λ提高辨识跟踪速度传感器噪声导致辨识抖动信号质量差微分环节放大噪声对测量信号做滤波避免零点过近虚轴5.1 辨识结果抖动我最初在实验平台上跑RLS时参数辨识结果跟仿真完全不是一回事曲线抖得像心电图。排查下来原因有两条一是输入激励不够加载的信号本身就缺乏持续激发动态模态的信息参数自然无法唯一辨识二是传感器信号里的高频噪声直接进了回归向量。解决办法也不复杂。激励端我在参考输入上叠加了一个幅值较小、频带覆盖系统转折频率的PN序列。信号端给速度反馈加了二阶低通滤波器截止频率设置在系统带宽的3倍以上避免把有用的相位信息滤掉。两个手段一起用参数曲线光滑了很多。5.2 附加零点带来的噪声放大这是一个非常经典的取舍问题。零点放在越靠近虚轴的位置它在中高频段的增益提升越早相位超前效果越强但同时也会把高频噪声放大。我试过把零点从期望极点实部的1.2倍移到3倍系统跟踪响应并没有变快多少但电流和速度信号里的高频留痕明显增加。最终的折中办法是给附加零点额外配一个高频极点也就是把纯粹的PD控制器改成带惯性环节的近似微分。这样在频率高于这个极点之后增益不再上升噪声不会无限放大。附加零点照样提供相位超前但带宽被约束住效果和稳定性都能兼顾。5.3 参数跳变与控制器输出毛刺外环每次更新控制器参数时若新旧参数差值较大控制输出会出现肉眼可见的跳变毛刺。这个问题在从冷机切换到热机状态也就是参数变化梯度最大的区间最明显。我加了两个保险措施一是对外环计算的零点新增值做一阶惯性限幅让变化率受限二是增加“参数合理性窗口”新参数如果与当前值偏差超过20%先保持旧参数连续多个周期都超差才更新。这样做的代价是追踪速度稍微变慢但对真实温度漂移这种慢变化完全没有影响。用户看到的是控制器参数在后台平滑调整系统响应从头到尾都很平稳不会出现让人吓一跳的阶跃样跳变。5.4 实物调试的几条经验建议如果你准备在自己的平台上做类似方案我可以从经验角度给几条建议。第一先把辨识环节单独验证直接对比开环仿真模型和实测数据确认辨识模型准确了再去做闭环追踪否则问题叠在一起很难定位。第二附加零点不要一上来就给太大相位提前先用保守值跑模拟看系统稳定后再逐步增加。第三外环更新频率宁可低不要高频繁改动控制器参数对系统韧性没好处还容易让调试过程变得难以排查。结尾最后分享一个实用性很强的细节。零极点追踪方案要部署到单片机或者嵌入式处理器上时尽量不要每次都实时解二次方程求极点。实测下来可以预先按可能出现的参数区间做一张“参数—控制量”映射表外环只需要查表加简单插值运算量可以压到很小一秒钟更新几次都没问题。我在多套电机驱动平台和电源控制项目里沿用了这套做法稳定性和可维护性都比直接跑完整RLS再解析极点要好。后续想扩展的话还可以在辨识算法里加入前馈通道的在线估计让零点追踪覆盖更多类型的干扰源这套框架是完全开放的。

相关新闻

深入理解多进程服务器中accept()返回EINTR的机制与处理方案

深入理解多进程服务器中accept()返回EINTR的机制与处理方案

在写多进程 TCP 服务器的时候,accept()返回EINTR恐怕是新手和老手都绕不过去的一个老熟人。很多人第一次遇到它时,一脸茫然:明明监听 socket 一切正常,客户端也确实发来了连接,为什么accept()就是不肯把连接交给我&…

2026/10/5 3:04:50 阅读更多 →
门限自回归:时间序列状态切换的非线性预测方法

门限自回归:时间序列状态切换的非线性预测方法

简介:门限自回归(TAR)模型能为存在机制转换或临界效应的非线性时间序列提供灵活的分段建模方案,这份压缩包面向需要运用MATLAB完成TAR建模的研究者与数据分析学习者。包内共6个文件,以3个m脚本为核心,配合t…

2026/10/5 3:04:50 阅读更多 →
生成引擎优化(GEO)实战:从关键词Prompt到结构化内容改造全流程

生成引擎优化(GEO)实战:从关键词Prompt到结构化内容改造全流程

先说明一下,搜索行业以前拼的是“关键词密度”和“外链权重”,现在聊的是“AI怎么看你”。这两年最明显的变化是,用户越来越多地绕过传统搜索列表,直接问生成式引擎。传统SEO那一套在AI摘要里不能说完全失效,但光靠它已…

2026/10/5 3:04:50 阅读更多 →

最新新闻

Java仓库管理系统课设拆解:JDBC+MySQL+Swing实战开发

Java仓库管理系统课设拆解:JDBC+MySQL+Swing实战开发

简介:基于Java的仓库管理系统项目,是一份面向计算机相关专业学生和Java Web开发者的毕业设计完整参考。项目运用Spring框架、MyBatis持久层、Servlet与JSP等主流技术,实现了用户注册登录、商品信息维护、库存出入管理、价格设置等核心业务&am…

2026/10/5 3:51:14 阅读更多 →
C语言第十六天:核心知识体系与高频踩坑点全梳理

C语言第十六天:核心知识体系与高频踩坑点全梳理

学C语言到第十六天,其实是最容易“学了个寂寞”的阶段。前面十几天的语法、题目都刷了不少,scanf、while、指针、数组、文件……每一个单独拎出来都认识,合在一起却总觉得缺一条线。这篇文章就把第十六天该有的C语言核心知识体系完整串一遍&a…

2026/10/5 3:51:14 阅读更多 →
插件开发全指南:从边界设计到接口兼容的工程实践

插件开发全指南:从边界设计到接口兼容的工程实践

插件开发这件事,我一开始以为是写代码,后来发现根本不是。真正难的是画边界——哪些东西归宿主应用管,哪些东西归插件管,这条线一旦画歪,后面全是坑。这些年我做过编辑器插件、内部工具链插件,也给公司的桌…

2026/10/5 3:51:14 阅读更多 →
Java内部类全解析:四大类型、编译原理与内存泄漏

Java内部类全解析:四大类型、编译原理与内存泄漏

1. 为什么要花时间搞懂内部类内部类这个特性,在Java里属于那种“写的时候觉得很自然,面试的时候却容易回答得稀碎”的知识点。很多人初学阶段写代码,几乎不会主动用内部类;等真正进入项目,突然看到数据结构里有一坨Out…

2026/10/5 3:51:14 阅读更多 →
弱电网下LCL-VSC阻抗失配引发次/超同步谐振的仿真验证

弱电网下LCL-VSC阻抗失配引发次/超同步谐振的仿真验证

做并网逆变器的人,多半都吃过“弱电网”的亏。单机仿真跑得漂漂亮亮,并入实际电网后电流突然开始抖,FFT里莫名其妙多出几十赫兹的分量,甚至触发过流保护。这类现象十有八九指向同一个根源:弱电网下LCL-VSC阻抗失配导致…

2026/10/5 3:51:14 阅读更多 →
插件机制深度解析:从入口激活到报错排查实战

插件机制深度解析:从入口激活到报错排查实战

插件这个词,几乎所有搞技术的都绕不开。不管是 IDE 里的代码检查工具、音乐播放器里的音源扩展,还是 CI 流水线里的构建步骤,背后都是同一套"宿主 插件"的协作逻辑。可插件这东西,平时用得顺手没人会多看它一眼&#x…

2026/10/5 3:50:14 阅读更多 →

日新闻

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

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

2026/10/5 0:00:22 阅读更多 →
AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

1. 从“plugins”这个词说起:它到底在解决什么问题如果你最近在折腾 AI 编程工具,尤其是 Cursor、Codex CLI、Claude Code 这类带 CLI 的编辑器或命令行助手,那你大概率绕不开一个词——plugins。这个词本身不新鲜,从浏览器到 IDE…

2026/10/5 0:00:23 阅读更多 →
第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

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

2026/10/5 0:00:23 阅读更多 →

周新闻

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/4 1:00:58 阅读更多 →
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/5 1:10:22 阅读更多 →
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/5 3:06:17 阅读更多 →

月新闻

我发现了一个新思路:用 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/4 11:40:45 阅读更多 →
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/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练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/4 20:14:29 阅读更多 →