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

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 пользователей

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



  • Сообщения

    • maxx2000
    • maxx2000
      обрабатываемые элементы Порядок Процесса Определите порядок, в котором будут обрабатываются проходы Глубинами Резания. Значение Описание Ширина Все горизонтальные проходы обрабатываются на первой Глубине Резания, затем все проходы на второй Глубине Резания и так далее. Глубина Первый горизонтальный проход обрабатывается на всех глубинах резания, затем второй проход на всех глубинах резания и так далее. выбери два независимых контура(поверхности) и включи параметр глубина и посмотри как это работает
    • drion
      Под элементами что подразумевается , детали в сборке или обрабатываемые поверхности?
    • maxx2000
      @drion эта настройка оказывает влияние  когда одной операцией обрабатываешь элементы не связанные друг с другом. По уровням мечется от элемента к элементу, т.е выбирает материал на каждом уровне на всех элементах сразу, а по глубине сначала выбирает материал полностью на одном элементе потом переходит к другому
    • Rshevskiy
      К сожалению, выдает ошибку про неправильный адрес ЧПУ,  станку не нравиться наличие оси Y в коде( Последнюю неделю был на больничном,даже проверить толком не успел,не серчайте)   Попробовал вывести через стандартный токарный пост - выдал с осью C, попробую её запустить, но не удобно каждый раз менять посты для вывода Фрез. операций. Может есть какие-то способы решения?  
    • drion
      Граждане, в NX есть опция "По уровням" и "По глубине". У меня от переключения с одной на другую траектория не меняется ни в одной операции. В чём может быть дело? (NX2206, NX2312)
    • Tad
      Как так? Давление надо смотреть динамическое, во время движения рабочего органа, как справедливо заметили выше.
    • Slavdos
      им очень выгодно так смотреть. моя хата с краю.
    • Fedorly
    • Bot
      Оригинал: How does direct modeling actually work?. Эту статью предложила опубликовать на isicad.ru команда C3D Labs, они же предоставили перевод на русский язык. Дмитрий Ушаков: Прямое моделирование давно стало неотъемлемым функционалом современной системы трёхмерного моделирования. Оно находит всё более широкое применение как в машиностроительном, так и в архитектурно-строительном проектировании. Причина тому понятна и очевидна — совместная работа разных исполнителей над одним объектом/изделием подразумевает частое внесение изменений в трёхмерную модель с использованием разных систем моделирования, каждая из которых говорит на своём «параметрическом языке», а единственным lingua franca становится инструментарий непосредственной манипуляции граничными элементами твёрдотельной модели — прямое моделирование. За последние 20 лет на портале isicad.ru были опубликованы десятки статей о прямом моделировании с описанием концепции, обзором разных реализаций, [...] View the full article
×
×
  • Создать...