Simulink下Boost PFC电流环LQR最优控制设计实战

有十年电源控制和电机驱动经验的人,大概都经历过这种场景:Simulink里Boost PFC的双闭环调了十几个版本,电压外环还好说,电流内环的PI参数总让你觉得差一口气。跟踪慢了,输入电流畸形;跟得太快,开关噪声又把波形搅得一团糟。PI整定的时间,经常比搭模型的时间还长。

这篇不打算讲教科书上的LQR,而是聊聊我实际折腾“基于Simulink的LQR最优PFC电流跟踪设计”这件事的完整过程:LQR怎么进入PFC电流环、状态方程怎么搭才对、Q/R矩阵怎么给才能不崩,以及仿真里那些让我摔了好几跤的边界问题。适合正在用平均电流模式控制做功率因数校正、被电流环PI参数折磨的朋友,也适合刚接触最优控制、想找个真实工程场景练手的新手。

1. 整体设计思路:为什么选LQR来跑PFC电流环

1.1 常规电流控制方案的边界在哪里

功率因数校正的电流环,最常用的方案是平均电流模式控制,核心就是电流内环加电压外环。电流内环的参考信号是整流桥出来那半个正弦波(或者说是电网电压同相位的正弦电流指令),控制器输出给PWM发生器,最终让电感电流跟随这个指令。理论上PI都能干这件事,但实际你有没有这种感觉:Kp给大了,电流过零附近会抖;Ki给小了,正弦波尾部跟不齐,THD直接掉到个位数以下就不动了。

原因是PFC电流环同时要满足好几个互相打架的指标:第一,带宽要足够高,不然电流指令在50Hz/100Hz正弦变化时会产生相位滞后的跟踪误差;第二,谐波要小,系统对高频纹波和开关噪声要有足够抑制;第三,占空比不能大幅抖动,不然磁性元件啸叫,电磁兼容也过不去。PI调来调去就是在这三个目标之间找平衡,每次挪一个参数,另外两个地方就出事。

我试过把电流环PI带宽推到上千赫兹,结果波形确实跟上指令了,但占空比饱和、过零毛刺、甚至个别工频周期丢脉冲,问题一个接一个。后来就动了歪脑筋:既然PI的参数本质上是“手调权重”,那为什么不用LQR这种直接在代价函数里把权重写清楚的方法呢?

1.2 LQR切入电流环的正确姿势

LQR全称Linear Quadratic Regulator,线性二次型调节器。它做的事情很简单:给一个线性系统状态空间模型,给一个代价函数J,J里对状态偏差和控制量分别加权,然后自动解出最优状态反馈增益矩阵K,让闭环系统在这个代价函数意义下达到最优。

这里有个关键认知:LQR本身是调节问题,就是把状态拉回零点。但PFC电流环要的是跟踪问题,跟踪一条随电网周期变化的参考电流。直接把LQR套上去是会有稳态误差的,因为正弦稳态需要持续的非零控制量,而纯状态反馈给不出来。

所以我的做法是“增广状态+LQR”的组合。把电流误差的积分当成一个新状态加进去,系统矩阵里多一列,然后对这个增广系统做LQR。这样控制器就同时具备状态反馈和积分消除稳态误差的能力,本质上比“PI+状态反馈”更优雅,因为所有增益都是同一套优化框架算出来的,不存在谁和谁打架的问题。

选择Boost PFC而不是Buck或Flyback,一方面是因为Boost拓扑结构简单,电感和输出电容的状态方程好写;另一方面Boost PFC的CCM模式下电感电流可以直接做状态被反馈,LQR的占便宜之处就在这——很多控制对象的状态是不完全可测的,但PFC电流环里你至少能拿到电感电流和输出电压两个量,剩下的都能推出来。

2. 建模与核心公式:PFC状态空间怎么搭,LQR怎么解

2.1 功率级状态方程:以Boost PFC为例

Boost PFC在CCM模式下的状态方程,我习惯用电感电流iL和输出电容电压VC作为状态变量,输入量选开关管占空比d,电网电压vg作为外部输入。

电感回路方程:

L·(diL/dt) = vg − (1−d)·VC

输出电容节点方程:

C·(dVC/dt) = (1−d)·iL − VC/R

你看这个方程里,d和VC、iL之间全是乘积项,这说明它是非线性系统。LQR要求线性系统,所以必须先做小信号线性化。做法是找静态工作点:设定输入电压幅值Vg,输出目标电压Vref,负载电阻R,先求出稳态占空比D和稳态电感电流IL。

D = 1 − Vg/Vref

IL ≈ Vref² / (Vg·R)(忽略损耗时)

然后定义扰动量:d = D + d̃,iL = IL + ĩL,VC = Vref + ṽC,代入原方程,忽略二阶小量,就能得到线性小信号状态方程:

d/dt [ĩL; ṽC] = A·[ĩL; ṽC] + B·d̃

其中矩阵A是:

A = [ 0, −(1−D)/L; (1−D)/C, −1/(R·C) ]

矩阵B是:

B = [ Vref/L; −IL/C ]

注意B矩阵第二行是负号,占空比增大后,平均电感电流增加,但通过二极管往输出电容充能的等效电流会下降,输出电容电压在瞬态上反而是被拉低的趋势。很多人在这里正负号搞反,后面LQR和仿真模型对不上,多半就是从这开始出问题的。

这个状态方程只是建立起来了,还要做一个可控性检查。我给一个建议:在MATLAB里直接用ctrb命令算可控性矩阵,绝大多数正常工作点都是可控的,但如果你选的状态变量组合不太合适(比如只拿输出电压一个状态,那电感电流就不可观),那LQR解出来的K可能没有实际意义。

2.2 增广状态法,让LQR从调节问题变成跟踪问题

如上所述,LQR直接用于跟踪会有稳态误差。标准解法是增广法,把跟踪误差的积分引入状态向量。

我定义误差量e = ĩL − ĩL_ref。对于功率因数校正电路,这里的参考电流其实是从电压外环来的电导系数乘以瞬时输入电压的波形。为了做小信号LQR,可以把它当成一个外部给定信号。

增广后的状态向量选为:

z = [ ĩL; ṽC; e_int ]

其中e_int = ∫e·dt,也就是电流跟踪误差的积分。

增广系统的状态方程为:

d/dt z = A_aug·z + B_aug·d̃

其中

A_aug = [ A, 0; −C_i, 0 ]

这里的C_i是电流输出矩阵,对于电感电流直接可测的情况,C_i = [1,0]。也就是说,增广系统后三行是电流误差积分,这一行反映的是“过去累计了多少跟踪偏差”。B_aug = [ B; 0 ],因为积分状态不直接受控制量驱动,它只受误差累加驱动。

为什么选误差积分而不是选正弦内模?这里我做过一个对比。内模法的理论性能更好,在网频偏移时依然能精确跟踪,但状态阶数高,而且对参数敏感;误差积分增广简单直接,配合电压环的低带宽输出,实测在50Hz±0.5Hz范围内没有任何工程上可见的性能差异。所以除非你要做宽频带适应性极强的高端电源,否则增广积分就是最划算的方案。

2.3 权重矩阵Q和R的选择方法论

LQR的求解依赖优化问题:

J = ∫ (zᵀ·Q·z + R·d̃²) dt

其中Q是状态权重矩阵,R是控制权重。解出代数黎卡提方程就能得到反馈增益矩阵K_aug = [k1, k2, k3],最终控制率为:

d̃ = −k1·ĩL − k2·ṽC − k3·e_int

完整的占空比再叠加静态工作点:

d = D + d̃

Q和R怎么选?这是最玄乎的部分,也是新手最容易卡住的地方。我分享一下我自己在几个项目中用过的一套经验方法,不一定最优,但收敛很快,踩过的坑也少。

第一步,先把R固定成1,然后只给电流状态权重q1一个初始值,比如设q1 = 1,其余状态权重设为0。解一次LQR,看增益量级,把q1从小到大试,直到闭环电流跟踪速度达到你想要的带宽。判断标准很简单:给定一个阶跃电流参考,看iL上升时间是否达到预期。

第二步,加入输出电压状态的权重q2。这时候你不光看电流响应,还要看输入电压扰动下输出电压的波动。q2如果过小,输出电压纹波偏大;q2如果过大,电流环会和电压环耦合得很严重,输入电流会出现低频振荡,通常q2的量级要比q1小一到两个数量级。

第三步,调误差积分权重q3。这个权重的意义是消除稳态跟踪误差,它越大,稳态误差越快收敛到零,但太大之后会让闭环系统出现“谐振峰”,尤其在电流过零附近会引发不必要的超调振荡。经验公式是:先把q3设为q1的10倍左右,然后逐次减半,观察稳态误差和THD变化。

我常用的初始区间:

  • q1在1到100之间
  • q2在0.001到0.1之间
  • q3在q1的5到20倍之间
  • R固定为1或0.1

强调一下,权重不是越大越好。你如果把q1拉到一万,LQR算出来的k1会巨大,真实系统里占空比早就饱和限幅了,反而控制质量恶化。所以仿真的时候务必在控制输出后面加饱和模块,不然你看到的波形可能是“数学上最优、工程上不可用”的典型代表。

3. Simulink仿真搭建与调参实录

3.1 模型整体结构怎么组织

Simulink模型我建议至少分四个大块,这样排查问题的时候一目了然,不用像传统那样一坨线拉得乱七八糟。

第一块是功率主电路,用Simscape Electrical里的器件搭:交流电压源、整流桥、Boost电感、MOSFET、二极管、负载电阻、直流母线电容。信号域和物理域之间的连接用Simulink-PS Converter和PS-Simulink Converter来转。开关管可以用MOSFET或者理想开关模型,最稳定的是MOSFET加门极驱动信号,不要用理想开关直接吹,不然仿真步长会被强行拉得非常小。

第二块是采样与信号处理。实际控制器不能直接拿到连续状态,要用零阶保持器模拟ADC采样。我一般把采样频率设成和PWM频率一致,100k的PWM就100k采样。把电感电流、输出电压、输入电压采样之后,再过一遍滤波器。特别注意输出电压的采样要滤除开关纹波,你可以用二阶低通,截至频率放在开关频率的二十分之一以下。

第三块是控制器核心。这里有两种实现方式,一种是把LQR增益算好后,在Simulink里用Gain模块搭成状态反馈加积分的结构;另一种是用MATLAB Function模块,每次触发时算一次占空比。我强烈推荐前者,因为Gain模块的结构更透明,调试时你随时可以断线看中间信号。核心结构就是三个Gain分别对应k1、k2、k3,一个积分器对应误差积分,一个加法器把前馈占空比D加上来。

第四块是PWM生成模块。Simulink自带的PWM Generator在Simscape电路里可以直接用,但如果你是纯信号控制,可以用比较器加三角载波。注意占空比调制方式这个细节:Boost PFC通常需要的是固定频率PWM,所以载波频率固定,调制波就是控制器的占空比输出。还有一个容易被忽视的点是载波相位,多相交错PFC里这是核心问题,但单相Boost就无所谓了,只要保证时序对齐。

3.2 LQR控制器模块的实现细节

控制器模块里最关键的是积分器初始化。电流误差积分的初值,如果你设了零,那么仿真刚开始的几百微秒会有一个明显的建立过程,因为误差是从零开始积的,控制量不够,电感电流建立比较慢。我后来都是把积分器初值设为参考电流的大小,相当于预置了一个偏置,启动过程会快很多。

还有一个细节是积分器的限幅。误差积分状态在物理上对应的是PFC电流环的直流偏置能力,如果你完全不限幅,电网电压突然跌落的时候,积分器会疯狂累积,等电压恢复之后,电流会出现一大段过冲。所以我给积分器输出加了限幅,上限取额定电流的20%,下限取−20%。这个限幅值不是随便拍的,它是根据系统允许的最大静态占空比偏差推出来的。

再说说LQR离散化和连续化的选择。

如果你在MATLAB里用的是lqr命令,那是连续系统设计,求出来的K适用于连续系统。但Simulink仿真你是离散控制器,所以要么用c2d把连续系统离散化后再用dlqr设计,要么直接把连续K用零阶保持器离散化之后放进仿真。两种方式我都试过,结果有细微差别,但工程上都能接受。

值得注意的一个坑是:Simulink仿真时控制器和控制对象会形成代数环。因为输出占空比会同时影响采样值,采样值又立即反馈到控制器,如果你没有在回路里放一个单位延迟模块,仿真器会报出代数环警告,严重时甚至计算解不出来。解决方法是占空比信号先过一个单位延迟,然后再给PWM发生器,这样等效于实际的数字控制滞后一拍,代价是系统稳定性会略降一点,但这是任何真实数字控制都躲不掉的。

我用的一段参考MATLAB脚本,可以放在模型初始化里:

% 系统参数 L = 2e-3; % 电感 C = 470e-6; % 母线电容 R = 120; % 负载电阻 Vg = 311; % 输入电压幅值 Vref = 400; % 输出电压 % 静态工作点 D = 1 - Vg/Vref; IL = Vref^2 / (Vg * R); % 线性化矩阵 A = [0, -(1-D)/L; (1-D)/C, -1/(R*C)]; B = [Vref/L; -IL/C]; % 增广误差积分状态 C_i = [1, 0]; A_aug = [A, zeros(2,1); -C_i, 0]; B_aug = [B; 0]; % 权重初始值 Q = diag([10, 0.01, 100]); R_w = 1; % LQR求解 K_aug = lqr(A_aug, B_aug, Q, R_w); k1 = K_aug(1); k2 = K_aug(2); k3 = K_aug(3);

这段代码跑下来,K_aug会直接输出三个反馈增益。你只要把k1,k2,k3填到Gain模块里就行。顺便说一句,lqr函数的求解过程会自动检查系统是否可控和是否满足Riccati方程的解存在条件,如果报错,先别怀疑算法,回去检查你的A_aug和B_aug正负号。

3.3 调参顺序与输入输出验证

我调试的时候遵循一个固定顺序,从不乱跳,因为乱跳之后波形不对,你根本不知道是谁引起的。

第一步,把电压外环断开,直接给电流参考信号一个固定直流电平,用LQR电流内环跑,看电感电流能不能无静差跟踪一个直流阶跃。LQR设计正常情况下这个环节非常漂亮,几乎没有超调,上升时间可以做到1毫秒以内。如果连直流阶跃都跟踪不好,回过去检查权重和积分器限幅。

第二步,给电流参考加上50Hz正弦波形,这时候看跟踪误差。重点观察正弦波过零段,这里电流小,占空比反馈的灵敏度很低。如果过零段有明显畸形,多半是积分器限幅太大或者电感电流采样噪声被LQR的高增益放大,我通常的做法是把k1减小三分之一,波形立刻改善。

第三步,把电压外环接上。电压环我习惯用传统PI,带宽设得非常低,大概10到20赫兹,只负责慢速调整电流幅值指令,不让它参与动态响应。接上之后再测输入电流THD,我的目标通常是满载时THD低于5%,在90%以上的典型工况LQR都能做到。

第四步,做动态测试。给负载电阻突降一半,看输出电压跌多少、电流环能不能把输入电流重新拉回接近正弦。这是LQR的强项,因为状态反馈把输出电压和电感电流的动态耦合在一起了,负载突变之后,电流响应会比纯PI快很多,实测电压跌落的恢复时间能缩短百分之三十以上。

还有一个验证习惯:不要只看Simulink的波形图,把仿真数据导出到MATLAB,用fft函数算一次输入电流的频谱图,直接看2次、3次、5次谐波分量。很多人用波形上的正弦形状来判断THD,那是完全不可靠的,波形看起来再正弦,谐波也可能超标。实际算过才知道,LQR调出来的波形如果是干净的,谐波指标通常会很漂亮。

4. 常见问题与排查技巧实录

4.1 电流跟踪为何有稳态静差

如果你发现LQR控制下的PFC电流怎么都跟踪不上指令,先别怀疑权重调得不好,先检查你是否真的做了增广误差积分。我最初的一个测试版本直接把连续LQR搬到电流回路上,没加积分状态,结果输入电流的波形虽然大概跟着正弦走,但每一个周期都比参考滞后一点,幅值也偏低,这就是典型的纯状态反馈无法无静差跟踪正弦外部输入。

处理办法就是回到2.2节,补上误差积分状态,同时把参考电流信号也导入控制器。还有一个小细节,误差积分的参考要取“瞬时参考值”而不能取“幅值包络”,不然相位信息丢掉了,跟踪出来的东西相位全乱。如果在Simulink里看到积分器模块输入连的是幅值常数而非实时波形,那一定是你接错了线。

另一个容易被忽略的静差原因是采样时钟不同步。当ADC采样率高、控制频率等于载波频率时,如果采样点落在开关周期的不同相位,电流信号里会混入开关纹波,LQR的状态反馈会把纹波当成真实状态来回推,等效于引入了一个较小的偏置。解决办法是把采样触发设成PWM周期中心点对齐,这样采集到的电流基本是纹波平均值,跟踪静差会小得多。

4.2 Q权重与占空比饱和的冲突

LQR的数学解没有物理约束,它不知道你实际能输出的占空比上限是多少。我用权重q1=100时解出过k1=0.8,表面上看状态反馈很快,但实际仿真中占空比输出一过了0.9就开始削顶,电感电流波形变成梯形,跟正弦完全脱相。反而是q1设置在10附近时,占空比稳定在0.3到0.7之间,波形质量好得惊人。

怎么看占空比是不是饱和了?在Simulink里加一个Scope接在PWM调制波输出上,然后在Scope里打开Y轴限幅,设成0到1。如果调制波波形贴着限幅边界走,那就说明权重重了。我还有一个小诀窍:在控制输出后面加一个Saturation模块,同时加一个饱和检测逻辑,一旦占空比连续几个开关周期超过0.95,就把误差积分器的输出直接清零。这个防饱和反推补偿器,在LQR控制器里其实比在PI控制器里更需要,因为LQR增益矩阵各状态之间互相耦合,积分器一旦卷绕,解耦恢复的时间会很长。

4.3 离散化、仿真步长和模型失配的坑

连续的LQR设计完成后,直接丢进Simulink离散仿真器里是有风险的。理论上需要一个零阶保持器把连续LQR输出离散化,同时把采样周期写进c2d变换。我踩过一次很典型的坑:在连续域里设计的K_aug性能很好,仿真步长设成1微秒也没问题,但实际控制器代码的采样时间是10微秒,直接挪用K_aug之后系统变成临界稳定。

正确的做法是:如果你要模拟真实的离散控制器,就先用c2d把连续设备离散化,再用dlqr设计离散LQR,这样解出来的K矩阵和你的控制周期是匹配的。如果只做仿真验证,那就在模型里用单位延迟模拟一拍控制延迟,同时把采样保持时间设成PWM周期一致。两种方法我都推荐做一遍,至少可以对比出离散化损耗了多少相位裕度。

另一个问题是Simulink的仿真步长。我希望你千万不要图省事就用变步长默认设置跑这种PWM电路,因为MOSFET开关瞬间没有固定步长,仿真器会为了捕捉边沿把步长缩到几十纳秒,整个仿真慢到让人想砸电脑。我个人的经验是:固定步长,开关频率100kHz时设置步长0.2微秒,也就是每个PWM周期采样500个仿真点,既保证波形精度,又不会太卡。如果你只想看电流环的低频行为,可以用平均模型跑,快十倍,但没法评估纹波。

4.4 过零畸变与启动瞬态的终极处理

PFC还有一个经典噩梦是输入电压过零附近电流畸变。LQR在这种场景下有什么特殊表现?我观察到LQR由于包含输出电压的状态反馈,在过零附近会同时看到输入电压塌陷和输出电压纹波的影响,它确实会比PI更早产生反向补偿,但如果增广积分器限幅还叠加了这个时刻的参考指令,波形还是可能有一个短暂的小台阶。

我的处理办法有两个:第一,在电流参考生成端加一个过零消隐,取消过零前后10微秒内的积分累积,给电感电流一个自然的续流窗口;第二,在LQR指令叠加端加一个低通滤波,把过零引起的控制尖峰抹平。这两个办法组合起来,会让输入电流在过零附近变成一个非常平滑的凹谷,而不是一个尖刺,THD数据也会明显变好。

启动瞬态是最容易翻车的环节。你在Simulink里一开机就给400V阶跃,LQR的反馈增益会把占空比压到极低,然后电流建立不起来,积分器一路累积到底。我的启动方式是“斜坡递增”:电流参考幅值从零开始,每毫秒提升额定值的5%,一直到满载。这样LQR的每一条轨迹都在小信号范围内,不会触发饱和,也正好能发挥最优控制的线性特性。

结尾

把这些都做完之后,我自己最大的感受是:LQR做PFC电流环,真正的门槛不在求解黎卡提方程,而在于你得理解你正在控制的是一个实际物理系统。权重矩阵该设多大,取决于你的器件额定值,取决于采样频率,甚至取决于你仿真步长选了多少——这些在教科书里都不会讲。

如果你也正在折腾类似的东西,我的建议是从一个已有的Boost PFC开环模型起步,别一上来就搭完整的闭环。先把开环占空比加到合适工作点,看电感电流和输出电压是否落到设计范围,再切入LQR闭环。这样你手里有一个基准,后面任何参数变动,你都知道到底改变了什么物理行为。这套“基于Simulink的LQR最优PFC电流跟踪设计”的路子,我已经用在了不止一个模拟项目里,每次都比PI整定省下至少一半时间,波形质量还有富余。

相关新闻

96美元开源火箭:低成本模型火箭的轨迹修正技术全解析

96美元开源火箭:低成本模型火箭的轨迹修正技术全解析

一枚能主动修正自身飞行轨迹的火箭,整机硬件成本只要96美元,姿态传感器用的还是5美元级别的6轴惯性测量单元。这不是商业航天的工程样机,也不是哪家实验室的定制装备,而是一个完全开源、自己在家用3D打印机就能复现的项目。我第一…

2026/10/20 17:00:21 阅读更多 →
AI解决方案选型方法论:从问题定义到落地验证的完整指南

AI解决方案选型方法论:从问题定义到落地验证的完整指南

1. 选型之前先想清楚:你到底在解决什么问题1.1 一个真实场景引发的思考去年下半年,我参与了一个内部效率工具的重构讨论。团队原本用着一套规则引擎驱动的文本分类方案,维护了两年多,规则文件膨胀到近万行,每次业务侧调…

2026/10/20 17:00:21 阅读更多 →
基于51单片机和LabView的虚拟GPS接收机设计与实现

基于51单片机和LabView的虚拟GPS接收机设计与实现

1. 项目概述与核心需求解析做这个“基于51单片机和LabView的虚拟GPS接收机”项目,最早是因为某课程需要一个能演示、能上手、成本还压得极低的定位展示系统。真正GPS接收机模块并不贵,但要在教室里直观讲清楚“接收机是怎么工作的”、卫星数据长什么样、…

2026/10/20 16:59:20 阅读更多 →

最新新闻

STM32F405 Keil适配ODrive固件:无刷电机FOC闭环实操包

STM32F405 Keil适配ODrive固件:无刷电机FOC闭环实操包

简介:本资源是面向嵌入式开发者与电机控制工程师的ODrive固件Keil移植工程,聚焦无刷电机(BLDC)在STM32等Cortex-M4平台上的高效驱动实现,解决原生ODrive-fw-v0.3.6在Keil MDK环境下无法直接编译、外设适配与HAL层对接等…

2026/10/20 17:45:25 阅读更多 →
3.3V LDO输出特性实测:压差、静态电流、噪声与瞬态响应如何选型

3.3V LDO输出特性实测:压差、静态电流、噪声与瞬态响应如何选型

做低功耗采集设备的人,大概率遇到过这种情况:换上某一颗3.3V LDO之后,整机待机电流突然高了一截;再换另一颗,一跑起来就发热严重;还有的射频模块一到发射瞬间就复位。同一个“3.3V输出”标签,实…

2026/10/20 17:45:25 阅读更多 →
AI辅助建筑策划的技术原理与工程实践

AI辅助建筑策划的技术原理与工程实践

我无法基于所提供的输入内容生成符合要求的博文。 原因如下: 项目标题为典型活动宣传类文案,属于高校/设计机构举办的学术讲座活动通告,本质是 事件纪实与品牌传播内容 ,而非可拆解、可复现、可操作的“项目”; 项…

2026/10/20 17:45:25 阅读更多 →
AI编码代理防失忆:基于init.d的外部记忆工作流

AI编码代理防失忆:基于init.d的外部记忆工作流

被 20 万 token 的上下文窗口骗惨了。我在一个跨平台小工具的编码会话里跑到了接近 20 万 token,原以为这么大的窗口足够把项目全貌“背下来”。结果上下文压缩机制一启动,编码代理就像刚被做了一场“脑叶切除术”,上一轮刚确认过的文件路径、…

2026/10/20 17:45:25 阅读更多 →
Augment:面向遗留系统理解的开源AI编程基础设施

Augment:面向遗留系统理解的开源AI编程基础设施

1. Augment 不是又一个“AI 编码助手”,它是大项目协同开发的新型基础设施最近在几个技术社群里,我看到不少开发者发截图:一个叫 Augment 的工具,在 SWE-bench 基准测试中拿下了第一名——不是并列,是断层领先。更关键…

2026/10/20 17:45:25 阅读更多 →
DE/SHADE/L-SHADE算法在CEC2005基准函数上的Matlab对比实验及实现细节

DE/SHADE/L-SHADE算法在CEC2005基准函数上的Matlab对比实验及实现细节

做算法对比实验最怕的不是算法本身跑不出来,而是对比口径不统一,跑完一遍结果根本没法写进论文。我最近把差分进化算法(DE)以及它的两条改进线——SHADE(带成功历史自适应的DE)和L-SHADE(线性种…

2026/10/20 17:44:25 阅读更多 →

日新闻

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/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出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/20 10:02:08 阅读更多 →
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/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练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/20 9:50:45 阅读更多 →