function [] = FitColumn(filename) %FitColumn Find the best fitting second order exponential function for %dataset % read in dataset and then for each rocof column determine exponential % fit that best fits the event data. [~, name, ~] = fileparts(filename); rocof_ds = datastore(filename, 'TreatAsMissing', 'NA'); rocof_data = readall(rocof_ds); rocof_data = rmmissing(rocof_data); % ensure data for all columns rocof_data = table2array(rocof_data); % for each PMU column tab = zeros(3,4); for ii = 1:3 jj = ii*10 + 1; % skip time column filtered_data = FilterData(rocof_data(:,jj)); [start_t, stop_t] = FindEventPeriod(filtered_data); [exp_coeff, exp_func] = DecayFit(filtered_data(start_t:stop_t)); for kk = 1:length(exp_coeff) tab(ii,kk) = exp_coeff(kk); end fig = figure('units', 'inches', 'papersize', [8,8]); subplot(1,1,1); hold on plot(rocof_data(start_t:stop_t,jj)) plot(exp_func) hold off %subplot(1,2,2); %hold on %plot(rocof_data(:,jj)) %plot(filtered_data) %hold off print(fig,... strcat("..\plots\",name, int2str(ii)), '-dpdf', '-fillpage'); end T = array2table(tab); T.Properties.VariableNames = {'etta', 'Wn', 'A', 'GoF'}; writetable(T, "..\output\" + name + "_coeff.csv"); end