基于LADRC与非线性磁链观测器的PMSM无传感器控制及嵌入式代码生成
搞无传感器控制的人十有八九都被低速下的转子位置估计折磨过。今天说的这套方案速度环用自抗扰LADRC位置和转速估计靠非线性磁链观测器整套系统在Simulink里搭完模型还能直接生成嵌入式C代码非常适合正在做PMSM无感控制、又不想一直被编码器拖累的工程师参考。这套方案解决的不只是“去掉编码器”这件事它同时解决两个更实际的问题一是速度环对负载扰动和模型误差的抑制能力二是中高速段转子位置观测的稳态精度。传统PI速度环在负载突变时会有明显速降而LADRC把负载、摩擦、参数变化统一看成“总扰动”用扩张状态观测器实时估计并补偿掉非线性磁链观测器则避免了纯反电动势法在低速段信号太弱、难以提取位置的老毛病。如果你正在做风机、泵类、家电压缩机或者工业伺服的无感方案这篇文章里的模型结构、参数整定和代码生成注意事项可以直接往你手头的项目上套。1. 先搞清楚速度环LADRC加非线性磁链观测器到底组成了什么架构1.1 无传感器控制要解决的最核心问题无传感器控制本质上就是“用算法代替物理传感器”。原来编码器或者旋变告诉控制器“转子现在在哪个角度、转速是多少”现在这些信息全部要靠电压、电流采样值反推出来。反推这件事难点不在高速段而在低速段和动态过程中。高速时反电动势幅值大位置信息容易提取低速时反电动势小到和采样噪声一个量级再用传统反电动势法就是自找麻烦。非线性磁链观测器走的是另一条路它不直接从反电动势里找过零点而是根据电机电压方程构造一个磁链状态观测器把定子磁链估计出来再用磁链分量算出转子电角度。磁链本身就是电压积分出来的不需要等反电动势做大所以中低速段的可用性比纯反电动势法好很多。在这套方案里控制结构还是经典的“电流内环、速度外环”双闭环只是速度环不再用PI而是换成了一阶LADRC。电流环依然可以用PI因为电流环的对象相对明确电感电阻参数只要别差得太离谱PI完全应付得来。真正难缠的是速度环外部的负载扰动和内部的观测器估计误差这些东西交给LADRC处理会更合适。1.2 速度环为什么用LADRC而不是PI先看速度环的被控对象。表贴式PMSM在id0控制下电磁转矩近似为Te1.5pψf iq机械运动方程是J dω/dt Te - TL - Bω其中J是转动惯量TL是负载转矩B是阻尼系数。如果电流环带宽远高于速度环iq到ω之间就可以简化成一个带未知扰动的一阶模型dω/dt b0·iq_ref f(t)这里的f(t)包含了负载转矩、摩擦、电流环跟踪误差、磁链观测器角度误差造成的转矩波动甚至还包括转动惯量变化。对PI来说f(t)只能靠积分器慢慢去顶负载一变转速先掉下去再爬回来动态速降很难压住。对LADRC来说f(t)被当成“总扰动”由扩张状态观测器ESO估计出来在控制量里直接前馈补偿掉所以负载突变时速度跌落更小、恢复更快。一阶LADRC的控制结构不复杂LESO方程 z1_dot z2 b0·u l1·(ω - z1) z2_dot l2·(ω - z1)控制器输出 u (kp·(ω_ref - z1) - z2) / b0其中z1是转速的估计值z2是“总扰动”的估计值kp一般取观测器带宽的某个倍数l1、l2按带宽法配置。这里最关键的参数是b0它是对“控制增益”的估计不需要非常精确误差部分会被z2当成扰动估计掉这也是LADRC比PI鲁棒的原因之一。1.3 非线性磁链观测器在这套系统里的角色磁链观测器在这个架构里的任务是提供转子电角度和转速。PMSM的定子磁链由两部分组成一部分是电枢电流产生的定子漏磁链Ls·is另一部分是转子永磁体产生的磁链ψf。在静止αβ坐标系下定子磁链可以写成ψα Ls·iα ψf·cos(θe) ψβ Ls·iβ ψf·sin(θe)所以只要能把定子磁链ψα、ψβ估计出来再减去Ls·iα、Ls·iβ就能得到包含转子位置信息的反电动势积分项也就是“永磁磁链在定子轴上的投影”。转子电角度自然就是θe_hat atan2(ψβ_hat - Ls·iβ, ψα_hat - Ls·iα)非线性磁链观测器要做的就是基于电压方程dψα/dt uα - Rs·iα dψβ/dt uβ - Rs·iβ构造闭环观测器加入误差校正项。因为直接对电压积分会有直流漂移和积分饱和问题所以不能开环积分必须用观测器里的反馈项把估计磁链“拉”回真实值附近。这个反馈项如果用线性增益就是普通Luenberger观测器如果根据误差大小采用非线性函数比如死区饱和、反正切型增益就是标题里说的非线性磁链观测器。非线性增益的好处是误差大时收敛快误差小时增益压低不容易放大噪声。整套系统跑起来之后数据流是这样的电流采样做Clarke和Park变换电流环PI输出dq电压经过反Park和SVPWM给到逆变器同时电压和电流送给非线性磁链观测器观测器输出电角度和转速转速再送给LADRC速度环和给定转速做比较输出iq_ref给电流环。2. Simulink模型搭建从电机模型到观测器的完整链路2.1 电机模型、坐标变换和电流环的快速搭建搭建Simulink模型时我习惯从底层电机模型开始而不是一上来就堆控制算法。先用表贴式PMSM模型参数放在模型工作区或者一个初始化脚本里方便后面整定。电流采样模块可以直接用电机模型的输出电流但真正做工程时要在电流采样通道里加一点延迟和量化噪声否则模型仿真结果太“干净”后面生成代码上电就跑飞。坐标变换模块不建议手写一大堆sin、cos用FOC库或者手写都行关键是符号约定必须一致。Clarke变换iα ia iβ (ia 2·ib) / √3Park变换id iα·cosθe iβ·sinθe iq -iα·sinθe iβ·cosθe这里最容易错的是电角度是转子电角度不是机械角度。如果你把编码器角度和观测器角度混用电流环的dq轴会直接偏掉电流失控是迟早的事。电流环PI我建议直接用离散PI积分项要加限幅和抗饱和。电流环带宽一般取1kHz到2kHzPI参数可以先按典型I型系统整定再在仿真里微调。电流环输出的是vd、vq经过反Park变换得到vα、vβ然后进SVPWM。2.2 SVPWM与逆变器模型的处理方式做控制系统验证的时候SVPWM可以用平均值模型也就是直接把vα、vβ除以直流母线电压得到占空比。这样仿真速度快也不会出现PWM载波带来的高频纹波。但如果你想验证代码生成和真实逆变器行为建议用带三角载波的SVPWM模块PWM频率取10kHz左右死区时间按实际硬件设置。平均值模型和带载波模型在观测器验证上的差别很大。平均值模型下电压指令和实际施加电压几乎一致观测器会表现得非常理想带载波模型下实际电压含有PWM谐波电流采样也有纹波观测器增益稍微给大一点就会抖。所以我的建议是先把平均值模型跑通确认控制逻辑没问题再切换成带载波的PWM模型去验证观测器的鲁棒性。这一步能省掉大量后面在硬件上排查噪声问题的时间。2.3 LADRC速度环的Simulink实现LADRC速度环在Simulink里可以用MATLAB Function模块实现也可以拆成纯Simulink模块搭。用MATLAB Function模块最直观代码写起来也接近后面要生成的C代码。下面是一个离散一阶LADRC的实现示例function [u, z1_next, z2_next] ladrc_speed(w_ref, w, z1, z2, b0, kp, l1, l2, Ts) % 一阶LADRC速度环离散欧拉法 e w_ref - z1; u (kp * e - z2) / b0; % 输出限幅iq_ref上限 u_limit 10; if u u_limit u u_limit; elseif u -u_limit u -u_limit; end % LESO状态更新 z1_next z1 Ts * (z2 b0 * u l1 * (w - z1)); z2_next z2 Ts * (l2 * (w - z1)); end这里有个容易被忽略的点控制量u进入LESO时要用限幅之后的值不能用限幅前的值。否则控制器已经饱和了观测器还在按未饱和的控制量估计总扰动估计会出现偏差退出饱和那一下很容易超调甚至震荡。另外速度环的采样周期不需要和电流环一样快。PMSM速度环一般1ms执行一次就足够了电流环还是0.1ms。LESO虽然是在速度环周期里更新的但如果你把LESO放在电流环周期里跑状态更新更平滑代价是MCU计算量变大。工程上我一般放在速度环周期配合前馈补偿效果完全够用。2.4 非线性磁链观测器与角度转速提取非线性磁链观测器的Simulink搭建可以分成三块磁链状态更新、电流磁链补偿、角度和转速提取。磁链状态更新部分按照下面这个离散形式搭ψα_hat(k1) ψα_hat(k) Ts·(uα - Rs·iα ω_hat·ψβ_hat(k) g1·(ψα - ψα_hat(k))) ψβ_hat(k1) ψβ_hat(k) Ts·(uβ - Rs·iβ - ω_hat·ψα_hat(k) g1·(ψβ - ψβ_hat(k)))这里的“真实磁链”ψα、ψβ在仿真里可以直接用电机的内部磁链信号在硬件上当然拿不到所以实际观测器里的误差项要用其他方式构造。常用做法是用电流模型和电压模型交叉校正或者用反电动势误差做校正。为了仿真验证方便可以先在模型里把电机的磁链信号引出来做对比等算法逻辑成熟了再把误差项改成可实现的电流误差形式。电流磁链补偿部分很简单θe_hat atan2(ψβ_hat - Ls·iβ, ψα_hat - Ls·iα)但要注意atan2的结果范围是-pi到pi角度在跨pi边界时会跳变。如果直接把跳变的电角度差分算转速会出现一个巨大的尖峰转速估计直接爆炸。所以后面一定要接一个角度解算模块做角度连续化或者干脆用电角度过PLL来提取转速不用差分法。转速提取我推荐用PLL而不是简单差分。PLL本质上是一个闭环把角度误差变成转速校正量本身带有滤波特性对角度噪声不敏感。Simulink里可以用一个PI控制器加积分器搭二阶PLL输入是θe_hat输出是转速。PLL带宽不要取太高20Hz到50Hz足够太高会把角度噪声放大到转速里。3. 参数整定那些增益和带宽到底怎么给3.1 LADRC的b0、kp、l1、l2整定方法一阶LADRC需要整定的参数就四个b0、kp、l1、l2。看着简单实际坑不少。先算b0。如果运动方程是J dω/dt Te - TL且Te1.5pψf iq_ref那么理想b01.5pψf/J。这个值用电机铭牌参数算一下就行。问题是J往往不准而且负载转动惯量还会变。我的习惯是先用理想值做基准然后在仿真里把b0往小调一点调到0.7到0.9倍左右因为b0偏小会让观测器高估扰动控制器会稍微保守一点b0偏大则容易引起高频抖动。kp可以按控制器带宽ωc来定kpωc。速度环带宽不用太高20rad/s到60rad/s已经能满足大多数风机、泵类负载。你如果把kp直接拉到100以上速度响应是快了但电流环会被速度环逼到饱和最后表现为启动时“窜一下”加载时“抖一阵”。l1、l2按观测器带宽ωo配置一阶系统的LESO增益取l1 2·ωo l2 ωo^2ωo一般取3到7倍的ωc太小则扰动估计滞后太大则噪声放大。我调试时习惯先固定ωc40然后从ωo3ωc开始往上加每次乘以1.2直到速度波形出现高频毛刺再退回上一个值。这个方法不高级但很实用。给一张我常用的初始参数表参数含义推荐范围b0控制增益估计0.7~1.0倍理想值kp控制器比例增益20~80l1LESO第一增益2ωol2LESO第二增益ωo²ωc控制器带宽20~60 rad/sωo观测器带宽3~7倍ωc3.2 非线性磁链观测器的增益怎么选磁链观测器里那个g1本质上决定观测器把估计磁链拉回真实磁链的速度。g1太小积分漂移压不住g1太大高频噪声会被灌进观测器电角度会抖。一个比较稳的做法是设一个观测器带宽ω_fluxg12ω_flux。ω_flux可以取100到500rad/s具体看电机基频和采样频率。仿真时可以先从200rad/s开始看磁链估计波形是否平滑再逐步调整。但真正让“非线性”发挥作用的是误差项的处理方式。如果直接用线性误差项g1一旦取大噪声就跟着大取小动态跟不上。非线性增益可以在误差大的时候用高增益误差小的时候自动降增益。Simulink里最简单的实现就是用饱和模块配合查表或者写一个MATLAB Function做分段增益。我实际调试的经验是非线性增益不要搞太复杂一个分段线性就够了。比如误差绝对值大于某阈值时增益为g1_high小于阈值时为g1_low中间平滑过渡。这样既保留了非线性观测器的优点又不至于因为增益函数太怪导致代码生成后行为不一致。3.3 一组可以直接跑起来的仿真参数下面这组参数是我在某个模拟项目X里用过的表贴式PMSM额定转速3000rpm额定电流不大适合在Simulink里做验证项目数值直流母线电压310V定子电阻Rs2.875Ω定子电感Ls8.5mH永磁磁链ψf0.175Wb极对数p4转动惯量J0.001kg·m²电流环周期0.1ms速度环周期1msPWM频率10kHzLADRC ωc40rad/sLADRC ωo200rad/s磁链观测器带宽300rad/s用这组参数跑空载启动给定转速1000rpm速度环基本能在0.1s内跟上稳态误差接近零。加载后速度跌落大约能控制在给定转速的2%以内恢复时间取决于负载突变幅度。4. 从Simulink模型到可生成的嵌入式C代码4.1 建模型时就要为代码生成做的准备标题里说了“可生成代码”这几个字看起来简单但真要把模型变成能在单片机里跑的C代码建模规范必须从一开始就卡死。第一求解器必须选固定步长离散不能选连续求解器。连续积分模块在代码生成时要么被替代要么直接报错。速度环和观测器里所有积分都用离散形式也就是Unit Delay加反馈或者直接在MATLAB Function里写状态更新。第二不能有代数环。特别是角度提取那一块如果atan2后面再接一个反馈很容易形成代数环仿真能跑但代码生成会报错。解决办法是给反馈回路加一个Unit Delay哪怕只延迟一个采样周期工程上完全可接受。第三所有模块的输出类型必须明确。不要用继承类型到处乱传生成代码前把所有信号都显式设置成single或者double。如果你目标MCU不支持浮点或者浮点太慢还得提前规划好定标。第四Scope、Display这类可视化模块在生成代码前要删掉或放在单独的子模型里。代码生成时会把信号记录模块处理成日志代码虽然不影响功能但会白白增加代码体积和RAM占用。4.2 LESO、磁链观测器离散形式的代码生成友好写法前面LADRC那个MATLAB Function已经是很友好的写法了输入输出都是标量状态用持久化变量。要注意的是持久化状态变量在模型初始化时最好赋初值否则第一次执行结果不确定。磁链观测器如果也写在MATLAB Function里最好把磁链和转速估计都作为函数内部持久化状态或者通过外部Unit Delay反馈回传。我倾向于用前者代码更紧凑也不容易因为信号线连错导致代数环。核心代码大致长这样function [theta_hat, speed_hat, psi_alpha, psi_beta] flux_observer(u_alpha, u_beta, i_alpha, i_beta, Rs, Ls, g1, g2, Ts) persistent psi_a psi_b w_hat; if isempty(psi_a) psi_a 0; psi_b 0.175; % 初始磁链给到d轴附近 w_hat 0; end % 定子磁链观测器 psi_a_next psi_a Ts * (u_alpha - Rs*i_alpha w_hat*psi_b g1*(psi_a - psi_a)); psi_b_next psi_b Ts * (u_beta - Rs*i_beta - w_hat*psi_a g1*(psi_b - psi_b)); % 转速自适应律 w_hat_next w_hat Ts * g2 * (psi_a*(psi_b - psi_b) - psi_b*(psi_a - psi_a)); psi_a psi_a_next; psi_b psi_b_next; w_hat w_hat_next; % 永磁磁链角度 theta_hat atan2(psi_b - Ls*i_beta, psi_a - Ls*i_alpha); speed_hat w_hat; end上面的代码是个简化的框架里面的误差项写成了符号形式自己实际用的时候要换成可实现的误差表达式。重点是让状态更新严格遵守采样周期不能在一个函数里连续跑两遍。代码生成之后这个函数会被映射成C函数每个PWM中断周期调用一次。4.3 生成代码之后的离线验证和硬件注意点代码生成不是终点生成完还必须做“仿真结果 vs 代码行为”的一致性检查。最省事的办法是处理器在环测试也就是把生成的代码放到目标MCU里跑Simulink继续跑电机模型通过串口把电流电压喂给代码再把代码输出的PWM占空比读回来。这里最容易出现的问题是浮点运算差异。Simulink仿真默认双精度而很多MCU的浮点单元只支持单精度。你模型里所有double到了代码生成后会被替换成float观测器和LADRC的积分精度随之下降低速时磁链估计可能会出现明显漂移。解决方法是建模型时就主动把信号改成single类型用单精度从仿真开始就验证一遍。另一个坑是代码生成的除法。MCU上浮点除法很贵而且不同编译器优化结果不同。LADRC和观测器里的除法如果能换算成乘法比如把1/b0预先算好存储就能减少不少计算量。Simulink里可以用增益模块代替除法代码生成后更清爽。5. 调试实录和避坑清单5.1 现象电机低速启动失败或者一转就抖这个现象十有八九出在初始位置不准确上。磁链观测器是从零状态开始收敛的如果初始磁链给得和实际转子位置差太远电机一开始的电角度就是错的电流环一开始就可能把转矩方向搞反。解决办法有两条一条是启动前先做一个预定位给一个固定的d轴电流把转子拉到已知位置另一条是用I/F或者开环强拉启动等转速过了某个阈值再切到观测器闭环。千万不要指望磁链观测器在零速附近自己“神奇”地收敛。它需要反电动势信息而零速下反电动势根本没有这是物理决定的。零速带载启动必须配合初始位置辨识或者高频注入。5.2 现象观测器发散角度跳变转速乱飞先看Rs参数准不准。磁链观测器对Rs非常敏感因为电压方程里Rs·i这一项在低速时和反电动势同量级Rs误差大一点磁链估计就像积分漂移一样偏出去。很多调试现场温度一变Rs变个20%观测器就开始不正常。再查角度跳变。atan2输出跨pi边界时如果后续PLL处理不当转速会突然出现尖峰。解决方法是把角度误差做卷绕处理确保误差始终在-pi到pi之间PLL输入端不要直接把两个周期角度相减而是把误差写成sin(θ_ref - θ_hat)这种形式。还有一个很容易忽略的点电压uα、uβ到底用的是指令电压还是实际相电压。用指令电压省事但指令电压有死区误差和管压降误差低速时影响很大。上硬件后如果发现低速磁链漂移可以考虑加死区补偿或者用母线电压和开关状态重构实际电压。5.3 现象LADRC响应很快但整个系统一直在抖大概率是ωo取得太高。观测器带宽高于系统噪声频段以后总扰动估计里会混入大量噪声再经过去控制量前馈相当于给速度环注入高频扰动。我遇到过有人把ωo拉到1000rad/s速度环看着响应极快但电流波形全是毛刺电机噪声大得离谱。还有一个常见原因是b0给得太大。b0偏大时LADRC控制器会认为“控制量很有效”给出的iq指令就会偏小但ESO为了补偿误差又会把总扰动估计得很大最后整个环路的增益都失控。调LADRC和调PI不一样不能只盯着响应速度要把电流指令波形一起看。iq_ref有没有高频抖、有没有频繁进出饱和才是判断参数是否合理的核心指标。5.4 现象生成代码后跑起来和Simulink仿真完全两个样这个现象我见得太多原因九成是模型和代码之间的“隐性差异”。比如Simulink里用连续积分器代码生成后变成了离散积分器比如模型中某个饱和模块在代码生成时被优化掉了比如数据类型的溢出处理不一致。排查方法是分层验证第一阶段只用纯仿真模型确认控制逻辑第二阶段把所有采样时间改成离散、类型改成single再跑一遍仿真第三阶段把输出限制、饱和、溢出处理全部显式写出来不做隐式依赖。这三个阶段如果能保持一致生成代码后基本不会出大问题。6. 最后再讲两句真话这套“速度环LADRC加非线性磁链观测器”的架构我用下来的体会是性价比非常高。LADRC的代码量比PI大不了多少但对负载扰动的抑制能力肉眼可见非线性磁链观测器虽然调参比反电动势法费点劲可一旦把Rs辨识和角度PLL处理好中高速段的稳定性明显更好。我踩过几次坑之后的最大感触是这种高性能控制方案真正决定成败的不是那些花哨的算法公式而是离散化、限幅、饱和、数据类型、角度连续性这些“脏活累活”。做仿真时别急着拉高带宽先把每一步信号的数据流捋清楚把每个模块在代码生成后可能出现的差异想明白后面上硬件才会顺。如果你正准备做自己的无传感器控制平台我建议先用这组架构搭一个最简单的版本电流环用PI、速度环用LADRC、观测器用线性增益先跑通然后再把线性增益改成非线性。一步一步来比直接照搬论文里的完整算法要稳得多。最后再分享一个小技巧把观测器带宽、LADRC的ωo、ωc都做成模型里的可调参数用Simulink的调参功能在线整定你会发现自己调试效率能翻一倍。

相关新闻

LiDAR360三维激光点云处理实战:从LAS加载到DEM生成与行业应用

LiDAR360三维激光点云处理实战:从LAS加载到DEM生成与行业应用

简介:面向LiDAR360软件用户与三维激光点云数据处理从业者,本手册为官方V2.2版用户手册,系统涵盖航带拼接、数据管理、统计、分类、地形、机载/地基林业、电力线及矢量编辑等核心模块的功能原理与操作流程,并附有系统配置要求、安装…

2026/10/19 7:29:17 阅读更多 →
编译原理期末试卷解析:DFA与LL(1)文法核心考点

编译原理期末试卷解析:DFA与LL(1)文法核心考点

简介:这份常州工学院编译原理试卷A(doc格式,55KB,共1个文件)面向计算机专业学生及备考者,用于检验和巩固编译原理核心知识。试卷覆盖正规表达式与有限自动机、逆波兰表示、文法二义性、LL(1)文法与预测分析…

2026/10/19 7:29:17 阅读更多 →
LabVIEW网口直连西门子PLC:S7协议通讯方案与实战解析

LabVIEW网口直连西门子PLC:S7协议通讯方案与实战解析

做了多年自动化项目,LabVIEW和西门子PLC这对组合我没少碰。早期做项目基本都是用OPC中转,后来多接几个1200、1500的项目之后,我开始尝试LabVIEW直接走网口和PLC通讯,发现这条路完全走得通,而且省掉中间件之后实时性、稳…

2026/10/19 7:29:17 阅读更多 →

最新新闻

TCP与UDP深度解析:从可靠传输原理到网络编程选型实战

TCP与UDP深度解析:从可靠传输原理到网络编程选型实战

搞网络这么些年,面试过不少人,也带过不少团队里的新人。每次聊到网络编程,几乎绕不开一个问题:"TCP和UDP你了解吗?"我发现大多数人能流利背出"TCP可靠、UDP不可靠"这类结论,但要是追问…

2026/10/19 8:19:01 阅读更多 →
零基础学数据结构与算法:MOOC视频课学习路线与避坑指南

零基础学数据结构与算法:MOOC视频课学习路线与避坑指南

很多人学编程到一定程度就会撞上一堵墙:单独写一个排序、遍历数组都没问题,可一旦遇到“维护一个滑动窗口里的最大值”、“判断两个节点是否属于同一个集合”这类问题,脑子里就一片空白。我就是在这种状态下,花了三个多月时间&…

2026/10/19 8:19:01 阅读更多 →
最近点对问题详解:分治与蛮力结合的经典算法

最近点对问题详解:分治与蛮力结合的经典算法

1. 先把问题和暴力解法摆上桌1.1 最近点对问题到底在求什么最近点对问题可以一句话讲清楚:平面上有 n 个点,找出距离最近的两个点,返回它们之间的距离。这里距离默认是欧氏距离,也就是两点连线的长度:d sqrt((x1 - x2…

2026/10/19 8:19:01 阅读更多 →
AI辅助学术专著写作全流程指南:从提纲到定稿的效率革命

AI辅助学术专著写作全流程指南:从提纲到定稿的效率革命

最早动这个念头,是因为一位做区域经济研究的前辈找我帮忙整理手稿。他的专著拖了三年,材料堆了几十个文件夹,初稿却只写出来两章半。我俩坐下来复盘,发现真正吃掉时间的根本不是"想不出来",而是三层体力活&a…

2026/10/19 8:19:01 阅读更多 →
OpenClaw 实战:基础配置与 Tool 装配避坑指南

OpenClaw 实战:基础配置与 Tool 装配避坑指南

最近在折腾一个叫 OpenClaw 的个人 AI 助理项目,拆箱、组装、调参数、接工具,一路踩坑一路填坑。这个系列就是想把这台“机器”从头到尾养熟的过程记录下来,既是给自己留个底,也是给同样在折腾这类项目的朋友一个参考。这第一篇先…

2026/10/19 8:19:01 阅读更多 →
YOLOv12苹果腐烂检测系统:从数据到UI的完整实战

YOLOv12苹果腐烂检测系统:从数据到UI的完整实战

YOLOv12一出来,我第一时间就把它跟手头的水果质检项目做了结合。苹果腐烂检测这个场景,从传统图像处理时代做到深度学习时代,最头疼的一直是腐烂区域边界模糊、光照变化大、早期腐烂特征不明显这三座大山。正好YOLOv12在实时检测架构上做了不…

2026/10/19 8:18:00 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 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 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 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/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练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 阅读更多 →