MATLAB 大动态范围求和:用 Neumaier 补偿保留小增量,但别把它当精确算术

【MATLAB代码,多无人机路径规划6】基于RRT与动态窗口法(RRT+DWA)的多无人机二维动态路径规划与避障。订阅专栏后可查看完整代码 本文基于MATLAB实现四架无人机在二维动态障碍环境中的协同路径规划,采用RRT+DWA算法,支持参数自定义。通过对比RRT+APF与RRT+DWA的避障效果,可视化轨迹、净间隙、速度加速度及航程等,输出任务完成率与碰撞统计。代码可直接运行,订阅专栏后获取完整源码,支持定制与讲解。 阅读详情

本文代码已在 MATLAB R2025b 25.2.0.2998904、PCWIN64 环境原生运行,并完成独立原生复核。最终发布源码在 2026-11-06 01:06:40–01:07:13 UTC 再次完整回归。以下区分作者测试、独立测试和产物检查,不将重复运行叠加计数。

1. 大数旁边的 1,可能没有留下来

想象一个累计量先达到 2^54,期间又加了若干个单位增量,最后减去 2^54。数学上结果就是单位增量的个数;如果每个 1 都在与大数相加时被舍掉,最后得到的却可能是 0。

这类问题会出现在大基线上的微小修正、正负贡献的汇总和离线统计审计里。加长显示位数不会增加有效精度。MathWorks 的 浮点数说明介绍了 double 的有限表示与舍入;本文通过可精确核算的输入,区分输入已丢失的信息和计算过程中新增的误差。

2. 三种结果不要混在一起

第一种是理想实数数据的总和。第二种是已经存成 double 的这批数的精确总和。第三种是某个浮点求和算法的输出。

例如先在 double 中形成 2^54+1,这个 1 可能在调用求和函数之前就不见了。之后任何补偿循环都看不到它。本文的主要测试把大数和小数作为独立元素输入,测的是求和算法能否减少额外舍入误差,不声称恢复测量或转换时已损失的信息。

也不要假定 MATLAB 的内置 sum 就是自己写的从左到右循环。MathWorks 的开发者文章 A faster and more accurate sum讨论过内置实现的改进。因此本文专门写一个显式顺序循环作为负例,内置 sum 只记录实际返回值,不断言它必须失败,也不借本文样例做性能排名。

3. 补偿项记录了什么

普通循环只保留 s。Neumaier 形式还保留补偿 c:先计算 t=s+a,再根据 s 与 a 的绝对值大小,用较大的一项去构造这次加法的修正量。

  • 若 abs(s)>=abs(a),修正量为 (s-t)+a。
  • 否则,修正量为 (a-t)+s。
  • 将修正量累加进 c,把主和更新为 t,最后返回 s+c。

大小比较不是装饰。当新来的 a 比当前主和更大时,它决定了修正表达式的顺序。不要擅自把括号重排或把两个分支合并成“代数上等价”的式子,浮点舍入依赖实际运算过程。

算法有明确的历史来源,并非本文发明。Ogita、Rump、Oishi 的原始研究论文 Accurate Sum and Dot Product在相关工作部分讨论了大小排序的两数补偿和 Neumaier 变体。这里给出独立编写的教学实现,不将论文中的其他高精度算法或定理保证套到这个简短函数上。

主循环一次扫描、额外状态常数个。补偿项自身也用 double 累加,最后 s+c 仍会舍入。因此“所有输入都能精确求和”“必然正确舍入”“顺序完全无关”都不是本文承诺。

4. 用什么当作独立答案

测试不拿 MATLAB sum 当正确答案,而使用构造出来的精确整数总和:

  • [2^54,1,-2^54] 的精确目标是 1。
  • [2^54,1,-2^54,3] 的 24 个排列,精确目标均为 4。
  • [2^54,ones(1,N),-2^54] 的精确目标为 N,本文只取 N=1、2、3、17、256、4096。

最后一组还用 int64 顺序累加核对。这里只能这么做,是因为输入全为可精确表示的整数,且每一步均远小于 int64 上限;对一般浮点数据强行转 int64 会改变问题,不能当作高精度参考。

负例要求朴素循环至少在部分排列中失败,用来证明测试能抓到目标问题。输入舍入负例要求已经丢失的 1 不会被“神奇找回”。溢出负例 [realmax,realmax,-realmax] 即使实数总和可表示,也会在中间求和溢出,本文函数明确报错。

5. 完整实现与测试入口

保存下面三个文件。实现只接受有限、实数、非稀疏 double 向量;空输入返回 0,不支持矩阵按维度求和、复数、single、NaN 忽略语义或 GPU。输入、补偿和最终结果的非有限情况会显式拒绝。

本次原生环境为 MATLAB R2025b,版本 25.2.0.2998904,PCWIN64。对最终 11 个作者 .m 文件执行 requiredFilesAndProducts,静态依赖结果仅识别 MATLAB 产品;本机安装有其他工具箱,本次未进行仅安装 MATLAB 的干净环境试验,也未做许可证调用跟踪。因此这里只报告已执行环境与静态依赖结果,不扩大成所有环境兼容保证。

neumaier_sum.m

function total=neumaier_sum(x)
%NEUMAIER_SUM Compensated summation for finite real full double vectors.
% Returns zero for empty input. Rejects intermediate nonfinite results.
% This is not an exact accumulator or a correctly-rounded-sum guarantee.
if ~(isa(x,'double') && isreal(x) && ~issparse(x) && ...
        (isvector(x) || isempty(x)) && all(isfinite(x(:))))
    error('neumaier:Input','x must be a finite real full double vector, or empty.');
end
s=0; c=0;
for k=1:numel(x)
    a=x(k); t=s+a;
    if ~isfinite(t), error('neumaier:Overflow','Intermediate sum overflowed.'); end
    if abs(s)>=abs(a)
        correction=(s-t)+a;
    else
        correction=(a-t)+s;
    end
    c=c+correction;
    if ~isfinite(c), error('neumaier:Overflow','Compensation overflowed.'); end
    s=t;
end
total=s+c;
if ~isfinite(total), error('neumaier:Overflow','Final sum overflowed.'); end
end

test_neumaier_sum.m

function result=test_neumaier_sum()
% Tests use exact integer fixtures rather than sum as the oracle.
n=0; big=2^54;
check(neumaier_sum([big 1 -big])==1,'lost unit is recovered');
check(neumaier_sum([1 big -big])==1,'magnitude swap branch');
check(neumaier_sum([big -big 1])==1,'cancellation before small term');
check(neumaier_sum([])==0 && neumaier_sum(7)==7,'empty and singleton');
check(neumaier_sum([big;1;-big])==1,'column vector');
check(neumaier_sum([1 -1])==0,'exact zero sum');
P=perms([big 1 -big 3]); naiveFailures=0;
for k=1:size(P,1)
    check(neumaier_sum(P(k,:))==4,'all 24 four-term permutations');
    naiveFailures=naiveFailures+(sequential_sum(P(k,:))~=4);
end
check(naiveFailures>0,'plain left-to-right mutant is detected');
for count=[1 2 3 17 256 4096]
    x=[big ones(1,count) -big];
    exact=int64(0);
    for k=1:numel(x), exact=exact+int64(x(k)); end
    check(neumaier_sum(x)==double(exact),'bounded int64 reference');
end
% The unit is already lost before the function receives its input.
x=[big+1 -big];
check(x(1)==big && neumaier_sum(x)==0,'cannot recover input rounding');
expect_error(@()neumaier_sum([NaN 1]),'neumaier:Input');
expect_error(@()neumaier_sum([Inf 1]),'neumaier:Input');
expect_error(@()neumaier_sum([1 1i]),'neumaier:Input');
expect_error(@()neumaier_sum(single([1 2])),'neumaier:Input');
expect_error(@()neumaier_sum(ones(2)),'neumaier:Input');
expect_error(@()neumaier_sum(sparse([1;2])),'neumaier:Input');
expect_error(@()neumaier_sum([realmax realmax -realmax]),'neumaier:Overflow');
result=struct('status','PASS','checks',n,'naive_failed_permutations',naiveFailures, ...
    'builtin_sum_observation_only',sum([big 1 -big]));
fprintf('neumaier_sum PASS checks=%d; builtin sum observation=%.17g\n',n, ...
    result.builtin_sum_observation_only);
    function check(ok,label)
        assert(ok,'test:Failed','%s',label); n=n+1;
    end
    function expect_error(fn,id)
        found=false;
        try, fn(); catch ME
            if ~strcmp(ME.identifier,id), rethrow(ME); end
            found=true;
        end
        check(found,['expected error ' id]);
    end
end
function s=sequential_sum(x)
s=0;
for k=1:numel(x), s=s+x(k); end
end

demo_neumaier_sum.m

function demo_neumaier_sum(outdir)
counts=[1 2 3 17 256 4096]; naive=zeros(size(counts)); compensated=naive;
builtin=naive; big=2^54;
for j=1:numel(counts)
    x=[big ones(1,counts(j)) -big]; s=0;
    for k=1:numel(x), s=s+x(k); end
    naive(j)=s; compensated(j)=neumaier_sum(x); builtin(j)=sum(x);
end
P=perms([big 1 -big 3]); perNaive=zeros(size(P,1),1); perComp=perNaive;
for j=1:size(P,1)
    for k=1:4, perNaive(j)=perNaive(j)+P(j,k); end
    perComp(j)=neumaier_sum(P(j,:));
end
fig=figure('Visible','off','Color','w','Position',[100 100 1000 720]);
clean=onCleanup(@()close(fig));
subplot(2,1,1); semilogx(counts,counts,'k-',counts,naive,'rs--', ...
    counts,compensated,'bo-',counts,builtin,'md:','LineWidth',1.3); grid on;
xlabel('Number of unit increments'); ylabel('Final sum after cancelling 2^{54}');
legend('Exact integer target','Sequential','Compensated','Built-in: observed only', ...
    'Location','northwest'); title('Small increments beside a large running total');
subplot(2,1,2); plot(1:24,perNaive-4,'rs-',1:24,perComp-4,'bo-','LineWidth',1.2);
grid on; xlabel('Permutation index'); ylabel('Error relative to exact sum 4');
legend('Sequential','Compensated','Location','best');
title('Order sensitivity in a deliberately ill-conditioned fixture');
print(fig,fullfile(outdir,'03_compensated_sum.png'),'-dpng','-r160');
save(fullfile(outdir,'03_compensated_sum_data.mat'),'counts','naive','compensated', ...
    'builtin','P','perNaive','perComp');
end

运行命令

在以上文件所在目录运行以下命令。使用新目录保留每次证据;出错时保留失败日志,不把失败记录改成通过。

outdir=fullfile(pwd,['native_run_' datestr(now,'yyyymmddTHHMMSS')]);
assert(exist(outdir,'dir')~=7,'Please use a new evidence directory.');
mkdir(outdir);
diary(fullfile(outdir,'native.log'));
fprintf('MATLAB: %s\nPlatform: %s\n',version,computer);
ver
result=test_neumaier_sum();
demo_neumaier_sum(outdir);
save(fullfile(outdir,'native_result.mat'),'result');
diary off

6. 看绝对误差,也看问题本身的敏感性

图一比较不同单位增量个数下的结果,图二显示 24 个排列相对于精确目标 4 的误差。本次内置 sum 数据来自上述 MATLAB 环境的实际运行,没有用 Python 或其他版本结果代填。图像已完成原生回读和独立视觉复核,MAT 数据完成独立重算;本文保留生成图代码,不嵌入实验图片。

如果精确总和接近 0,直接计算相对误差可能非常大或没有定义。工程报告应同时列出绝对误差、数据尺度及允许误差。常见的求和条件量是 sum(abs(x))/abs(exact_sum),它解释正负巨大抵消为什么敏感;分母为 0 时不能给出一个普通有限值,更不能因为相对误差不好看就删掉该用例。

  • 作者原生检查:45 项 API 断言通过,另有 3 项导出检查通过。24 个指定排列均满足精确整数目标,6 组单位累加用例也通过。
  • 独立原生检查:1038 项 API 断言、9 项产物断言通过。
  • 独立取消补偿的变异,在指定的三元素求和用例中得到 0,而精确目标为 1,运行时断言按预期失败。
  • 本机实际观察:sum([254,1,-254]) 返回 0;这只是 MATLAB R2025b 本次环境的记录,不承诺其他实现或版本返回相同值,也不代表内置 sum 在所有数据上较差。
  • 最终发布副本的整批回归退出码为 0,stderr 为空。

7. 什么时候该换更强的方法

补偿求和适合希望在普通浮点精度内减少累加误差、并且能接受额外运算的场景。若需求是跨硬件逐比特一致、严格正确舍入、任意精度、跨越溢出范围,或要给出可靠的误差界,就应选择满足这些要求的专门累加器或更高精度方法,并单独验证。

本文也没有把误差更小等同于测量更准确。传感器偏置、量化和模型误差仍然存在。先明确要对“哪一批已经存储的数据”求和,再决定是否需要补偿,才不会让更漂亮的数字掩盖数据本身的问题。

【MATLAB代码】基于RRT与人工势场法(RRT+APF)的多无人机二维动态路径规划与避障。订阅专栏后可查看完整代码 本文基于RRT+APF算法实现多无人机动态路径规划与避障仿真,通过MATLAB完整代码可直接运行。对比传统APF方法,该方案在轨迹平滑性、安全净间隙及到达效率上表现更优。支持参数自定义,订阅专栏后可获取源码与定制服务,适用于科研与工程实践。 阅读详情

相关推荐

【MATLAB代码,无人机避障7】基于RRT*与人工势场法(RRT*+APF)的多无人机二维动态路径规划与避障。订阅专栏后可查看完整代码

本文基于RRT与人工势场法(APF)实现四架无人机在二维动态障碍环境中的协同路径规划与避障。通过RRT优化全局路径,结合APF进行局部避碰,支持参数自定义,提供完整MATLAB代码,可直接运行并生成轨迹、安全净间隙、速度加速度及航程等可视化结果,对比RRT+APF与RRT*+APF性能,适用于科研与教学。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 182

MATLAB 不等间隔一阶低通:按真实时间更新,并把长缺口重置说清楚

不等间隔数据若直接套固定平滑系数,会改变实际时间常数。本文从左端零阶保持模型推导一阶低通更新,分别计算衰减与输入系数,显式标记长缺口重置,并给出解析解对照、时序负例、边界测试和完整 MATLAB 代码。

hxy_programmer的博客 299

【MATLAB代码】基于改进人工势场法(Improved APF)的多无人机动态路径规划与避障|切向绕障、局部极小值改善及协同避碰仿真(含公式)

本文提出一种改进型人工势场法(APF),通过引入切向引导与目标距离权重,提升4架无人机在动态障碍环境中的路径规划效率与安全性。相比基础APF,改进方法在相同约束下实现更快收敛(27.6s vs 36.6s)、更优航程(364.26m vs 366.56m),且保持0碰撞、0违规。所有结果可复现,代码已封装为独立MATLAB脚本,订阅专栏后即可直接运行。如需定制或深入讲解,欢迎联系作者。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 208

MATLAB 优秀开源项目与工具箱推荐:涵盖通信、图像处理、脑机接口等九大领域

本文梳理了无线通信、图像处理、脑机接口等九个领域的代表性MATLAB开源项目,涵盖信道建模(QuaDRiGa)、智能表面仿真(SimRIS)、视觉特征提取(VLFeat)、三维网格生成(Iso2Mesh)及脑电信号分析(EEGLAB、BCILAB)等关键技术。通过解析其数学模型与源码实现,揭示科研工具如何将理论算法转化为可复现的工程计算流程,为科研人员提供高效、可扩展的开发参考。

weixin_47502228的博客 337

【PMSM例程11】永磁同步电机(PMSM)基于UKF的转速与转子位置估计。附下载链接

本程序基于MATLAB构建永磁同步电机(PMSM)仿真模型,采用无迹卡尔曼滤波(UKF)实现电流、转速与电角度的联合估计。通过缩放无迹变换生成Sigma点,避免非线性线性化误差,并针对电角度周期性边界进行特殊处理。仿真验证了在转速变化工况下,UKF对状态变量的高精度估计能力,结果表明其在转速与角度跟踪、电流滤波及新息诊断方面表现优异,具备良好的鲁棒性与实用性,适用于非线性状态估计与电机控制研究。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 245

SAP VC实战:用CU01和CS02搞定BOM里的‘智能’对象相关性(附语法避坑指南)

在工业制造领域,产品配置的复杂性往往超出想象。想象一下,当客户需要定制一台工业设备时,可能有数百种配置选项相互影响——从基础材质到动力系统,从控制模块到安全装置。如何在SAP系统中优雅地管理这种复杂性?对象相关性(Object Dependencies)就是解决这一挑战的利器。

weixin_42524824的博客 466

【PMSM例程分享】(10)永磁同步电机(PMSM)基于EKF的转速与转子位置观测与控制

本文基于MATLAB实现永磁同步电机(PMSM)的EKF状态观测与无传感器控制仿真,构建四维扩展卡尔曼滤波器在线估计转速与电角度,并在0.3秒切换至EKF反馈实现闭环控制。对比编码器反馈与EKF观测反馈的转速响应、跟踪误差及接管过程动态性能,验证了EKF在无位置传感器控制中的有效性。程序包含完整模型、控制器、滤波器与可视化功能,参数可调,适用于算法研究与教学实践。订阅专栏可获取源代码及定制支持。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 195

详解最大似然估计(MLE)、最大后验概率估计(MAP),以及贝叶斯公式的理解

声明:本文为原创文章,发表于nebulaf91的csdn博客。欢迎转载,但请务必保留本信息,注明文章出处。 本文作者: nebulaf91 本文原始地址:最大似然估计(Maximum likelihood estimation, 简称MLE)和最大后验概率估计(Maximum a posteriori estimation, 简称MAP)是很常用的两种参数估计方法,如果不理解这两种方法的思路,很

nebulaf91的博客 33万+

【MATLAB源码】基于颜色加权与连通域分析的高抬腿频率测量系统

本文提出一种基于图像处理的高抬腿动作频率自动化测量系统,通过高清摄像机采集视频,结合颜色加权、形态学操作与连通域分析,精准提取反光标志区域并统计动作次数。实验表明,该方法相比人工计数更高效、准确,误差小,可为运动训练提供量化数据支持。

2302_78339041的博客 224

Advanced Installer打包避坑指南:如何正确配置64位系统下的Java环境与注册表条件(以15.7版本为例)

本文详细解析了使用Advanced Installer 15.7版本在64位系统下打包Java应用时的常见问题与解决方案。重点介绍了注册表重定向机制、Java环境检测的双保险策略、环境变量设置的隐藏坑以及权限管理的进阶技巧,帮助开发者避免安装包在用户机器上无法运行的幽灵问题。

weixin_28676289的博客 320

【Unity】【WebRTC】如何用Unity而不是浏览器接收远程画面

之前几篇我们讨论了如何设置信令服务器,如何发送画面给远端以及如何用浏览器查看同步画面,今天来讨论如何实现Unity内部接收画面。看本篇之前请先看过之前将web服务器设置和基本远程画面功能的几篇博文。在Unity编辑器中打开一个示例项目,点击BroadCast按钮。4. 再点击Receiver按钮,Start。Build一个示例项目,并运行这个项目。启动Web.app。

每日出拳老爷子的博客 1721

buck-boost电路MATLAB仿真

该脚本构建了MATLAB R2021b中的反激式Buck-Boost变换器开环模型,输入电压24V,开关频率100kHz,占空比0.4,理论输出电压为-16V。通过仿真与验证,结果显示输出电压平均值接近理想值,效率达70%以上,电感电流连续,输出纹波小于5%,验证通过。

2501_92729044的博客 190

人形机器人电源系统硬件开发:从原理图设计到PCB布局的完整流程

人形机器人是“移动的智能终端”,其电源系统如同“心脏+血管”:既要为大脑(主控)、肌肉(电机)、感官(传感器)提供稳定能量,又要在有限体积内应对高动态负载(如跳跃时电机瞬间大电流)。本文聚焦“硬件开发”维度,覆盖从需求分析到PCB制板的完整流程,适合硬件工程师、机器人爱好者快速掌握工程实战方法。

AI天才研究院 2172

【MATLAB例程12】永磁同步电机基于增广无迹卡尔曼滤波的未知负载转矩在线观测

本文基于MATLAB搭建永磁同步电机(PMSM)仿真模型,采用增广无迹卡尔曼滤波(UKF)实现电流、转速、电角度及未知负载转矩的联合估计。通过将负载转矩作为增广状态,结合电压与带噪电流测量,有效跟踪负载阶跃变化。仿真结果表明,该方法在不同负载工况下具备良好估计精度与稳定性,状态估计误差小,新息诊断正常,适用于电机状态观测、抗扰控制等研究。代码结构清晰,参数可调,具有教学与应用价值。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 265

Python学习第32天:Web前端入门

本文介绍了Web前端开发三大核心技术:HTML、CSS和JavaScript。首先概述了HTML的发展历程和HTML5新特性,详细讲解了常用HTML标签如文本、列表、链接、图像、表格、表单等。其次介绍了CSS的基础语法、选择器、颜色字体设置、盒子模型和布局定位方法。最后简要提及JavaScript为网页添加交互功能的作用。文章为Python开发者提供了前端技术的基础知识,帮助理解网页的结构、样式和行为实现原理。

tigerhhzz的博客 1909

RK3568_Android15适配以太网网卡gmac+国产phy芯片YT8531

本文介绍了在Android15 SDK上适配正点原子ATK-DLRK3568开发板网卡的过程。开发板采用GMAC接口搭配YT8531C PHY芯片,包含两个千兆网口。主要内容包括:硬件原理图确认、网络链路连接方式、内核DTS配置(包括GMAC0和GMAC1的参数设置)、PHY驱动适配(基于motorcomm.c驱动文件)、PHY寄存器读写调试方法以及MAC地址设置方式。文章还分析了常见问题,如网卡注册后无法ping通网络的故障现象。通过详细的硬件确认和软件配置,实现了双网卡在Android系统上的完整适配。

Android/Linux驱动开发传帮带学习,让驱动入门门槛更低! 2012

MATLAB 数值计算中的精度与误差问题:浮点运算、误差传播与数值稳定性

MATLAB数值计算中的精度问题源于浮点数的有限表示。双精度浮点数(64位)虽具约16位十进制有效数字,但无法精确表示如0.1等十进制小数,导致0.1+0.2≠0.3。浮点运算存在舍入误差,其大小受机器精度(eps(1)≈2.22e-16)和数的量级影响,大数掩盖小数现象常见。误差包括舍入误差、截断误差及输入误差,且在复杂算法中可能累积放大。数值稳定性取决于算法对扰动的敏感性,同一数学问题不同算法可能表现迥异。因此,理解浮点机制、误差传播与算法稳定性,是确保计算结果可信的关键。

weixin_47502228的博客 289

WOFOST作物模型(1):PCSE环境配置

get_summary_output() 方法通常用于在 PCSE 模拟过程结束后,获取模拟结果的摘要信息,例如模拟期间的总产量、总水分需求等。它可以提供对模拟结果的快速总结,方便用户进行后续的分析和处理。用.get_output来获取过程参数,并将这些参数转为dataframe显示。用run_till_terminate()代表终止。安装好之后,打开jupyter notebook。也可以指定运行时间,并获取最后一天的参数。首先还是打开之前建好的gee虚拟环境。

所有专家都曾始于新手 681

MATLAB 中分号 (;)的作用

场景代码示例效果抑制输出x = 5;计算 x=5,但不显示在屏幕显示输出x = 5计算 x=5,并在屏幕显示 x = 5矩阵换行[1;2]创建列向量 [12]矩阵同行[1, 2] 或 [1 2]创建行向量 [12]

weixin_54978309的博客 92

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

PINN-LSTM物理信息神经网络的CO2羽流分布预测方法,四模型对比MATLAB代码

PINN-LSTM物理信息神经网络的CO2羽流分布预测方法,四模型对比MATLAB代码

机器学习之心的博客,关注并私信文章链接,获取对应文章源码和数据。 399

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

优秀 MATLAB 作者、书籍推荐:国外经典教材与技术资源整理

本文系统梳理了国外经典MATLAB教材与技术资源,涵盖数值计算、程序设计、信号图像处理及性能优化等领域。重点推荐Cleve Moler(《Numerical Computing with MATLAB》)、Higham父子(《MATLAB Guide》《Accuracy and Stability of Numerical Algorithms》)、Trefethen(《Numerical Linear Algebra》《Spectral Methods in MATLAB》)等权威著作,强调数学原理与编程

weixin_47502228的博客 35

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

五模型航空发动机剩余寿命预测(CNN+LSTM+GRU+BiGRU+BiLSTM)C-MAPSS数据集+MATLAB代码

五模型航空发动机剩余寿命预测(CNN+LSTM+GRU+BiGRU+BiLSTM)C-MAPSS数据集+MATLAB代码

机器学习之心的博客,关注并私信文章链接,获取对应文章源码和数据。 415

【PMSM例程】(14)永磁同步电机无迹卡尔曼滤波(UKF)定子电阻在线辨识与补偿。电阻变化跟踪及预测误差对比仿真。附完整代码的下载链接

基于MATLAB构建永磁同步电机(PMSM)电气模型,采用无迹卡尔曼滤波(UKF)实现定子电阻的在线辨识。通过将电阻作为增广状态并使用对数参数化保证其正值,利用电压、电流与转速信息递推估计电阻变化。仿真验证了参数辨识对电流预测精度的提升效果,结果显示:更新模型后电流预测RMSE显著降低,误差改善率达30%以上,且新息平方(NIS)指标表明滤波器稳定性良好。程序具备可扩展性,适用于电机参数辨识、模型补偿及状态估计研究。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 266

MATLAB2021B创建simulink风力发电并网实时仿真

本文基于MATLAB R2021b与Simscape Electrical,构建了9MW双馈风力发电机组并网仿真模型(wind_grid_realtime.slx),源自官方示例power_wind_dfig。通过自动化脚本实现模型生成、初始状态加载与信号日志配置,支持风速扰动与电网三相短路故障模拟。关键参数包括定步长实时仿真设置、动态信号记录(如转速、有功/无功功率)及低电压穿越响应分析,适用于风电控制、暂态特性研究与实时仿真教学。

2501_92729044的博客 382

【MATLAB源码-第463期】基于matlab的能耗预算约束下多传感器无线远程估计的误差驱动调度与功率控制仿真

针对多传感器共享无线资源时估计精度与能耗的权衡问题,本文提出一种联合调度与功率控制策略,结合本地卡尔曼滤波、预测误差收益与虚拟能耗队列,实现在线优化。实验表明,在六终端场景下,该策略显著降低平均误差与方差超限率,但性能受网络规模、信道相关性及信息延迟影响,不具普适性。结果验证了误差驱动策略在特定条件下的有效性,为资源受限下的远程状态估计提供了实用方案。

Matlab程序猿i的博客 222
上一篇: FPGA 令牌桶限速:补充与消费同拍时,信用先饱和还是先扣减
下一篇: FPGA 一路数据送两路接收端:独立背压下如何保证每路只收到一次
星夜离尘56
博客等级 码龄1年 77粉丝 100原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值