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

Площадь контакта колеса с рельсом


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

Здравствуйте! Не получается посчитать через APDL-вставку площадь контакта колеса и рельса. Использую следующий код:

 

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 -l=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   

 

В результате получаю  my_contact_area=0,

 

Возможно ошибка связана с типом элемента?

Типы елементов которые заданны.

TYPE    NUMBER   ENAME      TOTAL CP  AVE CP

        1      5586  SOLID186      0.000   0.000000
        2      9022  SOLID186      0.047   0.000005
        3       342  SOLID186      0.000   0.000000
        4       838  CONTA174      0.000   0.000000
        6       269  CONTA174      0.000   0.000000
        8       180  SURF154       0.000   0.000000
 *** LOAD STEP     1   SUBSTEP     1  COMPLETED.    CUM ITER =     11
 *** TIME =  0.300000E-02     TIME INC =  0.300000E-02

 

В решателе пишет следующее:

 

 *** WARNING ***                         CP =     218.109   TIME= 23:24:25
 The ETABLE command has requested item = NMISC, comp = 58 of element 1  
 (element type SOLID186).  0.0 is output, as this item does not exist.  
 Checking for this discontinues.                                        

 SET MASK VECTOR TO  ELEM_SEL(1:24624)
 VECTOR GET OPERATION  cnt_area  VECTOR LENGTH=   17344
 NAME= ELEM         1  ETAB  CAREA  
 SET MASK VECTOR TO  ELEM_SEL(1:24624)
 VECTOR PARAMETER OPERATION *VSCFUN
  TOT_AREA = SUM  cnt_area       
 VECTOR LENGTH=   17344
 RESULT=  0.0000   
 PARAMETER MY_CONTACT_AREA =     0.000000000  

 

Заранее благодарю!

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


UnPinned posts

Должно быть так (cnt_press_edges - твой named selection с контактной гранью):

 

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

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 
   
*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
                     
*vget, elem_sel, elem, start_id, esel                  !create mask vector of selected 1=selected -l=not selected
*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   

 

Ну и на будущее, если не получается в Воркбенч, открой Классик и в нем посмотри что происходит построчно.  Обычно так коды и проверяют.

 

Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...

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

Нашел способ как можно определять площадь контакта без написания ADPL кода. Я так и не нашел причину почему код не срабатывал, даже тот который предложен выше. Спасибо DrWatson за помощь.

Для того, чтобы посчитать площадь контакта создаете в блоке Solution User Defined Results.

В настройках Expression прописываете contarea.

В настройках Output Unit выбираете Area.

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

После расчета в Results Total отобразится величина площади контакта. Может кому-то это поможет.

 

Правда во время решения у меня выскакивает предупреждение

The user defined result might not be calculated successfully wholly or in some areas. There are some elements (or nodes) which do not contain data for the expression in: 280 = contarea

 Note that the result data may not be contained in the result file or may not be applicable to some element types.  Also note that the solver module can create elements, such as surface effect or interface elements, whose results cannot currently be scoped in a contour display.

(Пользовательский результат может быть не рассчитан полностью или в некоторых областях. Есть некоторые элементы (или узлы), которые не содержат данных для выражения в: 280 = contarea

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

 

Это потому, что не все элементы находятся в контакте?

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

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

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

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

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

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

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

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

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

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

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




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