function FOQA_normalisation(LoadFile,minmax,savename,flightconfig,aircraftconfig,faultconfig,altimeseries,altimehours,simcountertxt)
intermediate=load(LoadFile);
load(minmax);
FOQA_data=intermediate.fdm;
names = fieldnames(FOQA_data);
no_of_channels = size(names);
min_max_channel_names = fieldnames(new_flight_data_min_max);
new_normalised_data = flight_data_object;
tf = logical(0);
pattern1 = '.mat';
replacement = '';
num_text1 = regexprep(LoadFile,pattern1,replacement);
pattern2 = 'sim';
replacement = '';
num_text = regexprep(num_text1,pattern2,replacement);
channel_map(29) = 0 ;
try
check_data = FOQA_data.Altitude_h_metres;
big_array=check_data.data;
endindex = length(FOQA_data.Altitude_h_metres.data);
time_is = endindex;
for m=1:size(big_array)
if big_array(m) <0
time_is = m;
break
end
end
before_end = (time_is-1);
A=[before_end:endindex];
trimmed_data.elevator_out = delsample(FOQA_data.elevator_out,'Index',A);
trimmed_data.aileron_out = delsample(FOQA_data.aileron_out,'Index',A);
trimmed_data.rudder_out = delsample(FOQA_data.rudder_out,'Index',A);
trimmed_data.throttle_out = delsample(FOQA_data.throttle_out,'Index',A);
trimmed_data.airspeed__knots_ = delsample(FOQA_data.airspeed__knots_,'Index',A);
trimmed_data.dec_sideslip = delsample(FOQA_data.dec_sideslip,'Index',A);
trimmed_data.dec_AOA = delsample(FOQA_data.dec_AOA,'Index',A);
trimmed_data.dec_Pitch_angle = delsample(FOQA_data.dec_Pitch_angle,'Index',A);
trimmed_data.dec_Bank_angle = delsample(FOQA_data.dec_Bank_angle,'Index',A);
trimmed_data.dec_Heading = delsample(FOQA_data.dec_Heading,'Index',A);
trimmed_data.Altitude_h_metres = delsample(FOQA_data.Altitude_h_metres,'Index',A);
trimmed_data.Fuel_mass_out = delsample(FOQA_data.Fuel_mass_out,'Index',A);
trimmed_data.Thrust_in_x_axis = delsample(FOQA_data.Thrust_in_x_axis,'Index',A);
trimmed_data.Fuel_Flow = delsample(FOQA_data.Fuel_Flow,'Index',A);
trimmed_data.X_E_out = delsample(FOQA_data.X_E_out,'Index',A);
trimmed_data.Y_E_out = delsample(FOQA_data.Y_E_out,'Index',A);
trimmed_data.Z_E_out = delsample(FOQA_data.Z_E_out,'Index',A);
catch sim_err
disp([sim_err.identifier]);
disp([sim_err.message]);
for e=1:length(sim_err.stack)
disp(['Error in ' sim_err.stack(e).file ' at line ' num2str(sim_err.stack(e).line)]);
end
disp(getReport(sim_err,'extended'));
extended_report = getReport(sim_err,'extended');
message_txt = strcat(extended_report, sim_err.message,' Error in ', sim_err.stack(e).file, ' at line ', num2str(sim_err.stack(e).line), ' sim no. ', simcountertxt);
sendolmail('jonititan@gmail.com','Sim Error',message_txt);
end
assignin('base','trimmed_data',trimmed_data);
size_of_min_Max = size(min_max_channel_names);
for y_not = 1:no_of_channels
this_channel_name_tmp = names(y_not);
this_channel_name = char(this_channel_name_tmp);
for y_not_indeed=1:size_of_min_Max
tmp_channel_no_here_num = y_not_indeed;
tmp_channel_no_here_str = num2str(tmp_channel_no_here_num);
tmp_channel_name_here = strcat('channel_',(tmp_channel_no_here_str));
comparison_name_channel = char(tmp_channel_name_here);
tf = strcmp(this_channel_name,new_flight_data_min_max.(comparison_name_channel).channel_name);
if tf == 1
channel_map(y_not) = y_not_indeed;
elseif tf == 0
end
end
end
for m = 1:no_of_channels
this_channel_name_tmp = names(m);
this_channel_name = char(this_channel_name_tmp);
this_channel_data = trimmed_data.(this_channel_name);
tmp_channel_no_here_num = channel_map(m);
tmp_channel_no_here_str = num2str(tmp_channel_no_here_num);
tmp_channel_name_here = strcat('channel_',(tmp_channel_no_here_str));
name_channel = char(tmp_channel_name_here);
filein_biggest = new_flight_data_min_max.(name_channel).biggest;
filein_smallest = new_flight_data_min_max.(name_channel).smallest;
biggest = max(this_channel_data);
smallest = min(this_channel_data);
file_change_flag = 0;
if biggest > filein_biggest
new_flight_data_min_max.(tmp_channel_name_here).biggest = biggest;
file_change_flag = 1;
end
if smallest < filein_smallest
new_flight_data_min_max.(tmp_channel_name_here).smallest = smallest;
file_change_flag = 1;
end
current_biggest = new_flight_data_min_max.(tmp_channel_name_here).biggest;
current_smallest = new_flight_data_min_max.(tmp_channel_name_here).smallest;
channel_range = new_flight_data_min_max.(tmp_channel_name_here).biggest-new_flight_data_min_max.(tmp_channel_name_here).smallest;
normal_name = strcat('Normalised_',this_channel_name);
normalised_data.(tmp_channel_name_here) = (this_channel_data-current_smallest)/(current_biggest-current_smallest);
normalised_data.(tmp_channel_name_here).name = normal_name;
end
new_normalised_data.channel_min_max = new_flight_data_min_max;
if file_change_flag == 1
save((minmax),'new_flight_data_min_max');
end
c = csvread('C:\Users\s140146\Documents\MATLAB\aerosondeBatchSim\counter.txt',0,0);
simcounter = c + 1;
altimeseries = FOQA_data.Altitude_h_metres.TimeInfo.End;
altimehours = (altimeseries/10)/3600;
simcountertxt = num2str(simcounter);
outputtsname = strcat('Aerosonde_Normalised_FOQA_data_v2_',(LoadFile),'Flight_length',(altimehours),datestr(now));
outputtsname = strrep(outputtsname,' ','_');
flight_data = aircraft_sim_save;
flight_data.name = outputtsname;
flight_data.flight_data = normalised_data;
flight_data.faultdata = faultconfig;
flight_data.aircraftdata = aircraftconfig;
flight_data.siminitialdata = flightconfig;
flight_data.flight_length = altimeseries;
flight_data.flight_length_hours = altimehours;
flight_data.data_channels_min_max = new_flight_data_min_max;
save((savename),'flight_data');
clear;
end
Error using FOQA_normalisation (line 11)
Not enough input arguments.