MPT3.2.1 安装指南:用 Matlab 工具箱实现显式模型预测控制
简介Matlab MPT工具箱3.2.1是2019年发布的稳定版本专为模型预测控制MPC、参数优化与计算几何设计的开源工具包适合自动控制、机器人、机器学习等相关领域的研究与工程人员。压缩包共2000个文件总大小13.61MB内容以m源码、png图示、html帮助文档及mexw64编译接口为主其中2081个m文件覆盖核心算法与工具函数269个html文档提供详细说明多类文件相互配合便于学习与调用。已有4072人学习下载。资源附带了完整的帮助文档和丰富示例涵盖多面体、凸包、Voronoi图等几何对象操作支持离散时间、连续时间及混合系统的线性与非线性MPC设计可直接参考实例修改并集成到实际项目中帮助快速掌握从理论到落地的完整链路。1. MPT3.2.1 值不值得装Matlab 工具箱里的显式模型预测控制入场券Matlab 里做模型预测控制绕不开 MPT 工具箱的 3.2.1 版本。这个 2019 年更新的稳定版不是 MATLAB 自带工具箱而是一套基于多面体理论和混合整数规划的开源工具包核心能力是把约束优化问题转成显式控制器同时把求解、仿真、验证的流程压到几行代码里。很多控制工程师装了新版 MPT 之后连示例都跑不通最后退回 3.2.1 才发现它附带帮助文档和多个例子开箱即用的程度远超预期。这篇笔记适合三类人正在安装 MPT 但反复翻车的初学者、要在项目里快速生成 MPC 控制器的研发人员、以及想搞懂显式 MPC 底层逻辑的学生。我按自己装过的路径从选型、安装、跑例、调参到踩坑给你完整过一遍。2. MPT3 的架构与选型显式模型预测控制靠什么跑起来2.1 多面体理论是 MPT3 的骨架从约束集合到控制器输出模型预测控制在 MATLAB 里的常规做法是自己写优化目标函数、约束矩阵再调求解器。MPT3 换了一条路它对状态和输入约束做多面体划分把约束集合表示为多面体的交然后在这个几何框架里离线计算出一个分区线性控制器。所谓显式 MPC就是不需要在线求解二次规划而是根据当前状态所在的多面体区域直接查表得到控制量计算时间可以下降到微秒级。MPT3 为此实现了完整的多面体计算库包括凸包、极点枚举、顶点表示与半空间表示的互相转换。我一般会在拿到新环境后先做一次快速检查确认当前加载的是哪一份 MPT避免后续用错版本% 检查关键函数是否可见 which mpt_solve which mpt_constructMatrices % 查看已加载工具箱的根目录 which mpt3逻辑说明which mpt_solve会返回mpt_solve所在的 m 文件路径如果显示not found说明 MPT3 根本没有正确挂载到 MATLAB 搜索路径。mpt_constructMatrices是 MPT3 把 LTI 系统和约束构造成 MPC 矩阵的核心入口本地有这个函数才算安装成功。which mpt3则是看工具包入口函数的位置我习惯用它来快速判断机器上是否残留旧版本。参数说明这里不需要传参纯粹做路径探测。如果which返回的路径和你本次安装的目录不一致那就说明 MATLAB 的pathdef.m里保留着旧路径需要优先处理否则后面所有示例都可能被旧代码截获。MPT3 的架构是分层的底层是Polyhedron类负责多面体的创建、变换、交集、差集等操作中间层是System类封装了状态空间模型、约束和目标函数上层才是MPCController、ExplicitMPCController、ClosedLoop这些面向用户的接口。理解这一层关系对定位报错很有用因为大部分报错并不是控制器代码写错而是底层多面体计算遇到了退化情况比如约束矩阵里有线性相关的行。2.2 为什么选择 3.2.1稳定版边界与版本对比MPT 从 3.0 到 3.1、3.2 经历了比较激进的重构。3.0 引入统一的 Polyhedron 接口3.1 开始收紧和 YALMIP 的配合方式3.2 系列则集中修复了多面体运算在数值退化下的崩溃问题。3.2.1 作为这一系列的最后修正版被标注为稳定版并非没有原因它的 API 基本冻结帮助文档和示例文件与代码保持同步不像开发版那样文档比代码旧。这个版本很适合固定方法论把注意力放在控制设计而非维护工具链上。对比项MPT 3.0MPT 3.1MPT 3.2.1多面体类稳定性一般退化场景偶发崩溃有改善稳定推荐生产项目使用YALMIP 兼容性早期接口基本可用配合常见求解器无冲突帮助文档完整度简略中等完整含多个示例文件典型适用场景学习原型课程作业科研复现与实际控制器设计选型建议如果你的 MATLAB 版本不是太新且主要做离散时间 LTI 系统的 MPC 和显式 MPC3.2.1 几乎是最省心的终点。它不需要依赖最新的 MPT 工具链也能避开某些新版本中为了提升计算性能而牺牲可读性的大规模重构代码。需要注意3.2.1 并不适配所有新版本 MATLAB极新的 MATLAB 里可能因为内置类命名冲突而出现Undefined function or variable这时候优先考虑 3.2.1 之外的老牌稳定组合或者寻找更新版本不要硬扛。我常对同事说MPT3.2.1 是一把用得惯的旧锤子工具新不代表好使对显式 MPC 来说你把锤子换成电钻反而可能敲不进去。版本选型的关键指标只有一个——示例能否在你的 MATLAB 环境里零改动跑通。跑不通的版本功能再新也跟你无关。3. 下载、解压、挂载与验证让 MPT3.2.1 在当前 Matlab 里可用的最小步骤3.1 安装前检查三个影响成败的环境点安装 MPT3.2.1 之前我建议你先花两分钟对照清单做检查而不是直接解压然后期望跑通。第一个检查点是 MATLAB 版本32 位和 64 位差异会直接影响工具箱内部 MEX 文件能否被加载推荐优先用 64 位 MATLAB 环境。第二个检查点是 YALMIP它是 MPT3 调用求解器的中间层必须先安装且版本不能过新太新的 YALMIP 可能改掉内部接口导致 MPT3.2.1 调用时出现接口不匹配。第三个检查点是 MEX 编译器的配置虽然 MPT3 大多数功能用纯 m 文件可以实现但部分多面体核心操作依赖编译好的二进制用mex -setup确认当前有可用的 C 编译器会省去很多后续烦恼。有人会问不装 YALMIP 行不行答案是可以但能力会打折。MPT3.2.1 离线的默认求解器覆盖了小规模二次规划和线性规划但如果你的约束条件多、预测时域长或者要对比多种求解器结果没有 YALMIP 就等于少了后备力量。我在机器上会把 YALMIP 和 MPT3 放在同级目录保持路径整洁% 查看当前 MATLAB 架构 computer % 检查 MEX 配置 mex -setup C % 检查已有路径里是否包含旧版工具包 path逻辑说明computer输出PCWIN64或GLNXA64用来确认 64 位还是 32 位环境。mex -setup C用来选择 C 编译器在 Windows 上通常会引导你选择已安装的 MinGW 或 Visual Studio 编译器在 Linux 上则可能是自带 gcc。path输出很长建议重点搜一下是否包含mpt或yalmip这两个关键字如果有且和你将要安装的目录不同需要先处理。3.2 解压、加路径、初始化与验证一次跑通的标准动作MPT3.2.1 的包结构一般不会埋得太深常见布局是解压后的根目录下有mpt3主目录、docs目录存放帮助文档、examples目录存放多个例子以及一个startup.m或初始化脚本。拿到压缩包后我习惯把它解压到无中文、无空格的纯英文路径比如D:\Toolbox\mpt3。路径里有中文或空格在后续genpath和读取文档时容易因为字符编码或路径分隔符翻车这是血泪经验。% 统一添加整个工具箱目录及其子目录 addpath(genpath(D:\Toolbox\mpt3)); % 写回启动路径避免重启 MATLAB 后丢失 savepath % 初始化 MPT3 并让工具箱自动检测求解器 mpt_init; % 验证核心函数 which mpt_constructMatrices逻辑说明genpath(D:\Toolbox\mpt3)会递归生成该目录下所有子目录的路径字符串addpath一次性全部加入搜索路径。savepath把当前路径保存到pathdef.m这是让下次启动 MATLAB 仍然能找到 MPT3 的关键。mpt_init是 MPT3 自带的初始化函数内部会检测 YALMIP 是否在路径中、是否有可用的 LP/QP 求解器并设置一些全局默认参数。这里有一个很隐蔽的坑genpath会把examples下的所有子目录也添加进去如果某个示例文件夹里放了一个与现有函数同名的脚本MATLAB 会在运行时优先调用路径列表中靠前的那个导致奇怪的行为。所以我一般建议在初次安装验证完成后把例子目录单独保留不做任何删改这样后续排查问题时还能拿自带例子作为基准。验证环节我通常做两步。第一步是用which确认关键函数指向了刚解压的目录第二步是直接打开自带帮助文档确认资源可用% 打开 MPT3 帮助文档入口 doc mpt3doc mpt3会打开 MATLAB 帮助浏览器里面可以检索到多面体、系统、控制器等类的说明。这一步如果报错找不到文档说明路径配置不对或者文档没有随工具箱一起复制到位。题目标注的“附带帮助文档与多个例子”在这个版本里是强势项建议你把帮助文档当成 API 参考手册来查不要只靠互联网上的零散博客。4. 跑通自带例子从 mpt_demo 到第一个显式控制器4.1 用自带示例摸清工具箱边界mpt_demo 的使用逻辑MPT3.2.1 自带多个例子一般存放在examples目录文件名的风格是mpt_demo_xxx.m。第一次接触这个工具箱我最推荐的动作不是找教程而是列出所有 demo 文件然后挑一个最简单的跑% 列出所有 demo 文件 dir(fullfile(D:\Toolbox\mpt3,examples,mpt_demo*.m)) % 运行线性时不变系统的示例 mpt_demo_lti逻辑说明dir的mpt_demo*.m通配符可以快速列出示例数量帮你确认文件是否完整。mpt_demo_lti是其中最有代表性的一个它构建了一个线性时不变系统的 MPC 问题画出闭环响应并展示约束是否被满足。如果这个 demo 能完整跑完说明你的安装基本没有问题。参数说明mpt_demo_lti不需要输入参数输出一般是几个 figure 窗口分别显示状态轨迹、控制输入轨迹和闭环性能。如果运行中途报错优先看报错行是出现在多面体构造、求解器调用还是结果绘图阶段这样能快速把问题归类到工具链还是模型本身。4.2 从零写一个最小 MPC 控制器三组代码看懂核心接口辅助示例看完以后我建议你亲自动手写一个最小闭环控制因为这个过程比任何教程都更能暴露理解盲区。下面这个代码块基于一个离散时间双积分器模型这是测试 MPC 最经典的被控对象%% 定义离散 LTI 系统 A [1 1; 0 1]; B [0.5; 1]; sys LTISystem(A, A, B, B); %% 设置状态和输入约束 sys.x.min [-5; -5]; sys.x.max [ 5; 5]; sys.u.min -1; sys.u.max 1; %% 生成预测控制器并闭环仿真 ctrl MPCController(sys, 3); loop ClosedLoop(ctrl, sys); data loop.simulate([4; 4], 12); %% 绘制结果 figure; stairs(data.X(:,1)); hold on; stairs(data.X(:,2)); grid on; legend(x1, x2);逻辑说明LTISystem构造了一个离散时间线性时不变系统状态矩阵A和输入矩阵B直接对应完成一次时间步进的递推模型。约束sys.x.min、sys.x.max定义了状态允许范围sys.u.min、sys.u.max定义了输入约束这些约束最终会被 MPT3 转换成多面体表达式。MPCController(sys, 3)生成一个预测时域为 3 的在线 MPC 控制器它内部会为每个仿真时刻求解一个有限时域优化问题。ClosedLoop把控制器和被控对象组合起来loop.simulate([4;4], 12)表示从状态[4;4]出发仿真 12 步。仿真结果保存在data结构里data.X是每步的状态矩阵行对应时间步列对应状态分量。参数说明预测时域3是一个很重要的旋钮。取 1 时控制器短视性能接近贪婪策略取 20 时计算量增大但闭环动态更接近最优。双积分器系统用 3 到 5 就足够看到 MPC 的约束处理能力我一般建议从 3 起步跑通后再逐步加大。如果你想让控制器离线查表而不是每个步在线求解可以加一行ctrl.toExplicit()这是 MPT3.2.1 最诱人的特性% 把在线 MPC 控制器转换为显式控制器 expc ctrl.toExplicit(); % 用显式控制器直接评估某个状态对应的控制量 u expc.evaluate([4; 4])逻辑说明toExplicit()会离线求解状态空间分区把每个分区对应的线性控制律预先算好evaluate根据当前状态查表返回控制量。与在线版本相比这个路径的时间开销主要在一开始的转换阶段转换完成后的每次求值只是判断状态落在哪个分区速度可以提升几个数量级。这个特性也是为什么很多实时控制项目选 MPT3 而不是自己写 QP 求解器的原因。5. MPT3.2.1 安装与使用避坑五个高频翻车现场与对应修法5.1 现象重启 MATLAB 后which mpt3什么都查不到这是最高频的问题典型场景是当天装完跑通了示例第二天重启后所有 MPT3 命令全部失效。原因是对应的savepath没有成功执行或者pathdef.m文件所在目录没有写入权限。还有一种可能是你用了addpath(genpath(...))但忘了savepathMATLAB 退出后路径设置不保留。解决办法是在addpath后立即执行savepath并观察 MATLAB 是否提示保存失败。如果报权限错误需要以管理员身份运行 MATLAB或者手动修改pathdef.m的存储位置。也可以用pathtool图形界面添加路径后点击保存效果相同。之后用which mpt_solve复查。5.2 现象运行自带 demo 报YALMIP相关错误常见报错形式是The solver is not installed或者YALMIP is not in the MATLAB path但你把 YALMIP 安装在明显可见的位置。原因是 MPT3.2.1 发布年代对应的 YALMIP 和最新版本存在接口差异或者 YALMIP 的路径没有被正确添加到当前工作区。新版本 YALMIP 可能修改了内部求解器选择机制导致 MPT3 初始化时找不到预期接口。解决方法是先确认 YALMIP 目录是否在你的 MATLAB 搜索路径中然后用yalmip(clear)清理缓存再调用mpt_init重新初始化。如果问题依然存在就安装与 MPT3.2.1 同年代的 YALMIP 稳定 release避免使用新开发分支。按我的习惯稳定版 MPT 搭配稳定版 YALMIP永远不追新。5.3 现象自带例子跑了一半报polycone或lpsolve相关错误这个翻车点很隐蔽例子可能刚运行几行就断在某个底层函数调用的地方。原因是你的 MATLAB 路径里有其他工具箱或脚本定义了同名函数覆盖了 MPT3 的内部函数。比如min、max这种基础函数一般不会被覆盖但像mpt_solve、polyunion这类特定名字很容易被其他模型预测控制代码污染。解决方法是运行which polyunion -all和which mpt_solve -all查看是否出现多个同名函数。如果有把 MPT3 的路径调整到搜索路径列表的前部或者隔离到独立的 MATLAB 工作区。这种问题本质是路径优先级问题不一定要重装工具包。5.4 现象把工具箱放在含中文或空格的路径下文档打不开有人习惯把压缩包解压到D:\下载\MPT3.2.1 稳定版运行起来似乎没问题但doc mpt3找不到帮助页部分 demo 文件也提示文件不存在。原因是 MATLAB 在解析中文字符和空格路径时部分旧版函数的内部字符串拼接不处理编码转换导致文档路径定位失败。解决方法是把路径改为纯英文无空格目录比如D:\Toolbox\mpt3重新addpath和savepath。这属于一次麻烦、长期省心的事不要跟路径格式较劲。5.5 现象新装 MPT3 与旧版本混在一起示例行为不一致如果你的机器之前装过 MPT2 或其他版本的 MPT3新装的 3.2.1 可能在部分场景下跑出完全不同结果甚至报LTISystem未定义。原因是 MPT2 和 MPT3 类体系完全不兼容旧版本的mpt目录残留在 MATLAB 搜索路径的前部导致新代码调用到了旧函数。解决方法是使用path命令找出所有含mpt的目录删除旧版本目录只保留新安装的 MPT3.2.1 路径然后重启 MATLAB 再验证。我个人的习惯是每次升级前先完整清理旧工具箱路径避免两个版本互相干扰。6. 最后的检查习惯把 MPT 控制器放进真实闭环之前要做的验证安装跑通只是第一步真正有价值的是把一个 MPT3.2.1 控制器放心地放进仿真或硬件环境之前做一次快速闭环校验。我的做法是从控制器本身提取输出用约束矩阵逐一检查是否越界然后用一个简单指标判断控制器是否真的在做优化而不是一直在打饱和。% 对一组状态逐个评估控制量统计约束违规 stateSeq [-4 0; -2 0; 0 0; 2 0; 4 0]; ctrl MPCController(sys, 3); uSeq zeros(size(stateSeq, 1), 1); for i 1:size(stateSeq, 1) uSeq(i) ctrl.evaluate(stateSeq(i, :)); end violate any(uSeq sys.u.min | uSeq sys.u.max); fprintf(violation: %d\n, violate);逻辑说明ctrl.evaluate会针对指定状态计算当前控制量循环遍历一组有代表性的状态可以快速发现控制量是否被约束限制。violate为 0 表示在约束范围内为 1 表示出现了越界那就值得检查约束配置和系统模型是否匹配。参数说明状态序列不要只取一个点应该在约束边界的附近取几组比如边界内的点、接近状态约束极限的点。这样能同时验证约束处理能力和控制器的数值鲁棒性。显式控制器的evaluate还支持直接求分区索引可以用它来画状态空间分区图直观判断分区是否覆盖了整个可达状态集。我每次在新机器上搭好 MPT3.2.1除了跑mpt_demo_lti还会用上面这段小脚本做一次自查确认控制器输出、约束、采样步长三者没有矛盾。训练到现在最大的教训是MPT3.2.1 本身很稳定真正不稳定的往往是安装环境和路径配置。你把这两件事处理干净这套 2019 年的稳定版就足够支撑一整年的控制器原型验证和迭代。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

ESXi 8.0驱动安装全攻略:VIB包版本解析与esxcli实战

ESXi 8.0驱动安装全攻略:VIB包版本解析与esxcli实战

简介:面向 VMware ESXi 平台的瑞昱网卡驱动离线包,适用于 ESXi 8.0 Update 3 及以上、9.x 及以上版本,主要解决瑞昱 RTL8111、RTL8125、RTL8126、RTL8127 系列 PCIe 有线网卡在虚拟化环境中不被识别、无法上网的问题。该驱动源自 VMware Flin…

2026/10/16 14:41:47 阅读更多 →
IP地址划分与分类详解:从二进制原理到子网划分实战

IP地址划分与分类详解:从二进制原理到子网划分实战

1. 从一个让人抓狂的排错现场说起 刚入行那会儿,我遇到过一个至今印象深刻的故障。两台机器明明插在同一台交换机上,网线是通的,网卡灯也亮着,但就是互相 ping 不通。当时我第一反应是物理链路问题,换了三根网线、两个…

2026/10/16 14:41:47 阅读更多 →
高性能网络协议栈优化实战:从内核瓶颈到用户态DPDK千万级PPS

高性能网络协议栈优化实战:从内核瓶颈到用户态DPDK千万级PPS

网络协议栈这词,搞后端和底层系统的人天天挂在嘴边,但"高性能"三个字一加上,味道就完全不一样了。去年我做了一个面向数据中心的网络协议栈优化项目,目标很简单:在普通x86服务器上,把单核数据包处…

2026/10/16 14:41:47 阅读更多 →

最新新闻

手写工业级顺序表:内存布局、动态扩容与边界安全实现

手写工业级顺序表:内存布局、动态扩容与边界安全实现

1. 项目概述:为什么今天还要手写一个顺序表? “实现一个顺序存储的线性表”——看到这个标题,很多刚学数据结构的朋友第一反应是:“这不就是教科书第一章的内容吗?C语言里用个数组不就完事了?” 但我在某高…

2026/10/16 15:16:35 阅读更多 →
AZ-204高频考点拆解:VM迁移、Key Vault与kubectl部署实战避坑

AZ-204高频考点拆解:VM迁移、Key Vault与kubectl部署实战避坑

简介:这是面向微软 AZ-204(Azure 开发人员认证)考生的最新题库资料,围绕 Azure 虚拟机迁移、Resource Manager 模板安全存储密码、AKS 集群部署等核心考点,提供了题目、讨论与解析,适合考前冲刺或系统查漏补…

2026/10/16 15:16:35 阅读更多 →
三菱基恩士PLC的MC协议报文解析与上位机读写实现

三菱基恩士PLC的MC协议报文解析与上位机读写实现

简介:面向C#开发人员与自动化工程师,这套资源包聚焦基恩士、三菱PLC的MC协议通信,提供可直接参考的C#实现方案,覆盖工业设备的数据采集、远程监控与寄存器读写控制等典型场景。内容深入讲解了寄存器读写原理,以及INT16…

2026/10/16 15:16:35 阅读更多 →
EmbeddingGemma 2 多模态嵌入模型本地推理与RAG检索调优实战

EmbeddingGemma 2 多模态嵌入模型本地推理与RAG检索调优实战

1. 为什么 740M 这个尺寸值得单独聊一聊第一次看到 EmbeddingGemma 2 这个标题的时候,我脑子里冒出来的第一个念头不是"又一个嵌入模型",而是"740M 这个数字选得很有意思"。做检索和 RAG 的同行应该都有体会,嵌入模型这块…

2026/10/16 15:16:35 阅读更多 →
Gradle构建配置核心解析:Wrapper、依赖管理与多模块避坑指南

Gradle构建配置核心解析:Wrapper、依赖管理与多模块避坑指南

1. 先把Gradle放进坐标里:它到底解决什么问题如果你扔给我一个Java项目,我上手第一件事不是看业务代码,而是打开它的构建目录。构建配置基本使用的熟练度,往往直接决定了你在这个项目里是享受还是受罪。Gradle作为一个通用构建工具…

2026/10/16 15:16:35 阅读更多 →
UIPageViewController 深度解析:页面状态机与滑动导航原理

UIPageViewController 深度解析:页面状态机与滑动导航原理

1. 项目概述:为什么一个“左右滑动”功能值得单独深挖? 在 iOS 开发中,“左右滑动切换页面”这个交互,看起来简单得像呼吸一样自然——用户手指一划,界面就翻页,再一划,又翻一页。但如果你真动手…

2026/10/16 15:15:34 阅读更多 →

日新闻

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

/* 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 0:00:05 阅读更多 →
信号与系统频域分析作业解题指南

信号与系统频域分析作业解题指南

1. 作业背景与核心要求解析信号与系统作为电子信息类专业的核心基础课,其作业设计往往直接关联课程的核心知识框架。2026年春季第六次作业的布置,通常对应着课程进展到频域分析的关键阶段。根据常规教学进度推测,本次作业可能涉及以下核心内容…

2026/10/16 0:00:05 阅读更多 →
Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

1. 从一个"四不像"的练手项目说起如果你已经看完了Django的官方教程前几章,跟着敲完了投票应用,大概会有一种"我好像会了,又好像什么都不会"的割裂感。教程里每个知识点都是拆开的——这一章讲模型,下一章讲视…

2026/10/16 0:00:05 阅读更多 →

周新闻

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

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

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

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

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

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

2026/10/15 19:41:51 阅读更多 →
影刀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/15 0:14:36 阅读更多 →
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 阅读更多 →