Балансировка подмножеств. Частный случай: выравнивание токов фаз
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > Балансировка подмножеств. Частный случай: выравнивание токов фаз

Балансировка подмножеств. Частный случай: выравнивание токов фаз

Ответ
Поиск в этой теме
Непрочитано 13.11.2024, 10:34 1 | #1
Балансировка подмножеств. Частный случай: выравнивание токов фаз
[MTL]
 
Санкт-Петербург
Регистрация: 09.01.2018
Сообщений: 37

Доброго времени суток,
Во вложении программа для автоматической балансировки подмножеств. Попробую попытаюсь объяснить.
Задача: Имеется некоторый набор чисел. Hеобходимо распределить числа на заданное число групп таким образом, чтобы суммы чисел в каждой группе были примерно равны, или не превышали заданный коэффициент неравномерности, определяемый как Kн = (Sмакс - Sмин)/Sмин * 100%, где Sмакс, Sмин - соответственно суммы чисел в "перегруженном" и "недогруженном" подмножестве. При распределении количество элементов в группе не ограничивается, т.е. например, в одной группе может быть один "тяжёлый" элемент, а в другой несколько "лёгких" с тем, чтобы максимально уравновесить суммы.
Это одна из задач оптимизации. Может использоваться где угодно. Например, для распределения эл. нагрузок по фазам.

Для тех, кто хоть что-то понял, объясняю как пользоваться.
1. В пространстве модели у вас должно быть некоторое множество чисел в виде элементов TEXT или MTEXT. Цвет - нейтральный (белый или чёрный, для слоя "0" - ПоСлою, "По блоку" и т.д.), почему далее поймёте.
2. Загружаете лисп "Balance_v.x.x.". В командной строке вводите команду: BALANCE.
3. Выбираете элементы. Можно рамкой. [ENTER] - подтверждение выбора.
4. Появляется окно, в котором необходимо заполнить поля:
1) "Число групп" - кол-во групп, на которые необходимо разбить множество.
2) "Предельный коэфф. неравномерности, %" - Кн. формулу см. выше.
3) "Ограничение числа итераций" - ограничение числа попыток уравновешивания. Зависит от величины выборки. На ~30 элементах пробовал до 200, больше смысла нет, т.к. программа находит оптимальное решение (при данных исходных данных).
5. Результатом расчёта будет изменение цвета элементов. Каждому цвету соответствует номер группы. В командной строке будет выведен результирующий коэффициент неравномерности. Просуммировав элементы определённого цвета можете проверить).

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

Вложения
Тип файла: lsp Balance_v.1.3.lsp (21.2 Кб, 14 просмотров)
Тип файла: lsp Balance_v.1.4.1.lsp (25.8 Кб, 2 просмотров)


Последний раз редактировалось [MTL], 31.03.2025 в 16:08. Причина: Новая версия программы
Просмотров: 1063
 
Непрочитано 13.11.2024, 10:50
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404


*error* в локальные функции забыл засунуть
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 13.11.2024, 11:02
1 | #3
[MTL]


 
Регистрация: 09.01.2018
Санкт-Петербург
Сообщений: 37


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
*error* в локальные функции забыл засунуть
Спс. Техника страдает. Бегу по огороду, благополучно наступая на разложенные грабли.
[MTL] вне форума  
 
Непрочитано 13.11.2024, 14:24
#4
name02


 
Регистрация: 10.01.2020
Сообщений: 415


Как дополнение можно сделать вывод в командную строку информации по группам:
Группа 1 - цвет1 - Сумма1
Группа 2 - цвет2 - Сумма2
...
Группа N - цветN - СуммаN
----------------------------
Итого: Сумма
Макс: Группа B - цветB - СуммаB
Мин: Группа Y - цветY - СуммаY
Knr= X %

А то потом еще суммировать отдельно по цветам нужно будет как-то

Последний раз редактировалось name02, 13.11.2024 в 14:48.
name02 вне форума  
 
Автор темы   Непрочитано 13.11.2024, 14:41
#5
[MTL]


 
Регистрация: 09.01.2018
Санкт-Петербург
Сообщений: 37


Учту. Отчёт можно предложить разместить в пространство модели на указанное место, чтобы не затёрся.
[MTL] вне форума  
 
Непрочитано 13.11.2024, 14:46
#6
name02


 
Регистрация: 10.01.2020
Сообщений: 415


Ты все-таки позиционируешь как универсальную штуку для равномерного распределения, поэтому в таблицу сводить может и не надо.
Но в командную строку точно я бы добавил вывод.
Или предлагать на выбор - в таблицу или в командную строку.
name02 вне форума  
 
Автор темы   Непрочитано 13.11.2024, 14:54
#7
[MTL]


 
Регистрация: 09.01.2018
Санкт-Петербург
Сообщений: 37


Командная строка перезаписывается. Искать потом придётся. А так на свободном месте в виде текстового блока. Кратенько. Никаких таких отчётов по ГОСТ боже упаси.
[MTL] вне форума  
 
Непрочитано 13.11.2024, 14:59
#8
name02


 
Регистрация: 10.01.2020
Сообщений: 415


Тогда можно сделать формирование групп по цвету уже - т.е. найти сумму текстовых объектов с учетом их цветов. И уже на основании этого сделать итоговую таблицу, если вдруг ранее сделанная затерлась
name02 вне форума  
 
Непрочитано 13.11.2024, 16:58
#9
petro_f

Проектировщик
 
Регистрация: 06.10.2016
СПб
Сообщений: 319
Отправить сообщение для petro_f с помощью Skype™


Хм, идея интересная.
По поводу сводки в табличную форму тоже за... Можно сделать цветом и дополнительно сводить в табличку и предлагать её вставить. Если не надо то просто отказ.
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!
petro_f вне форума  
 
Непрочитано 19.12.2024, 11:18
#10
Yull


 
Регистрация: 24.07.2008
Сообщений: 8


я в екселе сделал, все считается и отображается и цифрами и цветом
Yull вне форума  
 
Непрочитано 27.12.2024, 21:51
#11
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 178


Цитата:
Сообщение от Yull Посмотреть сообщение
я в екселе сделал, все считается и отображается и цифрами и цветом
Здравствуйте.
Если не жалко, можете в личке поделится кодом, я делаю большой бесплатный электрический расчетный модуль на базе экселе, хотелось бы как то быстро решить вопрос равномерного распределения по фазам.
veb86 вне форума  
 
Непрочитано 28.12.2024, 08:34
#12
esp1413


 
Регистрация: 10.11.2011
Сообщений: 134


Цитата:
Сообщение от veb86 Посмотреть сообщение
Здравствуйте.
https://dwg.ru/b/name02/454
esp1413 вне форума  
 
Непрочитано 28.12.2024, 12:40
#13
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 178


Цитата:
Сообщение от esp1413 Посмотреть сообщение
https://dwg.ru/b/name02/454
Я произвожу каждый раз генерацию эксель с нуля и поэтому мне не подходит надстройка. Я думал есть программное решение или еще лучше стандартными формулами
veb86 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > Балансировка подмножеств. Частный случай: выравнивание токов фаз

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расчет токов короткого замыкания Валериан Поиск исполнителей 0 24.05.2024 16:31
Как программно изменить выравнивание текста мультивыноски? mkung Программирование 6 19.06.2014 23:13
Не сохраняется междустрочный интервал и выравнивание в многострочном тексте Dalya AutoCAD 14 25.07.2013 11:27
Переменная отвечающая за выравнивание текста. РастОК AutoCAD 2 11.02.2013 13:03