Перед началом работы настоятельно рекомендуем ознакомиться с правилами форума.

Площадь контакта в Ansys Workbench (static, transient structural)

12 сообщений / 0 новое
Последняя публикация
Blanari Igor
Аватар пользователя Blanari Igor

Всем привет! Нужна помощь -

Решаю задачи контакта между колесом и рельсом.

Собственно нужно узнать какая площадь у этих объектов при контакте, в зависимости от силы и перемещения колеса вдоль оси колесной пары.

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

 

ВложениеРазмер
Иконка изображения 1.png16.23 КБ
Sergey Khrulev
Аватар пользователя Sergey Khrulev

Здравствуйте!

А в чем собственно вопрос?

Используйте Frictional Contact и все сопутствующие инструменты улучшения сходимости, а площадь контакта сможете оценить через Contact Tool/Status.

Blanari Igor
Аватар пользователя Blanari Igor

так и сделал, но мне нужно цифры - сколько mm^2, для статуса slinding, sticking и сколько вместе

Инструмент Contact Tool/Status выдает цифры тока они для меня непонятные, но явно не мм^2...

sfagmer
Аватар пользователя sfagmer

Не забудьте предварительно создать Named Selection!
Скрипт:

resume
set,last !set the last results, change as needed!!! Especially if multi results sets

allsel

*get,num_el,elem,0,count !get number of contact elements selected
*get,start_id,elem,0,num,min !get id of first contact element
*dim,cnt_area,array,num_el !dimension the contact area array

cmsel,s,cnt_press_edges !select nodes of interest. Need face name selection on area of interest
esln,s,1 !select elements attached to these nodes
esel,r,ename,,172 !reselect the contact elements

*vget,elem_sel,elem,start_id,esel !create mask vector of selected 1=selected -1=not selected

allsel

*vabs,1
*vmask,elem_sel !turn on mask
*vmask,elem_sel !turn on mask
*vscfun,elem_tot_area,sum,elem_area !sum the area of the contact elements

*vmask,elem_sel !turn on mask
etable,carea,nmisc,27 !get the contact area
*vmask,elem_sel !turn on mask
*vget,cnt_area,elem,start_id,etab,carea !store in array
*vmask,elem_sel !turn on mask
*vscfun,tot_area,sum,cnt_area !sum the contact area

my_contact_area = tot_area !output variable tot_area

sfagmer
Аватар пользователя sfagmer

Сниппет вставлять в ветвь Solution; результат будет возвращаться в табличке Commands - в пункте Results появится аргумент my_contact_area.

Доп. настройки: Contact Misc. = Yes; Save MAPDL db = Yes.

 

Blanari Igor
Аватар пользователя Blanari Igor

спасибо, я тоже скрипт написал тока он 0 выдаёт

resume
set,last                        

allsel

*get,num_el,elem,0,count               
*get,start_id,elem,0,num,min            
*dim,cnt_area,array,num_el               

cmsel,s,cnt_press_edges                
esln,s,1                                  
esel,r,ename,,172                   

*vget,elem_sel,elem,start_id,esel           

allsel

*vabs,1
*vmask,elem_sel                  
*vmask,elem_sel                   
*vscfun,elem_tot_area,sum,elem_area        

    
*vmask,elem_sel                    
etable,carea,nmisc,27               
*vmask,elem_sel                   
*vget,cnt_area,elem,start_id,etab,carea        
*vmask,elem_sel                                       
*vscfun,tot_area,sum,cnt_area           


my_contact_area = tot_area               

Blanari Igor
Аватар пользователя Blanari Igor

не считает((

Blanari Igor
Аватар пользователя Blanari Igor

этот код не подсчитывает плошадь в 3Д модели а тока в 2Д(то есть длину площади)

sfagmer
Аватар пользователя sfagmer

У меня считает. Просто у вас объемная задача и нужно следить за тем, какие контактные элементы назначает Ansys WB (либо назначать их принудительно через Commands) - смотреть надо в Slution Information:

*** ELEMENT MATRIX FORMULATION TIMES
     TYPE    NUMBER   ENAME      TOTAL CP  AVE CP

        1     14694  SOLID186      8.062   0.000549
        2     11040  SOLID186      5.969   0.000541
        3      4289  CONTA174      2.188   0.000510
        4      4289  TARGE170      0.156   0.000036
        5      1840  SURF154       0.438   0.000238

Возможно, нужно заменить 172 элемент на 174. А сам скрипт в общем универсальный.

У меня считает.

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

sfagmer
Аватар пользователя sfagmer

Немного не тот скрин выложил - там еще команду etable немного поменять нужно: после nmisc вместо 27 поставить 58 (элемент для 3D задач Conta174 и у него этот параметр вывода имеет другой порядковый номер). Листинг скрипта такой в общем:

!contact area macro 

resume
set,last                        !set the last results, change as needed!!!  Especially if multi results sets

allsel

*get,num_el,elem,0,count                !get number of contact elements selected
*get,start_id,elem,0,num,min            !get id of first contact element
*dim,cnt_area,array,num_el                !dimension the contact area array

cmsel,s,cnt_press_edges                !select nodes of interest. Need face name selection on area of interest
esln,s,1                        !select elements attached to these nodes            
esel,r,ename,,174                    !reselect the contact elements

*vget,elem_sel,elem,start_id,esel            !create mask vector of selected 1=selected -1=not selected

allsel

*vabs,1
*vmask,elem_sel                    !turn on mask
*vmask,elem_sel                    !turn on mask
*vscfun,elem_tot_area,sum,elem_area        !sum the area of the contact elements

    
*vmask,elem_sel                    !turn on mask
etable,carea,nmisc,58                !get the contact area
*vmask,elem_sel                    !turn on mask
*vget,cnt_area,elem,start_id,etab,carea        !store in array
*vmask,elem_sel                    !turn on mask                    
*vscfun,tot_area,sum,cnt_area            !sum the contact area


my_contact_area = tot_area                !output variable tot_area

sfagmer
Аватар пользователя sfagmer

Как видите, два кирпича, один давит на другой, результат совпал с площадью соприкосновения: 2,8e7.

Удачки!

Тема закрыта