0

私は家のエネルギー消費量であるファイルを持っています。10 分ごとに 1 つの値 (ワット):

10:00 123
10:10 125
10:20 0
...

これは、毎日 144 の値 (行) があることを意味します。ARMAX プログラムである ARX を使用して、翌日のエネルギーを予測したいと考えています。私はMatlabでARXコードを書きました。しかし、翌日の予測はできません。私のコードは最後の 5 回の消費を取り、6 回目の消費を予測します。nex 144 の値 (= 翌日) を予測するにはどうすればよいですか?

% ARX Process----------------------------
L=length(u_in)
u_in_ID=u_in;% Input data used for Identification
u_in_vfy=u_in;% Input data used for verification

y_out_ID=y_out;% Output data used for Identification
y_out_vfy=y_out;%Output data used for verification
m=5; %Parameter to be used to generate order of delay for Input, Output and Error
n=length(y_out_ID)-m;
I=eye(n,1)+1;
I(1)=I(1)-1;
A=I; % Initialize Matrix A
Y=y_out_ID((m+1):end); % Defining Y vector
length(Y)
na=1;
% Put output delay 1 to m-na in A matrix
for k=1:1:m-na
    A=[A y_out_ID((m-k+1):(end-k))];
end
% Put "Current Input -- mth delayed Input" to Matrix A
for p=1:1:m
    k=p-1;
    A=[A u_in_ID((m-k+1):(end-k))];
end
A(:,1)=[]; % Delete 1st column of Matrix A, which was used to Initialize it
parsol=inv(A'*A)*A'*Y;
BB=A*parsol;
% Generate Identified Output vector based on previous
% outputs, current and previous Inputs and Parameters solved by Least
% square method
n=length(y_out_vfy)-m;
I=eye(n,1)+1;
I(1)=I(1)-1; 
A=I;
for k=1:1:m-na
    A=[A y_out_vfy((m-k+1):(end-k))];
end

for p=1:1:m
    k=p-1;
    A=[A u_in_vfy((m-k+1):(end-k))];
end
A(:,1)=[]; % Delete 1st column of Matrix A, which was used to Initialize it
A;
y_out_sysID=A*parsol;

誰でも私を助けることができますか?

4

0 に答える 0