Loading...

Моделирование РЗА. Ч.2. Дискретное преобразование Фурье

В статье «Моделирование РЗА. Часть первая.» нам удалось записать файл в формате Comtrade, содержащий токи режима КЗ, воспроизведенного на тестовой модели энергосистемы в среде MATLAB Simulink.

Далее перейдем к созданию цифровой модели устройства РЗА, которая позволит нам протестировать поведение защиты в данном режиме КЗ и других режимах работы энергосистемы.

Ограничим задачу моделирования рамками максимальной токовой защиты, упрощенный алгоритм функционирования которой приведен на рисунке 1.

Рисунок 1. Алгоритм максимальной токовой защиты 

Моделирование РЗА: создание цифровой модели

В рамках этой работы нам потребуется решить три основные задачи:

— выполнить цифровую обработку сигналов осциллограммы для получения интегральных параметров – действующих значений токов основной частоты 50 Гц;

— разработать и реализовать алгоритм пускового органа максимальной токовой защиты, который выполняет сравнение интегральных параметров сигналов с уставкой срабатывания;

— создать модель логической части алгоритма функционирования защиты и объединить между собой все части модели.

Дискретная форма представления сигналов 

Сигналы токов, полученные с модели MATLAB Simulink, представлены в дискретном виде с постоянной частотой дискретизации – последовательность мгновенных значений сигналов, зафиксированных через равные интервалы времени. Подобное представление имеют сигналы токов и напряжений на выходе аналого-цифровых преобразователей (АЦП) устройств РЗА.

Пример дискретного сигнала приведен на рисунке 2. Пунктирной кривой зеленого цвета показан исходный непрерывный сигнал, окружностями красного цвета – его дискретный эквивалент – мгновенные значения («A0», «A1» и «A2»), зафиксированные на интервале времени от «t0» (текущий момент времени) до «t2» с постоянным шагом дискретизации «TS». Величина, обратная шагу дискретизации «TS», носит название частоты дискретизации. Обозначим ее «FS».

Рисунок 2.  Пример дискретного сигнала 

В файле Comtrade, полученном с тестовой модели, шаг дискретизации «TS» составляет 500 мкс, что соответствует частоте дискретизации «FS», равной 2000 Гц, и количеству выборок на период основной частоты сигнала «NS», равному 40.

Цифровая обработка сигналов

Работа алгоритма максимальной токовой защиты, как правило, основана на сравнении действующего значения первой гармонической составляющей измеренного тока с уставкой срабатывания.

Дискретное преобразование Фурье

Для выделения действующего значения гармоник сигналов воспользуемся фильтрацией с помощью дискретного преобразования Фурье по формуле:

Текст m-функции в программе MATLAB, реализующей вычисление действующего значения с помощью дискретного преобразования Фурье приведен ниже:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function [Ak] = fourier_calc(A, k)

global Ns;

global n;

ak=2/Ns*sum(A.*cos(k*2*pi.*n/Ns));

bk=-2/Ns*sum(A.*sin(k*2*pi.*n/Ns));

Ak=((ak^2+bk^2)/2)^0.5;

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Расчет действующего значения первой гармоники с помощью данной функции будем производить на каждом шаге дискретизации при получении каждой новой выборки, используя вновь полученное значение выборки и 39 значений выборок сигнала (Ns-1), полученных на предыдущих шагах дискретизации.

Ниже представлен текст «Protection.m» файла-сценария в программе MATLAB, который обеспечивает:

  • запуск на расчет модели энергосистемы в MATLAB Simulink и выгрузку результатов расчета режима КЗ в рабочую область программы;
  • вычисление действующих значений токов;
  • запись в формат Comtrade мгновенных значений токов, полученных из MATLAB Simulink, и действующих значений, рассчитанных в данном файле.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear all

close all

%%%%%%%%%Исходные данные%%%%%%%%%%

global Ns, Ns=40; %количество выборок на период сигнала — глобальная переменная (используется в м-функциях и Simulink-моделях)

global n,  n=0:Ns-1; %порядковый номер выборки в анализируемом окне — глобальная переменная (используется в м-функциях)

Моделирование КЗ

sim(‘M.slx’) %запуск Simulink-модели на расчет

%%%%%%%%%Вычисления%%%%%%%%%%%

for m=1:fix(length(DATA)) %Вычисления выполняем на каждом шаге получения нового значения выборок сигналов токов

    if m>=Ns %имеющееся количество выборок достаточно для выполнения расчета ДПФ

        Ia=(DATA(m:-1:m-(Ns-1),1))’;

        Ib=(DATA(m:-1:m-(Ns-1),2))’;

        Ic=(DATA(m:-1:m-(Ns-1),3))’;

    else %имеющееся количество выборок недостаточно для выполнения расчета ДПФ -> дополняем нулевыми значениями

        Ia=[(DATA(m:-1:1,1))’,zeros(1,Ns-m)];

        Ib=[(DATA(m:-1:1,2))’,zeros(1,Ns-m)];

        Ic=[(DATA(m:-1:1,3))’,zeros(1,Ns-m)];

    end

%%%%%%%вычисление ДПФ%%%%%%%%%%

    [Ia50(m)]=fourier_calc(Ia,1);

    [Ib50(m)]=fourier_calc(Ib,1);

    [Ic50(m)]=fourier_calc(Ic,1);

end

%%%%%%%%%Запись в Comtrade%%%%%%%%%%

DATA_ctr=[DATA, Ia50′, Ib50′, Ic50′]; %формирование массивы выходных данных

comtrade_generator; %запуск сценария генератора comtrade

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Запустим «Protection.m» на расчет и откроем осциллограмму «Osc», записанную MATLAB, в программе для просмотра и анализа осциллограмм «KIWI-Viewer». Как видно из рисунка 3 действующие значения, рассчитанные в программе MATLAB и в программе «KIWI-Viewer», совпадают.

 Рисунок 3. Осциллограмма «Osc» 

Таким образом мы выполнили верификацию нашей модели расчета действующего значения сигналов и можем переходить к следующему этапу.

Особенности моделирования РЗА

Строго говоря, приведенные формулы расчета действующего значения дают достоверный результат в случае, если основная частота сети совпадает с фундаментальным значением 50 Гц. При несовпадении данных частот, приведенный порядок расчета действующих значений не будет корректен и приведет к появлению погрешностей. В устройствах РЗА, использующих постоянную частоту дискретизации, применяют специальные мероприятия, позволяющие решить указанную проблему. Например — программную передискретизацию измеренных сигналов. А мы продолжим наше моделирования используя тестовые сигналы частотой 50 Гц.

Продолжение следует…

Приложение к материалу можно скачать здесь.

Содержание приложения:

  1. Protection.m – основной файл-сценарий расчета.
  2. fourier_calc.m – функция дискретного преобразования Фурье.
  3. comtrade_generator.m – генератор файлов Comtrade.
  4. channel.m – вспомогательная функция генератора Comtrade.
  5. M.slx – модель энергосистемы в MATLAB Simulink

Для расчета достаточно запустить основной сценарий «Protection.m».

toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel/a> toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel toto togel
sungaitoto