You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Simulink中实现在线多项式曲线拟合并支持代码生成

Simulink三次多项式拟合支持代码生成解决方案

1 兼容代码生成的实现方法

fit属于Curve Fitting Toolbox专属函数,本身不支持代码生成,你可以手动实现三次多项式的最小二乘求解逻辑,所有运算均为基础MATLAB操作,完全兼容代码生成,且运算效率更高,适配1ms仿真步长的实时更新需求。
对应的MATLAB Function代码如下:

function [p1, p2, p3, p4] = fcn(x,y)
% 输入x、y为20×1的Pos_x、Pos_y向量
% 构造三次多项式拟合的范德蒙矩阵
V = [x.^3, x.^2, x, ones(length(x), 1)];
% 最小二乘求解系数,如需提升数值稳定性可改用带正则项的写法:
% p = (V'*V + 1e-6*eye(4)) \ (V'*y);
p = V \ y;
p1 = p(1);
p2 = p(2);
p3 = p(3);
p4 = p(4);
end

2 其他可行方案

  • 若使用的MATLAB版本≥R2021a,polyfit函数已原生支持代码生成,可直接替换fit实现功能,代码示例:
function [p1, p2, p3, p4] = fcn(x,y)
p = polyfit(x, y, 3);
p1 = p(1);
p2 = p(2);
p3 = p(3);
p4 = p(4);
end
  • 若拟合仅用于离线校准、不需要每个仿真步长实时更新系数,可将拟合逻辑放在仿真初始化回调中运行,将得到的固定系数作为常量导入Simulink模型,完全避开运行时代码生成的限制。
  • 面向嵌入式部署场景时,可以自行编写C语言实现三次多项式拟合逻辑,在MATLAB Function中通过coder.ceval调用预编译的C代码,可获得最优运行性能。

内容的提问来源于stack exchange,提问作者Ehab Abdelkarim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 18:24:04