ILC_Simulink迭代学习控制建模、学习律选型与增益整定

发布时间:2026/11/2 20:44:23

ILC_Simulink迭代学习控制建模、学习律选型与增益整定 简介面向控制理论学习者与工程实践者的迭代学习控制ILCSimulink 仿真模型合集聚焦周期性任务下无静差跟踪输入这一典型问题适合已具备自动控制基础、希望动手复现并调参验证 ILC 算法的中高级读者。压缩包共 14 个文件约 66KB包含 slx 主模型与 slxc 编译缓存、stateflow 状态机相关文件、记录仿真数据的 mat 文件、用于批量运行的 m 脚本与 l 许可文件以及工程自动保存与 xml 配置构成可直接打开运行的完整仿真工程。已有 3983 人学习下载。读者可从中获得传递函数被控对象建模、误差计算与反馈校正、控制量饱和限幅、迭代更新规则与停止准则等环节的模块化搭建思路并通过输出曲线对比验证收敛效果理解一阶、二阶系统下 ILC 的适用条件与参数调整方向为课程设计、课题复现与工程项目预研提供可改可扩的原型模型。1. ILC_Simulink.rar 解包先看什么重复轨迹上的残差归谁管某实验室的伺服台架干的是同一段轨迹跑几千次的老活PID 参数调到手指发麻每次的跟踪误差曲线还是长得一模一样——重复性误差摆在那儿单次反馈再调也压不下去。ILC_Simulink.rar 就是冲着这个场景来的它把迭代学习控制Iterative Learning ControlILC在 Simulink 里的完整回路搭好了参考轨迹、被控对象、学习律、误差记录四块都在改几个参数就能跑起来看第 k 次迭代的误差范数往下掉。这份资源适合已经会搭基本反馈回路、手上有重复运动工况的人如果你只是想看一次阶跃响应的超调ILC 对你没用。下面按拆包、搭模型、调增益、排坑的顺序走一遍。2. 学习律的数学骨架与落地选型P 型、D 型还是相位超前打开压缩包最容易被忽略的不是 .slx 模型而是那张标着学习律的图。很多人上来就改增益结果跑了二十次迭代误差纹丝不动回头才发现选错了学习律——对象相对阶是 2硬用 D 型微分把噪声放大了一遍迭代域里噪声的增益比误差还高。选型这步不做后面的参数整定全是白费。2.1 三种学习律的适用边界与收敛条件ILC 的核心是一个在迭代域上递推的更新式。设第 k 次迭代的控制输入为 $u_k(t)$跟踪误差为 $e_k(t) r(t) - y_k(t)$最常用的 P 型学习律写成$$u_{k1}(t) u_k(t) \Gamma_p , e_k(t)$$把对象记作 $G$则 $y_k G u_k$代入误差定义可以推出 $e_{k1} (1 - \Gamma_p G) e_k$。误差能不能收敛取决于算子 $(1 - \Gamma_p G)$ 的谱半径是否小于 1。落到频域上就是一条很朴素的判据对所有频率 $\omega$都要满足$$|1 - \Gamma_p G(j\omega)| 1 \quad \Longleftrightarrow \quad 0 \Gamma_p ,\mathrm{Re},G(j\omega) 2$$这条式子说明两件事。第一学习增益的符号必须和对象实部的符号一致符号搞反就是正反馈第一次迭代就炸第二增益有硬上限$\Gamma_p 2 / \max_\omega \mathrm{Re},G(j\omega)$对象在高频段实部越大能用的增益越小。工程上常见的保守取法是取上限的三到五成先保证单调收敛再往上试。D 型学习律把误差换成误差的导数$$u_{k1}(t) u_k(t) \Gamma_d , \dot{e}_k(t)$$它的好处是对相对阶为 1 的对象收敛快坏处是微分环节在离散域里等价于一个高通采样噪声、量化噪声、求解器截断误差全被放大。对象相对阶为 2 时纯 D 型需要二阶微分才能保证收敛条件成立实际信号里的高频成分会直接把迭代过程搅成抖振。这种情况一般改用带相位超前的 PD 型$$u_{k1}(t) u_k(t) \Gamma ,(z a), e_k(t)$$$(za)$ 这一项在离散频域上提供的不是纯微分而是带相位补偿的一阶差分$a$ 用来把相位曲线在对象带宽附近拉到合适位置。压缩包里的模型对这个参数留了注释改之前先看一眼当前对象的主导极点在哪。学习律更新式适用相对阶抗噪收敛速度整定难点P 型$u \Gamma e$0 / 1好慢增益上限被高频实部卡住D 型$u \Gamma \dot{e}$1差快必须配低通否则噪声放大PID 型$u \Gamma_p e \Gamma_i \int e \Gamma_d \dot{e}$1 / 2中中三个增益互相耦合难分离相位超前$u \Gamma (za) e$1 / 2中快$a$ 要与对象相位滞后匹配我一般会先按上表把对象相对阶数清楚再决定是 P 型起步还是直接上相位超前。二阶对象用 P 型跑得动只是慢一阶对象用 P 型往往十几次迭代就到底了没必要引入微分。2.2 Simulink 里三种实现拓扑选错了后面全是坑同一套学习律在 Simulink 里有三种放法代价完全不同。第一种是脚本for循环加sim()命令。模型里只放一次迭代的回路迭代更新写在 .m 脚本里。好处是每次迭代的边界清清楚楚中间数据全在 workspace 里想看哪一次就存哪一次坏处是模型和脚本要约定好变量名变量名对不上就是经典的空数据报错。第二种是 Stateflow 状态机把“跑完一次”和“更新一次控制量”做成两个状态在模型内部完成迭代。好处是单文件交付演示时点一下运行就能看到收敛过程坏处是状态转移条件容易写错尤其是采样时刻和迭代结束判据耦合在一起时调试成本高。第三种是 MATLAB Function 块加persistent变量。块内部维持上一轮的控制量看起来最紧凑。坑也最深persistent变量在同一个 MATLAB 会话里跨多次sim调用不会自动清零你改了增益重跑它带着上一次的旧状态继续算结果自然对不上。要用这套必须在脚本里显式clear函数或者重建模型。拓扑学习律放在哪数据流适合主要坑脚本 sim().m 文件workspace 双向调参、批量实验、出图变量名与作用域Stateflow状态机模型内部演示、代码生成状态转移与采样时刻MATLAB Function persistent块内部块状态单文件交付跨sim不清零2.3 采样时间、迭代长度与时间网格对齐这一步看着琐碎却是后面所有报错的源头。单次迭代的时长 $T_{end}$、采样周期 $T_s$ 和采样点数 $N$ 三者必须自洽$N T_{end}/T_s 1$多一个点是因为要包含 $t0$。From Workspace读进来的时间列长度和模型仿真出来的数据长度差一位报错信息往往只写“维度不匹配”查起来很费时间。采样周期怎么定按对象带宽来。设对象主导频率为 $f_{max}$$T_s \le 1/(20 f_{max})$ 是常见做法控制精度要求高的时候取到 $1/(50 f_{max})$。本例对象自然频率 10 rad/s折合约 1.6 Hz取 $T_s 1$ ms 足够宽裕。求解器必须锁死。ILC 依赖“第 k 次和第 k1 次在同一个时间网格上逐点比较误差”变步长求解器每次迭代的积分步长分布不同插值后的误差向量和上一轮对不齐误差范数会出现莫名其妙的非单调。把求解器设成FixedStepDiscrete步长严格等于 $T_s$。% 统一时间网格与求解器设置保证每次迭代的数据长度完全一致 Ts 1e-3; % 采样周期按 Ts 1/(20*f_max) 取 T_end 2; % 单次迭代时长 N round(T_end/Ts) 1; % 采样点数1 是包含 t0 这一拍 t (0:N-1) * Ts; % 必须是列向量From Workspace 对行向量不友好 mdl ILC_Model; load_system(mdl); set_param(mdl, Solver, FixedStepDiscrete); % 定步长离散求解器 set_param(mdl, FixedStep, num2str(Ts)); % 步长与 Ts 严格一致 set_param(mdl, StopTime, num2str((N-1)*Ts, 12)); % 必须等于 (N-1)*Ts set_param(mdl, SaveFormat, StructureWithTime); % 输出带时间列便于核对这段代码里num2str的第二个参数12是有效数字位数别小看它默认只保留 5 位$T_{end}0.002$ 这类小数值会被截断成0.002碰上更刁钻的 $T_s$ 就会累积出半拍误差。StopTime写成(N-1)*Ts而不是直接写T_end是为了让长度关系在代码里显式成立改 $T_s$ 时不会漏改一处。提示From Workspace的SampleTime参数也要填Ts不能留-1让它继承。留-1时块会按求解器步长采样和脚本里的时间列错位误差向量长度又对不上了。3. 把学习律接进 Simulink从空模型到第 3 次迭代收敛模型的骨架不难难的是让“第 k 次的结果”稳稳当当地变成“第 k1 次的输入”。这一步做扎实后面调增益才有意义。本章用一个二阶对象从头搭一遍跑三次迭代看到误差范数下降再谈优化。3.1 最小可跑回路参考轨迹、被控对象与误差采样选一个典型二阶对象练手$G(s) 100/(s^2 16s 100)$自然频率 10 rad/s阻尼比 0.8直流增益 1。这个对象相对阶为 2用 P 型学习律能收敛只是速度中等正好用来观察迭代过程。参考轨迹取 $r(t) \sin(2\pi t)$周期 1 s在 2 s 的迭代窗口里跑两个整周期。周期信号对 ILC 友好因为迭代域上的误差模式和时域上的周期能对应起来收敛过程更容易看懂。模型里需要的块不多两个From Workspace分别注入参考轨迹和控制输入一个Transfer Fcn作对象一个Sum算误差一个To Workspace把误差送回 workspace。用脚本建模型比手动拖块更可控端口和参数一次到位。% 用脚本搭最小 ILC 回路避免手动拖块时端口接错 mdl ILC_Model; if bdIsLoaded(mdl), close_system(mdl, 0); end new_system(mdl); open_system(mdl); % 参考轨迹变量 r_in 由迭代脚本注入 add_block(simulink/Sources/From Workspace, [mdl /r_ref], ... VariableName, r_in, SampleTime, Ts, Position, [30 60 110 100]); % 控制输入变量 u_in 每轮迭代更新一次 add_block(simulink/Sources/From Workspace, [mdl /u_k], ... VariableName, u_in, SampleTime, Ts, Position, [30 200 110 240]); % 被控对象二阶omega_n 10, zeta 0.8, 直流增益 1 add_block(simulink/Continuous/Transfer Fcn, [mdl /Plant], ... Numerator, [100], Denominator, [1 16 100], ... Position, [220 190 300 250]); % 误差 r - y add_block(simulink/Math Operations/Sum, [mdl /Sum], ... Inputs, |-, Position, [140 70 170 130]); % 误差落盘供迭代脚本读取 add_block(simulink/Sinks/To Workspace, [mdl /e_k], ... VariableName, e_out, SaveFormat, Structure With Time, ... SampleTime, Ts, Position, [380 70 460 110]); add_line(mdl, u_k/1, Plant/1, autorouting, on); add_line(mdl, r_ref/1, Sum/1, autorouting, on); add_line(mdl, Plant/1, Sum/2, autorouting, on); add_line(mdl, Sum/1, e_k/1, autorouting, on); save_system(mdl);连线逻辑是标准的开环迭代结构控制量直接驱动对象对象输出和参考轨迹做差得到误差。注意Sum的Inputs写成|-竖线表示端口在块的上下两侧第一个端口取正、第二个取负这样 $e r - y$ 的符号不会反。对象块用的是连续Transfer Fcn在FixedStepDiscrete求解器下会被自动离散化精度取决于步长。如果对离散化误差敏感可以换成Discrete Transfer Fcn系数用c2d(G, Ts, zoh)算出来填进去代价是多一步手工转换。多数调参场景用连续块加小步长就够了Ts 1e-3相对 10 rad/s 的对象已经相当细。3.2 迭代更新脚本把控制量稳定写回模型这段是整个资源里最值得先啃的部分。参考轨迹和控制输入都是时间序列注入模型的方式有两种老办法是assignin(base, ...)往基础工作区塞变量新办法是Simulink.SimulationInput加setVariable。后者更干净变量只在本次仿真内有效不会污染工作区也避免了上一次迭代的残留值被误读。% ILC 主迭代脚本每轮注入 u_k跑完取 e_k 更新逐次打印误差范数 clear; clc; setup_grid; % 复用第 2 章的 Ts / T_end / N / t r sin(2*pi*t); % 参考轨迹两个整周期 r_in timeseries(r, t); % 带上时间列的时序对象 u zeros(N, 1); % 第 0 次迭代控制输入全零 Gamma 0.55; % 学习增益符号必须与对象直流增益同号 K_max 25; % 最大迭代次数 e_norm zeros(K_max, 1); % 记录每次迭代的误差 2-范数 for k 1:K_max u_in timeseries(u, t); % 本轮控制量转时序对象 simIn Simulink.SimulationInput(mdl); % 干净的仿真配置 simIn simIn.setVariable(u_in, u_in); % 注入控制量 simIn simIn.setVariable(r_in, r_in); % 参考轨迹一并注入 out sim(simIn); % 单次仿真 e_k out.e_out.Data(:); % 取误差数据列 e_norm(k) norm(e_k, 2) * sqrt(Ts); % L2 范数乘 sqrt(Ts) 逼近积分 u u Gamma * e_k; % P 型更新律逐点相加 fprintf(iter %2d ||e||_2 %.6f\n, k, e_norm(k)); end几个参数值得单独说。Gamma 0.55的符号必须和对象在低频段的实部同号$G(0) 1$ 是正的所以取正。u u Gamma * e_k这一行是学习律的全部逐点相加以后的向量长度必须和 $t$ 完全一致这也是前面反复强调网格对齐的原因。误差范数那一行norm(e_k,2) * sqrt(Ts)是在近似 $L_2$ 范数的连续积分 $\sqrt{\int e^2 dt}$离散求和少了 $\sqrt{T_s}$ 这一项量纲就不对了。有人直接对误差求和迭代次数一多不同 $T_s$ 下的结果没有可比性换采样率之后增益就得重调。timeseries这个包装不能省。From Workspace对纯矩阵格式的数据要求第一列是时间、后续列是信号直接传一维向量会被当成 $N \times 1$ 的信号矩阵时间列缺失块在 $t0$ 之后全部取到零。改用timeseries(signal, time)之后时间和数据分离格式问题一次性解决。3.3 误差范数的三种取法别只看一个数误差范数用来判断收敛但取法不同结论可能完全相反。2-范数看整体能量对分散在各处的残差敏感无穷范数看最大偏差对单点尖峰敏感RMS 介于两者之间量纲最直观。指标计算式敏感对象适合判断2-范数$\sqrt{T_s \sum e_i^2}$整体能量分布收敛趋势、迭代停止无穷范数$\max_i \lvert e_i \rvert$单点尖峰是否满足最坏点指标RMS$\sqrt{\frac{1}{N}\sum e_i^2}$平均偏差跨采样率横向对比我一般三个都记用 2-范数判断趋势用无穷范数守底线。有些对象前几次迭代 2-范数掉得很快无穷范数却在某几个采样点卡住不动那通常是对象在特定频段有模型误差增益在该频段超出了收敛条件需要靠 Q 滤波器压下去。还有一点容易忽略误差范数的单调性。理论上满足收敛条件时误差范数应当单调下降实际因为数值离散和插值误差轻微的非单调是正常的但如果某次迭代涨了 10% 以上基本可以判定增益过大或时间没对齐别急着跑完 25 次先停下来查。3.4 结果落盘与曲线核对跑完迭代数据留在内存里不安全。把误差范数、最终控制量、时间轴和增益参数一起存成 MAT 文件文件名带时间戳回头对比不同参数下的收敛曲线才有依据。% 结果落盘与收敛曲线核对 res_dir results; if ~exist(res_dir, dir), mkdir(res_dir); end save(fullfile(res_dir, [ilc_ datestr(now,yyyymmdd_HHMM) .mat]), ... e_norm, u, t, Gamma, Ts, T_end); figure(Name, ILC 收敛曲线); semilogy(1:K_max, e_norm, -o, LineWidth, 1.2); xlabel(迭代次数 k); ylabel(||e_k||_2); grid on; % 单调性检查单次上升超过首轮范数的 5% 就告警 viol find(diff(e_norm) 0.05 * e_norm(1)); if ~isempty(viol) warning(第 %d 次迭代出现非单调上升建议回调学习增益, viol(1)); endsemilogy比线性坐标好用ILC 的误差范数往往在前几次掉一个数量级后面缓慢下降线性坐标下后面的收敛过程被压成一条平线看不出来。告警阈值取首轮范数的 5% 是个经验值具体对象可以放宽到 10%但不要取消这项检查——非单调往往是小问题的第一信号。4. 学习增益怎么定量纲、Q 滤波器与停机条件增益是 ILC 里唯一必须手动整定的量也是最容易翻车的地方。给大了发散给小了跑二十次也到不了位中间还有一段“看着收敛但高频抖得厉害”的灰色地带。本章把增益的量纲、滤波器和停机条件拆开说。4.1 学习增益的量纲推导与初值估计$\Gamma$ 不是无量纲数。从更新式 $u_{k1} u_k \Gamma e_k$ 看$u$ 和 $e$ 量纲相同都是控制量或都是输出量取决于对象增益是否为 1所以 $\Gamma$ 的量纲是对象增益的倒数。对象直流增益是 1$\Gamma$ 在数值上就是无量纲对象直流增益是 100同样的 $\Gamma$ 效果会放大 100 倍直接发散。初值估计有个简单公式$\Gamma_0 \alpha / |G(j\omega_c)|$其中 $\omega_c$ 取对象带宽附近$\alpha$ 取 0.2 到 0.6。用低频增益代替带宽增益更保守收敛慢一点但不容易炸。本例 $G(0)1$$\Gamma_0$ 落在 0.2 到 0.6 之间取 0.3 起步比较稳。$\Gamma$首次迭代 $\lVert e \rVert_2$第 10 次 $\lVert e \rVert_2$高频抖振判断0.1014.24.31无收敛过慢迭代次数不够用0.3012.80.92无稳适合先跑通流程0.5511.60.21轻微推荐工作点需配轻滤波0.8010.90.18明显必须加 Q 滤波器1.209.7发散剧烈超出收敛上限这组数是同一对象扫出来的趋势具体数值随对象变但规律通用增益从 0.1 加到 0.5收敛速度提升明显从 0.5 加到 0.8末端误差改善有限抖振代价却上来了。工程上没必要追求极限增益取到“第 10 次迭代误差降到首轮的 2% 以内”就够用剩下的靠迭代次数补。4.2 Q 滤波器把迭代域的高频增益压下去收敛条件 $|1 - \Gamma G(j\omega)| 1$ 要求对所有频率成立但实际对象的模型只在低频段准高频段有未建模动态、传感器噪声、离散化误差。增益只要在某个高频点让 $|1 - \Gamma G| 1$那个频段的误差就会随迭代放大表现就是控制量逐点抖动、误差范数忽大忽小。Q 滤波器的做法是在更新式里插一个低通$u_{k1} Q(z),[u_k \Gamma e_k]$。$Q(z)$ 只让低频通过高频段的迭代增益被压到 1 以下抖振就没了。关键在于 $Q$ 不能引入相位滞后否则低频段的收敛条件又被破坏所以常用零相位的filtfilt正反各滤一次相位抵消。% 零相位低通 Q(z)正反双向滤波不引入相位滞后 Fs 1/Ts; % 采样率 fc 30; % 截止频率取对象带宽的 1/3 左右 [b, a] butter(2, fc/(Fs/2)); % 二阶巴特沃斯归一化截止频率 u_raw u Gamma * e_k; % 先算未滤波的更新量 u_next filtfilt(b, a, u_raw);% 零相位滤波 u_next(1:10) u_raw(1:10); % 端点效应处理前 10 点保留原值 u u_next;fc的取法是经验对象带宽 1.6 Hz取 0.5 Hz 到 0.8 Hz 之间对应代码里的 30 rad/s 偏保守实际可以试到 20 到 50 之间。filtfilt在信号两端会有畸变长度约为滤波器阶数的三倍前 10 个点直接沿用未滤波值是个粗糙但有效的处理要求高的场合用镜像延拓代替。注意filtfilt要求信号长度大于 $3 \times$ 滤波器阶数短序列会报错。迭代窗口只有几十个采样点时改用一阶低通filter加相位补偿或者干脆把增益降下来别硬上零相位滤波。4.3 停机条件与单调收敛验证迭代不能无限跑。停机条件一般设两条误差范数的相对变化小于阈值或者连续几次迭代的范数不再下降。前者管收敛到位后者管停滞。% 停机判据相对变化 1e-3 或连续 3 次不再下降 tol_rel 1e-3; stall_cnt 0; for k 2:K_max rel abs(e_norm(k) - e_norm(k-1)) / max(e_norm(k-1), eps); if rel tol_rel fprintf(第 %d 次迭代满足相对变化阈值停止\n, k); break; end if e_norm(k) e_norm(k-1) stall_cnt stall_cnt 1; else stall_cnt 0; end if stall_cnt 3 fprintf(连续 3 次未下降检查增益与滤波器\n); break; end endmax(e_norm(k-1), eps)是为了防止首轮范数为零时除零。相对变化阈值取 $10^{-3}$ 对应误差降到千分之一量级多数跟踪任务够用要求更高的场合取 $10^{-4}$代价是多跑十几次迭代。停滞判据比阈值判据更重要。误差范数不降要么是已经到模型精度的下限要么是增益在该频段越界了。前者可以接受后者必须处理。判断办法是看控制量的频谱已经到底的情况下控制量平滑、能量集中低频越界的情况下控制量有明显的逐点跳变。4.4 参数扫描把增益选择从手感变成数据靠一次一次手改参数试效率太低。写个扫描脚本固定对象和参考轨迹只变 $\Gamma$把每次的收敛曲线画在一张图上对比十分钟能顶半天的手动试错。% 学习增益扫描固定其他条件只变 Gamma Gamma_list 0.2:0.1:1.0; res zeros(numel(Gamma_list), K_max); for i 1:numel(Gamma_list) [e_norm_i, ~] ilc_run(Gamma_list(i), p a hrefhttps://download.csdn.net/download/liuzhijun301/11561528 stylecolor:#ec7500;font-size:14px; 本文还有配套的精品资源点击获取 /a img altmenu-r.4af5f7ec.gif srchttps://csdnimg.cn/release/wenkucmsfe/public/img/menu-r.4af5f7ec.gif stylewidth:16px;margin-left:4px;vertical-align:text-bottom;cursor:text; /p
延伸阅读

更多相关文章

2026/11/2 20:44:23

ArkTS API9中Scroll组件实现默认居中滚动的完整方案

1. 项目概述:为什么“scroll组件默认居中”成了高频痛点最近在多个 ArkTS API9 实际开发场景中,反复遇到一个看似微小、实则影响体验全局的细节问题:当使用Scroll组件包裹一组水平排列的卡片、标签页或轮播项时,首次加载后视图总是…

2026/11/2 20:39:22

社会研究中AI数据标注的技术架构与实践

1. 社会研究中的AI数据标注现状与挑战社会研究领域正经历着从传统人工分析向AI驱动的数据密集型研究转型。在这个过程中,数据标注作为AI模型训练的基础环节,其重要性日益凸显。以某高校社会学研究团队为例,他们最近开展的城市社区行为观察项目…

2026/11/2 20:39:22

小龙虾自动化养殖成本控制与设备选型实战

1. 项目概述:从标题拆解核心问题"养不起的小龙虾(openclaw)——踩坑荟萃"这个标题本身就包含了多层信息。作为从业十年的水产养殖技术顾问,我一眼就看出这背后反映的是小龙虾养殖成本控制与自动化设备应用的典型矛盾。o…

2026/11/2 21:29:26

监控 AI 搜索引用的 5 个最佳 API(2026):GEO 数据层怎么搭

GEO(生成式引擎优化)是 2026 年最火的概念之一,但我聊下来的团队,十个有九个卡在同一个地方:SaaS 工具订阅买了,报表很好看,数据层是黑的——你不知道 AI 概览引了哪些站,就不知道该…

2026/11/2 21:29:26

AI如何辅助检查备份、生成脚本、验证方案和识别残余风险

AI在运维中的价值,不能只看它会不会回答问题。真正耗费工程师时间的,往往是一些细密工作:检查备份是否完整,为现场生成诊断脚本,执行后验证结果,最后从大量记录中找出没有处理干净的风险。这些任务都需要阅…

2026/11/2 21:29:26

算法分析与设计期末复习参考

启发式搜索 一、概念(极简背诵版) 状态空间:问题所有合法状态 状态转移规则构成的集合,搜索就是在状态空间里找路径。图灵机:抽象计算模型,由读写头、纸带、状态集组成;能刻画所有可计算问题。…

2026/11/2 21:29:26

保时捷卡宴降20万,奥迪A8降30万,豪车降价真有这么狠?

最近几年只要说起豪车降价,相信大多数人都不会陌生,前几个月十几万买一台路虎,到了这个国庆假期甚至有了保时捷卡宴降价20万,奥迪A8降价30万的消息,让人不禁想问这豪车降价真有这么狠?一、豪车又降价了&…

2026/11/2 21:24:26

ChainUQ论文阅读总结

# ChainUQ论文阅读总结> 论文信息:ChainUQ: Reasoning Consistency‑Aware Uncertainty Quantification for Large Language Models,arXiv:2609.26060 ## 一、文章主要内容大语言模型(LLM)具备强大的多步推理能力,但经常出现**中间推理步骤互相矛盾,但输出的最终结论…

2026/11/2 6:08:01

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/2 6:39:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

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

2026/11/2 1:04:04

工业级SPI隔离设计:硬件抗扰与信号完整性实战指南

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

2026/11/2 1:04:04

PLFM_RADAR:主动探测数据通道,构建低误报的数据感知系统

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

2026/11/2 1:04:04

工业SPI隔离设计:MAX14431与STM32F746硬件抗干扰实战

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

2026/11/2 6:08:01

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/2 6:39:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

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

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑