Master-Project/Simulink/model_identification.m
2021-06-02 10:43:38 +02:00

60 lines
1.4 KiB
Matlab

clear all
close all
clc
%%%%%%%%%%%%%%%%%%%%%%%
%% Set the run parameters
% Set the initial temperature to be the measured initial temperature
t0 = 23;
runtime1 = 161400;
runtime2 = 136200;
runtime3 = 208200;
runtime4 = 208200;
runtime5 = 208200;
runtime6 = 208200;
runtime7 = 553800;
runtime = 24 * 3600;
set_param('polydome', 'StopTime', int2str(runtime))
Tsample = 900;
steps = runtime/Tsample;
tin = Tsample *(0:steps)';
prbs_sig = 2*prbs(8, steps+1)' - 1;
COP = 5.0;
Pel = 6300;
power = [tin COP*Pel*prbs_sig(1:steps+1)];
%% Simulate the model
out = sim('polydome');
%% For manual simulation running
WeatherMeasurement = struct;
WeatherMeasurement.data = squeeze(out.WeatherMeasurement.data)';
WeatherMeasurement.time = out.WeatherMeasurement.time;
input = [power(:, 2:end) WeatherMeasurement.data];
Exp7_data = iddata(out.SimulatedTemp.data, input);
Exp7_table = array2table([input out.SimulatedTemp.data], 'VariableNames', {'Power', 'SolRad', 'OutsideTemp', 'SimulatedTemp'});
writetable(Exp7_table, 'Exp7_table.csv')
%%
save('Exp_CARNOT.mat', ...
'Exp1_data', 'Exp1_table', ...
'Exp2_data', 'Exp2_table', ...
'Exp3_data', 'Exp3_table', ...
'Exp4_data', 'Exp4_table', ...
'Exp5_data', 'Exp5_table', ...
'Exp6_data', 'Exp6_table', ...
'Exp7_data', 'Exp7_table' ...
)
data_train = merge(Exp1_data, Exp3_data, Exp5_data);
data_test = merge(Exp2_data, Exp4_data, Exp6_data, Exp7_data);