Online polynomial linear curve fitting in Simulink
3 views (last 30 days)
Show older comments
Ehab Abdelkarim
on 30 Aug 2021
Commented: Ehab Abdelkarim
on 31 Aug 2021
How to fit curves in Simulink and still generate the code?
I have a model of a sensor in Simulink, that returns vectors "Pos_x" and "Pos_y". Each vector has size of 20x1, whose values change every one step time (1ms).
I am trying to calculate the coeffecients of the 3rd degree Polynomial y(x) = p1*x^3 + p2*x^2 + p3*x + p4 in Simulink, that fits the data.
I did not find any block in simulink that calculates the coeffecients, so I used a simple Matlab function
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
but I get the error: Function 'fit' not supported for code generation.
1- so back to my qustion, How to fit curves in Simulink and still generate the code?
2- I am also open to any other suggestion
0 Comments
Accepted Answer
Jonas
on 31 Aug 2021
Standard Simulink does not have an alternative as far as I can see. Unless you implement a curve fitting algorithm yourself in a MATLAB Function block. If it is just for testing some stuff the DSP Systems Toolbox seems the alternative.
More Answers (0)
See Also
Categories
Find more on Get Started with Curve Fitting Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!