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

Силовой_подход_саб


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

image.png

image.png

image.png

image.png

222.PNG

Отдельно код выложу:

APDL - вставка на запись узловых сил с грубой подмодели:

cmsel,s,cut1        
cmsel,a,cut2     

cmsel,a,cut3              !Выбор узлов на поверхностях разреза
*get,n_count,node,0,count            !Общее количество узлов
*get,n1,node,0,num,min                !Первый узел по порядку
*cfopen,r_force.txt                        !Текстовый файл, для записи данных
*do,i,1,n_count,1                !Цикл для получения реакций и координат узлов
    *get,n1_fx,node,n1,rf,fx    
    *get,n1_fy,node,n1,rf,fy
    *get,n1_fz,node,n1,rf,fz
    n1_x=nx(n1)
    n1_y=ny(n1)
    n1_z=nz(n1)
    *vwrite,n1_x,n1_y,n1_z,n1_fx,n1_fy,n1_fz    !Запись данных в файл
(6(E16.8,','))
    *get,n1,node,n1,nxth                !Следующий узел по порядку
*enddo  
*cfclos
alls

APDL-вставка на запись узловых сил в точную подмодель

/INQUIRE,numlines,lines,r_force,txt            !Определение количества строк (узлов) в файле
*dim,forceData,array,numlines,6                  !Массив для импорта данных
*vread,forceData(1,1),r_force,txt,,jik,6,numlines        !Чтение данных
(6(E16.8,','))
*do,i,1,numlines                        !Цикл для приложения сил
   n1=node(forceData(i,1),forceData(i,2),forceData(i,3))
   f,n1,fx,forceData(i,4)
   f,n1,fy,forceData(i,5)
   f,n1,fz,forceData(i,6)
*enddo

Файл проекта:

Sub_m1_full.wbpz

 

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


UnPinned posts

Добрый вечер, господа! Вопрос следующего характера:  в чём может быть проблема? (скорее всего в макросе, так как не совсем понимаю APDL). Задача следующая: хочу научиться применять силовой подход в подмоделировании. На данный момент в автоматическом режиме при submodeling'e типа Shell-Solid доступно только работать через перемещения, силовой подход типа Cut Remote Force доступен только при submodeling'e типа Beam-Shell/Solid. Иногда возникают задачи, когда необходимо в подмодели учесть дефект-трещину, в таком случае уважаемый @piden рекомендует использовать силовой подход, я начал изучать вопрос, не менее уважаемый @DrWatson натолкнул меня на статью https://www.ozeninc.com/force-based-submodeling/ где описаны этапы реализации подхода. Если вкратце, то так: 1. Составляется глобальная модель. 2. Создаётся грубая подмодель (без уточнений - с такой геометрией как и углобальной модели) в которую автоматически переносятся перемещения с глобальной подмодели, а также прописывается APDL вставка для импорта узловых сил в файл. 3. Создаётся уточнённая подмодель, куда так же с помощью APDL вставки импортируются узловые силы. 

При реализации этого подхода у меня возникли проблемы. 

1 картинка - глобальная модель - всё как положено Shell исполнение, грубая сетка, никаких уточнений геометрии.

2 картинка - грубая подмодель с APDL вставкой и импортированными перемещениями (всё получилось файл с узловыми силами создался).

3 картинка - точная подмодель с APDL вставкой, (по идее, если бы загрузились силы, то они были бы в структуре проекта типа Remote force, может я и ошибаюсь)

4 картинка - расчёт точной подмодели - результатов нет.

5 картинка - даже сетки одинаковые сделал, чтобы импортирование прошло наверняка. 

Пробовал даже не изменять вторую подмодель, чтобы просто проверить импорт узловых сил - но тоже безуспешно... 

Не знаю куда текст пропал - писал сразу по-человечески, поэтому пришлось переписать снова. 

 

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

Пока не прочитал вопроса, но отвечаю :)

 

1. С оболочечной модели не забрал моменты...

2... все равно их нельзя приложить на солидную модель

3.. и это все привело к тому, что модель неуравновешена по моменту.

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

1. С оболочечной модели не забрал моменты...

С оболочечной модели мы импортируем только перемещения на солидовскую первую грубую подмодель. (ну это по инструкции если). А уже потом с грубой подмодели мы копируем узловые силы в уточнённую подмодель. Как-то так. Почему-то про моменты ничего в гайде не было сказано(

 

Я не отрицаю, что я недопонимаю происходящее.

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

Силы разве интерполируются при переложении? Чёт я плохо уже помню, что я делал на эту же тему в Авиадвигателе в 2017 г., но применял я интерполяцию силовых полей через Scilab. Вспомнил: есть исходная сетка, есть целевая сетка. Стягиваем с исходной силы в узлах, интерполируем, прикладываем интерполированные силовые поля на новые узлы.

Код этого чуда на форуме я уже выкладывал неоднократно.

2 часа назад, Борман сказал:

 

1. С оболочечной модели не забрал моменты...

2... все равно их нельзя приложить на солидную модель

3.. и это все привело...

если немного подумать, то можно через лайфхак. Что я и сделал ;)

2 часа назад, S_Takoe сказал:

оболочечной модели мы импортируем только перемещения на солидовскую первую грубую подмодель. (ну это по инструкции если

Да, именно про этот лайфхак я и говорю.

 

Код есть тут https://gitlab.com/AlexKaz/

Ссылка на сообщение
Поделиться на других сайтах
39 minutes ago, AlexKaz said:

Код есть тут https://gitlab.com/AlexKaz/

Почти 1000 строк. Достойно. Даже знающим APDL курить нужно чтобы настроить под свой проект. Про новичков вообще не говорю.

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, S_Takoe сказал:

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

Теперь понятно.

Этого  шага у вас нет, или вы его не написали просто ?

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

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, S_Takoe сказал:

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

Это шаг ансис выполняет автоматически.

18 минут назад, Борман сказал:

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

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

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

@S_Takoe,

Я еще раз скажу, теперь уже здесь, в общей теме. Силовой подход нужен для очень специфического ряда задач, и в 90% случаев обычного сабмоделинга хватает за глаза. Если у тебя возник затык с расчетом и ты думаешь, что вот именно силовой сабмоделинг тебе поможет, то это совсем не так. Отступи от нерегулярных зон в своей подмодели подальше (вырежи чуть бОльший фрагмент), замельчи сетку. Вряд ли в твоей сабмодели больше 150к нодов, иногда для сабмоделей это вообще ничто. Скажу что глянув мельком, сетка довольно средняя, тем более на филлет велдах. 

 

 

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

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, S_Takoe сказал:

Задача следующая: хочу научиться применять силовой подход в подмоделировании.

С первого взгляда всё кажется и не таким уж сложным - концептуально вроде понятно - общая модель, 1-я субмодель, 2-я субмодель, какой-то код и готово, но не пошло почему-то... При этом, я и не знал, что много нюансов есть, думал лишь, что в коде, который я вставлял (бездумно) есть какие-то косяки, которые решаются, удалением или добавлением какой-либо строки.

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

А если не работают профи

Ну про это откуда мне знать?! Теперь буду знать, спасибо!

 

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

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

Это вроде сделал, даже какие-то результаты получились, хочу опробовать теперь силовой подход, сравнить результаты, посмотреть... но оказалось что тут не всё так просто.

11 минут назад, DrWatson сказал:

Смотри, здесь уже отметилось несколько очень серьезных спецов.

За что им огромное спасибо! И Вам в их числе!

Ссылка на сообщение
Поделиться на других сайтах
2 minutes ago, S_Takoe said:

За что им огромное спасибо! И Вам в их числе!

Спасибо, но в моем случае это преувеличение. У меня подход ремесленный, в большинстве своем я опираюсь на требования различных норм и результаты тестирования конструкций. Что происходит глубоко в расчетах понимаю не полностью. Коллеги выше действительно спецы в выч. механике. 

8 minutes ago, S_Takoe said:

Это вроде сделал, даже какие-то результаты получились, хочу опробовать теперь силовой подход, сравнить результаты, посмотреть... но оказалось что тут не всё так просто.

Да, не просто. Не переставай развиваться, и со временем станет понятнее ;)

Ссылка на сообщение
Поделиться на других сайтах
22 minutes ago, DrWatson said:

А если не работают профи, приводит нас к мысли, что тебе оно точно не нужно.

Вот с этим вряд ли соглашусь)

Профи много на форумах не сидят, это мы тут балбесничаем)

И на ссср3д в принципе очень мало людей, кто работал с fracture mechanics. Из мне известных: @Nikon6260, и @Борман что-то по аналитике считал...

 

Сейчас опробую свой силовой метод в WB, отпишусь. Вроде работает, но кликать много(

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

  

4 минуты назад, DrWatson сказал:

Да, не просто.

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

Ссылка на сообщение
Поделиться на других сайтах
2 minutes ago, piden said:

Вот с этим вряд ли соглашусь)

Профи много на форумах не сидят, это мы тут балбесничаем)

:5a33a36721bd3_3DSmiles(15):

2 minutes ago, piden said:

И на ссср3д в принципе очень мало людей, кто работал с fracture mechanics. Из мне известных: @Nikon6260, и @Борман что-то по аналитике считал...

@Graf Kim еще макрос скидывал. Так и тема ж непростая и очень узкая. Иногда с fatugue куча непонятного вылазит, а трещины это еще глубже. И более непредсказуемо.

Ссылка на сообщение
Поделиться на других сайтах
7 минут назад, piden сказал:

fracture mechanics...... @Борман что-то по аналитике считал...

Много лет назад я систематически занимался оценкой технического состояния трубы по результатам диагностики (неразрушающего контроля, НК). На выходе НК обычно перечень дефектов с размерами и формальным заключеием "допустимо" / "недопустимо" / "ремонт". Но если слова "недопустимо" или "ремонт" начинают фигурировать в официальных документах, к ним сразу начинает цепляться Ростехнадзор и требовать мероприятий по вырезке или ремонту. Обычно эти требования входили в противоречие с планами эксплуатирующих организаций по периодическим ремонтам, что приводило к всякого рода конфликтам хозяйствующих субьектов.

 

Тут подключался я, который должен был определить расчетный срок до ремонта отдельно взятого дефекта, 1% которых было на основном металле и 99% в сварных стыках. Общее их кол-во доходило до нескольких тысяч. Ни о каком численном анализе речи быть не могло. Только формулы, забитые в эксель. Было интересно, сейчас иногда скучаю по тем временам...

 

Сегодня я уже этим не занимаюсь, покольку не приветствуется, когда контора пишет заключения экпертизы промышленной безопасности на объекты, коорые сама и эксплуатирует :)

Из "дефектов" сейчас у меня непроектное положение, всякие вмятины и гофры... но это не так интересно.

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, DrWatson сказал:

Силовой подход нужен для очень специфического ряда задач

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

 

Вот здесь более чем подробно все рассказано и показано:

 

 

Изменено пользователем kolo666
Ссылка на сообщение
Поделиться на других сайтах
3 hours ago, S_Takoe said:

Если вкратце, то так:

 

1. Составляется глобальная модель.

2. Создаётся грубая подмодель (без уточнений - с такой же геометрией как и у глобальной модели). В нее автоматически переносятся перемещения с глобальной подмодели. А также в ней прописываем APDL вставку для импорта узловых сил в файл.

3. Создаётся уточнённая подмодель, куда так же с помощью APDL вставки импортируются узловые силы. Здесь на границах, куда будет происходить импорт, должна быть такая же сетка, как и в модели из п. 2. Это важно!

 

3 hours ago, S_Takoe said:

При реализации этого подхода у меня возникли проблемы. 

...

3 картинка - точная подмодель с APDL вставкой, (по идее, если бы загрузились силы, то они были бы в структуре проекта типа Remote force, может я и ошибаюсь) - да, ошибаешься)

 

Короче, проблема происходит уже при передачи из солида на солид узловых сил через APDL вставку. Вот вариант на много кликов, как обойтись без APDL вставки:



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

 

01.png

Границы, с которых будем брать узловые силы, для удобства названы s1 и s2. 

 

02.png

 

Нужно запросить узловые силы для записи в файл результатов.

03.png

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

04.png

Создадим User Defined Results со значениями, как на скрине. Первые два - векторное представление узловых сил на выбранных поверхностях. После визуально сравним с тем, что импортировалось на сабмодель.

05.png

 

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

06.png

 

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

07.png

Получаем 6 файлов, по три для каждой поверхности.

08.png

Вот так выглядит сам файл

09.png

 

 

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

10.png

 

Заходим в Setup от External Data, добавляем файлы, настраиваем параметры импорта.

11.png

 

Важно: координаты узлов сетки на границах сабмодели должны остаться те же, что и в исходной модели. Чтобы получить такую сетку, нужно импортировать все тела (сабмодель + все остальные), замешить всё с теми же параметрами, что использовались для исходной модели (или вообще скопировать весь анализ исходной), потом добавить нужные настройки сетки для тела субмодели и перемешить уже только ее. Разумеется, для таких манипуляций сетка для всех тел должна быть комфорная. Как видно, все тела помещены в один парт.

 

12.png

 

Импортируем нагрузки на соотв. поверхности. Выбираем нужные компоненты по осям (чтобы компоненты могли быть из разных файлов ранее и выбирали один из файлов как master).

Масштаб нагрузок выставляем -1, т.е. меняем направление узловых сил на противоположное.

13.png

 

Чтобы солвер не ругался на недостаток ограничений, выбираем Pivot Checking = Warning или Off.

Чтобы модель не улетала из-за небольшого дисбаланса нагрузок, включаем Inertia Relief.

14.png

И наконец-то!

15.png

 

Ссылка на сообщение
Поделиться на других сайтах
9 hours ago, S_Takoe said:

4 картинка - расчёт точной подмодели - результатов нет.

 

Немного изменил скрипты, чтобы исключить ручную работу по копированию файлов. А то @Борман совсем с методов ВБ офигевает...

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

 

Обратите внимание, куда именно в каждом случае вставляется command snippet: когда сохраняем данные - в раздел Solution, когда зачитываем - в environment (Static Structural).

 

01.PNG02.PNG

 

 


!!! SAVE_DATA

 

cmsel,s,cut1     
cmsel,a,cut2
cmsel,a,cut3


*get,n_count,node,0,count                            
*cfopen,r_force.txt     
! *vwrite,n_count
! ('n_count=',E16.8)
! *vwrite,
! ('/eof')                   
*do,i_,1,n_count
    *get,n1,node,0,num,min               
    *get,n1_fx,node,n1,rf,fx    
    *get,n1_fy,node,n1,rf,fy
    *get,n1_fz,node,n1,rf,fz
    n1_x=nx(n1)
    n1_y=ny(n1)
    n1_z=nz(n1)

    *vwrite,n1_x,n1_y,n1_z,n1_fx,n1_fy,n1_fz    
(6(E16.8,','))
    nsel,u,node,,n1             
*enddo  
*cfclos
alls

*dim,fname,STRING,256
fname(1)=strcat(_WB_USERFILES_DIR(1),'r_force')
/copy,r_force,txt,,fname(1),txt

 

 


!!! READ_DATA

 

*dim,fname,STRING,256
fname(1)=strcat(_WB_USERFILES_DIR(1),'r_force')
/copy,fname(1),txt,,r_force,txt

/INQUIRE,numlines,lines,r_force,txt            
*dim,forceData,array,numlines,6                  
*vread,forceData(1,1),r_force,txt,,jik,6,numlines        
(6(E16.8,','))
*do,i,1,numlines                        
   n1=node(forceData(i,1),forceData(i,2),forceData(i,3))
   f,n1,fx,forceData(i,4)
   f,n1,fy,forceData(i,5)
   f,n1,fz,forceData(i,6)
*enddo

 

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

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

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

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

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

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

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

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

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

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

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




×
×
  • Создать...