Всем привет! Нужна помощь -
Решаю задачи контакта между колесом и рельсом.
Собственно нужно узнать какая площадь у этих объектов при контакте, в зависимости от силы и перемещения колеса вдоль оси колесной пары.
Это нужно чтоб валидировать эксперименты, а там выдаёт именно площадь - контакта между колесом и рельсом в миллиметров квадратных.
Вложение | Размер |
---|---|
1.png | 16.23 КБ |
Здравствуйте!
А в чем собственно вопрос?
Используйте Frictional Contact и все сопутствующие инструменты улучшения сходимости, а площадь контакта сможете оценить через Contact Tool/Status.
так и сделал, но мне нужно цифры - сколько mm^2, для статуса slinding, sticking и сколько вместе
Инструмент Contact Tool/Status выдает цифры тока они для меня непонятные, но явно не мм^2...
Сниппет вставлять в ветвь Solution; результат будет возвращаться в табличке Commands - в пункте Results появится аргумент my_contact_area.
Доп. настройки: Contact Misc. = Yes; Save MAPDL db = Yes.
спасибо, я тоже скрипт написал тока он 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
не считает((
этот код не подсчитывает плошадь в 3Д модели а тока в 2Д(то есть длину площади)
У меня считает. Просто у вас объемная задача и нужно следить за тем, какие контактные элементы назначает 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 постах сложно, но при должном усердии разобраться можно, я считаю.
Немного не тот скрин выложил - там еще команду 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
Как видите, два кирпича, один давит на другой, результат совпал с площадью соприкосновения: 2,8e7.
Удачки!
Добавить комментарий