Online polynomial linear curve fitting in Simulink
조회 수: 3 (최근 30일)
이전 댓글 표시
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
채택된 답변
Jonas
2021년 8월 31일
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.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Get Started with Curve Fitting Toolbox에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!