Перейти к публикации

Оптимизация модели в Ансис


Рекомендованные сообщения

Столкнулся со следующей проблемой:

Есть корпус редуктора, стоящий на пружинных опорах, приложены силы. В зависимости от жесткости пружин напряжения в корпусе меняются (Стресс перехоит либо в пружины, либо воспринимается корпусом).

Задача: Подобрать оптимальную жесткость пружины, при которой стресс в корпусе будет минимальным. Сильно жесткая или сильно податливая не годятся, нужно подобрать что то среднее.

Постоянно делаю приращение жесткости пружин, потом пересчитываю. Но уже задолбался. Можно ли как то просто задать ряд жесткостей, который будет последовательно использоваться в решении, чтобы посчитать все за раз (Ну примерно, как можно задать несколько нагружений в файлах Load step)???

Ссылка на сообщение
Поделиться на других сайтах


Можно ли как то просто задать ряд жесткостей, который будет последовательно использоваться в решении, чтобы посчитать все за раз???

Можно. Надо задать массив жесткостей (или несколько массивов с необходимыми параметрами), и в REAL для COMBIN втыкать постоянно новую жесткость как значение массива. Далее *GET-ом вытаскивать и запоминать нужный отклик и пересчитывать:

1) задаешь массив (MASSIV)

2) Строишь модель целиком

3) цикл типа

*DO i=1..10 (см HELP)

  /PREP7

  R,1,MASSIV(i)... ну понятно, короче.

  /SOLU

  настройки всякие

  SOLVE

  /POST1

  GET, чего надо

  запоминаешь "чего надо"

ENDDO
4) Потом анализируешь.

А Ансисовским оптимизатором для этой задачи лучше не пользоваться. Подбирай перебором.

Ссылка на сообщение
Поделиться на других сайтах

Можно. Надо задать массив жесткостей (или несколько массивов с необходимыми параметрами), и в REAL для COMBIN втыкать постоянно новую жесткость как значение массива.

Т.е. в меню Real constant, вместо чиссленного значения жесткости, нужно ввести имя масива???

А по времени это все будет считаться как одно задача, либо чуть больше, либо как столько задач сколько значений массива?

Ссылка на сообщение
Поделиться на других сайтах
Форумный боец

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

столько задач сколько значений массива?

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

Т.е. в меню Real constant, вместо чиссленного значения жесткости, нужно ввести имя масива???

А по времени это все будет считаться как одно задача, либо чуть больше, либо как столько задач сколько значений массива?

Нет, втыкать в меню Real constant имя массива бессмысленно. Надо в коммандном файле указывать конкретный элемент массива:

ET,1,COMBIN

REAL,1

-- создание КЭ --

...

---------------------

R,1,MASSIV(i)

Все как я написал выше. Это будет несколько задач.

Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

Ссылка на сообщение
Поделиться на других сайтах

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

Короче, можно не париться.
Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...

Crippling жалуется, что в ансисе нет элементарных вещей. Как раз в этом случае можно использоваться встроенные средства оптимизации (Design Optimisation) и не париться с написанием массивов и различных циклов. В Ансис уже заложены достаточно сильные алгоритмы оптимизаци от случайного поиска до метода градиентного спуска.

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

Ссылка на сообщение
Поделиться на других сайтах

Однако чревато минимизировать напряжение... есть риск сминимизировать то, чаво на самом деле нет. А "правильное" максимальное напряжение может скакать от элемента к элементу. Satellit, ваш способ разумеется правильный, если есть опыт в решении подобных задач.

Первая моя задача по теме Design Optimisation состояла в подборе параметра простого сечения beam-элемента. ИМХО не вдохновлён.

Ссылка на сообщение
Поделиться на других сайтах

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

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

Может быть я написал неточно насчет целевой функции, в качестве которой можно взять максимальное напряжение в корпусе. Тем более, что оптимизацией в Ансисе пользоваться достаточно просто. Основная сложность - подготовить исходный файл, где не будет ошибок. Это по сути почищенный log-файл.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




  • Сообщения

    • lux59
      построить дугами барашку я пробовал, не то слегка, он в списке выдаст количество сегментов, да норм сделаю покажу, что вышло, правда пришлось делать сборкой не единой деталью, в общем я понял как это работает, Спасибо за помощь!
    • lem_on
      Ага, особенно некоторых бестолочей со своим пониманием реальности.  По типу, я скачал программу, я так вижу, я пишу книгу. 
    • malvi.dp
      Так в чем проблема создать кривую и протянуть профиль? Единственная трудность это кривую сделать из дуг и отрезков, а не сплайном. Если же не использовать инструментарий сварных конструкций, то можно и сплайн использовать в качестве направляющей.  
    • Alexey0336
      Добрый день. Как то фигурировал тут вопрос с точкой в названии файла. У меня проблема, не могу захватить модель, пишет, что с этим символом нельзя. Обойти никак нельзя получается?
    • malvi.dp
      У вас там скорее всего скрыты размеры. Перетяните их дальше от штриховки, чтоб не пересекали.
    • Snake 60
      @Бестолковый С названием топика не ошиблись? Человек спрашивает: ' VBA ' 1. Open a document in SOLIDWORKS. ' 2. Run the macro below to set inch units with '     a fractional base of 16 and no rounding. Dim swApp As SldWorks.SldWorks Dim Part As SldWorks.ModelDoc2 Option Explicit Sub main()    Set swApp = Application.SldWorks    Set Part = swApp.ActiveDoc    Part.SetUnits swINCHES, swFRACTION, 16, 0, False End Sub   Код взят отсюда: https://help.solidworks.com/2019/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~setunits.html Вот еще описание всех методов: https://help.solidworks.com/2021/English/api/swconst/DP_Units.htm Ну и на вкусное, статья от Артема (см. через ВПН) https://www.google.com/url?sa=t&source=web&rct=j&opi=89978449&url=https://www.codestack.net/solidworks-api/options/document/set-units/&ved=2ahUKEwjgpL-apN6GAxU7HxAIHYO0D2IQFnoECBAQAQ&usg=AOvVaw15xq49gocoVQ5BzEA31qGf
    • Shvg
      IModelDocExtension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitSystem, swUserPreferenceOption_e.swDetailingNoOptionSpecified, swUnitSystem_e.<Value>), где swUnitSystem_e.<Value> перечисление swUnitSystem_CGS           1 = Centimeter, gram, second  swUnitSystem_Custom        4 = Lets you set length units, density units, and force  swUnitSystem_IPS           3 = Inch, pound, second  swUnitSystem_MKS           2 = Meter, kilogram, second  swUnitSystem_MMGS          5 = Millimeter, gram, second   
    • Ветерок
      Вопрос про "включение RGK". Если в модели какие-то функции сделаны с использованием RGK, эта модель будет работоспособной на другом компе, где RGK "не включен"? И вообще не понятно, получается система использует два разных ядра одновременно? Или включая RGK, автоматически выключается Прасолид? А обратно переключиться можно? Если можно итак, и так, и туда, и обратно, тогда не понятно зачем вообще это включение-выключение.
    • TVM
      Так на скорую руку строились. Ясно что такое воспроизвести в живую затруднительно. 
    • Борман
×
×
  • Создать...