суббота, 20 марта 2021 г.

Prometey 2.0 Руководство пользователя

ссылка на программу 

Краткий обзор возможностей программы на примере:

1. Вступление.

Программа Prometey 2.0 - это продолжение мобильной версии программы которая перевернет твое сознание и раздвинет тебе привычные рамки понимания окружающих тебя вещей. Она создана для помощи, а не для замены инженеров искусственным интеллектом. 

Prometey 2.0 - это оцифрованная копия инженера конструктора, а точнее цифровой двойник его опыта, только уже намного более точный и производительный. Это полноценный искусственный интеллект под управлением различных нейросетей , генетических алгоритмов и просто сложных алгоритмов работающих в связке с друг другом. 

Возможности Prometey 2.0:

 - расставляет колонны/пилоны на архитектурном плане здания строго в архитектурных стенах

- создает сотни, тысячи, десятки и даже сотни тысяч вариантов различного расположения 

- находит напряжения в вертикальных несущих элементах (N, Mx, My, Mz, Qx, Qy)

- находит деформации в плите перекрытия 

- находит основные напряжения σх и σу по верхней и нижней плоскости плиты перекрытия 

- определяет эффективность каждого варианта конструктивной схемы здания в рамках теории основанной на статистическом анализе 100 000 вариантов расчетных схем зданий подготовленных ИИ

- составляет отчет со всеми эпюрами  и сохраняет его на жестком диске за уникальным ID номером

Помимо новых функций в программе остались и портированы все старые функции мобильной версии:

- Экспресс оценка изгибающих моментов возникающих в плите перекрытия 

- Экспресс оценка распределения грузовых площадей вертикальных конструкций 

- И многие другие 

2. Начало работы.

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

Для начала необходимо сбросить чертеж архитектурного плана здания в папку по пути:

C:\Users\[имя пользователя]\AppData\LocalLow\EnionProject\Prometey 2.0\screenshots

Расширение файла должно быть ".png", после этого нажать кнопку Заменить подложку, далее нажать загрузить подложку и выбрать интересующий план здания:

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


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


Искусственному интеллекту можно помочь и предварительно расставить пилоны/колонны , а остальные он уже разместит сам. 

3. Автоматическое расположение колонн/пилонов

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

Слева сверху на панели интерфейса вы можете увидеть краткую характеристику конструктивной схемы здания:

RZsum = сумма всех реакций опор в узлах колонн/пилонов, вертикальная нагрузка от 1-го этажа
RZmin = минимальное значение опорной реакции
RZmax = максимальное значение опорной реакции
DZsum = сумма вертикальных перемещений всех конечных элементов
DZmin = минимальное вертикальное перемещение (в абсолютном значении оно максимальное)
DZmax = максимальное вертикальное перемещение
Ssum = сумма всех нормальных напряжений по верхней грани (абсолютные значения)
Pilons = число вертикальных элементов (колонны/пилоны)
n = число конечных элементов

Теперь подробная инструкция по кнопкам справа:
kill all process - аварийное завершения процесса работы ИИ, но в силу сложности алгоритмов распределения процессов задействования многопточности CPU и GPU, нельзя возобновить работу ИИ после аварийной остановки. Для возобновления работы придется вернуться в главное меню и запустить Prometey повторно. Поэтому очень важно сохранить модель плана здания до начала работы ИИ.

RUN AI - самая главная функция всей программы, запускает сложный процесс работы множества нейросетей, генетических алгоритмов и просто алгоритмов задействования многопточности CPU и GPU. Одновременный запуск числа n клиентов программы не ограничен условно. Условная граница - возможности вашего персонального ПК. Не рекомендуется доведение GPU или CPU выше 90% использования. 
Данная функция вызывает бесконечную рекурсия самой себя, то есть это вечный цикл (600 лет работы)  в котором ИИ за количество #iter (общее число попыток) пытается разместить 1 колонну/пилон за #subiter (число под шагов) на одну попытку размещения. В этом сложно разобраться не поэкспериментировав.
По умолчанию число итераций размещения колонн/пилонов - 20 000, в зависимости от задач это число можно менять в ту или иную сторону. Так же в зависимости от задач можно изменять количество подшагов который совершает ИИ в виде агента (красный куб на плане). 

step - это размер подшага в метрах. То есть при размере подшага 0,2 , общий максимальный путь который будет пытаться совершить ИИ составит 0,2 * 300 = 60 метров. Не рекомендуется увеличивать размер под шага, наоборот рекомендуется его уменьшать от значения по умолчания. Данная величина прямопорционально влияет на скорость работы ИИ (как и другие параметры), При меньших значениях чем 0,2 увеличивается точность расположения колонн/пилонов. 

% - это точность нейросетей, как показала практика даже при 5% точности ИИ показывает феноменальные результаты. Но в любом случае увеличение точности влечет за собой увеличение точности общей задачи. Что подойдет вам, покажет только практика использования ИИ в своих задачах. 

time - это время паузы (в секундах) между итерациями, по умолчанию значение 0, но из-за многопоточности и одновременной работы нескольких агентов (копий программы), они иногда влияют на результаты друг друга и рекомендуется выставлять небольшое значение искусственной задержки, например значение 0,1. Что будет удобнее вам покажет только практика, частота ядра, количество ядер/потоков, пропускная способность шины CPU  и многое другое.

radius - это примерный шаг между колоннами/пилонами который будет пытаться сохранить ИИ с небольшим отклонением от заданного значения.  Можно конечно отключить "примерность" , но я решил научить ИИ импровизировать в рамках разумного.

MLFE - размер конечного элемента для МКЭ ядра на основе Csparse в котором реализована факторизация Холецкого. В будущем будет так же доступно альтернативное  расчетное ядро в виде машинного обучения конечных элементов. 

4. Конечные элементы 

Перед запуском ИИ необходимо подобрать размер конечных элементов, рекомендуемый размер конечных элементов 0,2 метра, по умолчанию стоит значение 0,4. Размер конечного элемента влияет на общую производительность:
В представленной таблице время обработки расчетной схемы подготовленной ИИ в секундах. Рекомендуемое число конечных элементов 30 000 - 50 000. И опять же только пользователь задает ему подходящее число КЭ и их размер.  

Greate FEM - это функция для предварительной оценки числа конечных элементов (старого mesh ядра):

Сверху слева видно число элементов, оно попадает в рекомендуемый диапазон. Для ускорения расчетов схем подготовленных ИИ была убрана краевая оптимизация конечных элементов, поэтому на наклонных участках граней плит видна угловатость.
Так же для ускорение выполнения расчетов не вершины конечных элементов подстраиваются под узлы вертикальных конструкций, а наоборот. За счет этого удалось добиться значительного роста производительности построения сеточных моделей и их точности расчета без искажения результатов самих расчетов.

Clrear FEM - функция удаления сеточной модели.

5. Режим автоматической проверки варианта конструктивной схемы подготовленной человеком

Для получения результатов в этом режиме вам достаточно создать самому расставить колонны/пилоны, указать контур плиты перекрытия и задать при необходимости несущие стены:


После этого достаточно создать сеточную модель путем нажатия кнопки Greate FEM и последующей активации кнопки Solve. Теперь Prometey сам найдет решение и составит отчет.

6. Отчет ИИ о каждом варианте расчетной схемы 

Все отчеты вне зависимости от автора (ИИ или человек) хранятся по указанному пути:
C:\Users\[имя пользователя]\AppData\LocalLow\EnionProject\Prometey 2.0\rtf 
Отчет хранит в себе основную информация уже в названии, для примера:

20210320092949274 - 8,422334.rtf

Цифры 20210320092949274 - это уникальный ID номер для каждого расчета, одновременно это и токен для режима Blockchain Solver
Цифры 8,422334 -  это эффективность конструктивной/расчетной схемы. Формула по которой определяется данная эффективность:

 Efficiency = 1,240741+4,328648+0,6837286+2,169216 = 8,422334

Формула представляет собой сумму 4 параметров А + B + C + D, где :
А = число пилонов / 54
В = DZmin / примерный пролет / 200
С = RZsum / Pilons / 54
D= AsSum/ Nfem / 8 ;
 
Чем ниже каждое составляющее и их сумма, тем более эффективная схема по отношению к другим вариантам: 


В скором будущем отчет дополниться данными по армированию и бетону, а так же стоимостью конструкции в целом с учетом стоимости работ. 

7. Ручной анализ схем 

Данный модуль сейчас дорабатывается и доступен в урезанном виде. Если интересно сейчас по сути доступно только нажать кнопку FEM (old) и далее Solver (new). После расчета будет отображена эпюра деформаций. С помощью функции изменить положения узла или разместить пилон, можно быстро вносить правки в расчетную схему и смотреть на что они влияют. 
В связи с тем, что в Prometey 2.0 реализована технология отображения результатов расчета на шейдерных частицах  посредством обработки на ядрах CUDA , то будет возможно отображать сразу все эпюры, по всем возможным напряжениям, одновременно и без каких либо зависаний и задержек отображения графики. 
Результат расчета можно выгружать в формате .fbx, модель будет находится по пути:
C:\Users\[имя пользователя]\AppData\LocalLow\EnionProject\Prometey 2.0\fbx

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

Старые функции представлены тремя основными:

1. Разбиение на площади - данный инструмент ( согласно диаграммы Вороного , релаксации Ллойда и метода Делоне) разбивает плиту согласно грузовым зонам колонн и находит какая сжимающая нагрузка воспринимается каждой колонной в отдельности исходя из ее грузовой площади по плите перекрытия. Скорость нахождения решения занимает секунду, но по сути потеряет свою актуальность с доработкой инструмента ручной анализ схем

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

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

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

9. Общие рекомендации

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

2. Для уменьшения нагрузки на GPU рекомендуется сворачивать программу в трей. От того что вы за ним наблюдаете или не наблюдаете ИИ не станет работать лучше или хуже , он не человек. 

3. Теперь можно наблюдать не только за горящим костром, идущим дождем , но и просто смотреть как работает ИИ.

4. Шанс того, что вам ИИ создаст два одинаковых варианта стремится к единице деленной на число Грема

5. Обязательно сравните результаты расчета ИИ и расчет такой же схемы выполненной в вашей любимой программе. Вы не найдете никаких отличий. 

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

7. Освобождайте побольше свободного пространства на диске C, хоть сама программа занимает 70 Мб, это в основном код , который генерирует до десяти гигабайт информации только за одни сутки. 

10 комментариев:

  1. Подскажите, что обозначают и откуда появились числовые коэффициенты в параметрах A, B, C, D при вычислении эффективности расстановки несущих конструкций

    ОтветитьУдалить
  2. Это просто корректирующие константы найденные экспериментальным путем, без их объективная оценка менее корректна, так как влияние одного из слагаемых становится намного более сильным по отношению к 3 другим

    ОтветитьУдалить
    Ответы
    1. Этот комментарий был удален автором.

      Удалить
    2. мне кажется, у вас при расчете коэффициента B есть опечатка: в знаменателе скорее всего вместо 200 должно быть 5

      Удалить
    3. нет, в цифрах все верно, но действительно есть опечатка, должно быть В = DZmin / (примерный пролет / 200) - в скобках, это определение ограничения по прогибу. Только по сути в формуле брать DZmin не корректно, нужно было брать DZmax, возможно это не повлияет сильно на эффективность общую, поэтому возможно я и не заметил общей логической ошибки. Сейчас этот процесс подбора пилонов перерабатывается для версии Prometey 3.1, там будет другая формула огпределения эффективности, она будет учитывать стоимость.

      Удалить
    4. А может экспериментально я нашел что эффективность показывает не максимальный прогиб, а минимальный, и чем ближе он к нормативному , тем эффективнее расставлены пилоны. Точно уже не помню.

      Удалить
  3. правильно ли я понял, что ИИ автоматически генерирует места расположения колонн/пилон, а их размеры уже конструктор подбирает сам?

    ОтветитьУдалить
    Ответы
    1. да, нейросеть пытается уравнять по нагрузкам все пилоны, но сечение подбирает конструктор.

      Удалить
  4. В данной версии Прометея при подборе расположения пилонов как-то учтен расчет по прогибам? По моим результатам (порядка 700 схем для разных пролетов с разными входными параметрами расчета нейросети) процент тех, которые удовлетворяют прогибам очень низкий, порядка 10%? Для пролетов от 4,5 м до 6 м вообще ни одна схема не прошла. Задумка идет на дальнейшую корректировку конструктором расчетных схем или здесь присутствует какая-то ошибка? Может стоит как-то усовершенствовать этот момент в следующих версиях, чтобы нейросеть не выдавала результат, который заведомо не проходит?

    ОтветитьУдалить
    Ответы
    1. Нет конечно, учета прогибов нет. Как правило из этих 700 схем вы выбираете самый лучший вариант и он 1. Он проходит по прогибам ? Я обычно завожу 3-4 клиента на каждый из вариантов пролетов, обычно 3.5, 4, 4.5, 5. Итого 16 клиетов просчитывают до 500 вариантов каждого пролета. И из всех вариантов выбираю 1 итоговый. В новой версии этого алгоритма для программы Prometey 3.1 так же не сможет учитывать прогиб, так как он не известен при расположении пилонов, его можно получить после расчета варианта расположения.

      Удалить

Поиск по этому блогу