На главную страницу
Русский English
 


Поддержка
Форум
Техподдержка
Закрытый разделПерсональная

Авторизация

Запомнить меня на этом компьютере
  Забыли свой пароль?
  Регистрация



Поиск по сайту


Подписка

Изменение параметров

Hits 66985882
4469
Hosts 3541122
706
Visitors 53213270
3101

18


Главная / Поддержка / Форумы / Макро

Форум «Макро»

Версия для печати Версия для печати

Список форумов
Новые темы
Список тем
Поиск по форумам
Помощь
Войти
Регистрация


Тема: «Изменение значений мощности в узлах » в форуме: Макро   Просмотров: 3057
 
Vikus Kisl
Посетитель
 
Всего сообщений: 30
Дата регистрации: 07.10.2022
Создано: 30.01.2023 14:52:15
 
 
Существует макрос "КорректировкаНагрузкиКэф­фициент.rbs"? отличный макрос, пользуюсь им постоянно, но он работает только по номерам районов, т.е. достаточно "грубо" - нагрузка в узлах может быть мала или не подлежит изменению, например мощность СН.
Можно сделать такой же, но по перечню номеров узлов, аналогично перечню районов???
Нужно для проверки эффективности действия УВ типа ОН по конкретным ПС.
 
Профиль
Наверх
Станислав Богданов
Модератор
 
Всего сообщений: 61
Дата регистрации: 11.10.2012
Создано: 31.01.2023 13:23:19
 
 
Речь идет про макрос "Задать потребление района"?

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

Вариант: исключить узлы из района с помощью групповой коррекции (слить их в отдельный район), провести требуемые расчеты (корректировки), вернуть обратно узлы в р-он.
 
Профиль
Наверх
Vikus Kisl
Посетитель
 
Всего сообщений: 30
Дата регистрации: 07.10.2022
Создано: 01.02.2023 03:56:51
 
 
нет не макрос "Задать потребление района"!
а именно "КорректировкаНагрузкиКэф­­фициент.rbs"
с точки зрения количества английских буков, он достаточно прост:

'Если нужно только корректировать нагрузку района на заданный коэффициент (активную и
'реактивную пропорционально), то можно сделать следующий макрос:

r=setlocale("en-us")
Sub CorPQN(raion,koeff)
Set ptabl=Rastr.Tables("node"­)
Set ppn=ptabl.Cols("pn")
Set pqn=ptabl.Cols("qn")
ptabl.SetSel("na="&raion)­
ppn.Calc("pn*"&koeff)
pqn.Calc("qn*"&koeff)
End Sub
'
' И вызывать его так:
CorPQN 15000,1.01
'CorPQN 903,0.98

очень удобен, например для задания нагрузок сезонных режимов, задания перспективного роста нагрузок, потом корректируешь в некоторые,
или если нужно проверить разгрузку от ПА, но только к сожалению по району!

Надо составить список-задние для макроса именно для узлов или ПС!
понимаю, что это наверно просто, но нет времени разбираться...
поэтому, если можете помогите, пожалуйста!
 
Профиль
Наверх
Delphim
Посетитель
 
Всего сообщений: 10
Дата регистрации: 31.01.2023
Создано: 01.02.2023 12:47:51
 
 
Добрый день! Сделал небольшую вырезку из своего макроса, который использовался для других целей. В тексте макроса добавил комментарии. Заводите файл эксель со списком узлов в колонке А1, задаете путь к нему как указано ниже. В теле макроса меняете нужные Вам коэффициенты.
Не проверял, но должно заработать.
Профессиональные программисты - не судите строго за кривой код, я сам пока начинающий. Понимаю что это можно реализовать изящно в несколько строк. Кроме того, я его взял из своего макроса, который использовался в иных целях.
Заработало?

Sub GrCor(tabl,param,viborka,­formula)
Set ptabl=Rastr.Tables(tabl)
Set pparam=ptabl.Cols(param)
ptabl.SetSel(viborka)
pparam.Calc(formula)
End Sub

Set oXL = CreateObject("Excel.Appli­cation")
'В строчке ниже указываете путь к файлу эксель между кавычек со списком узлов в колонке А1
Set OWB = OXL.Workbooks.Open("")
Set oSheet = oWB.Worksheets(1)
TotalRow = oSheet.Range("A1048576").­End(-4162).Row
for i=1 to TotalRow
ny="ny=" & oSheet.Cells(i,1).value
'Здесь задаете нужный коэффициент для активной и реактивной мощности
GrCor "node","pn",ny, Rastr.calc("sum", "node", "pn", ny)*1.5
GrCor "node","qn",ny, Rastr.calc("sum", "node", "qn", ny)*1.5
next
OXL.Quit
 
Профиль
Наверх
Vikus Kisl
Посетитель
 
Всего сообщений: 30
Дата регистрации: 07.10.2022
Создано: 01.02.2023 15:46:17
 
 
Спасибо!
уже поздно, завтра с утра попробую... и отпишу
 
Профиль
Наверх
Vikus Kisl
Посетитель
 
Всего сообщений: 30
Дата регистрации: 07.10.2022
Создано: 03.02.2023 05:07:37
 
 
Уважаемый, Delphim!
Макрос не работает, выдаёт ошибку

Sub GrCor(tabl,param,viborka,­­formula)
Set ptabl=Rastr.Tables(tabl)
Set pparam=ptabl.Cols(param)
ptabl.SetSel(viborka)
pparam.Calc(formula)
End Sub

Set oXL = CreateObject("Excel.Appli­­cation")
'В строчке ниже указываете путь к файлу эксель между кавычек
'со списком узлов в колонке А1
Set OWB = OXL.Workbooks.Open("d:\OH­1.xlsx")
Set oSheet = oWB.Worksheets(1)
TotalRow = oSheet.Range("A1048576").­­End(-4162).Row
for i=1 to TotalRow
ny="ny=" & oSheet.Cells(i,1).value
'Здесь задаете нужный коэффициент для активной и реактивной мощности
GrCor "node","pn",ny, Rastr.calc("sum", "node", "pn", ny)*0.5
GrCor "node","qn",ny, Rastr.calc("sum", "node", "qn", ny)*0.5
next
OXL.Quit

Ошибка Строка
Недопустимый знак 1


Может сделать так.
в ексел в столбце А задавать узлы, а в В (,С) коэффициенты, не обязательно для активной и реактивной разные, т.к. СХН всё равно сделают своё "кровавое дело" так чего гадать, хотя если не трудно то можно и так, но всё же для каждого узла задавать свой коэфф.

 
Профиль
Наверх
Delphim
Посетитель
 
Всего сообщений: 10
Дата регистрации: 31.01.2023
Создано: 03.02.2023 12:53:33
 
 
Обратите внимание, что при копировании отсюда могут вставляться "лишние" символы. Лишние "-" добавляет.
Да, можно сделать свой коэффициент. Пишу с телефона, не на работе. Как буду - сделаю.
 
Профиль
Наверх
Delphim
Посетитель
 
Всего сообщений: 10
Дата регистрации: 31.01.2023
Создано: 03.02.2023 13:07:47
 
 
В какой строке недопустимый знак?
 
Профиль
Наверх
Vikus Kisl
Посетитель
 
Всего сообщений: 30
Дата регистрации: 07.10.2022
Создано: 03.02.2023 14:12:54
 
 
в первой
Sub GrCor(tabl,param,viborka,­­formula)


 
Профиль
Наверх
Delphim
Посетитель
 
Всего сообщений: 10
Дата регистрации: 31.01.2023
Создано: 03.02.2023 20:55:49
 
 
Очень странно, что не работает. GrCor это макрос, который входит в набор Растра.
Попробуйте для начата так:

Sub GrCor(tabl,param,viborka,­formula)
Set ptabl=Rastr.Tables(tabl)
Set pparam=ptabl.Cols(param)
ptabl.SetSel(viborka)
pparam.Calc(formula)
End Sub

GrCor "node","pn","ny=13",10

Описали процедуру и вызвали её потом. В итоге активная мощность нагрузки в узле 13 должна стать равно 13 МВт. Работает?
 
Профиль
Наверх
Delphim
Посетитель
 
Всего сообщений: 10
Дата регистрации: 31.01.2023
Создано: 03.02.2023 20:58:27
 
 
Вот макрос, который будет брать из первой колонки файла эксель номер узла, а из второй - нужный коэффициент и корректировать на него активную и реактивную мощность. На этот раз запустил у себя - вроде работает как надо.

Sub GrCor(tabl,param,viborka,­formula)
Set ptabl=Rastr.Tables(tabl)
Set pparam=ptabl.Cols(param)
ptabl.SetSel(viborka)
pparam.Calc(formula)
End Sub

Set oXL = CreateObject("Excel.Appli­cation")
Set OWB = OXL.Workbooks.Open("C:\co­r.xlsx")
Set oSheet = oWB.Worksheets(1)
TotalRow = oSheet.Range("A1048576").­End(-4162).Row
for i=1 to TotalRow
ny="ny=" & oSheet.Cells(i,1).value
GrCor "node","pn",ny, replace(Rastr.calc("sum",­ "node", "pn", ny)*oSheet.Cells(i,2).val­ue,",",".")
GrCor "node","qn",ny, replace(Rastr.calc("sum",­ "node", "qn", ny)*oSheet.Cells(i,2).val­ue,",",".")


next
OXL.Quit
 
Профиль
Наверх
Vikus Kisl
Посетитель
 
Всего сообщений: 30
Дата регистрации: 07.10.2022
Создано: 04.02.2023 05:59:52
 
 
Огромное СПАСИБО!!!
Работает!!!

Как понял, что бы задавать коэфф. для акт. и реакт. мощностей индивидуально, нужно в строке

GrCor "node","qn",ny, replace(Rastr.calc("sum",­­ "node", "qn", ny)*oSheet.Cells(i,2).val­­ue,",",".")

поменять 2 на 3, так? и будет браться коэфф. из колонки С!
 
Профиль
Наверх
Vikus Kisl
Посетитель
 
Всего сообщений: 30
Дата регистрации: 07.10.2022
Создано: 04.02.2023 06:13:20
 
 
проверил точно, работает
тогда можно включать какое-либо СКРМ
если в макросе заменить

в строке
GrCor "node","qn",ny, replace(Rastr.calc("sum",­­­ "node", "qn", ny)*oSheet.Cells(i,3).val­­ue­,",",".")

заменить на -

GrCor "node","qn",ny, replace(Rastr.calc("sum",­­­ "node", "qn", ny)+oSheet.Cells(i,3).val­­ue­,",",".")

но в колонке С задавать, например, мощность БСК - "-16",
попробую...

 
Профиль
Наверх
Delphim
Посетитель
 
Всего сообщений: 10
Дата регистрации: 31.01.2023
Создано: 04.02.2023 11:37:37
 
 
БСК лучше все-таки шунтом моделировать. Пересчитать те же 16 МВА в "-B".
 
Профиль
Наверх
Delphim
Посетитель
 
Всего сообщений: 10
Дата регистрации: 31.01.2023
Создано: 04.02.2023 11:39:56
 
 
>>Как понял, что бы задавать коэфф. для акт. и реакт. мощностей индивидуально, нужно в строке
>>
>>GrCor "node","qn",ny, replace(Rastr.calc("sum",­­­ "node", "qn", ny)*oSheet.Cells(i,2).val­­­ue,",",".")

Да.
 
Профиль
Наверх
Delphim
Посетитель
 
Всего сообщений: 10
Дата регистрации: 31.01.2023
Создано: 04.02.2023 11:59:11
 
 
>БСК лучше все-таки шунтом моделировать. Пересчитать те же 16 МВА в "-B".

Ой, конечно же МВАр.
 
Профиль
Наверх
Vikus Kisl
Посетитель
 
Всего сообщений: 30
Дата регистрации: 07.10.2022
Создано: 04.02.2023 16:03:08
 
 
Конечно, ШР/БСК лучше шунтом, просто имелось в виду работать в одном "поле", а СКРМ же можно вводить и не целиком, а ступенькой, т.е. не много увеличили или уменьшил реактивку, а так получается ещё и каждый шаг пересчитывать!

в принципе переделать этот макрос и в любом узле можно поставить любое СКРМ,
поэтому ещё раз спасибо!!!
 
Профиль
Наверх



Читают тему
гостей: 1, пользователей: 0, из них скрытых: 0


Список форумов
Новые темы
Список тем
Поиск по форумам
Помощь
Войти
Регистрация







Программный комплекс «RasrWin»
Программный комплекс «RastrWin»
© «RastrWin», 1988-2019