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.