load data_testroom_scaled
ts = 1; % discrete sampling time
r = 4; % rank of parameter tensor for approximation
% Store Data in iddata Object
dataId=iddata(x_sc(1:200,:),u_sc(1:200,1:2),ts,'Outputname',name(5:6),'Inputname', name(1:2),'TimeUnit','minutes'); % identification data
dataVal=iddata(x_sc(1:1440,:),u_sc(1:1440,1:2),ts,'Outputname',name(5:6),'Inputname', name(1:2),'TimeUnit','minutes');% validation data
% Estimate MTI Model from data
[sys,cost]=mlgreyest(dataId,r,"Method","als"); % estimate structure and parameter matrix
Identification finished: number of iterations: 200, final cost: 0.84912
% Simulation for validation
x0 = dataVal.y(1,:)'; % initial state
xsim=msim(sys,dataVal.u,length(dataVal.y), x0);
% Plot simulated vs. measured output
legend(dataVal.Inputname)
plot([dataVal.y(:,1) xsim(1:end-1,1)])
legend([dataVal.OutputName(1) 'simulation'])
title(['Rank-' num2str(r) ' Approximation Output 1'])
plot([dataVal.y(:,2) xsim(1:end-1,1)])
legend([dataVal.OutputName(2) 'simulation'])
title(['Rank-' num2str(r) ' Approximation Output 2'])