Перейти к содержанию

3.6. Изменение РМ (в текстовом формате)

Каждая инструкция начинается с новой строки.

После знака решётки «#» текст не выполняется.

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

Изображение

3.6.1. Команды

3.6.1.1. Команда «изменить»

Команда позволяет изменить значение (или группу значений) полей в таблицах RastrWin3 в формате: [Выборка в таблицах: Значение параметров].

Выборка в таблицах:

Если несколько выборок, то указываются через «;» (например, «area.no=2; node.npa=10»). Сначала указывается название таблицы, после точки выборка в таблице. Если корректировать необходимо все строки таблицы, то необходимо указать только имя таблицы, например, «node; vetv».

Имя таблицы указывать не необходимо, если используются следующие ключи:

'ny' – таблица узлы (node);

'Num', 'g' - таблица генераторы (Generator);

'na' - таблица районы (area);

'npa' - таблица территории (area2);

'no' - таблица объединения (darea);

'nga' – таблица нагрузочные группы (ngroup);

'ns' - таблица сечения (sechen).

Например, «na=10; g=4».

Также можно использовать краткую форму записи:

выборка по узлам: «12;21», вместо «node.ny=12; node.ny=21»;

выборка по ветвям: «12,13,2», вместо «vetv.ip=12&iq=13&np=2». Если np=0, то выборка по ветвям можно записать еще короче: «12,13».

При использовании краткой формы название таблицы указывать не следует.

Значение (параметра).

Значение параметра указывается в формате: параметр = значение параметра. Значение параметра может быть задано в виде формулы. Если несколько заданий, то указываются через «;». Например, «pn=2; qn=pn*0.4». При задании поля b в таблице ветви или поля bsh в таблице узлы необходимо указать значение, поделённое на 1 000 000. Например, БСК с шунтом -4190 необходимо задать как bsh=-0.004190.

Примеры использования:

изменить [3: name=Промплощадка: 1 сш 110 кВ]

изменить [node.na=11; vetv: sel=1] {years: 2026} # Отметить узлы в таблице узлы 11 района и все ветви только в 2026 г;

изменить [vetv; area; area2; darea: Tc=0] # Обнулить температуру;

изменить [vetv; node: disable=0; control=0; repair_scheme=; disable_scheme=; double_repair_scheme=]

изменить [Generator: disable=0; repair_scheme=; disable_scheme=; double_repair_scheme=]

изменить [node.npa=1: pn = pn * 0.8; qn = qn * 0.8] # изменить нагрузку территории 1;

При корректировке нагрузки в узле следует иметь в виду, что в таблице Load могут содержаться нагрузки, относящиеся к корректируемому узлу, и менять необходимо значения в этой таблице.

Также можно при задании числового значения использовать ссылку на значения таблиц RastrWin3, используя краткую форму выборки (без явного указания имени таблицы). Перед получением значения в формуле выполняется расчёт режима.

Например:

изменить [1: pg=10 + 15: pg] # Значению pg узла 1 присвоить значение 10 + pg узла 15.

изменить [1: pn = (10.5 + 2: pn + g=7: P + Load.Num=5: P) * uhom]

изменить [1,2: x = (10.5 + 15,16,2: r) * ip.uhom]

3.6.1.2. Команда «изменить ключ»

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

Примеры:

изменить ключ [10: 20] # Изменить ключ узла

изменить ключ* [10: 20] # Изменить ключ узла соответствующим изменением ключевых полей в других таблицах

изменить ключ [10,20: 20,10] # Поменять начало и конец ветви

изменить ключ*[na=11: 1] # Поменять номер района в таблице area, и прочих связанных

3.6.1.3. Команда «дублировать»

Скопировать строку в произвольной таблице по уникальному ключу и задать уникальное значение ключа новой строки.

Примеры:

дублировать [15: 2] # Дублировать узел 15 и задать ему ключ (ny) 2

дублировать [15,20: 2,2,1] # Дублировать ветвь 15,20 и задать ей ключ (ip,iq,np) 2,2,1

дублировать [g=12: 121] # Дублировать генератор 12 и задать ему ключ (Num) 121

дублировать [Load.Num=3: 121]

3.6.1.4. Команда «добавить»

Добавить строки в таблицы RastrWin3 в формате:

[имя таблицы: значения полей новой строки в таблице через «;»].

Например:

добавить [node: ny=3; pn=1; uhom=120; na=11; name=Новый узел]

добавить [vetv: ip=15524; iq=3; np=3; x=2; r=1.5; b=-0.000182]

3.6.1.5. Команда «добавить выключатели»

Добавить выключатели:

  • для ветви. Добавить выключатели по концам ветви. Параметр end указывается с какой стороны добавить выключатель. С начала ветви ip, с конца ветви iq. Необязательный, по умолчанию имеет значение ip, iq – добавить выключатели в начале и конце ветви.

  • для узла. Добавить выключатели в цепи отходящих ветвей. Параметр sel_vetv выборка в таблице ветви (по умолчанию все ветви). Например, sta=0 – все включенные ветви, tip=0 – только ЛЭП.

В параметре key указывается номер узла или ключ ветви.

Название созданных узлов для «ВЛ 220 кВ Юг – Север» примыкающего к узлу с именем «Юг: 1 сш» будет «ВЛ 220 кВ Юг – Север со стороны Юг: 1 сш».

Через параметр split_name можно указать разделитель, после которого будет отбрасываться часть имени узла. Например, «split_name=:» название нового узда будет «ВЛ 220 кВ Юг – Север со стороны Юг».

Новые узлы будут создаваться со следующим свободным номером после указанного в параметре start_ny (необязательный, значение по умолчанию - 1).

Например:

добавить выключатели [key=3,5]

добавить выключатели [key=12,22,2; start_ny=1; end=ip]

добавить выключатели [key=3; sel_vetv=sta=0; start_ny=10; split_name=:]

3.6.1.6. Команда «удалить»

Удалить строки в таблицах RastrWin3 в соответствии с выборкой в квадратных скобках (выборка аналогично команде «изменить»). Команда «удалить*» позволяет удалять узлы с генераторами и отходящими ветвями.

Например:

удалить [1; 3,4,1; Num=8; g=9] # Удалить узел 1, ветвь 3,4,1 и генераторы 8 и 9;

удалить* [1; 2,4] # Удалить узел 1 с отходящими ветвями и генераторами в узле и ветвь 2,4,0;

удалить [area.na=2] # Удалить район 2 из таблицы area.

3.6.1.7. Команда «импорт»

Импорт данных из моделей.

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

Например:

импорт [папка: (I:\МДП); таблица: node; тип:2; поле: pn, qn; выборка:]

импорт [файл: (I:\pp.rg2); таблица: node, vetv; тип:2; поле: sel,sta; выборка: sel]

Тип: обновить - 2 , загрузить - 1, присоединить - 0, присоединить-обновить – 3.

3.6.1.8. Команда «снять отметку»

Снять отметку (sel=0) во всех таблицах.

3.6.1.9. Команда «текст»

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

  • Английские буквы, имеющие схожий вид с русскими буквами, меняются на русские буквы;
  • Удаляются пробелы в начале и в конце строки;
  • Два пробела заменяются на один. Выборка в формате [имя_таблицы1: имя_поля1, имя_поля2; имя_таблицы2: имя_поля].

Например:

текст [node: name, dname; vetv: dname; Generator: Name]

3.6.1.10. Команда «СХН»

Добавить номера статических характеристик нагрузки - СХН в узлах (поле nsx в таблице node). Если uhom > 100, то nsx=1, если uhom < 100, то nsx=2.

Выборка в таблице узлы указывается в квадратных скобках.

Например:

СХН

СХН [na=11]

3.6.1.11. Команда «сечение»

Изменение перетока активной мощности в сечении. Работает не во всех РМ..

Формат задания:

  • ns: номер сечения;

  • p_new: требуемый переток мощности (значение, pmax или pmin (pmax, pmin берутся из соответствующих полей таблицы сечения));

  • method: pg - изменять генерацию отмеченных узлов и генераторов (если узел отмечен, то используются все генераторы в узле), pn - изменять нагрузку отмеченных узлов;

  • gen_not_disable: true / false – не отключать генераторы (для сохранения выработки реактивной мощности). По умолчанию false.

Узлы (method: pg, pn) и генераторы (method: pg) необходимо предварительно отметить (в таблице генераторы должно присутствовать поле sel).

В процессе выполнения генераторы могут включаться и отключаться, состояние узлов не меняется.

Поле Pmin генераторов и pg_min узлов не учитывается.

Пример:

сечение [ns= 1; p_new= 1500.5; method= pn]

сечение [ns=2; p_new= pmax; method= pg; gen_not_disable= true]

3.6.1.12. Команда «дтн»

Выполняется расчёт допустимой токовой нагрузки ветвей для температуры, указанной в квадратных скобках или в названии файла (аналогично нажатию F9 в RastrWin3). Если в таблицах ветви, районы, территории, объединения заполнено поле «Tc», то оно будет расчётным (для справки, в таблице ветви имеется поле na, npa).

Пример:

дтн [10] # расчёт дтн для 10°C

дтн # расчёт дтн для температуры, указанной в имени файла

3.6.1.13. Команда «расчёт»

Расчёт режима.

3.6.1.14. Команда «print»

Вывод заданных параметров из моделей. Команду можно использовать произвольное количество раз и с разными параметрами. В папке с результатами работы программы появится файл «Вывод параметров РМ.xlsx».

Пример:

print [2,4: r; x; b / 2; 5: pn; qn / sechen.ns=2: psech]

3.6.1.15. Команда «проверка схемы» и «исправление схемы»

Проверяется:

  • наличие узлов без ветвей (n);

  • ветвей без узлов начала или конца (v);

  • генераторов в несуществующих узлах (g).

Таблицы также проверяются на наличие пустых строк (отсутствие ключевых полей).

Если используется команда «исправление схемы», то найденные элементы удаляются.

Пример:

проверка схемы [ngv]

исправление схемы [nv]

3.6.1.16. Команда «задать допустимые напряжения»

В таблице узлы заполнить пустые поля:

  • umin (uhom1.150.7);

  • umin_av (uhom1.10.7), если uhom>=110;

  • umax [7.2, 12, 40.5, 126, 252, 363, 525, 787];

  • umax_av = umax * 1.1, если uhom>=110.

Пример:

задать допустимые напряжения [na=11: umax, umax_av, umin, umin_av] # поля: выборка в таблице узлы

3.6.1.17. Команда «проверка напряжений» и «исправление напряжений»

Проверяется:

  • проверка номинального напряжения узлов на соответствие ряду [35, 110, 220, 330, 500, 750];

  • проверка условия umax > uhom, umin < uhom, umin_av < uhom.

Если используется команда исправление напряжений, то изменения вносятся в таблицу узлы:

  • исправляются номинальные напряжения:

  • обнуляется umax, если его значение ниже uhom, обнуляется umin, umin_av, если их значение выше uhom.

Пример:

проверка напряжений [na=11] # выборка в таблице узлы

исправление напряжений # исправить все узлы.

3.6.1.18. Команда «проверка ветвей»

Проверка наличия номера зависимости n_it и n_it_av в таблице graphikIT.

Пример:

проверка ветвей [na=11] # выборка в таблице узлы

3.6.1.19. Команда «проверка генераторов» и «исправление генераторов»

Контроль параметров генераторов: P > Pmin, P < Pmax, наличие NumPQ в таблице graphik2.

Пример:

проверка генераторов [na=11] # выборка в таблице узлы

исправление генераторов # исправить во всей таблице узлы.

3.6.1.20. Команды «добавить тег», «удалить тег»

Добавить или удалить тег в названии файла.

Пример:

добавить тег [МДП] # Имя файла изменится, например, с «2026 зим макс.rg2» на «2026 зим макс (МДП).rg2»

удалить тег [МДП]

3.6.1.21. Команда «СКРМ»

Команда позволяет включать или отключать узел, в котором задано средство компенсации реактивной мощности (СКРМ: БСК и ШР) в зависимости от напряжения:

  • при номинальном напряжении < 300 кВ:

БСК включается, ШР отключается при напряжении ниже 0,95*Uном

БСК отключается, ШР включается при напряжении выше 1,14*Uном;

  • при номинальном напряжении > 300 кВ:

БСК включается, ШР отключается при напряжении ниже 0,98*Uном

БСК отключается, ШР включается при напряжении выше 1,05*Uном.

U U<300 U<300 U>300 U>300
U 0.95 1.14 0.98 1.05
6 5.7 6.84
10 9.5 11.4
35 33.25 39.9
110 104.5 125.4
220 209 250.8
500 490 525

СКРМ следует задать в отдельном узле с указанием значения 'bsh':

  • не должно быть значений в полях 'pn', 'qn', 'pg', 'qg';

  • подключение к сети через одну ветвь.

Изображение

В таблице узлы (node) расчётных моделей также можно указать в текстовом поле «AutoBsh» уставки срабатывания по напряжению и указать номер узла, в котором следует контролировать напряжение. Например:

  • для БСК «105-126.5; 100» – включить узел с БСК при напряжении ниже 105 кВ, отключать при напряжении выше 126.5 кВ в узле 100;

  • для ШР «105-126.5; 101» – отключить узел с ШР при напряжении ниже 105 кВ, включить при напряжении выше 126.5 кВ в узле 101;

  • «105-126.5» если узел в поле «AutoBsh» не указан, то напряжение контролируется в узле с СКРМ или в узле, к которому он подключен.

Пример:

СКРМ [na=11] # [Выборка в таблице узлы] включать и отключать только узлы, где задано поле «AutoBsh»

СКРМ* [na=11|na=12] # включать и отключать все узлы с СКРМ, в том числе, где не заполнено поле «AutoBsh».

3.6.1.22. Команда анализ графа сети «анализ [-]»

Для сети 110 кВ и выше в РМ определяются:

  • транзитные ветви (поле «transit» в таблице vetv заполняется номером транзита);

  • промежуточные узлы на транзитах (поле «transit» в таблице node заполняется номером транзита);

  • узлы, в которых сходятся несколько транзитов (поле «transit» в таблице node заполняется значением, которое соответствует количеству транзитов со знаком минус).

Если в квадратных скобках указать выборку в таблице узлы, например, [na=1], то для указанной выборки в РМ будет отмечено поле «disable» в таблицах vetv и node.

3.6.1.23. Команда «выход»

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

3.6.1.24. Команда «настройки»

Изменение настроек режима (меню RastrWin3: расчёты -> Параметры -> Режим).

Возможные ключи таблицы com_regim:

  • neb_p;

  • it_max;

  • start;

  • flot;

  • dv_min;

  • dv_max;

  • dd_max;

  • status;

  • rr;

  • wt;

  • gen_p;

  • load_p;

  • method;

  • method_ogr;

  • print_mode;

  • qmax;

  • min_x;

  • calc_tr;

  • nag_p;

  • rem_breaker;

  • gram;

  • ctrl_baza;

  • itz;

  • itz_ogr_max;

  • itz_ogr_min;

  • min_nodes_in_island;

  • max_slp_sxn;

  • min_slp_sxn;

  • u_krit;

  • check_det;

  • it_max_det;

  • u_step_max;

  • delta_step_max;

  • delta_ij_step_max.

Пример:

настройки [neb_p = 0.5; dv_max = 4] # Точность расчёта 0.5, макс. допустимое повышение напряжения 4

3.6.1.25. Команда «преобразовать узел в шину»

Преобразование узла в шину с заданным порядком распределения ветвей. Создаются новые узлы (шины), ветви переподключаются к новым узлам, между соседними узлами создаются связующие ветви с малым сопротивлением (r= 0,001).

Формат задания [ny: new_ny=ip,iq;… ; groupid=_]:

ny: номер преобразуемого узла;

new_ny — номер нового узла (шины), к которому переподключается ветвь (для одной из ветвей этот узел должен быть равен ny);

ip,iq,np — ключ ветви;

groupid (опционально): номер группы для новых ветвей между узлами шины.

Если исходный ny не использован, то он будет удален.

Примеры:

преобразовать узел в шину [1: 2=1,2; 1=3,4; groupid=10]

3.6.2. Условие выполнения

Условие выполнения команд указывается в фигурных скобках. В условии могут быть использованы следующие операторы:

+;

-;

();

& - и;

| - или;

*;

/;

== - проверка на равенство;

!= - проверка на не равенство;

, <, <=, =<, >=, =>;

not – отрицание (указывается в начале выражения или сразу после «(» )

True;

False.

Если для проверки условия требуются значения из таблиц РМ, то выполняется расчёт УР.

Примеры:

снять отметку {years: 2026 & season: лет & max_min: мин | tags: 0°C}

{years: 2026, 2026…2029== False & (ny=1: vras > 125) | (not (ny=1: na==2))}

Также в условии можно использовать следующие условности:

  • Если перед закрывающейся фигурной скобкой поставить «», то действие будет выполняться пока условие истинно (не более 1000 раз), например: изменить [15:pn=pn+10] {15: vras > 100} # Увеличивать нагрузку узла пока напряжение не снизится ниже 100 кВ.

  • Получение индекса элемента в таблице. Можно использовать для проверки наличия элемента (например, узла) в РМ. Для несуществующего элемента индекс равен «-1» , например: изменить [1:pn= 1] {1: index > -1} # Задать нагрузку узла, если он имеется в РМ.

удалить* [1] {1: index > -1} # Удалить узел при наличии в РМ.

добавить [node: ny=1] {1: index == -1} # Добавить узел при отсутствии в РМ.

  • Проверка режима на сходимость «rgm», например: выход { (years: 2026) & (not rgm) } # Выход, если год 2026, режим не сошелся.

3.6.3. Полезные задания

3.6.3.1. Переименование файлов РМ

добавить тег [5 °C] {season: зим & tags: tср} # Зима ГОСТ

добавить тег [минус 27 °C] {season: зим & (not tags: tср)} # Зима ХП

добавить тег [25 °C ПЭВТ] {tags: tэкст} # ПЭВТ

добавить тег [18 °C] {season: лет & tags: tср} # Лето tср

удалить тег [tср]

удалить тег [tэкст]

3.6.3.2. Обнулить температуру

изменить [vetv; area; area2; darea: Tc=0]

3.6.3.3. Удалить задание

изменить [vetv; node: disable=0; control=0; repair_scheme=; disable_scheme=; double_repair_scheme=] изменить [Generator: disable=0; repair_scheme=; disable_scheme=; double_repair_scheme=]

3.6.3.4. Макросы

Макрос «birka_получить_выделенные_элементы_в_виде_строки.rbs» записывает отмеченные узлы, ветви и генераторы в виде строки и копирует результат в буфер обмена. Например, 15504; 15075; 15105,15113; 15038,15041,1; g=205; g=204;.

Для снятия отметки есть макрос «birka_снять_отметку_узлов_ветвей_генераторов.rbs».

Макросы можно найти в папке Documents\RastrWin3\macro или help\test_rm.