Multi term power series fitting with MATLAB

조회 수: 3 (최근 30일)
Gergely Hunyady
Gergely Hunyady 2020년 1월 29일
답변: Star Strider 2020년 1월 29일
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:
equation.jpg
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

답변 (1개)

Star Strider
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).

카테고리

Help CenterFile Exchange에서 Linear and Nonlinear Regression에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by