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

Макрос для оптимально-вариантного расчета арочной фермы


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

Для того, чтобы оптимизировать ферму по весу необходимо каждому виду элемента(раскосы, стойка, пояса) присвоить свою площадь. Требуется всё сделать в одном макросе.

Проблема в присвоении линиям разных Real Const Num (площадей сечения).

ET,1,LINK8

R,3,5e-4

*DO,i,1,n

*DO,j,1,k

LSTR,i,j

LSEL,S,LINE,,kol_line

LATT,1,3

*ENDDO

*ENDDO

Привожу кусок кода, в оригинале в цикле отрисовывается больше линий.

Ругается на Vmin (kol_line не пустой). Если задать Vmin = 0(не переменную) у LSEL, то всё работает.

Переменную kol_line проверял, в неё приходят правильные значения.

Прикладываю оригинал работающего макроса без присваивания разных площадей элементам.

Закомментированы все LSEL,S,LINE,,kol_line LATT,1,3

FERM_SCRIPT.txt

Изменено пользователем alexey33
Ссылка на сообщение
Поделиться на других сайтах


Народ безмолвствует. Придется мне опять ставить АНСИС. Уверен, ничего необычного не увижу...

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

Знаешь Саша, я думаю что на форуме буйных уже мало, ставь Ансис.

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

Уверен, ничего необычного не увижу...

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

Знаете, я понял, полему никто ничего не пишет. Всем лень врубаться в чужой код на несколько страниц, который (у меня по крайней мере) запускаеся с ошибками.

Попробуйте вместо такого оборота

LSTR,i,j

LSEL,S,LINE,,kol_line

LATT,1,3

использовать такой

lsel,u,,,all

lstr...

latt...

allsel,all

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

Спасибо огромное, работает! :smile: Не знаю как, но работает! :smile:

Но можно не много комментариев

lsel,u,,,all !вы удаляете всё из выборки

lstr... !рисуем значит линию

latt... ! в latt уходит последняя нарисованная линия, потому что выборка пустая ?

allsel,all ! и зачем теперь выбирать все примитивы?

А если так

lsel,u,,,all

lstr...

lstr...

latt... ! в latt уйдет последние 2 нарисованные линии?

allsel,all

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

lsel,u,,,all

lstr...

lstr...

latt... ! в latt уйдет последние 2 нарисованные линии?

allsel,all

Да.

allsel,all ! и зачем теперь выбирать все примитивы?

Можете считать это хорошим стилем.
Ссылка на сообщение
Поделиться на других сайтах

Маленький вопрос. Проблема здесь:

LSEL,S,LINE,,kol_line

?

В качестве номеров нельзя указать переменную?

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

soklakov

Маленький вопрос. Проблема здесь:

LSEL,S,LINE,,kol_line

?

В качестве номеров нельзя указать переменную?

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

Ещё один вопрос связанный непостредственно с оптимизацией. С ансисовским оптимизатором впервые сталкиваюсь, но оптимизацией до этого занимался. Я хочу оптимизировать 4 типа-сечения. В исходный код добавил следующие строчки:

*SET,A1,1e-3

*SET,A2,1e-3

*SET,A3,1e-3

*SET,A4,1e-3

R,1,A1 ! площадь сечения верхнего пояса(м)

R,2,A2 ! нижнего пояса

R,3,A3 ! раскосов

R,4,A4 ! стоек

ETABLE, S1, LS, 1

ESORT,ETAB,S1,0,1,, ! Сортировка таблицы в порядке по убыванию

! для нахождения максимального значения

*GET,SMAXI,SORT,,MAX

ETABLE, S2, LS, 1

ESORT,ETAB,S2,0,1,,

*GET,SMAXJ,SORT,,MAX

PLLS, S1, S2

/GO

SMAX=SMAXI>SMAXJ ! Присвоение максимального значения из SMAXI и SMAXJ переменной SMAX

ETABLE,EVOLUME,VOLU !таблица объемов

SSUM !суммируем объемы

*GET,TVOLUME,SSUM, ,ITEM,EVOLUME !присваиваем переменной ТVOL полный объем

!#########################Оптимизация по объему####################

/OPT

OPANL,'optim','log','F:\macro\' !Назначение рабочего файла

! Задание переменных конструкции DV's!

OPVAR,A1,DV,1e-2,5e-2,1e-2 ! Задание границ изменения площади стержней

OPVAR,A2,DV,1e-2,5e-2,1e-2

OPVAR,A3,DV,1e-2,5e-2,1e-2

OPVAR,A4,DV,1e-2,5e-2,1e-2

OPVAR,SMAX,SV,-2e6,3e6,1E3, ! Задание переменных состояния SV's!

! Задание изменения границ максимальных

! напряжений в сечениях балки и задание допуска

OPVAR,TVOLUME,OBJ, , ,1E-3 !Задание целевой функции

OPTYPE,FIRS !Задание метода оптимизации

!(First-Order относится к методам оптимизации первого порядка)

OPFRST,300,100,0.2 !настройки(макс число итераций)

OPEXE ! Команда на оптимизацию конструкции

XVAROPT,SMAX ! Построение графика результатов оптимизации

!по Х откладываем максимальное значение напряжений

PLVAROPT,A1,A2,A3,A4 ! По Y откладываем площадь

Не могу понять, что ансису не нравится.

Борман Цветочек Расчитываю на ваш бесценный опыт.

Макрос со всеми дополнениями прилагаю.

FERM_SCRIPT_OPT.txt

Изменено пользователем alexey33
Ссылка на сообщение
Поделиться на других сайтах

Знаете, я понял, полему никто ничего не пишет. Всем лень врубаться в чужой код на несколько страниц, который (у меня по крайней мере) запускаеся с ошибками.

alexey33, действительно так.

Дайте лучше постановку задачи подробную. Будет время - в WB и DX порешаю. Сравнимся :)

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

soklakov Да весь код смотреть не нужно. Там геометрия почти всё место занимает.

А то, что относится непосредственно к оптимизации я выделил в последнем сообщении (так же оно и в макросе присутствует)

Дайте лучше постановку задачи подробную.

soklakov Задача проста оптимизировать по объему 4 типа сечения созданной в макросе геометрии. Так как оптимизируем обычные стержни, то переменные проектирования это просто площади сечения. Переменные состояния - максимальные напряжения в интервале от -2e6 до 3e6 Па.

Будет время - в WB и DX порешаю. Сравнимся :)

WB и DX это конечно хорошо, но протокол APDL'вский они нормальный выдают?

Знаете, я понял, полему никто ничего не пишет. Всем лень врубаться в чужой код на несколько страниц, который (у меня по крайней мере) запускаеся с ошибками.

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

Задача проста оптимизировать по объему 4 типа сечения созданной в макросе геометрии. Так как оптимизируем обычные стержни, то переменные проектирования это просто площади сечения. Переменные состояния - максимальные напряжения в интервале от -2e6 до 3e6 Па.

Геометрия, граничные условия, область определения оптимизируемых параметров?

Задача? Минимизировать массу(она же объем), не выходя за пределы напряжений?

WB и DX это конечно хорошо, но протокол APDL'вский они нормальный выдают?

Кому он нужен)

Давайте результаты сравнивать)

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

soklakov

Кому он нужен)

Это мой диплом!)))

Геометрия, граничные условия, область определения оптимизируемых параметров?

ну допустим площади от 1e-2 до 5e-2, а геометрию, граничные условия и загружение возьмите из макроса
Ссылка на сообщение
Поделиться на других сайтах

Открою секрет.

Вместо малопонятного

*SET,A1,1e-3

можно писать

A1=1e-3

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

Открою секрет.

Вместо малопонятного

*SET,A1,1e-3

можно писать

A1=1e-3

я это знал, просто привычка уже выработалась :smile:

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

А что вы имеете в виду по поводу метода первого порядка? Вы уже составили целевую функцию?

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

Да, уже всё есть

ETABLE,EVOLUME,VOLU !таблица объемов

SSUM !суммируем объемы

*GET,TVOLUME,SSUM, ,ITEM,EVOLUME !присваиваем переменной ТVOL полный объем

OPVAR,TVOLUME,OBJ, , ,1E-3 !Задание целевой функции

Ну и насколько я знаю в ansys'е несколько методов оптимизации. Я выбрал не разбираясь метод первого порядка, поскольку он более точный по описанию.

Ещё я прочитал, что в Ансис помимо методов есть средства оптимизации, их где можно задать?

Интересует анализ чувствительности

А вообще в файле Ferm_script_opt.txt я уже всё вставил, но оптимизация не срабатывает. :helpsmilie:

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

Ещё я прочитал, что в Ансис помимо методов есть средства оптимизации, их где можно задать?

Интересует анализ чувствительности

В WB есть группа модулей Design Exploration. Эти модули работают с набором параметров проекта. В них можно проводить целевую оптимизацию, построение поверхностей отклика, анализ чувствительности и т.д.

Кстати, в 14-й версии команды APDL для оптимизации стали недокументированными, а в след релизах возможно совсем пропадут.

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • lem_on
      Так до них через прокладки надо добиратся, а они подводят. Я синумерик хотел онлайн, но воть!!!
    • gudstartup
      Менеджеры вас учить не будут а преподаватели там хорошие @Viktor2004 обучение понравилось... Всему сразу научить нельзя надо к этому вопросу поэтапно подходить... Пусть автор опроса озвучит чему конкретно он хочет научиться а для начала руководство по эксплуатации станка почитает и я уверен что многое прояснится
    • lem_on
      Обращался я туда, либо мне менеджер туповатая попалась, либо да. Спрашиваешь одно, присылают вообще левую инфу. На запрос поменять менеджера, сказала что другие работают так же и вообще сам дурак. 
    • david1920
      Я понял что ему не кабель а пульт надо Я это к тому что ему от простого станка не подойдёт
    • gudstartup
      так автору пульт нужен а не кабель а протокол и отпечатки пальцев на кнопках пусть  СК интересуется с целью выяснения кто же работает на этих вражеских станках несмотря на санкции и как с этими санкциями бороться 
    • gudstartup
      Руководства @Артём 12334 ежели языками  не владеете то ищите на русском в инете этого добра хватает.  Если хотите курсы тогда в Становление а если вебинары тогда в ютюб.
    • david1920
      Вы бы конкретизировали свои потребности
    • Артём 12334
      Кто может научить работать на ней?
    • maxx2000
      Строишь конус Строишь спираль с переменным шагом вокруг этого конуса диаметром не меньше основания Проецируешь спираль на конус По полученной кривой протягиваешь сечение с вычитанием материала
    • david1920
      -Ты дурак? -Нет -Не надо было отвечать,это был риторический вопрос
×
×
  • Создать...