【发布时间】:2021-10-29 11:50:06
【问题描述】:
如何在 Simulink 中拟合曲线并仍然生成代码?
我在 Simulink 中有一个传感器模型,它返回向量 Pos_x 和 Pos_y。每个向量的大小为 20x1,并且它们的值每一步时间 (1ms) 都会发生变化。
我正在尝试在 Simulink 中计算适合数据的 3 次多项式 y(x) = p1*x^3 + p2*x^2 + p3*x + p4 的系数。
我在simulink中没有找到任何计算系数的模块,所以我使用了一个简单的Matlab函数
function [p1, p2, p3, p4] = fcn(x,y)
% f(x) = p1*x^3 + p2*x^2 + p3*x + p4
f = fit(x', y', 'Poly3'); % I have also tried "polyfit"
p1 = f.p1;
p2 = f.p2;
p3 = f.p3;
p4 = f.p4;
end
但我得到了错误:
Function 'fit' not supported for code generation.
1- 回到我的问题,如何在 Simulink 中拟合曲线并仍然生成代码? 2- 我也愿意接受任何其他建议
【问题讨论】:
标签: matlab curve-fitting simulink