/prep7

Параметрическая оптимизация через классику

Pinned posts

ID: 1   Posted (edited)

Зравствуйте, товарищи форумчане! Долго листал этот форум наблюдателем, но вот наконец и самому припёрло задать вопрос. 
Ввиду некоторой топорности воркбенча возникла необходимость проведения параметрической оптимизации посредством APDL. Для рассчёта точек планирования эксперимента написал скрипт (внизу приведён), предполагающий следующее:

  • Зачитывание в табличную переменную из текстового файла значений входных параметров;
  • Далее цикл:
  • Построение по параметрам геометрии;
  • Построение сетки и задание граничных условий;
  • Решение;
  • Сохранение значений всех переменных в файл *.parm;
  • Очистка бд;
  • Зачитывание паременных из файла *.parm;
  • Конец цикла.
  • Запись табличной переменной с результатами в другой текстовик.

И так n_exp раз. Задача - устойчивость оребрённой оболочки под действием крутящего момента в линейной постановке. Оболочка и рёбра смоделированы шеллами.

Скрипт до поры до времени работает исправно, но при крайнем прогоне завис на 666-й точке. Цикл Ланцоша #5 висел несколько часов (хотя, до этого на одну точку уходило порядка минуты). Модель была проверена именно с этим сочетанием параметров, а заодно и с предыдущим, и с последующим - считает штатно. У меня создалось впечатление, будто забивается какой-то файл, о котором я не знаю или по какой-то другой причине количество расчётов за сессию ограничено. Не могу понять, в чём дело. Если достаточно корректно описал проблему, очень надеюсь, что кто-то поможет.
К сожалению, в тексте скрипта по некоторым соображениям я вынужден пропустить модуль построения геометрии. В остальном текст такой, какой гружу в ансис. Заранее благодарю за ответы!
ЗЫ Ансис 18.2

 

 

finish
/clear 
/filname,***,1 !Создание файла с именем "***"
/RGB,INDEX,100,100,100, 0   !Выставим белый фон
/RGB,INDEX, 80, 80, 80,13   
/RGB,INDEX, 60, 60, 60,14   
/RGB,INDEX, 0, 0, 0,15  
/AUTO

n_exp=1755                                           !Число расчётов

*DIM,Param,TABLE,n_exp,11,1                 !Создание таблицы с n_exp строками и 11 столбцами. 
*DIM,ParamOut,TABLE,n_exp,2,1              !Создание таблицы с n_exp строками и 2 столбцами. 

*TREAD,Param,Design,TXT,,1                    !Зачитывание исходных данных в таблицу Param


*DO,i,1,n_exp,1 !Начало цикла оптимизации

/VIEW,1,0,1,0,0
/FOCUS,1,700,0,0
/AUTO
!/ZOOM,OFF

/prep7
  !!Задали материалы
MPTEMP,,,,,,,,  
MPTEMP,1,0  
MPDATA,EX,1,,101000 
MPDATA,PRXY,1,,0.3  
R,1,1,1,1,1,1,1,                    !    Задали массу точки


/prep7
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Исходные данные    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
hpol1=Param(i,1)    !Задание толщины
B1=Param(i,2)    !Задание толщины рёбер
N1=Param(i,3)    !Задание количества рёбер
Hrib1=Param(i,4)    !Задание высоты рёбер

hpol2=Param(i,5)    !Задание толщины
B2=Param(i,6)    !Задание толщины рёбер
N2=Param(i,7)    !Задание количества рёбер
Hrib2=Param(i,8)    !Задание высоты рёбер

B3=Param(i,9)     !Задание толщины рёбер
N3=Param(i,10)    !Задание количества рёбер
Hrib3=Param(i,11)    !Задание высоты рёбер

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Построение геометрии!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!=============ПРОПУСК============!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!Толщины 
sect,1,shell,,pol1       !!Задали толщину полотна
secdata,hpol1,1,0,0,3 
SECOFFSET,TOP
seccontrol,,,, , , ,

sect,2,shell,,pol2       !!Задали толщину полотна
secdata,hpol2,1,0,0,3
seccontrol,,,, , , ,


sect,3,shell,,flange       !!Задали толщину фланца
secdata,5,1,0,0,3 
seccontrol,,,, , , ,

sect,4,shell,,rib1       !!Задали толщину Ребра
secdata,B1,1,0,0,3 
seccontrol,,,, , , ,

sect,5,shell,,rib2       !!Задали толщину Ребра
secdata,B2,1,0,0,3 
seccontrol,,,, , , ,

sect,6,shell,,rib3       !!Задали толщину Ребра
secdata,B3,1,0,0,3 
seccontrol,,,, , , ,

!!!!!!!!!!Разделим геометрию на компоненты
!!!!!!!!!!!!!!!!!!!!!!=========ПРОПУСК=================!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Построение сетки!!!!!!!!!!!!!!!!!!!!!!!!!!
ET,1,SHELL281 !Объявили тип элемента шелл
ET,2,21       !Объявили тип точечной массы
ESIZE,12,,    !Задали размер элемента


CSYS, 6

TYPE,1
SECTYPE,1,SHELL          !Мешим полотно
SECOFFSET, BOT
CMSEL,S,Pol1,AREA
AMESH, ALL


TYPE,1
SECTYPE,2,SHELL          !Мешим полотно
CMSEL,S,Pol2,AREA
AMESH, ALL


TYPE,1
SECOFFSET,MID
SECNUM,3              !Мешим фланцы
CMSEL,S,Flanges,AREA
AMESH, ALL

TYPE,1
SECOFFSET,MID
SECNUM,4             !Мешим рёбра
CMSEL,S,Rib1,AREA
AMESH, ALL

TYPE,1
SECOFFSET,MID
SECNUM,5          !Мешим рёбра
CMSEL,S,Rib2,AREA
AMESH, ALL

TYPE,1
SECOFFSET,MID
SECNUM,6          !Мешим рёбра
CMSEL,S,Rib3,AREA
AMESH, ALL

*IF,N3,GE,6,THEN
TYPE,1
SECOFFSET,MID
SECNUM,6          !Мешим рёбра
CMSEL,S,Rib4,AREA
AMESH, ALL
*ENDIF

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Приложение нагрузок!!!!!!!!!!!!!!!!!!!!!!!!!!
CSYS,0
ASEL,S,LOC,X,!!!!!!!==пропуск===!!!!
NSLA,S
D,ALL,ALL

K,100500,0,0,0
TYPE,2
KSEL,S,,,100500
KMESH,ALL
NSLK,S
*GET,NODENUM,NODE,0,NUM,MIN !Получить номер выделенного узла и записать его в NODENUM

CSYS,0
ASEL,S,LOC,X,-1,1
NSLA,A
CERIG,NODENUM,ALL,ALL

CSYS,0
FK,100500,MX,1000000  

ASUM,FINE
*GET,vo,AREA,0,VOLU !Выписываем значение объёма
mass=vo*4430E-9        !Считаем массу

ALLSEL,ALL
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!РЕШЕНИЕ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
/SOLU
ANTYPE,STATIC
PSTR,ON
SOLVE
FINISH

/SOLU
ANTYPE,BUCKLE
MXPAND,1
SOLVE
FINISH
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Результаты и сохранение картинок!!!!!!!!!!!
/POST1
/ESHAPE,1,0
SET,LAST
*GET,Mkrit,ACTIVE,0,SET,FREQ  !Выписываем значение множителя нагрузки
Mkrit=ABS(Mkrit)

/VIEW,1,0,1,0,0
/FOCUS,1,700,0,0
/AUTO
PLNSOL, U,SUM, 0,1,0 !Выводим форму потери устойчивости на экран
/VIEW,1,0,1,0,0
/FOCUS,1,700,0,0
/AUTO

/SHOW,PNG,,0   !Сохраняем картинку с формой потери устойчивости
PNGR,COMP,1,-1  !Настройки  сохраняемой картинки
PNGR,ORIENT,HORIZ   
PNGR,COLOR,2
PNGR,TMOD,1 
/GFILE,800,   
/REPLOT
/SHOW,CLOSE 
/DEVICE,VECTOR,0
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!ЗАПИСЬ РЕЗУЛЬТАТОВ В ТАБЛИЦЫ И ПЕРЕХОД К СЛЕДУЮЩЕЙ ТОЧКЕ!!!!!!!!!!!!!!!!!!!!!!!!
ALLSEL,ALL

/prep7
ParamOut(i,1)=Mkrit
ParamOut(i,2)=mass


FINISH

PARSAV,ALL,Parameterset,parm !Сохранение параметров в файл перед очисткой БД
/clear !Очистка БД
PARRES,NEW,Parameterset,parm !Обратное зачитывание параметров

*ENDDO !Конец цикла оптимизации

!!!!!!!!!!!!!!!!!!!!!!!!!!!!КОНЕЦ ЦИКЛА!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Запись файла с таблицей результатов!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
*MWRITE,ParamOut(1,1),Output,txt
(2F15.5)

Edited by /prep7

Share this post


Link to post
Share on other sites


UnPinned posts

ID: 2   Posted

На 99% вы уперлись в потерю устойчивости. 

Попробуйте сделать что-то типа "Если i=666 то не считать." Или сделайте 2 захода 1-665, 667-1755, что бы убедиться в проблемности данной конкретной точки.

 

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

 

Засёр базы маловероятен.

1 person likes this

Share this post


Link to post
Share on other sites

ID: 3   Posted

@Борман , Спасибо за ответ! Да-да, отдельно точку i=666 проверял. И точку i=665 и точку i=667. Всё в порядке. Но на множитель посмотреть не догадался) По поводу пропустить эту точку - мысль интересная - попробую. 

  • Не понял вот это: 
53 минуты назад, Борман сказал:

На 99% вы уперлись в потерю устойчивости.

  • Вы имеете в виду потерю устойчивости уже при статическом расчёте? Это очень маловероятно, но проверю. Или я неправильно понимаю эту фразу?
  • Не могли бы Вы поподробнее рассказать, почему может иметь смысл смотреть не только на модуль множителя нагрузки? Я так понимаю, что при симметричной задаче всегда должно существовать два значения с противоположными знаками.
  • Ещё, кстати, интересно, что опытные расчётчики понимают по засёром базы?

P.S.
Сейчас исправил свой существенный косяк: поменял настройки решателя устойчивости. Блок ланцош сменил на сабспейс (ибо памяти-то хватает) и бонусом указал диапазон поиска решения. Пока считает. Завтра будет ясно, что получилось. Если будет кому-то интересно, буду отписывать сюда, что получается.

Share this post


Link to post
Share on other sites

ID: 4   Posted

6 минут назад, /prep7 сказал:

Не понял вот это: 

Я уже сам что то торможу. Перегрелся наверное.

7 минут назад, /prep7 сказал:

почему может иметь смысл смотреть не только на модуль множителя нагрузки? Я

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

 

9 минут назад, /prep7 сказал:

Ещё, кстати, интересно, что опытные расчётчики понимают по засёром базы?

Так этож вы сами грешили на файл, который забивается.

 

10 минут назад, /prep7 сказал:

Блок ланцош сменил на сабспейс (ибо памяти-то хватает)

Не поможет :)

Share this post


Link to post
Share on other sites

ID: 5   Posted

@Борман , может и поможет) Ибо диапазон поиска указал положительный)

Share this post


Link to post
Share on other sites

ID: 6   Posted

В 13.05.2019 в 16:56, /prep7 сказал:

может и поможет)

помогло?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.



  • Сообщения

    • Udav817
      Спасибо. Сказали лучше, чем у меня получилось бы. Если кратко, то примерно это я и понимаю под полной симуляцией физической модели. Вот только слово "полный" я в своих ответах потерял. И отличается это всё списком допущений и упрощений, а также способом решения: линейная задача, дифф. уравнениями, какими именно уравнениями, с какими коэффициентами - постоянными или переменными и от чего (каких физических свойств и явлений) будут зависеть эти переменные коэффициенты.   Мне кажется, что не "как есть", а как смогли связать между собой мат. модели разных процессов. Если соединить теплопроводность, электропроводность и газодинамику, то "как есть" даже моделировать натурный эксперимент будет сложно, не говорю уже про единую мат.модель. Было дело, надо было свои эксперименты с диплома посчитать численными методами в Fluent (Ansys) и сравнить результаты. 10 лет назад для этого собирали комп на 8-ядрах с 16 гигабайтами памяти. Если бы не офисная видеокарта, это был бы игровой топ. А так вышел хороший комп для работы. До сих пор пашет.
    • AlexKaz
      Сие есть инфа не для моих ушей. Вы можете пробиться через бюрократию сделав официальный запрос в СКБ Мотовилихи. Благо у них всё подсчитано десятилетия назад.
    • maxems
      Человеку интересно понять логику работы стойки :) Это сложный вопрос. Тебе это вряд ли понадобится где либо. Если ты сам не собираешься организовывать компанию и "паять" стойки. Достаточно поискать какой-нить реферат, где вкратце описано, как все работает. А так - качни GOOGLE browser и напиши в нем на english-е, что тебе нужно. И ищи ... ищи ... ищи. На западных ресурсах можно тоже полезную инфу найти. Хотя рунет без бэ самый богатый. Ну или устройся в БАЛТ-систем :)
    • maxems
      То, о чем ты говоришь, я так понял, интересует тебя в случае паузы в обработке (к примеру, для контроля детали или удаления стружки). В  OKUMA этого нет (как в токарном, так и во фрезерном). Поэтому прописывай все вручную. К примеру (для фрезерного станка): Программа ... Z20. Y20. M00 ... Программа   PS. Размеры в инчах. Метрическую систему подзабывать стал.  
    • Мастеровой
      Вы задаёте вопрос на тему "можно ли поднять неподнятное?".Нет таких единых книг . Или пока  сам с ними за 30- летие  ремонта станков с ЧПУ не сталкивался . Разные системы . От разных производителей .  Да даже принципы программирования разные . G -функции и L -циклы . Были книги советские по  приводам станков с ЧПУ . По процессору типовому советскому . Но по всем ЧПУ- устройствам -не видел .Только через руководства по эксплуатации ,  программированию и т.д...
    • arturbd
      Комплект чертежей, в смысле полный пакет конструкторской документации, правильно оформленной, близкой к требованиям ЕСКД, спецификаций, сборочных и рабочих чертежей, чертежа (если есть) изделия с описаниемм, пояснительной записки (желательно, если есть) и прочее о чем я не знаю, но вы можете знать. Что касается на какую деталь данная пресс-форма это - не так важно. Пойдет и  форма, для резины, частично, как я понимаю. Главная цель -- это правильное оформление пакета и его составляющих.   Благодарю
    • FCLM
      Уважаемые коллеги, работаю программистом технологом уже пару лет и всё это время помимо чисто  технологических вопросов о подборе инструмента, оснастки, разработки технологии и УП существует огромный интерес к элементной базе или другими словами архитектуре систем ЧПУ. В связи с этим возникает проблема поиска литературы по данному вопросу. Пока единственное на что я наталкивался были руководства по эксплуатации различных систем, там можно что то подчеркнуть но все же информация там собрана больше практического характера и какие-то общие вопросы подробно не разбираются. Буду очень признателен любым ссылкам на источники, в том числе и на зарубежных авторов. Было бы очень интересно рассмотреть "настольные книги" опытных гуру!) 
    • irbitsky
      Вам как раз и нужно узнать в первую очередь, где установлен и в каком режиме работает редуктор. Исходя из этого установить коэффициент запаса. Обязательно нужно понимание, зачем использовать именно эту схему. Без этого крайне затруднительно качественно реализовать проект.
    • chatjokey
      аа, вы с самим собой? тогда извиняюсь.  только мой ник не трогайте. про опции тоже очень интересно послушать.  появлялась? какая? где? кто здесь? 
    • MiLloeDelo
      Похожая ситуация !@Владимир56