Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

qgsjxmfs

.pdf
Скачиваний:
23
Добавлен:
31.03.2015
Размер:
6.07 Mб
Скачать

рисунке.

После этого в текстовом поле Text отобразится ссылка на положение ползунка Ron "%DraftVariables|Ron%". В это же текстовое поле перед или после ссылки можно добавить произвольную поясняющую надпись "Fault Resistance:" для отображения на графике, как приведено на рисунке.

Таким образом, на виртуальном стенде RunTimes на графике будут отображаться поясняющая надпись и соответствующие значения ползунков Ron и length, как приведено на рисунке.

7.3ФУНКЦИЯ ЗАПИСИ И ВОСПРОИЗВЕДЕНИЯ СЦЕНАРИЯ В RUNTIME

Функция записи предназначена для записи последовательности действий оператора по управлению виртуальным стендом в виде текстового файла-сценария. Например, если во

RTDS

7-6

 

 

время записи файла-сценария был произведен запуск симуляции, то команда Start запишется в выходной файл.

Для начала записи файла-сценария последовательно кликните Script−>New на панели инструментов RunTime. Появится окно для задания имени файла-сценария.

Введите имя файла-сценария "rec_play.scr", после чего в RunTime появится панель инструментов файла-сценария, как показано на рисунке.

Запись начнется по клику на кнопку начала записи сценария (Record Script) на панели инструментов. Все производимые оператором действия будут записываться в файлсценарий.

Начните запись и выполните следующие действия:

запустите симуляцию;

установите переключатель вида КЗ AG в положение 1;

установите переключатели вида КЗ BG и CG в положение 0;

на ползунке FLTDUR задайте длительность КЗ равной 0.1 с;

сформируйте КЗ кликом на кнопку Fault;

остановите симуляцию.

Остановите запись сценария кликом по кнопке Stop на панели инструментов.

После остановки записи создается файл-сценарий, в котором сохранены все действия оператора. В данном примере создается файл-сценарий с именем "rec_play.scr". Для просмотра содержимого файла-сценария кликните по кнопке редактирования (Edit Script) на панели инструментов.

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

SUSPEND 1.59;

Start;

SUSPEND 5.265;

SetSwitch "Subsystem #1 : CTLs : Inputs : AG" = 1;

SUSPEND 0.807;

SetSwitch "Subsystem #1 : CTLs : Inputs : BG" = 0;

SUSPEND 0.88;

RTDS

7-7

 

 

SetSwitch "Subsystem #1 : CTLs : Inputs : CG" = 0;

SUSPEND 6.321;

SetSlider "Subsystem #1 : CTLs : Inputs : FLTDUR" = 0.1;

SUSPEND 4.224;

PushButton "Subsystem #1 : CTLs : Inputs : Fault";

SUSPEND 0.208;

ReleaseButton "Subsystem #1 : CTLs : Inputs : Fault";

SUSPEND 2.782;

Stop;

Команда SUSPEND означает приостановку на указанное в параметре время (в секундах) и соответствует времени, потребовавшемуся пользователю для выполнения следующего действия. Значение параметра будет различным для каждой новой записи сценария. Для увеличения скорости выполнения сценария можно вручную редактировать или удалять значения параметра suspend.

Команда SetSwitch записывается при действиях с переключателями AG, BG и CG. В качестве аргумента команды указывается имя и положение переключателя.

Команда SetSlider записывается при действиях с ползунком FLTDUR и задании значения 0.1 (секунд). В качестве аргумента команды указывается имя и положение ползунка.

Команды PushButton и ReleaseButton записываются при нажатии и отпускании кнопки Fault соответственно. В качестве аргумента команды указывается имя кнопки.

Команды Start и Stop записываются при начале и завершении симуляции, соответственно. Команды не требуют аргументов и их необязательно включать в состав файласценария. Файл-сценарий может воспроизводиться в любое время: перед началом, во время и после завершения симуляции.

Теперь файл-сценарий можно воспроизвести в существующем виде или отредактировать. Для воспроизведения записанного файла-сценария кликните по кнопке запуска Run Script на панели инструментов. Необходимо отметить, что в RunTime все записанные в файлесценарий команды будут воспроизводиться в строгом соответствии с файлом без учета фактического состояния виртуального стенда.

7.4РЕЖИМ ПАКЕТНОЙ ОБРАБОТКИ

Как было сказано выше, режим пакетный обработки предназначен для автоматического выполнения нескольких случаев моделирования без участия пользователя. Для создания такого автоматического режима выполнения команд можно в качестве основы использовать файл-сценарий и добавить в него дополнительные функции, аналогичные используемым в языке Си. В этом уроке создается сценарий, в котором будет последовательно симулироваться 27 случаев моделирования согласно приведенной ниже блок-схеме.

RTDS

7-8

 

 

Задать удаленность места КЗ

Задать тип КЗ

Задать сопротивление КЗ

Запуск счетчика Запуск симуляции Формирование КЗ Построение графика Завершение симуляции Изменить сопротивление КЗ

Цикл "по сопротивлению КЗ" до 3

Изменить тип КЗ

Цикл "по типу КЗ" до 3

Изменить удаленность места КЗ

Цикл "по удаленности места КЗ " до 3

Конец

Рисунок 7.1 – Блок-схема пакетной обработки сценария

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

задайте положение ползунка длины до места КЗ;

задайте положение ползунка сопротивления в месте КЗ;

задайте положение переключателя КЗ в фазе А на землю (AG) равным 1;

RTDS

7-9

 

 

задайте положения переключателей КЗ в фазах B и С на землю (BG и CG) равными 0;

запустите симуляцию;

сформируйте КЗ нажатием на кнопку Fault;

ожидайте построения графика;

остановите симуляцию.

После этого отредактируйте записанный файл-сценария, как показано ниже. Для этого кликните по кнопке Edit Script на панели инструментов. Некоторые строки в данном примере пронумерованы /* LINE n */, а ниже приведены соответствующие им пояснения и комментарии.

/*

Variable Declaration

*/

int j,k,i,loop_counter;

/* Line 1 */

float llength[3],res[3];

 

int fault_typeA[3],fault_typeB[3],fault_typeC[3];

 

/***************************************************/

/*

Initialization

*/

llength[0] = 40.0;

/* Line 2 */

llength[1] = 50.0;

 

llength[2] = 80.0;

 

res[0] = 0.1;

 

 

res[1] = 1.0;

 

 

res[2] = 5.0;

 

 

fault_typeA[0] = 1;

 

fault_typeA[1] = 0;

 

fault_typeA[2] = 0;

 

fault_typeB[0] = 0;

 

fault_typeB[1] = 2;

 

fault_typeB[2] = 0;

 

fault_typeC[0] = 0;

 

fault_typeC[1] = 0;

 

fault_typeC[2] = 4;

 

for (j=0;j<3;j++)

 

/* Line 3 */

{

 

 

/* Set the preprocessor variable length */

 

SetSlider "DraftVariables : length" = llength[j];

/* Line 4 */

for (k=0;k<3;k++)

{

/* Set the fault type */

SetSwitch "Subsystem #1 : CTLs : Inputs : AG" = fault_typeA[k]; SetSwitch "Subsystem #1 : CTLs : Inputs : BG" = fault_typeB[k]; SetSwitch "Subsystem #1 : CTLs : Inputs : CG" = fault_typeC[k];

for (i=0;i<3;i++)

 

{

 

loop_counter++;

/* Line 5 */

/* Set the fault resistance */

SetSlider "DraftVariables : Ron" = res[i];

fprintf(stdmsg,"Running Simulation Case Number %d\n",loop_counter); /* Line 6 */

 

Start;

RTDS

7-10

 

WAIT 2.694;

 

PushButton "Subsystem #1 : CTLs : Inputs : Fault";

 

WAIT 0.261;

 

ReleaseButton "Subsystem #1 : CTLs : Inputs : Fault";

//

PlotPrint "Fault Bus";

 

Stop;

 

}

}

 

}

 

Line 1 – все переменные должны быть заранее объявлены перед использованием их в сценарии;

Line 2 – массив данных llength инициализируется для задания удаленности до места КЗ в позициях 40%, 50% и 80%. Массивы данных fault_type инициализируются для задания вида КЗ на землю в следующей последовательности: сначала фаза А, затем фаза В и последняя фаза С. Сопротивление в месте КЗ задано в массиве res значениями 0.1, 1.0 и 5.0 Ом;

Line 3 – добавлены три цикла for. Все циклы выполняется по три раза. Во внешнем цикле изменяется переменная length, во вложенном цикле –вид КЗ fault_type, во внутреннем цикле – сопротивление КЗ res и выполняются команды: запуск симуляции, формирование КЗ и построение графика;

Line 4 – задание команды с переменной в качестве аргументов. Команда SetSlider задается массивом llength. Значение “j” определяет, какой элемент массива будет использован.

Line 5 – на каждом цикле симуляции счетчик циклов loop_counter увеличивается на единицу;

Line 6 – функция fprintf используется для вывода в окне сообщений RunTime

надписи “Running simulation Case Number #” (Выполняется цикл симуля-

ции N) во время выполнения сценария.

После редактирования файла-сценария воспроизведите его. Обратите внимание на сообщение fprintf в окне сообщений RunTime в ходе выполнения сценария. Согласно блок-схеме на рисунке 7.1. выполняются все 27 циклов симуляции.

Зачастую в ходе выполнения файла-сценария требуется использовать данные, полученные

входе симуляции, в последующих шагах сценария. Для этого такие данные должны быть объявлены как внешние переменные. Панель инструментов имеет функцию записи внешних переменных в файл-сценария для дальнейшего использования. Воспользоваться этой опцией возможно только во время операции записи. Для добавления внешней переменной

всуществующий сценарий в пакетном режиме сделайте следующее:

кликните по кнопке продолжения записи Append to Script на панели инструментов. Функция продолжения записи выполняет запись новых команд в конец файла-сценария, а не поверх имеющихся команд;

кликните по кнопке внешних переменных External Variable на панели инструментов. При этом открывается окно выбора сигналов;

добавьте узел N7 в качестве внешней переменной;

остановите запись сценария.

Теперь файл-сценарий должен содержать следующее объявление внешней переменной:

external ”Subsystem #1 : Node Voltages : S1) N7”;

Для объявленной внешней переменной отображаемое в кавычках имя является ее фактическим именем. Это имя переменной очень громоздкое и потому его неудобно использовать. Можно присвоить новое имя упомянутой переменной путем указания его после ко-

RTDS

7-11

 

 

нечных кавычек, как показано ниже.

external ”Subsystem #1 : Node Voltages : S1) N7”Volts;

В файле-сценария в качестве ссылки на напряжение в узле N7 теперь может использовать переменную Volts. Объявление внешней переменной может находится в любом месте текста файла-сценария, но обязательно до первого использования этой переменной. Как правило, объявление внешних переменных приводится в самом начале файла-сценария. Для регистрации пиковых значений напряжения в узле N7 в установившемся режиме во время симулирования переместите строку с объявлением внешней переменной в самое начало файла-сценария и введите в текст кода сценария следующие дополнения, выделенные жирным шрифтом.

external ”Subsystem #1 : Node Voltages : S1) N7”Volts;

float llength[3],res[3],pk_volts;

Start;

UpdatePlots;

pk_volts = arraymax(Volts);

fprintf(stdout,”Fault Bus Voltage = %f kV\n”,pk_volts);

Функция fprintf выполняет запись пикового значения напряжения Volts в файл с именем "stdout". Затем этот файл можно просмотреть в RunTime, если кликнуть по кнопке просмотра View Output на панели инструментов.

Более подробные сведения о командах выполнения сценариев приведены во встроенной справке RunTime.

RTDS

7-12

 

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]