SVM风力涡轮机故障检测与Simulink容错控制仿真实践
搞风电控制或者风电运维的同行应该都有过这种体会现场报了警过去一看可能只是一个传感器发生了漂移但因为报警滞后机组已经在异常工况里多跑了好几分钟。我最近在整理一个风力涡轮机故障检测与容错控制的Demo下边就管它叫模拟项目X核心思路是用支持向量机SVM做风力涡轮机的故障检测Matlab负责离线建模Simulink负责在线仿真验证。整个链路从故障注入、特征提取、模型训练到检测逻辑和容错控制联动都跑通了所以把其中的技术细节和经验教训整理成这篇博客。文章适合两类人一类是风电相关方向的学生和研究者想快速搭起一套能出结果的故障检测仿真框架另一类是做风场监控、设备健康管理的工程师想看看数据驱动方法在风机场景里到底怎么落地以及和传统的阈值报警相比强在哪里。全文围绕SVM展开但更想讲清楚的是“为什么用SVM”“数据怎么准备”“模型怎么选”“怎么在Simulink里闭环验证”这一整条链路。1. 容错控制的第一步为什么故障检测不能只靠阈值报警1.1 风力机闭环系统里“检测”到底处在什么位置风力涡轮机本质上是一个多变量闭环系统风是外部扰动变桨距控制器负责调节桨距角扭矩控制器负责调节发电机转矩最终目标是在安全边界内尽可能多地捕获风能。只要闭环系统里有任何一个环节出问题控制器就会基于错误的测量值做决策。举个最典型的例子桨距角传感器发生漂移控制器认为实际桨距角已经跟踪到了指令值但实际上叶片角度已经偏了。结果就是功率异常、载荷超限甚至可能引发电磁转矩和机械转矩的剧烈博弈。这种情况下故障检测就是容错控制的前置触发条件。检测不出来后续所有容错策略都是空谈。在建模和工程实践里通常把风机故障分成这么几类传感器故障偏置、漂移、卡死、增益变化、噪声异常增大。执行器故障变桨机构卡死、响应变慢、饱和、液压系统压力异常。部件故障齿轮箱磨损、叶片结冰、轴承退化、结构损伤。不同故障类型需要的容错响应完全不一样。这也是后面为什么要把SVM从简单的二分类推到多分类的原因——只知道“坏了”还不够还得知道“坏在哪”控制器才能决定是重构信号、切换控制律还是直接降额运行。1.2 传统阈值报警和模型方法的天然短板很多现场机组用的还是最朴素的SCADA阈值报警对温度、转速、功率、压力等信号设上下限超限就报警。这套办法在机组真正“坏透”的时候是有效的但对早期故障几乎无能为力。问题出在三个地方第一阈值本身依赖人工经验。风况一变同一个信号在不同风速段的正常范围差很多固定阈值要么频繁误报要么漏报严重。第二早期故障往往是多变量联合偏移。比如齿轮箱早期磨损振动特征变了但温度可能还在阈值范围内单个信号看起来都正常信号之间的关系却已经偏离了正常模式。阈值报警完全抓不到这种“关系异常”。第三基于模型的残差方法虽然能捕捉关系变化但它依赖精确的被控对象模型。风机气动非线性强、参数不确定性大想建一个能覆盖全工况的精确模型非常困难残差阈值照样难调。数据驱动的方法就是在这个背景下切入的。SVM不直接依赖风机物理模型而是从历史数据里学出“正常模式”和“故障模式”的决策边界。只要训练数据里涵盖了典型故障工况它就能在信号还没突破报警阈值的时候提前把模式偏移识别出来。说白了SVM在风力涡轮机故障检测里的核心价值不是死等某个数值越限而是靠分类边界捕捉到数据内部的模式变化。2. 数据准备风机故障类型与SVM能用的特征工程2.1 风机上最容易出问题的几个位置在Simulink里做故障注入之前先得把故障场景梳理清楚。不同故障在信号上的表现差异很大这直接决定了后面选什么特征。故障位置常见故障形式对系统的主要影响典型信号表现风速计偏置、漂移、噪声增大功率估算偏差、控制策略切换错误风速均值偏移、方差增大桨距角传感器偏置、卡死、增益变化变桨控制误判、载荷超标桨距角持续偏离指令、阶跃突变发电机转速传感器噪声增大、信号丢失超速保护误动作、扭矩控制震荡转速信号高频跳动、数值卡死变桨执行器卡死、响应变慢、饱和功率波动、机械载荷增大桨距角实际值与指令值持续偏差偏航系统风向跟踪偏差发电量下降、偏航载荷增大机舱朝向与风向夹角异常做仿真演示时不建议一股脑把全部故障都塞进模型那样故障标签和数据管理会很乱。我一般会挑两到三个最有代表性的故障类型先跑通比如风速计偏置、桨距角传感器漂移、变桨执行器卡死等整个检测链路跑顺了再扩展。2.2 从原始时间序列到SVM特征向量SVM不能直接吃原始时间序列需要把一段时间的信号压缩成特征向量。先对信号做滑动窗口切分每个窗口里提取特征再把多个信号的特征拼接起来得到一条训练样本。时域特征通常选这些均值反映信号的直流偏移对传感器偏置故障敏感。标准差和均方根反映信号波动幅度对噪声异常增大敏感。峰值因子峰值除以RMS能捕捉冲击类异常。峭度四阶中心矩除以方差的平方对微弱冲击和早期磨损很敏感。偏度反映信号分布的对称性变化。频域特征则根据实际信号选FFT幅值谱的主峰频率和峰值能反映转速相关成分的变化。特定频段能量占比比如齿轮箱啮合频率附近能量是否升高。对一些高频振动信号还可以做包络谱找故障特征频率。这里有一条重要原则特征工程决定了SVM检测的上限。SVM只是画边界边界质量完全取决于喂进去的特征能不能把正常模式和故障模式分开。特征选不好换什么核函数、调什么参数都白搭。2.3 归一化不是可选项是必选项风机不同信号之间的量级差异非常大。桨距角是几度到几十度转速是几百到一千多转功率是几十千瓦到兆瓦级。如果不做归一化SVM核函数计算距离的时候量级大的特征会完全主导小量级但很有区分度的特征直接被淹没。建议用z-score标准化也就是每个特征减均值除以标准差。Matlab的fitcsvm里可以直接开Standardize, true训练时会自动处理省去手动标准化的麻烦。如果自己手动做特征处理要记得把训练集和测试集用同一组均值和标准差变换不能各自独立标准化。降维不是必须的但特征维度很高、样本量又不大时过拟合风险会增加。我试过用PCA把相关性强的特征合并效果在部分故障类型上有提升但损失了一部分可解释性。一般来说先全特征跑一轮看混淆矩阵判断是否过拟合再决定要不要降维比一上来就PCA更稳妥。3. 三种SVM建模思路选哪种取决于你能拿到什么标签3.1 方案一二分类“正常 vs 故障”最稳的起步选择如果你的目标只是机组报警不需要区分故障类型那二分类SVM是最简单也最稳定的方案。训练数据打两类标签正常样本和故障样本模型输出就是当前窗口属于哪一类。Matlab里直接用fitcsvmsvmModel fitcsvm(X_train, y_train, ... KernelFunction, rbf, ... KernelScale, 2, ... BoxConstraint, 1, ... Standardize, true); [label, score] predict(svmModel, X_test);这里的y_train只要两类标签就行Matlab会自动处理类别编码。score返回的是两个类别的得分label是预测类别。这个方案的好处是数据需求低、模型简单、训练快故障检测Demo的第一版几乎都是用这个方案先跑通的。3.2 方案二多分类SVM把故障类型也认出来如果容错控制逻辑需要区分故障类型就要用多分类了。Matlab里不推荐直接用原生的多类SVM而是用fitcecoc做组合分类把几十个二分类SVM按一对一或者一对多的方式组合起来。t templateSVM(KernelFunction, rbf, ... KernelScale, 2, ... Standardize, true); cecocModel fitcecoc(X_train, y_train, Learners, t); predLabel predict(cecocModel, X_test);多分类的价值不只在于“识别得更细”更在于能驱动差异化的容错策略。传感器故障控制器可以切换到信号重构模式执行器故障控制器要改变控制律甚至限功率运行部件故障可能需要优先安排计划停机。如果模型只给出“故障”这个笼统标签容错控制器很难做进一步的响应决策。3.3 方案三单类SVM故障样本严重不足时的保底策略真实风场和仿真场景最大的区别是现场故障样本非常稀缺可能一整年也积累不到多少真正的故障数据。这时候多分类和二分类都很难训练因为你根本没有足够的故障类别样本。单类SVM的出发点不一样只用正常样本训练让模型学习正常数据应该落在特征空间的哪个区域边界画好之后新样本只要落在边界外就判定为异常。svmOneClass fitcsvm(X_normal, ones(size(X_normal, 1), 1), ... KernelScale, auto, ... OutlierFraction, 0.05, ... Standardize, true);这里的OutlierFraction表示训练时允许5%的正常样本被当作离群点相当于给边界留一点余量避免边界过紧导致正常工况波动被误报。单类SVM的优点是冷启动容易只有正常历史数据也能建立检测器缺点是只能报告“异常”不能告诉你故障类型。三种方案的适用场景可以这样对比建模方案需要的标签能输出什么适用场景二分类SVM正常、故障两类是否故障初步报警系统数据最容易准备多分类SVM正常各故障类型故障类型需要驱动差异化容错策略单类SVM仅正常样本是否偏离正常现场故障样本稀缺冷启动检测3.4 参数选择C和KernelScale到底怎么调RBF核有两个关键参数BoxConstraintC和KernelScaleσ。C的本质是正则化参数C越大模型对训练样本的拟合越严密但过拟合风险也越高C越小边界越平滑泛化性更好但也可能欠拟合。σ是核函数宽度σ越小决策边界越容易变成一个个孤立的小区域σ越大边界越平滑趋向线性。最稳妥的做法是网格搜索加交叉验证cList logspace(-2, 2, 5); sList logspace(-1, 1, 5); for i 1:numel(cList) for j 1:numel(sList) mdl fitcsvm(X_train, y_train, ... KernelFunction, rbf, ... BoxConstraint, cList(i), ... KernelScale, sList(j), ... Standardize, true, ... CrossVal, on, KFold, 5); loss(i, j) kfoldLoss(mdl); end end [minLoss, idx] min(loss(:));取使交叉验证损失最小的那一组参数。需要注意如果正常样本和故障样本数量不平衡交叉验证损失会被多数类主导选出来的参数可能对少数类故障不敏感。这时候要考虑用F1指标辅助选参或者给少类样本设置更高的误分类代价。参数范围上我常用的经验值是C在1e-2到1e2之间、KernelScale在1e-1到1e1之间先粗扫一轮然后在最优附近细扫。4. Simulink仿真从故障注入到SVM在线检测的全链路4.1 搭一个能产出“故障数据”的简化风机模型Simulink里的风机模型不需要精细到每个机械结构都建模重点是把故障检测需要的信号都引出来。我搭的模型包含这几个模块风速生成模块常值风速加带限白噪声模拟湍流再做阶跃变化模拟阵风。气动模块通过Cp(λ,β)查表计算气动转矩功率用P0.5ρπR²v³Cp(λ,β)计算。传动链模块单质量转子方程状态量是转子转速。发电机与变流器模块简化成一阶惯性环节。变桨控制器PID根据转速偏差给出桨距角指令。这一步的目标很简单把风速、转速、桨距角、发电机转矩、输出功率这几个信号引出来作为后续特征工程的原始数据。Simulink模型里信号线的标注要清晰因为后面故障注入要在这条链路上做很多改线操作。4.2 故障注入的几种常规操作方式故障注入的核心是“可控地破坏信号”而且要能精确控制故障发生的时刻。常用的套路有这几种偏置故障给真实信号叠加一个常数偏移用Step模块在设定时刻跳变到偏移值。漂移故障给信号叠加一个斜率随时间的增长量用Ramp模块实现yuk×(t-t_fault)。卡死故障用Switch在指定时刻把信号从真实值切换到常值模拟传感器卡死。噪声异常增大把Band-Limited White Noise模块的标准差增大叠加到信号上。执行器侧也一样在桨距角指令和实际桨距角之间插入饱和模块、延迟模块或者固定卡死逻辑模拟变桨执行机构故障。这里有一个操作细节故障注入后要预留足够的过渡时间。故障切换瞬间系统会震荡直接把这段数据打上故障标签会污染训练集。我一般给故障前和故障后各留几秒稳定段标签只打在系统稳定之后的区间。4.3 离线训练和模型部署到Simulink的两种方式离线阶段用To Workspace把信号导出到Matlab工作区按滑动窗口生成特征矩阵给每个窗口打上对应时间段的故障标签训练SVM模型。这一步在Matlab脚本里完成和普通机器学习流程没有区别。部署到Simulink在线检测有两种常用办法办法一直接调用训练好的模型。新版Matlab用saveLearnerForCoder保存模型老版本用saveCompactModel然后在Simulink的MATLAB Function模块里用loadLearnerForCoder加载再调用predict。优点是省事缺点是代码生成兼容性偶尔会踩坑。办法二手动导出SVM参数自己写决策函数。把支持向量、支持向量权重、偏置、核尺度全部导出来在MATLAB Function模块里直接实现RBF核决策函数function label svmPredictRBF(x, alpha, sv, svLabel, bias, sigma) f bias; for i 1:size(sv, 1) f f alpha(i) * svLabel(i) * exp(-norm(x - sv(i, :))^2 / (2 * sigma^2)); end if f 0 label 1; else label -1; end end办法二绕开了代码生成的兼容性问题而且对理解SVM的决策机制很有帮助。我自己在实际Demo里更倾向办法二因为可以在MATLAB Function里随意加防抖、加状态记忆调试时也能看清楚每一步的中间量。4.4 检测结果怎么和容错控制联动在线检测模块的原始输出是每个滑动窗口一个标签但直接用单窗口结果触发容错动作会非常抖。我建议加一个计数防抖逻辑连续N个窗口都报故障才把“故障确认”信号置位。N的大小根据特征窗口长度和采样周期调整一般取3到5既不会太迟钝又能过滤偶发误报。故障确认之后容错逻辑按故障类型分流传感器故障切换信号重构模式用其他相关信号反推替代测量值。比如桨距角传感器故障时用转速和功率逆推桨距角估计值。执行器故障变桨执行器卡死的话继续给PID积分项输入只会让控制器深度饱和这时候要么切除积分要么直接切到限功率运行。严重故障触发安全停机序列让机组按安全路径收桨刹车。到这一步SVM检测的结果才真正进入了“容错控制”的闭环。检测模块是眼睛容错逻辑是手两者配合才是完整的故障检测与容错控制系统。5. 实操中调了很久才想明白的细节5.1 特征和标签的时间对齐这是整个流程里最容易出错也最难排查的环节。滑动窗口取的是t-L到t这一段数据特征对应的是窗口末尾时刻的系统状态。如果打标签时不小心把标签写到了窗口起始时刻模型学到的就是“历史状态对应未来标签”边界完全错位。检测Demo跑出来的混淆矩阵会非常奇怪正常样本和故障样本混成一团。解决办法只有一个给仿真数据打时间戳严格按照窗口结束时刻对应标签的原则来构造数据集。每次数据导出之后先画一张特征时序图人工确认故障切换时刻和标签切换时刻是对齐的再往下训练。5.2 训练集必须“干净”所谓干净不只是说数据里不能有缺失值更重要的是标签可信。单类SVM的整个逻辑就是只认正常样本训练集里混进一个故障样本边界就会被撑歪多分类训练集里如果存在标签串行模型学到的是错误映射。我生成仿真数据时会专门留一段检查步骤把特征矩阵做PCA降到二维散点图上看各个标签类别的簇分布。正常的簇应该是紧致的故障样本应该明显偏离。如果某个标签下出现两个分离很远的簇那基本可以确定数据打标签有问题先去查故障注入时间轴。5.3 类别不平衡和评价指标的选择故障检测场景里正常样本数量几乎总是远大于故障样本数量。这时候如果只盯着准确率很容易被虚高的数字欺骗。假设正常样本占97%模型把所有样本都判正常准确率已经有97%但这个检测器毫无用处。我建议至少汇报这几个指标指标含义公式准确率整体判断正确的比例(TPTN)/(TPTNFPFN)召回率故障样本中被检出的比例TP/(TPFN)也叫漏报率的反面精确率报警中有多少真是故障TP/(TPFP)F1-score精确率和召回率的调和平均2×P×R/(PR)对故障检测来说召回率往往比精确率更重要。漏掉一次故障的代价远大于误报一次。处理不平衡的手段有三种一是给fitcsvm设置Cost矩阵把漏报代价调高二是对故障类做SMOTE过采样三是直接用单类SVM绕开类别不平衡问题。5.4 在线检测窗口长度的权衡窗口长度是个两难选择。窗口越长统计特征越稳定但故障被发现的时间就越晚容错动作跟着滞后窗口越短响应速度快但单个窗口内的数据量太少特征方差大风机本身的风况波动就可能触发误报。我实际调参的经验是对转速、桨距角、功率这类毫秒级到秒级采样的信号先试2到5秒窗口。如果误报率偏高优先检查特征里有没有包含方差、峰值因子这类对噪声敏感的统计量如果检测延迟太大优先缩短窗口而不是降低SVM阈值。风机的信号本身就有低频波动窗口太短等于把风况的随机性直接当成了特征。对更快的保护性检测需求可以考虑把信号拆成快变和慢变两路分别提取特征再送给SVM。比如功率做慢变分析用于状态监测转速振动做快变分析用于保护动作两个SVM各管一段比强行用一个窗口覆盖所有时间尺度要稳。整套流程跑下来我最深的体会是SVM分类器本身并不复杂复杂的是把“传感器数据—特征工程—标签构造—模型训练—Simulink闭环仿真”这条链路串起来并且每一环都经得起检查。最后再分享一个小技巧刚开始调参时别追求零误报先把检测调得偏“敏感”一点通过仿真数据统计误报都出现在哪些工况再针对性调整窗口长度、决策阈值或者防抖计数。这样比一开始就追求完美边界要快得多。后面如果再往深了做可以把其他模型加进来和SVM做对比但就风机故障检测这类小样本场景SVM往往已经能交出一份非常实用的答卷。

相关新闻

SAM优化器实战:从平坦极小值到泛化提升的完整指南

SAM优化器实战:从平坦极小值到泛化提升的完整指南

1. 为什么平坦极小值比尖锐极小值更值得追求1.1 从一个反直觉的实验现象说起如果你训练过深度神经网络,大概率遇到过这种让人挠头的情况:训练集上的损失已经降到接近零,准确率几乎百分之百,但把模型拿到测试集上一跑,效…

2026/10/20 3:08:36 阅读更多 →
企业级AI智能体应用工程实践:从模型接入到落地部署的完整架构方案

企业级AI智能体应用工程实践:从模型接入到落地部署的完整架构方案

1. 先想清楚:企业级 AI 服务到底缺什么1.1 从单点 AI 能力到智能体应用这两年很多企业都在做 AI 落地,但大多数项目做完 POC 就卡住了。我也踩过不少坑,最典型的现象是:大模型接入成功了,问答也能跑通,业务…

2026/10/20 3:08:38 阅读更多 →
靶标组学与细胞生态位:AI与单细胞空间组学如何重塑中药研究

靶标组学与细胞生态位:AI与单细胞空间组学如何重塑中药研究

前几天读到一篇靶标组学综述,来自国内某高校药学院团队,标题很长,但值得一章一章拆开看:AI、单细胞、空间组学、细胞生态位、中医药靶标组学,这几个词挤在同一页纸里,背后其实是一种完整的科研范式转换。这…

2026/10/20 3:05:39 阅读更多 →

最新新闻

ArcGIS符号库原理与实战:从语义编码到质量管控

ArcGIS符号库原理与实战:从语义编码到质量管控

简介:本资源是面向GIS从业者、地图制图人员及ArcGIS初高级用户的实用型符号库合集,解决日常项目中符号缺失、风格不统一、制图效率低等核心问题。压缩包共142个文件,包含74个.style符号样式文件(用于直接加载至ArcGIS符号系统&…

2026/10/20 6:30:35 阅读更多 →
Python自动化生成PPT实战:python-pptx批量处理与模板替换

Python自动化生成PPT实战:python-pptx批量处理与模板替换

1. 从零搭建一个PPT自动化生成工具,我为什么选了这条路第一次听到"ppt-master"这个命名,直觉告诉我它不是一个普通的PPT模板库,而是一个带有"主控"意味的工具——master这个词在技术圈通常意味着调度、编排、掌控。结合P…

2026/10/20 6:30:35 阅读更多 →
激光技术驱动高端制造升级:从选型到产线应用全解析

激光技术驱动高端制造升级:从选型到产线应用全解析

去年年底,我跑了一趟某动力电池工厂的扩建产线,隔着防护玻璃看激光焊接设备整夜不停机,极耳连接片以一种相当从容的速度被逐点焊牢,整条线几乎没有传统火花飞溅的杂乱感。当时旁边的工艺工程师跟我说了一句话:这条产线…

2026/10/20 6:30:35 阅读更多 →
Vibe Coding的四大逻辑漏洞:自然语言编程为何代替不了严谨开发

Vibe Coding的四大逻辑漏洞:自然语言编程为何代替不了严谨开发

开头Vibe Coding 这个词这两年确实烫得很,我朋友圈里连做产品、做运营的朋友都在转发“自然语言写代码”的演示,好像明天开始程序员就要集体失业了。当年那批对低代码、无代码平台喊“颠覆”的人,如今换了一副面孔继续吹 AI 编程。我先说结论…

2026/10/20 6:30:35 阅读更多 →
Simulink下永磁同步电机四种模型预测控制策略对比与实现

Simulink下永磁同步电机四种模型预测控制策略对比与实现

做永磁同步电机驱动控制仿真的同行应该都有过这种体验:传统双闭环PI加SVPWM调出来的波形成熟稳定,但要应对参数整定和动态响应之间的拉扯;一旦切换到有限集模型预测控制(FCS-MPC),思路就变了——直接把开关…

2026/10/20 6:30:35 阅读更多 →
SRC信息收集进阶:从被动收集到情报网络的实战方法论

SRC信息收集进阶:从被动收集到情报网络的实战方法论

我一直觉得,SRC 信息收集做到后面,拼的早就不是工具数量,而是你对“资产”和“情报”这两个词的理解深度。第一集我们聊了从零开始怎么把域名、IP、子域名这些基础资产捞出来,很多人照着做完一轮,发现东西是收集了一堆…

2026/10/20 6:29:34 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

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

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

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

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

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

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 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/19 2:54: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/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练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/18 12:16:16 阅读更多 →