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

Mode-Superposition Transient Dynamic Analysis


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

Здравствуйте!
Пытаюсь решить задачу о динамическом нагружении консольной балки с помощью Mechanical APDL. Балка закреплена с одного торца, давление P=A*(1-cos(w*t)) приложено к плоскости z=0.

Решить нужно методом mode-superposition. Мой код выглядит примерно так:

/prep7
et,1,185
mp,dens,1,7800,
mp,ex,1,200000000000,
mp,nuxy,1,0.3,
shpp,off,,nowarn
nblock,3
(1i9,3e20.9)
        1    0.000000000e+000    0.000000000e+000    0.000000000e+000
        2    0.000000000e+000    1.066666667e-002    0.000000000e+000
        ...
     3185    6.400000000e-001    6.400000000e-002    6.400000000e-002
n,r5.3,loc,-1
eblock,19,solid,2304,2304
(19i9)
        1        1        1        1        0        0        0        0        8        0        1        1        2        9        8      456      457      464      463
        1        1        1        1        0        0        0        0        8        0        2        2        3       10        9      457      458      465      464
        ...
        1        1        1        1        0        0        0        0        8        0     2304     2722     2723     2730     2729     3177     3178     3185     3184
-1
cmblock,fixed_sup,node,49
(8i10)
         1         2         3         4         5         6         7       456
       457       458       459       460       461       462       911       912
       913       914       915       916       917      1366      1367      1368
      1369      1370      1371      1372      1821      1822      1823      1824
      1825      1826      1827      2276      2277      2278      2279      2280
      2281      2282      2731      2732      2733      2734      2735      2736
      2737
cmsel,s,fixed_sup
d,all,all
nsel,all
nsel,all
csys,0
fini
/solu
antype,2
modopt,lanb,100
mxpand,,,,yes,,no
solve
save
fini
/solu
antype,4
kbc,0
trnopt,msup
timint,on
nsubs,1,1,1
*dim,lpress,,1,10
*vread,lpress(1,1),pres,dat,,ijk,1,10
(E15.6)
*do,i,1,10,1
*do,j,1,384
sfe,j,1,pres,,lpress(1,1)
*enddo
time,0.0014*i
solve
*enddo
fini
/solu
expass,on
outres,erase
outres,all,none
outres,nsol,all
outres,strs,all
outres,epel,all
outres,rsol,all
numexp,all,,,yes
solve
fini
/post1
set,list
tau=0.0014
*dim,res_data,array,10,4
*do,i,1,9
set,1,i
res_data(i,1)=i*tau
*get,res_data(i,2),node,3182,s,eqv
*get,res_data(i,3),node,3182,u,sum
*get,res_data(i,4),node,3182,u,z
*enddo
fini
/out
/out,dynam,dat
*vwrite,res_data(1,1),res_data(1,2),res_data(1,3),res_data(1,4)
(F20.8,,F30.15,,F30.15,,F30.15)
/out

Но почему-то вместо "нормальных" значений для смещений и напряжений в узле 3182 в файл выписываются нули :( Не знаю как можно понять, я делаю что-то не так в решении динамической задачи (antype,4) или неправильно нахожу значение решения в нужные моменты времени (на этапе expass,on) и неправильно их обрабатываю в постпроцессоре. К сожалению, не нашел подобного примера, чтобы нагрузка как у меня задавалась на каждом шаге. Если кто-то видел или решал такие задачи, пожалуйста, посоветуйте где можно посмотреть примеры. Или если кто-то увидит косяк в коде, буду благодарен :)

Beam.thumb.png.264a60d7417f23cc8740edbfbcfdb0e8.png

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


Хэлп читали? https://www.sharcnet.ca/Software/Ansys/16.2.3/en-us/help/ans_str/Hlp_G_STR5_10.html

Для упрощения жизни (но не поиска её смысла) люди придумали онлайн-переводчики: https://translate.google.ru/translate?sl=en&tl=ru&js=y&prev=_t&hl=ru&ie=UTF-8&u=https%3A%2F%2Fwww.sharcnet.ca%2FSoftware%2FAnsys%2F16.2.3%2Fen-us%2Fhelp%2Fans_str%2FHlp_G_STR5_10.html&edit-text=&act=url

6 часов назад, arttem22 сказал:

где можно посмотреть примеры

Изучите два раздела Хэлпа: в ветке Mechanical "Loads" или "Loading", и где-то в финале "Verification manuals".

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

Я разобрался, что делал не так. На этапе решения динамической задачи (antype,4) методом mode-superposition нельзя использовать команду sfe. Нужно на этапе поиска частот собственных колебаний (antype,2) задавать векторы нагрузки (команда modcont,on), а затем эти векторы нагрузки в динамической задаче умножать на нужное значение (команда lvscale), чтобы получать нужные граничные условия. И теперь код выглядит так:

/solu
antype,2
modopt,lanb,100
modcont,on
thexpand,off
mxpand,,,,yes,,yes

*do,j,1,384
sfedele,all,all,all
sfe,j,1,pres,,1.0
solve
*enddo

fini
/solu
antype,4
kbc,1
trnopt,msup
timint,on
deltim,0.0014,0.0014,0.0014
*dim,lpress,,1,10
*vread,lpress(1,1),pres,dat,,ijk,1,10
(E15.6)

*do,j,1,384
lvscale,0,j
*enddo
time,0.0
solve

*do,i,1,10,1
time,0.0014*i
sfedele,all,all,all
*do,j,1,384
lvscale,lpress(1,i),j
*enddo
solve
*enddo

fini
/solu
expass,on
numexp,all,,,yes
solve
fini

 

Но теперь я не могу придумать как оптимизировать процесс приложения нагрузки. Пример с балкой я делаю как тестовый, здесь на всю грань z=0 действует одинаковая нагрузка, поэтому достаточно было бы сделать 1 вектор нагружения, который действует на нее и умножать на нужное значение на каждом шаге по времени. В тех задачах, которыми я занимаюсь, нагрузка на грань каждого элемента разная, получается, что мне приходится делать отдельный вектор нагружения для каждой такой грани (а их очень много может быть), как показано в примере выше. Соответственно создание одного вектора (команда solve в antype,2) занимает немало времени.

 

Поэтому вопрос, можно ли сделать один вектор нагружения, который бы действовал на грани всех элементов, а затем на этапе решения динамической задачи умножать каждую компоненту этого вектора на нужное значение (а не целиком весь вектор на один скаляр, как это сделано сейчас)?

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

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

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

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

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

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

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

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

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

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

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




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