非线性参数不确定系统自适应滑模控制设计与Matlab仿真全解析
做控制算法仿真的同行基本都绕不开“滑模控制”这个经典话题。但我发现很多人在实际项目里一用滑模就翻车不是抖振大到没法看就是被控对象参数一变化控制器直接失效。“参数不确定的非线性系统的自适应滑模控制”这个题目恰好把控制领域两个硬骨头劈开了来谈——非线性、参数未知。传统滑模扛得住非线性却特别依赖不确定性上界自适应控制能在线调参又常因为模型结构不清楚而失控。两者结合再用Matlab快速验证是设计控制器的一条成熟路线。这篇文章不是教科书复读主要写给正在做课程设计、课题仿真或者刚上手非线性控制的工程师帮你把从原理推导到代码落地的整个链条串起来顺带聊聊那些文档里不会写的坑。1. 先看问题本质被参数不确定卡住的控制系统1.1 参数不确定性到底指什么参数不确定说直白点就是模型里那些系数你以为它是常数实际它随工况偷偷变化。举几个最常见的场景机械臂末端负载变化导致等效惯量变化电机长时间运行后温度升高绕组电阻漂移飞行器在不同高度飞行气动导数完全不是同一组数液压系统油温变了流量系数也跟着变。这些变化如果不处理控制器是按照标称模型设计的实际对象却是另一套参数输出自然偏。把这类系统写成通用的二阶非线性标准型x1_dot x2 x2_dot f(x) Δf(x) (g(x) Δg(x))u d(t)其中f、g是标称模型Δf、Δg是由参数偏差造成的未知部分d(t)是外部扰动。这里需要注意如果不确定性出现在与输入u同一个通道里即满足“匹配条件”滑模控制处理起来相对轻松如果是不匹配不确定性问题就麻烦得多多数教材和论文默认先做匹配假设。用开车来类比轮胎胎压变了、路面附着系数变了但车身稳定系统依然能把车拉回预期轨迹因为它一直在估计路面情况。这就是自适应的直觉——在线修正对系统的认识而不是一根筋相信出厂参数。滑模则是那个“大方向不许偏”的硬约束。1.2 传统滑模控制为什么不够用传统滑模设计分两步选滑模面、设计控制律。滑模面相当一个误差的综合指标比如 s c·e1 e2。控制律通常写成 u u_eq K·sign(s)。其中 u_eq 是等效控制让滑模面在无扰动时保持不动K·sign(s) 是切换控制强行把 s 拉回零。问题的核心就在这个 K 上。K 必须要大于不确定性上界滑模面才是可达的。但很多实际项目你根本拿不到精确上界只能先往大了估。K 过大之后的代价非常直观控制输入高频抖动执行机构受不了抖振会激发未建模的高频动态反而把系统搞坏仿真图上看起来像锯齿一样的控制量拿到硬件上直接烧驱动器。很多人第一次做滑模仿真都被这个现象吓到过。我最初调机械臂模型时控制力矩曲线像心电图换了十几组参数才明白问题出在切换增益上。自适应滑模的核心思路就是让K自己长到够用的程度而不是一上来拍脑袋给个超大值。同样道理也可以在线估计模型中的未知参数θ。这样既保留了滑模的强鲁棒性又降低了控制器设计对先验知识的依赖。这就是这个标题背后最关键的出发点。2. 自适应滑模的核心设计思路2.1 滑模面与等效控制搭建先把模型写清楚。考虑二阶系统x1_dot x2x2_dot f(x) Δf(x) (g(x) Δg(x))u d(t)。定义期望轨迹为x1d跟踪误差e1 x1 - x1d e2 x2 - x1d_dot滑模面取s c·e1 e2其中 c 0这个c决定了误差收敛速度c越大滑模面上误差衰减越快。但c也不是越大越好过大的c会把噪声放大实际系统里要折中。对s求导s_dot c·e2 f(x) Δf(x) (g(x) Δg(x))u d(t) - x1d_ddot等效控制的目的忽略不确定性令 s_dot 0解出的u就是u_eq (-c·e2 - f(x) x1d_ddot) / g(x)这里有个工程上常被忽视的点g(x)不能等于零这是系统能控性的要求。如果你的模型中g(x)有零穿越必须做控制方向处理否则等效控制会在零点附近爆炸。完整控制律是u u_eq u_sw其中 u_sw 是切换项用来对付那些被等效控制忽略的Δf、Δg和d(t)。后面的自适应就落在 u_sw 里的增益以及模型参数估计上。2.2 自适应律怎么更新增益传统做法是给切换项一个固守的 K自适应滑模把这变成在线估计的 K_hat。最常见的自适应律形式K_hat_dot Γ·|s|Γ 0直觉很好理解只要滑模面 s 还没归零K_hat 就持续增长直到把 s 拉回零附近s 接近零后K_hat_dot 也接近零增益自动停在合适水平。这比人工试凑K省去很多麻烦。但纯积分自适应有个隐患扰动不是永久存在时K_hat 可能因为历史累积而保持过大导致不必要的抖振。工程常用的修正是加σ泄漏项K_hat_dot Γ·(|s| - σ·K_hat)σ 0当 K_hat 超过需要值后σ·K_hat 会把增益往回拉防止参数漂移。这个思想借鉴了自适应控制里的σ修正法虽然损失了一点严格收敛性但实际鲁棒性好得多。如果要对模型参数θ做在线估计还需要把不确定性参数化。假设f(x) Δf(x) φ(x)^T·θ其中φ(x)是已知的回归向量θ是未知常数向量。比如某个系统中 f 包含 a·x1^2 b·sin(x2)那φ [x1^2; sin(x2)]θ [a; b]。控制器里用估计值θ_hat代替θ并设计估计更新律θ_hat_dot -Γθ·φ(x)·sΓθ是正定的学习速率矩阵。这个式子符号方向必须和模型代入方式匹配很多初学的人栽在符号反了导致系统发散。2.3 稳定性怎么证Lyapunov直接法自适应律不是随便拍的稳定性分析是整套设计的地基。构造Lyapunov函数V 1/2·s² 1/(2Γ)·(K_hat - K*)² 1/2·θ_tilde^T·Γθ^(-1)·θ_tilde其中 K* 是某个能满足滑模可达条件的常数但它的具体值不需要知道θ_tilde θ_hat - θ 是参数估计误差。对V求导代入 s_dot 和自适应律利用自适应律的构造可以让交叉项消掉最终得到V_dot ≤ -η·s²这里的η取决于边界层的设计。因为 V_dot 只能保证负半定严格数学上还需要用Barbalat引理或LaSalle不变集说明s最终收敛到零这就是教科书里的标准推导流程。这套证明的意义对工程师来说很实际它告诉你哪些项是必须保留的哪些符号不能搞错以及为什么切换增益和参数估计速率要满足正定条件。我习惯先把 Lyapunov 推导写在草稿纸上再对着写代码符号问题一眼就能查出来。3. Matlab实现全流程3.1 被控对象模型搭建为了把原理落成可运行的代码我选一个典型但不过分复杂的非线性被控对象单关节机械臂模型。运动方程简化成二阶标准型x1_dot x2 x2_dot -a·sin(x1) - b·x2 g(x)·u d(t)其中标称参数 a 2b 0.8g(x) 1 0.1·sin(x1)。为了模拟参数不确定仿真时真实系统使用 a 2.5b 1.2同时加入扰动 d(t) 0.3·sin(3t)。这样标称模型和真实对象之间有明显偏差才能看出自适应滑模的压舱石作用。你完全可以把这段代码里的模型换成倒立摆、柔性关节或者电力系统二次调频模型原理完全一致只要保持标准型结构即可。3.2 控制器与自适应律的代码结构先看我用的主脚本结构%% 参数不确定非线性系统的自适应滑模控制 - 主脚本 clear; clc; % 控制器设计参数 c 5; % 滑模面系数 gamma_k 0.8; % 切换增益自适应速率 gamma_theta 1.5; % 参数估计自适应速率 sigma 0.02; % sigma泄漏项系数 epsilon 0.05; % 边界层厚度 % 状态: [x1; x2; K_hat; theta_hat1; theta_hat2] x0 [0.6; 0; 0.5; 2; 0.8]; % 固定步长仿真接近实际离散控制 ts 0.001; t 0:ts:12; n_steps length(t); states zeros(5, n_steps); states(:,1) x0; for k 1:n_steps-1 z states(:,k); x1 z(1); x2 z(2); K_hat z(3); theta_hat z(4:5); % 期望轨迹及导数 xd sin(t(k)); xd_dot cos(t(k)); xd_ddot -sin(t(k)); % 误差和滑模面 e1 x1 - xd; e2 x2 - xd_dot; s c * e1 e2; % 回归向量 phi [sin(x1); x2]; % 对应 f -a*sin(x1) - b*x2 f_model -theta_hat(1)*sin(x1) - theta_hat(2)*x2; g_model 1 0.1*sin(x1); % 等效控制 自适应切换控制 u_eq (-c*e2 - f_model xd_ddot) / g_model; u_sw -K_hat * sat(s / epsilon); u u_eq u_sw; % 参数自适应律 K_hat_dot gamma_k * (abs(s) - sigma*K_hat); theta_hat_dot gamma_theta * phi * s; % 真实被控对象与原模型参数不同 f_true -2.5*sin(x1) - 1.2*x2; g_true 1 0.15*sin(x1); d_dist 0.3*sin(3*t(k)); % 状态导数 x1_dot x2; x2_dot f_true g_true*u d_dist; % 简单欧拉更新追求更高精度可用RK4 states(:,k1) z ts * [x1_dot; x2_dot; K_hat_dot; theta_hat_dot]; end注意几个代码里的关键点第一真实的 x2_dot 里用的是 f_true 和 g_true而控制器里用的是模型估计值 f_model 和 g_model这个区分是模拟参数不确定的核心。很多初学者在仿真里把控制器和对象混用同一套模型那就失去了验证意义。第二θ_hat_dot 写成了 gamma_theta * phi * s。为什么是正号而不是负号因为这里 f_model -θ_hat(1)*sin(x1) - θ_hat(2)*x2估计误差项代入方程后符号被翻转了一次。你在自己推导时一定要沿着 s_dot 表达式完整走一遍不要照抄公式。第三theta_hat_dot 的更新方向如果反了系统通常表现为刚开始还好后期发散这种发散特别难排查。3.3 边界层饱和函数与参数选择代码里用了 sat(s/epsilon) 而不是 sign(s)这是工程上抑制抖振最直接的手段。饱和函数定义为function out sat(x) if abs(x) 1 out x; else out sign(x); end end边界层厚度 epsilon 的含义滑模面 s 在这个厚度以内时切换项不再全力度切换而是线性过渡。相当于给控制量做了一次软约束。epsilon 调大抖振减小但稳态误差会增大epsilon 调小跟踪精度高但控制量开始抖。我的经验值初始给 0.01~0.1再根据仿真曲线的平滑度微调。如果对象扰动幅度很大边界层厚度也要相应增大。控制器参数选择上c 我通常取 3~8。太大导致误差项对测量噪声过于敏感太小收敛慢。gamma_k 决定 K_hat 的学习速度给 0.5~2 之间起步。gamma_theta 同理给 0.5~2。如果发现 K_hat 收敛后仍然持续增长不回落把 sigma 从 0 调到 0.02~0.1 试试。3.4 仿真结果与现象解读跑完上面代码至少要看四张图跟踪曲线、跟踪误差、控制输入、K_hat 与 θ_hat 变化曲线。正常情况下能看到这些现象跟踪误差在过渡阶段有个收敛过程之后维持在一个很小的界内。由于边界层的存在误差不会严格为零但能满足大多数工程要求。K_hat 从初值往上爬爬到一个稳定水平后基本停住。这说明自适应起了作用切换增益不再需要人工试凑。θ_hat 朝着真实值方向趋势性接近但不一定精确收敛到真实值。参数收敛需要“持续激励”条件也就是输入信号要足够丰富。正弦激励一般能激发主要参数但不保证每个参数都收敛这点不必强求。控制输入比传统固定高增益滑模平滑得多抖振幅度明显减小。这就是自适应带来的直接收益。我用同一套代码做过对比实验把 K_hat 固定成 2全程切符号函数结果控制输入抖振振幅比自适应饱和函数方案大好几倍跟踪精度反而差不多。这个对比建议你也试试能直观理解“自适应边界层”组合的价值。4. 调试实录与常见坑4.1 抖振压不下去怎么办这是滑模控制被问最多的问题。抖振来源无非是切换控制量高频反转边界层没起到预期作用。排查顺序先确认是不是 epsilon 太小。把 epsilon 从 0.01 逐步放到 0.1看控制输入的毛刺是否明显平滑。如果平滑了代价是误差变大再考虑用更平滑的趋近律替代饱和函数。比如指数趋近律s_dot -ε·sign(s) - k·s其中 ε 和 k 都为正用这种趋近律设计出的切换项带线性项 k·s滑模面越远离零拉回速度越快接近零时由线性项主导切换动作更柔和。如果边界层加厚后跟踪误差不可接受可以考虑在边界层内对滑模面做积分补偿或者在控制律里增加扰动观测器把慢变扰动估计出来并在等效控制中前馈补偿这样切换增益可以实质降低。我在一个实际电机位置控制项目里就是靠增加扰动观测器才把抖振压到能用的水平。4.2 自适应参数初值敏感问题自适应系统对初值有天然的敏感性K_hat 和 θ_hat 的初值会影响系统过渡过程质量。K_hat 初值太大会让切换项一开始就很猛过渡阶段控制量饱和K_hat 初值太小初始阶段不确定性压制不住误差可能先冲一波。我的习惯是给一个偏保守的估计值比如标称模型上界的50%然后靠自适应往上提。θ_hat 初值一般给标称参数。如果标称参数和真实偏差过大初始等效控制方向可能偏差严重系统会有一段明显的暂态冲击。此时可以把学习速率 gamma_theta 先调小等系统进入稳定状态后再加快估计速度。更稳的做法是分阶段第一阶段只启用固定增益滑模第二阶段再打开参数自适应。σ泄漏项对初值敏感问题也有缓解作用。如果系统扰动不大引入σ可以让 K_hat 不过度增长也减少参数漂移风险。注意 σ 太大会让 K_hat 收敛到一个偏小的值导致鲁棒性下降需要平衡。4.3 系统发散怎么排查仿真发散是自适应控制里最容易让人抓狂的事。我的排查顺序已经形成肌肉记忆第一检查自适应律符号。把 theta_hat_dot 和 K_hat_dot 的符号反转都试一遍看哪个能稳住。这与Lyapunov推导直接对应所以手边最好有推导稿。第二检查真实模型与控制器模型是否用了不同的变量名。很多发散是因为仿真代码里对象和控制共用了同一个theta_hat导致参数更新后对象模型也跟着变形成了一个正反馈环。第三检查g(x)符号。如果g(x)中有未知偏差且偏差方向不一致等效控制可能把控制方向搞反误差会恶性循环。可以先让Δg0把系统跑通再逐步加入Δg的量。第四把欧拉法换成四阶Runge-Kutta。自适应系统存在快慢尺度的动态简单欧拉在步长不够小时可能引入数值失稳。我一般用固定步长RK4四个子步的斜率计算只在每个控制周期里做一次。第五检查边界层厚度。epsilon 太小时饱和函数接近符号函数ODE数值刚性增大也容易触发发散。4.4 常见问题速查表现象可能原因排查方法控制量高频抖振切换增益过大或边界层过薄增大epsilon改用指数趋近律增加扰动观测器K_hat持续增长不回落扰动较大且无σ泄漏引入σ泄漏项或人工限制K_hat上限跟踪误差先收敛后发散参数自适应符号错误对照Lyapunov推导检查theta_hat_dot符号初始阶段控制饱和K_hat或θ_hat初值偏差大给保守初值分阶段启动自适应误差收敛但稳态精度差边界层过厚减小epsilon或在边界层内增加滑模面积分项系统完全发散对象与控制器模型混淆或g方向错误分离真实模型与控制器模型先跑通Δg0的情况ODE求解步长过小报错切换项不连续改用固定步长循环或者用sat函数平滑这张表基本覆盖了我带团队时新人常踩的坑。其中“对象与控制器模型混淆”是最隐蔽的代码看起来一切正常但共用变量导致参数更新同时改变了被控对象整个仿真变成了自证预言完全失去指导意义。5. 扩展思考与我的几个实操习惯5.1 从基础方案到更多变体自适应滑模不是终点而是工具箱里的一个基础款。顺着这个方向可以往几个方向走终端滑模Terminal Sliding Mode解决滑模面收敛时间无限的问题让误差在有限时间内到零适合高精度快速对位场景。快速终端滑模再引入线性项兼顾远距离快速接近和近距离高精度。二阶滑模控制Super-Twisting把切换项放在s的二阶导数里控制量连续化抖振显著减小。代价是公式推导更复杂参数更多调试难度上升。如果参数结构都不知道只知道不确定性有界可以考虑RBF神经网络滑模用网络输出逼近不确定性函数滑模控制只需要补偿逼近残差。这是另一个大话题但底层思路和自适应滑模一脉相承。还有一种工程上很实用的扩展把扩张状态观测器ESO和滑模组合。ESO实时估计总扰动滑模只管残差切换增益可以压缩到很小。我最近的项目就在用这个组合控制量的平滑度比纯自适应滑模又上一个台阶。5.2 我的几个实操习惯代码层面的习惯很重要。我所有仿真都用固定步长虽然ode45方便但固定步长循环更接近真实离散控制系统从仿真到实物移植的改动量最小。控制器写成独立函数输入是当前状态参考信号输出是控制量这样便于后续换对象模型。所有状态量保存在矩阵里仿真结束后一次性画图比在循环里print更高效。调参时我习惯一个一个参数调不要同时动两个。先固定c调gamma_k等K_hat曲线平稳了再调gamma_theta和sigma。每次修改只保留一份记录标注改了什么、现象如何变化不然很容易陷入盲目试参的泥潭。最后分享一个小技巧在确认算法正确前先不给真实模型加参数偏差只看名义系统下自适应滑模能不能跟踪。名义系统跑通了再加Δ参数和扰动。这样每一层新增的不确定性都能定位到清楚的原因而不是把所有干扰混在一起让排查无处下手。这种方法我用了很多年省掉大量“看起来哪里都不对但不知道错在哪”的调试时间。

相关新闻

零基础AI编程实战:从想法到上线变现的完整指南

零基础AI编程实战:从想法到上线变现的完整指南

今年上半年,我在线上给一位完全不懂代码的亲戚做了一次“零基础AI编程”直播演示。从上午11点开始,到下午3点,一个能在手机上打开、能记录每日开销并自动汇成简单统计的网页小工具已经能跑了,中间还点了两顿外卖。听完这件事的人&…

2026/10/13 20:31:21 阅读更多 →
RFM-Kmeans用户分群的可解释性重构与业务落地指南

RFM-Kmeans用户分群的可解释性重构与业务落地指南

1. 这不是“打标签”,而是用数据逻辑重建用户价值认知很多人一看到“RFMKmeans”,第一反应是:哦,又一个用户分群的套路。点开几篇教程,抄几行代码跑通,导出个Excel表格,给每个簇打上“高价值客户…

2026/10/13 20:31:21 阅读更多 →
AI编程智能体生态实战:多智能体协作架构与工程落地

AI编程智能体生态实战:多智能体协作架构与工程落地

1. 从"单兵作战"到"团队协作":AI编程智能体生态到底在解决什么问题过去一年里,我身边不少做开发的朋友都经历了这样一个阶段:一开始用AI写代码,觉得效率提升明显,但用着用着就发现,单个…

2026/10/13 20:31:21 阅读更多 →

最新新闻

glibc内存管理核心:malloc/free原理、RSS异常排查与调优实践

glibc内存管理核心:malloc/free原理、RSS异常排查与调优实践

搞了十多年Linux服务端,我遇到过不少内存方面的疑难杂症:程序跑着跑着RSS飙到十几个GB,看代码却找不到任何泄漏;压力测试一过进程就被OOM干掉;线上明明有内存空闲,服务却越跑越慢。这些问题表面上是业务逻辑…

2026/10/14 0:15:46 阅读更多 →
SpringBoot2+Vue3构建医院资源管理系统实战

SpringBoot2+Vue3构建医院资源管理系统实战

1. 项目概述与核心价值医院资源管理系统作为医疗信息化建设的核心组成部分,其技术选型与架构设计直接关系到医疗机构的运营效率。这套基于SpringBoot2Vue3MyBatis-PlusMySQL8.0的技术栈组合,代表了当前企业级应用开发的主流技术方向。我在三甲医院信息化…

2026/10/14 0:15:46 阅读更多 →
easy-peasy Reducer TypeScript API:用 Reducer<State, Action> 为 Redux 风格 Reducer 添加完整类型

easy-peasy Reducer TypeScript API:用 Reducer<State, Action> 为 Redux 风格 Reducer 添加完整类型

前端 【免费下载链接】easy-peasy Vegetarian friendly state for React 项目地址: https://gitcode.com/gh_mirrors/ea/easy-peasy 点击查看 免费下载 本篇围绕 easy-peasy 的 TypeScript API 中的 Reducer 类型展开,讲解如何在模型声明中为“标准 Red…

2026/10/14 0:15:46 阅读更多 →
EFK日志监控系统从零搭建:Elasticsearch+Filebeat+Kibana实战指南

EFK日志监控系统从零搭建:Elasticsearch+Filebeat+Kibana实战指南

直接说结论:如果你团队里缺一套能随时查线上日志、能统计错误趋势、能按关键字秒级定位问题的系统,EFK三件套是目前最稳妥的选择。Elasticsearch负责存储和检索,Filebeat轻量采集日志,Kibana负责可视化。三者合起来,就…

2026/10/14 0:15:46 阅读更多 →
二叉树指定结点层次计算:递归与迭代实现及工程实践

二叉树指定结点层次计算:递归与迭代实现及工程实践

1. 从一道经典题说起:为什么"求结点层次"值得单独拎出来讲但凡刷过二叉树相关题目的人,大概率都见过这道题:给一棵二叉树,再给一个目标结点,问这个结点在第几层。很多人第一反应是"这不就是遍历的时候顺…

2026/10/14 0:15:46 阅读更多 →
Lorenz吸引子实战指南:从混沌方程到三维相图可视化

Lorenz吸引子实战指南:从混沌方程到三维相图可视化

1. 为什么一张“蝴蝶翅膀”能搅动整个非线性科学界?你可能在科普视频里见过它:两条螺旋状轨迹,像一对缓缓张开的蝴蝶翅膀,在三维空间里永不停歇地缠绕、分离、再靠近——它不是艺术渲染,而是Lorenz系统在特定参数下自动…

2026/10/14 0:14:45 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 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/13 22:01:27 阅读更多 →
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/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练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/12 18:11:17 阅读更多 →