柔性系统控制:用扩张状态观测器实现状态估计与扰动补偿
最近在调试一套柔性关节实验台电机和负载之间隔着一层弹性减速器和扭矩弹簧模型参数标定过、刚度阻尼也都测过可一上高增益反馈就抖模型稍微偏一点负载侧状态估计就开始“飘”。折腾了将近两周最后把方案从传统龙贝格状态观测器换成了扩张状态观测器ESO配合扰动补偿才把状态估计和控制同时稳定下来。这篇就把“柔性系统控制用扩张状态观测器实现状态估计与控制”的完整思路捋一遍ESO到底扩张了什么、为什么它能对付柔性系统的弹性模态、怎么针对柔性系统设计观测器和控制器以及我从仿真到样机过程中踩过的那些坑。1. 柔性系统的固有麻烦欠驱动、弹性模态与参数不确定1.1 双惯量模型理解柔性系统的简化起点很多做机械臂控制的同行习惯把关节当成刚性传动电机转角直接等于负载转角。但真实柔性关节在电机和负载之间一定存在弹性环节减速器的柔轮变形、扭矩弹簧、联轴器扭转本质都可以抽象成一个弹簧-阻尼-双惯量系统。双惯量模型的运动方程通常写成J_m * θ_m c_s*(θ_m - θ_l) k_s*(θ_m - θ_l) τ_m J_l * θ_l c_s*(θ_l - θ_m) k_s*(θ_l - θ_m) τ_d其中J_m、J_l分别是电机轴和负载轴的等效转动惯量k_s是等效扭转刚度c_s是阻尼τ_m是电机输出力矩τ_d是负载侧受到的外部扰动。从控制输入τ_m到负载位置θ_l中间隔了两个惯量、一个弹性耦合这个结构天生就有欠驱动特征你只有电机侧一个执行器但需要同时管住电机侧和负载侧两个动态。弹性耦合带来的直接后果就是响应里出现谐振峰。把τ_m到θ_l写成传递函数你能看到一对共轭复极点对应的结构模态如果减速器内部还有间隙或摩擦力这个模态还会和迟滞、死区耦合控制环稍微激进一点系统就开始振。我一开始在模拟项目X里用刚性模型调PID理论计算稳定裕度很漂亮上到实验台一跑负载端低频持续抖动电机侧肉眼看不出来负载侧放个加速度计一测10Hz上下明显振荡。这就是典型的弹性模态被控制器激励了。1.2 三大麻烦弹性模态、欠驱动特性、参数时变做状态观测器之前得先认清柔性系统为什么难处理。弹性模态是一种欠驱动特性是第二种参数时变是第三种。欠驱动不是说系统完全不可控而是可控制性被削弱了。电机侧力矩经过弹簧再传到负载负载位置的能控性依赖耦合刚度。刚度低负载几乎“自由”电机使劲推负载只当没听见刚度高接近刚性但谐振频率也高控制器增益上限被模态频率锁死。这种“推一个拉着弹簧的负载”的感觉和你直接推一个刚性负载完全不同。参数时变更头疼。k_s会随温度升高稍微下降负载惯量J_l会因为末端工具变化而大幅变化阻尼c_s更是基本测不准。名义模型里定 120 N·m/rad 的刚度实际运行在 90~130 N·m/rad 之间浮动。这意味着任何“基于精确模型设计”的观测器天然会遭遇模型失配。1.3 传统状态观测器在这里失效的三处短板传统状态观测器典型代表是龙贝格观测器的设计思路是已知系统的A、B、C矩阵把状态估计误差作为反馈修正量通过配置观测器极点让误差快速收敛。这套思路对“模型精确、扰动可忽略”的系统非常好用但在柔性系统上会碰到三个具体问题第一模型失配。名义k_s和真实k_s不一致时观测器内部预测的弹性力矩本身就是错的输出误差反馈虽然能补一部分但稳态误差永远消不掉。观测器增益调大误差确实会减小但噪声也开始被放大等你把增益调到能容忍未知负载扰动的程度高频毛刺已经让人没法用。第二未知外部扰动。负载侧外力τ_d没法提前建模。龙贝格观测器只有在扰动项进入状态方程时才能估计如果扰动没有建模观测器只能把它当成一个“未知输入”估计偏差直接体现在那几个状态上。第三相对阶与结构动态。柔性系统从输入到输出的相对阶并不总是一个简单的惯量系统τ_m到θ_l之间还有反谐振零点。如果观测器极点配置得比结构谐振还高等于主动把柔性模态留在了观测回路里控制量稍微一波动真实系统就跟着共振。所以我当时得出的经验是柔性系统的观测器设计不能过度依赖模型精度必须有一个结构性的手段把“说不清楚”的部分在线估计出来并且实时补偿掉。这就是转用扩张状态观测器的直接动因。2. 扩张状态观测器的“扩张”到底扩了什么2.1 把未知项扩张成一个新状态扩张状态观测器的核心思想可以用一句话说清楚既然模型里总有说不清、建不准、量不到的项那就把这些项全部看成一个“总扰动”再把这个总扰动当成系统的额外状态用输出误差实时把它观测出来。以电机侧位置反馈为例。选择状态x1 θ_mx2 θ_m系统可以写成x1 x2 x2 f(x1, x2, w, t) b0*u y x1这里的f就是总扰动它包含了弹性力矩项、负载力矩、摩擦、未建模动态、参数偏差。b0是输入控制增益的名义值对电机轴等效惯量来说b0 1/J_m。扩张的意思是把f变成x3并设x3 hh不必知道具体值只要假设它是有界的。这样一来原系统扩成三阶x1 x2 x2 x3 b0*u x3 h y x1观测器也对应升级为三个估计量z1估计电机位置z2估计电机速度z3估计总扰动。观测器方程如下z1 z2 β1*(y - z1) z2 z3 b0*u β2*(y - z1) z3 β3*(y - z1)三个估计量全部只由同一个输出误差(y - z1)驱动。这就是替换龙贝格观测器的关键不再需要精确设计完整 A、B 矩阵只需要知道相对阶和b0大致准确。2.2 带宽法整定三个增益为什么是 3ωo、3ωo²、ωo³第一次看 ESO 公式的人通常都会问这三组增益怎么来的答案是带宽参数化。把估计误差定义为e1 x1 - z1e2 x2 - z2e3 x3 - z3。忽略h的快速变化误差方程近似为e1 e2 - β1*e1 e2 e3 - β2*e1 e3 -β3*e1对应的误差特征多项式是s^3 β1*s^2 β2*s β3我们希望三个误差极点都落在同一个位置-ωo上也就是让特征多项式等于(s ωo)^3展开s^3 3*ωo*s^2 3*ωo^2*s ωo^3于是就直接对应出β1 3*ωo β2 3*ωo^2 β3 ωo^3ωo就是观测器带宽。这组参数化方式把“调三个增益”变成“调一个参数”工程价值非常大。但要注意ωo不是越大越好带宽越高估计收敛越快输出误差中的高频噪声也会被ωo的立方级放大得越厉害。柔性系统尤其敏感ωo一旦逼近结构的机械谐振频率观测器的估计值会直接把振荡引到控制环里。2.3 与龙贝格观测器的本质差异靠模型还是靠误差驱动龙贝格观测器和 ESO 并不是完全不同的东西两者本质都是“输出误差反馈 状态重构”差别在于对未知量的处理方式。龙贝格观测器把未知扰动当成“需要精确建模或忽略”的对象模型里有扰动项才能估计出来模型里没有扰动项估计就会出现偏差。ESO 则反过来它不给扰动建模而是把“所有模型误差和扰动合并后的等效总和”扩张成状态靠误差积分项去逼出这个总和。扩张状态可以看作一种在线辨识机制模型正确与否不再那么要命。打个比方龙贝格观测器像拿着地图导航地图画错一步后面全偏。ESO 像开车时看着路和仪表盘实时修正只要知道方向盘基本灵敏度b0和车辆类型相对阶哪怕地图上有个路口不存在也能凭误差反馈绕过去。3. 面向柔性机械系统的一套ESO设计流程3.1 建模与状态选取别把弹性力矩漏出方程针对我手头这套柔性关节实验台目标是用电机侧编码器实现对负载侧状态的间接估计并保证位置控制稳定。设计时没有选择直接估计负载位置作为状态而是选择电机侧位置、速度加一个扩张状态把弹性耦合项的整体效应吸收进总扰动。具体做法是把θ_m的运动方程重新组织θ_m - (k_s/J_m)*(θ_m - θ_l) - (c_s/J_m)*(θ_m - θ_l) τ_m/J_m令f - (k_s/J_m)*(θ_m - θ_l) - (c_s/J_m)*(θ_m - θ_l) 外部扰动等效项这里的f就是进入 ESO 的总扰动。它既包含真实的负载侧运动引起的弹性反力矩也包含模型参数偏差。这么做有两个好处一是仅靠电机侧位置测量就能估计出弹性耦合的合力不需要负载侧编码器二是负载侧参数变化比如末端加了工具导致J_l变化不需要重新建模全部被f吸收掉。代价是观测器带宽必须避开结构谐振峰。因为柔性系统从τ_m到θ_m的传递函数有反谐振点如果ωo设得太高观测器会把真实系统中存在的振荡看成扰动去估计然后控制端拼命补偿反而把振荡越补越大。这就是柔性系统和刚性系统在 ESO 应用上的最重要区别。3.2 三阶ESO的递推方程与离散化在仿真和实际控制器里ESO 必须离散化。我用最简单的欧拉前向离散递推式如下% y(k): 电机角位置反馈 % u(k): 电机力矩指令必须是实际作用值 % b0 1/J_m_nominal % w0 omega_o % Ts 采样周期 err y(k) - z1(k); z1(k1) z1(k) Ts * (z2(k) 3*w0*err); z2(k1) z2(k) Ts * (z3(k) b0*u(k) 3*w0^2*err); z3(k1) z3(k) Ts * (w0^3*err);这里有一个离散稳定性约束欧拉法对三阶观测器的稳定步长大致满足Ts 2/ωo。假设ωo 60 rad/s极限步长约 0.033s1ms 控制周期下完全没问题。但如果你的控制任务被定时器打断更新周期抖到 3~4ms同时ωo取到 120 rad/s临界稳定条件就开始变得紧张。所以工程上我建议两个习惯第一观测器务必在固定中断里执行不要放在可抢占的低优先级任务里第二如果采样周期偏大或者定时抖动明显改用双线性变换离散 ESO稳定性比欧拉法好不少。3.3 仿真验证在模拟项目X上的估计效果设计完后我在双惯量模型上做了一组验证仿真。名义参数如下参数数值说明J_m0.02 kg·m²电机轴等效惯量J_l0.05 kg·m²负载轴等效惯量k_s120 N·m/rad等效刚度c_s0.5 N·m·s/rad等效阻尼b050名义控制增益ωc6 rad/s期望闭环带宽ωo30 rad/s观测器带宽Ts0.001 s采样周期测试分三步做第一步给定电机位置正弦跟踪负载端在第2秒突加 5 N·m 的扰动力矩。观察z3在约 0.3s 内收敛到新的总扰动水平z2对电机速度的估计误差峰值明显小于龙贝格观测器在同样模型失配下的表现。龙贝格观测器在名义k_s 120而真实k_s 100时负载速度估计会出现持续偏差ESO 则把 20% 的刚度偏差吸收进z3位置和速度估计误差都回到接近零。第二步把ωo从 30 调到 80再调到 150观察z3波形。ωo 80时估计响应变快但出现轻微振荡ωo 150时z3的高频毛刺已经明显干扰到控制量。这个测试告诉我观测器带宽不是随便开的必须结合被控对象的机械谐振频率来取。第三步接入扰动补偿控制器下一章详述对比纯反馈和“反馈补偿”的阶跃响应。纯反馈时负载位置的超调大约在 18%经历约 1.2s 才稳定加补偿后超调降到 8%稳定时间缩短到 0.5s 以内。4. 估计之后怎么控制扰动补偿与反馈的组合关系4.1 为什么光有估计还不够补偿环节才见真章ESO 给出状态估计后不能直接拿z1、z2当真实状态接个 PID 就算完。对柔性系统来说即使你把状态估计得准弹性力矩和负载扰动依然存在它们会不断把能量注入结构模态。所以必须利用估计出的总扰动z3在输入端做一个反向补偿抵消掉这些未知项的影响。补偿逻辑很直接。如果系统的名义输入通道是b0*u总扰动是f那么只要让u (u0 - z3) / b0代入系统方程就有x2 ≈ u0。也就是说经过补偿之后对被控系统而言剩下的对象近似是一个纯双积分器了。原本那个带弹性、带未知负载、带摩擦的“复杂机器”在控制器的视角里被“校正”成了一个干净的模型后面的反馈控制设计就变得非常常规。这一步是 ESO 作为“控制组件”而不是“观测组件”的核心价值它不仅帮你看清系统还帮你把系统变成你希望的样子。4.2 两种常用组合PDESO 与 状态反馈前馈补偿实际工程中根据被控对象性质和控制目标有两套组合方式很常用。方案 APDESO。这是自抗扰控制里最经典的结构。控制量由两部分组成u0 Kp*(r - z1) - Kd*z2 u (u0 - z3) / b0其中Kp ωc²、Kd 2*ωc按期望闭环带宽配置。这个方案实现简单适合“电机侧反馈、主要压制负载侧外部扰动”的场景。方案 B状态反馈ESO补偿。如果控制器本身使用了多个反馈量比如 LQR 状态反馈或者需要把负载侧速度也引入控制律那么就把 ESO 输出的z1、z2、z3分别组合进反馈和补偿通道u -K*[z1; z2] - z3/b0 u_r这里的K可以是 LQR 解出来的反馈增益u_r是参考前馈项。这种结构的优势是保留了状态反馈的灵活性同时获得了补偿的鲁棒性。两种方案的对比组合方式适用场景优点注意点PDESO系统相对阶2、输出反馈单一参数少、整定快Kp/Kd与ωo耦合需要一起调状态反馈ESO需要多状态参与的复杂控制设计灵活、能处理相对高阶系统需要保证z1/z2估计质量反馈增益不能过高对柔性系统来说我通常建议先用方案 A 把基础闭环调稳再用方案 B 逐步加入其他反馈量做性能优化不要一上来就上全状态反馈。4.3 b0不确定时的调整逻辑从补偿不足到振荡的边界整个控制方案里b0是唯一需要知道的对象参数也是最容易翻车的地方。b0取得比真实值大补偿系数1/b0小z3的估计量会被“过度信任”但补偿力度不足系统对外部扰动的抑制变慢。b0取得比真实值小补偿系数偏大一旦z3有噪声或估计波动控制量就跟着剧烈波动负载端出现同频抖动。我实际调试时习惯用这样一套边界判断方法把b0从名义值逐步调大观察负载侧阶跃扰动的恢复时间如果恢复很慢说明补偿不足把b0从名义值逐步调小观察z3波形是否振荡一旦z3和负载振荡同频说明补偿过度两个方向上确定上下界后取中间偏大一点的值作为工作点因为宁可补偿稍弱也不要因为补偿过度引发自激。如果b0需要偏离名义值 20% 以上才能稳定我的经验是停下来重新辨识机械参数而不是硬调。b0的偏差会影响 ESO 观测器本身的输入通道精度偏差过大时z3会把“输入增益误差”和真实扰动混在一起再也不可能分清楚。5. 从仿真到样机一次典型的发散故障排查链路5.1 故障现象的完整描述仿真正常、上机振荡有一次我把仿真里表现良好的 ESO 参数直接搬上实验台结果出现了一个非常典型的现象电机侧位置跟踪指令还算正常负载侧位置却持续低频振荡z3波形上看有明显毛刺毛刺频率和负载振荡频率又对不上更像是在拍频。这时候旁边同事第一反应是“把反馈增益降下来”。但我没有急着手动改参数而是按链路逐步排查。这其实是柔性系统调试里最重要的习惯先分清“是观测器错还是控制器错还是激励源错”再动手。5.2 从离散化步长、采样噪声到带宽的逐级排查排查第一层离散化与执行周期。检查主控日志发现名义 1ms 的控制周期实际上被打断过观测器更新节拍漂到了 3~4ms。当时ωo取到 60 rad/s欧拉法的临界稳定步长约 33ms按理说 4ms 不至于发散但问题在于更新节拍不固定等效于在离散系统里引入了随机时滞。我把观测器挪到固定中断任务里并且把离散方式从欧拉法换成双线性变换这一步做完后振荡幅度先降下来一半。排查第二层反馈量的噪声水平。实验台上的编码器是 2000 线差分求速度本身就会放大量化噪声。输出误差里的高频分量经过ωo³放大之后全部落到了z3上。早期为了追求快速性ωo取到 80 rad/s量化噪声在z3上拉出明显的锯齿。把ωo从 80 回落到 40z3波形立刻干净很多。这里有个折中经验柔性系统的ωo不必追高控制带宽 6 rad/s 对应着ωo 30~40 rad/s已经完全够用压过结构谐振反而引火烧身。排查第三层b0的真实偏差。实验台通过减速器连接负载等效惯量折算后和名义值有一定出入。我在线把b0从名义值附近往两边扫发现往小调 40% 时z3出现和负载振荡同频的波动往大调 20% 时扰动恢复变慢。最后用阶跃响应法重新估算折算惯量把b0修到名义值的 1.05 倍附近观测器回归稳定。排查第四层力矩饱和。这是最隐蔽的一个问题。实验台在回程减速段指令力矩受限但控制律里用的还是未饱和的uESO 拿到的是“指令力矩”实际执行机构只给了一部分观测器里输入通道和环境不一致z3的估计自然偏大。解决办法是把饱和后的实际力矩反馈给观测器并且对z3做合理限幅确保控制量在饱和边界上也不会“骗”观测器。排查第五层机械谐振激励。处理完前四层后我用扫频测试发现了实验台在 22Hz 附近存在明显的结构谐振峰。早期ωo取 120 rad/s 时观测器频带已经压到 19Hz 附近接近 22Hz等于主动把观测器的能量灌进了结构模态。把ωo压回 40 rad/s 后这个问题才彻底消失。这个发现也验证了我前面的一个判断柔性系统上用 ESO带宽不是越快越好必须给机械模态留出安全距离。5.3 调试清单与经验参数几次折腾下来我整理了一份柔性系统 ESO 调参时必查的清单每次换平台都按这个顺序走观测器是否在固定周期任务里执行离散方法是否匹配Ts和ωo输出反馈的量化噪声有多高z3上有无阵发的高频毛刺b0是否基于实测惯量折算偏差是否超过名义值 20%输入到观测器的u是不是饱和后的实际力矩ωo和机械谐振频率之间有没有留足间隔负载侧速度估计和实际量测是否一致不一致时先看z3是否收敛再谈带宽。最后给出我在这套实验台上稳定工作的参考参数范围供你起步时参考motion control周期 1ms 固定中断 ESO离散方式 双线性变换 ωc 6 rad/s ωo 30~40 rad/s b0 名义惯量的 1.0~1.1 倍 u反馈 饱和后真实力矩只要按这套流程走柔性系统上的 ESO 基本可以做到“一次上平台不炸三小时调出能跑的参数”。调试节奏上还有个小技巧每次改完观测器参数先做一次负载端阶跃扰动测试记录z3的收敛时间和波形再去做轨迹跟踪这样能把“观测器问题”和“控制器问题”彻底分开。

相关新闻

大模型赋能数据治理:元数据补全、质量规则与标准映射落地路径

大模型赋能数据治理:元数据补全、质量规则与标准映射落地路径

数据治理做了多年的人,心里多半有个共同的感受:不是不知道怎么做,而是做不动。制度写了,工具买了,组织也搭了,数据质量还是老样子,元数据还是理不清,标准还是挂在墙上。数据团队常年…

2026/10/17 3:29:52 阅读更多 →
Git默认分支从master改为main的完整实践指南

Git默认分支从master改为main的完整实践指南

1. 为什么今天必须把 Git 默认分支从 master 改成 main?你刚初始化一个新仓库,敲下git init,再执行git status,终端里赫然显示:On branch master。这个画面我看了十多年——从大学实验室第一次接触 Git,到带…

2026/10/17 3:29:52 阅读更多 →
Java五子棋项目开发详解:从Swing棋盘到AI落子算法

Java五子棋项目开发详解:从Swing棋盘到AI落子算法

简介:面向Java学习者与游戏开发初学者的五子棋项目实现教程,围绕棋盘、棋子、玩家与AI算法展开,完整演示十五路或十九路棋盘的落子、胜负判定、人机对战等核心流程。压缩包共65个文件,大小仅2.73MB,内含14个头文件、12…

2026/10/17 3:28:52 阅读更多 →

最新新闻

Windsurf 实战:用 Cascade Agent 打造高效 AI 编程工作流

Windsurf 实战:用 Cascade Agent 打造高效 AI 编程工作流

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

2026/10/17 6:12:35 阅读更多 →
LeetCode 73 矩阵置零(Set Matrix Zeroes)全解析:从 O(m+n) 标记数组到 O(1) 原地标记的多语言实现

LeetCode 73 矩阵置零(Set Matrix Zeroes)全解析:从 O(m+n) 标记数组到 O(1) 原地标记的多语言实现

示例工程 【免费下载链接】leetcode 🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解 项目地址: https://git…

2026/10/17 6:12:35 阅读更多 →
运行Mistral-7B-Instruct-v0.3-mlx-4Bit遇到报错怎么办?10个常见错误与解决方案完整清单

运行Mistral-7B-Instruct-v0.3-mlx-4Bit遇到报错怎么办?10个常见错误与解决方案完整清单

【免费下载链接】Mistral-7B-Instruct-v0.3-mlx-4Bit 项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/Mistral-7B-Instruct-v0.3-mlx-4Bit 点击查看 免费下载 Mistral-7B-Instruct-v0.3-mlx-4Bit 是由 Mistral-7B-Instruct-v0.3 转换而来的 MLX 格式 …

2026/10/17 6:12:35 阅读更多 →
Llama-3.1-8B_rai_1.8.0_npu_16K 是什么:AMD Ryzen AI NPU 端侧部署的 8B 大模型完全指南

Llama-3.1-8B_rai_1.8.0_npu_16K 是什么:AMD Ryzen AI NPU 端侧部署的 8B 大模型完全指南

【免费下载链接】Llama-3.1-8B_rai_1.8.0_npu_16K 项目地址: https://ai.gitcode.com/hf_mirrors/amd/Llama-3.1-8B_rai_1.8.0_npu_16K 点击查看 免费下载 本文带你一文看懂 Llama-3.1-8B_rai_1.8.0_npu_16K:这是由 AMD 基于 Meta 的 Llama-3.1-8B 大模…

2026/10/17 6:12:35 阅读更多 →
大厂AI算法岗面试全攻略:从机器学习原理到项目深挖的备战清单

大厂AI算法岗面试全攻略:从机器学习原理到项目深挖的备战清单

我一直觉得,AI算法岗的面试准备是一场信息战。很多人技术底子不差,但一到面试就抓瞎,不是不会,是不知道对方到底要考什么、怎么考。尤其是大厂的算法岗,考察逻辑和中小厂完全不同——它不太关心你会不会调某个库&#…

2026/10/17 6:12:35 阅读更多 →
Next.js项目Playwright自动化测试实战指南

Next.js项目Playwright自动化测试实战指南

1. 为什么用 Playwright 给 Next.js 项目做自动化测试去年年底我接手了一个跑了两年的 Next.js 后台管理系统,功能越加越多,每次发版前都要靠人工把核心流程点一遍,点得人昏头昏脑。后来我下定决心补自动化测试,选型选了一圈,最终还是用 Playwright 落地了全套端到端用例。这篇…

2026/10/17 6:11:35 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 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/16 21:54:38 阅读更多 →
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/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练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/16 14:23:36 阅读更多 →