не менее 64)
K = 100;
% Определение числа точек в
исходном массиве мгновенного фликера
N_max = length(P_AB);
% Определение максимального значения мгновенного фликера
Max_F = max(P_AB);
% Задание исходных массивов функции плотности распределения и интегрального распределения мгновенного фликера
B = zeros(1, K); I = zeros(1, K);
% ПОЛУЧЕНИЕ ФУНКЦИИ ПЛОТНОСТИ РАСПРЕДЕЛЕНИЯ
% Для каждого класса делаем
for k = 1 : 1 : K
i = 0; % рабочая переменная, показывающая количество точек в каждом классе функции плотности распределения
% Для каждого значения исходного массива «P_AB» делаем
for n = 1 : 1 : N_max
% Если значение попадает в заданный класс, тогда для этого класса прибавляем единицу
% верхний уровень класса % нижний уровень класса
if (P_AB(n) <= Max_F*k/K) && (P_AB(n) > Max_F*(k-1)/K)
i = i + 1;
% Если нет, то ничего не делаем;
end; % Конец внутреннего цикла
% Определяем сколько точек попало в каждый класс
B(k) = i;
end; % Конец внешнего цикла
Исходной информацией для расчетов кратковременных доз фликера являются массивы мгновенных значений фликера «Р_АВ, ВС, СА» и времени «Time_1», формируемых основной моделью анализатора качества электроэнергии.
Вспомогательная программа, реализующая работу классификатора фликерметра
% ПОЛУЧЕНИЕ ФУНКЦИИ ИНТЕГРАЛЬНОЙ ВЕРОЯТНОСТИ
% Определяем конечное значение функции интегрального распределения
I(K) = B(K);
% Для каждого класса функции плотности распределения выполняем следующее действие: последовательно складываем, начиная с конца массива «В», значения «n» для каждого класса, т.е. проводим интегрирование функции «В»
for k = (K-1) : -1 : 1
I(k) = I(k+1) + B(k) end;
% Находим функцию интегральной вероятности
I_per = I*100/N_max;
% ОПРЕДЕЛЕНИЕ ЗАДАННЫХ УРОВНЕЙ ФЛИКЕРА
% Для каждого класса функции интегральной вероятности делаем сравнение
for k = 1 : 1 : K
if I_per(k) > 0.1 P0.1 = Max_P*k/K end;
if I_per(k) > 0.7 P0.7 = Max_P*k/K end;
if I_per(k) > 1.0 P1.0 = Max_P*k/K end;
if I_per(k) > 1.5 P1.5 = Max_P*k/K end;
if I_per(k) > 2.2 P2.2 = Max_P*k/K end;
if I_per(k) > 3.0 P3.0 = Max_P*k/K end;
if I_per(k) > 4.0 P4.0 = Max_P*k/K end;
if I_per(k) > 6.0 P6.0 = Max_P*k/K end;
if I_per(k) > 10 P10 = Max_P*k/K end;
if I_per(k) > 13 P13 = Max_P*k/K end;
if I_per(k) > 17 P17 = Max_P*k/K end;
if I_per(k) > 30 P30 = Max_P*k/K end;
if I_per(k) > 50 P50 = Max_P*k/K end;
if I_per(k) > 80 P80 = Max_P*k/K end;
% Определение сглаженных уровней фликера
P1S = (P0.7 + P1 + P1.5)/3;
P3S = (P2.2 + P3 + P4)/3;
P10S = (P6 + P8 + P10 + P13 + P17)/5;
P50S = (P30 + P50 + P80)/3;
% РАСЧЕТ КРАТКОВРЕМЕННОЙ ДОЗЫ ФЛИКЕРА
P_St = sqrt(0.0314*P0.1 + 0.0525*P1S + 0.0657*P3S + 0.28*P10S + 0.08*P50S);
% Уровни фликера Р0.1, Р0.7, Р1.0 и т.д. характеризуют значения мгновенного фликера, которые были превышены в течение 0,1%, 0,7%, 1% … времени за интервал наблюдения 10 мин.