# Online polynomial linear curve fitting in Simulink

4 ビュー (過去 30 日間)
Ehab Abdelkarim 2021 年 8 月 30 日
コメント済み: Ehab Abdelkarim 2021 年 8 月 31 日
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

サインインしてコメントする。

### 採用された回答

Jonas 2021 年 8 月 31 日
If you have the DSP Systems Toolbox you can use the Least Squares Polynomial Fit block.
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.
##### 2 件のコメント表示非表示 1 件の古いコメント
Ehab Abdelkarim 2021 年 8 月 31 日
Thanks for the idea Jonas. finally I could manipulate the Block to adapt to my case.

サインインしてコメントする。

### カテゴリ

Find more on Array and Matrix Mathematics in Help Center and File Exchange

R2018a

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by