Multi term power series fitting with MATLAB
2 ビュー (過去 30 日間)
古いコメントを表示
Hy,
I would like to do parameter-identification of a DC motor.
The estimation is based on the attached pdf file.
I would like to fit mullti term power series (built-in function is only able to estimate with maximum 2 term) to the data, which also attached with time domain.
The equation is the following:

The motor parameters can be calculated from these constants as described in the pdf.
Do you have an idea how to calculate these constants?
Sincerely,
Gergely Hunyady
0 件のコメント
回答 (1 件)
Star Strider
2020 年 1 月 29 日
Try this:
D = load('NoLoadSpeed.mat');
T = load('Time.mat');
NLS = D.MotorSpeed_NoLoad; % Column Vector
t = T.Time; % Column Vector
pdv = 2:9; % Power & Denominator Vector
DM = t.^pdv./cumprod(pdv); % Design Matrix
BetaVct = DM \ NLS;
NLSfit = DM * BetaVct; % Fit Regression
figure
plot(t, NLS, '.')
hold on
plot(t, NLSfit, '-r')
hold off
grid
xlabel('Time')
ylabel('MotorSpeed_NoLoad')
legend('Data', 'Fit', 'Location','E')
The ‘pdv’ vector can only go to 9 before the design matrix loses rank. This produces 8 β coefficients (the ‘BetaVec’ vector).
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Linear and Nonlinear Regression についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!