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

Как заменить матрицу жёсткости в ANSYS


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

Необходимо провести расчёт для одномерной задачи со скачком. Есть стержень с областями  V1 и V2, между ними граница. На границе узлы имеют двойную нумерацию. Есть два способа, первый - прописать в ANSYS условие контакта на границе, но я не знаю как это сделать. (Буду рад, если кто-нибудь подскажет.) Знаю, что условие контакта имеет вид:

ui (на левой границе) = ui (на правой границе) - Ui, где Ui - скачок в перемещениях, который задан по условию задачи.

 

Т.к. не нашёл способ прописать условие контакта в ANSYS, то был выбран способ извлечения глобальной матрицы жёсткости из ANSYS, её модификации и загрузке обратно.

 

Я получил из ANSYS Mechanical APDL глобальную матрицу жёсткости с помощью следующих двух команд:
*DMAT, MatKD, D, IMPORT, FULL, file.full, STIFF
*PRINT, MatKD, Kdense.matrix

 

После чего отредактировал её и хочу загрузить обратно. Какие команды для этого использовать?

Также есть ещё один вопрос: как получить из ANSYS вектор нагрузки F? (Который используется вместе с матрицей жёсткости A*U=F.)


Заранее спасибо.

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


UnPinned posts

Команда "CE". 

Изменено пользователем Nikon6260
Ссылка на сообщение
Поделиться на других сайтах
21 час назад, Igoshechka сказал:

Т.к. не нашёл способ прописать условие контакта в ANSYS, то был выбран способ извлечения глобальной матрицы жёсткости из ANSYS, её модификации и загрузке обратно.

Охохо)

Ссылка на сообщение
Поделиться на других сайтах
8 часов назад, Fedor сказал:

"одномерной задачи со скачком" скачек чего ?  :)

Скачок перемещений и напряжений

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

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

Ссылка на сообщение
Поделиться на других сайтах
27.11.2022 в 14:59, Igoshechka сказал:

Т.к. не нашёл способ прописать условие контакта в ANSYS

Лучше поясните что надо.

Если обычный контакт - это не сложно.

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

Хотелось бы немного обновить информацию.
Скачок - это заранее известная функция, которую необходимо добавить к СЛАУ в методе конечных элементов.
Предложенная ранее команда CE позволяет задать скачок в перемещениях, но только для статического случая. Я нашёл команду CECMOD, которая позволяет изменять значение константы в CE при решении, но в HELP крайне скудное описание того, как это реализуется (куда нужно нажать или что ввести?). А вот как задать скачок в усилиях (напряжениях) так найти и не удалось (как я понял это можно сделать как раз таки только преобразованием матрицы), поэтому вопрос того, как загрузить обратно в ANSYS изменённую матрицу остаётся актуальным.

Заранее спасибо за ответ.

Ссылка на сообщение
Поделиться на других сайтах
54 минуты назад, Igoshechka сказал:

Скачок - это заранее известная функция, которую необходимо добавить к СЛАУ в методе конечных элементов.

Есть вероятность, что если вы сможете объяснить, что за физика стоит за этим скачком, то все окажется проще, чем пыхтеть с матрицами напрямую.

Ссылка на сообщение
Поделиться на других сайтах
28.11.2022 в 16:58, Igoshechka сказал:

Скачок перемещений и напряжений

Т.е. у вас нарушается условие неразрывности? Иначе говоря, у вас два тела. Тогда о каком скачке напряжений вы говорите? По какому закону эти два тела взаимодействуют друг с другом?

Ссылка на сообщение
Поделиться на других сайтах
27.11.2022 в 14:59, Igoshechka сказал:

первый - прописать в ANSYS условие контакта на границе, но я не знаю как это сделать.

А ведь прописать контакт совсем несложно))

Ссылка на сообщение
Поделиться на других сайтах
19 минут назад, soklakov сказал:

А ведь прописать контакт совсем несложно))

Я уже отвечал выше, что разобрался с тем, как реализовать скачок в перемещениях с помощью команды CE, но она не позволяет реализовать скачок в усилиях. Если вы сможете мне объяснить, как это сделать буду благодарен.

 

5 часов назад, Flint_ru сказал:

По какому закону эти два тела взаимодействуют друг с другом?

По всем законам теории упругости.

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

но она не позволяет реализовать скачок в усилиях

Перейдите к деформациям от напряжений через закон Гука, а от деформаций к перемещениям

Цитата

По всем законам теории упругости.

:) 

Изменено пользователем Fedor
Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, Igoshechka сказал:

Я уже отвечал выше, что разобрался с тем, как реализовать скачок в перемещениях с помощью команды CE, но она не позволяет реализовать скачок в усилиях. Если вы сможете мне объяснить, как это сделать буду благодарен.

Контакт это не СЕ.

Я знаю, как организовать контакт(и далеко не я один), но не уверен, что это то, что вам нужно.

Потому что вы рассказываете про скачок напряжений и перемещений на границе, а не про физику задачи.

Вы спрашиваете как вытянуть и подставить обратно матрицу жёсткости, но не говорите к примеру "у меня кубик толкает кубик, там на границе получается скачок напряжений потому что..." Я хз почему, вас лучше знать.

 

Ещё разок: если вам нужно организовать контакт двух тел - это просто, но я бы отправил вас в ВБ, там проще.

Если же нужен скачок напряжений, который не имеет под собой физики - может вы и на верном пути.

 

2 часа назад, Igoshechka сказал:

По всем законам теории упругости.

А что вы получаете в Гугле, если забиваете "contact apdl"?

Мне выдает видяха на три минуты. Не смотрел, но думаю она по теме.

Ссылка на сообщение
Поделиться на других сайтах
55 минут назад, soklakov сказал:

А что вы получаете в Гугле, если забиваете "contact apdl"?

Я видел это видео ранее, и, на сколько могу судить, это не то, что нужно.

Возможно стоит попробовать ещё раз более развёрнуто.
Рассматривается задача в рамках линейной теории упругости с заданными скачками искомых функций.

 

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

 

В процессе преобразования этой постановки: вычитания из общей постановки (в которую входят сооружение и основание) постановки для основания (без сооружения), получается новая, в которой уже нет источника в основании, а единственным источником возмущения являются скачки в перемещениях и усилиях на самой границе и они известны. Скачки входят в условие контакта.
Новая задача заключается в нахождении решения возникшего от скачков.
 

Эти условия контакта мне и необходимо учесть в ANSYS.

 

 

Ссылка на сообщение
Поделиться на других сайтах
22 часа назад, Igoshechka сказал:

как задать скачок в усилиях (напряжениях) так найти и не удалось

Первое решение - просто забить на упрощения и решать полную задачу безо всяких упрощений и подразделений на фундаменты и не фундаменты. компы сегодня быстрые, можно себе позволить. вряд ли у Вас что-то монструозное. ну, будет считать на 10 минут, а 10 часов - ничего страшного, привыкните. Возможно потребуется решать оптимизационную задачу. Это Вам придётся доказывать, что Вы специалист, а не нам.

Второе решение - бить задачу на transient с мелким шагом. На шаге самостоятельно формируете или берёте с предыдущего этапа в нужных элементах (области) напряжения, деформации, скорости, перемещения и закидываете в нужные узлы/элементы новые значения, которые потребуются.

Если есть непонятки по пункту 1 и 2 - можно начать выполнять и то, и то с реализации ПИД-регулятора - сразу триллион задач упрощает в мгновение.

1 час назад, Igoshechka сказал:

единственным источником возмущения являются скачки в перемещениях и усилиях на самой границе и они известны

Вам бы не с большой задачи начать, а на клочке бумаги формализовать что Вы вообще хотите? Понимаете, Вы не в софте чё-то делаете, а уравнения решаете. Начните с них.

Давайте прикинем. По заветам Ньютона:

dF=da*m=dddx*m =ddx*C= k*dx =... =... =..

Вы можете задать ускорение в узле на границе, какое захотите? Да. Вы можете задать скорость <//>? Да. Вы можете задать перемещение <//>? Да.

Далее мысль сами разовьёте, глядя на вот это равенство выше? Вам Fedor всё подсказал.

 

 

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

на границе контакта волны должны проходить друг через друга, не мешая

Суперпозицию в линейных задачах никто не отменял... 

Ссылка на сообщение
Поделиться на других сайтах
27.11.2022 в 05:59, Igoshechka сказал:

Я получил из ANSYS Mechanical APDL глобальную матрицу жёсткости с помощью следующих двух команд:
*DMAT, MatKD, D, IMPORT, FULL, file.full, STIFF
*PRINT, MatKD, Kdense.matrix

 

После чего отредактировал её и хочу загрузить обратно. Какие команды для этого использовать?

Также есть ещё один вопрос: как получить из ANSYS вектор нагрузки F? (Который используется вместе с матрицей жёсткости A*U=F.)

Эээ, если у Вас на руках полные матрицы - а чего сами то не возьмёте и не решите задачу? Матлаб-Сайлаб-Фортран-numpy - десятки-сотни способов решения. Метод Ньюмарка нагуглите наконец.

 

Как извлечь вектор сил? Например, через *get можно пройтись в цикле по всем узлам и попробовать вытащить нужное. Аналогично, через *vget (вроде).

Вектор сил командой вроде бы задаётся через *VEC, RHS, ...

 

Загрузка матриц той же командой

DMAT,,,IMPORT,APDL

Изменено пользователем AlexKaz
Ссылка на сообщение
Поделиться на других сайтах

Здесь предлагают прожмякать ряд меню чтобы вытащить вектор сил https://web.engr.uky.edu/~jbaker/ANSYS-Stiffness_Matrix-v8p1.pdf

 

 

ANSYS-Stiffness_Matrix-v8p1.pdf

Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, Igoshechka сказал:

Возможно стоит попробовать ещё раз более развёрнуто.

Обратите внимание насколько лучше фидбек)

3 часа назад, Igoshechka сказал:

В процессе преобразования этой постановки

Соглашусь с Александром, что может проще в лоб решать с обычным контактом.

Ладно проще - нагляднее и прозрачнее. И поле для ошибок меньше.

4 часа назад, Igoshechka сказал:

единственным источником возмущения являются скачки в перемещениях и усилиях на самой границе и они известны. Скачки входят в условие контакта.

Я может туплю, конечно, но кажется после преобразования у вас больше нет контакта, а есть граница. На границе нет скачков, там просто граничное условие.

2 часа назад, Fedor сказал:

Суперпозицию в линейных задачах никто не отменял... 

А контакты - нелинейная задача)

4 часа назад, Igoshechka сказал:

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

Неотражающие ГУ?

А то через контакт-то, который размыкаться может, без отражений волна не пройдет.

Откуда возникает вопрос, а понимаем ли под "контактом" одно и то же. Может вам нужно просто сетки связать? И нет там контакта на самом деле..

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • ДОБРЯК
      Хорошо. Можно тоже самое написать еще раз. Вы ищите решение СЛАУ. И чтобы найти это решение вы задаете уравнение, что  перемещение какой-то степени свободы равна какому-то числу. Но в данном примере всего два уравнения, всего две степени свободы.  И сказав, что перемещение первой степени свободы равно 1, например, у вас остается одно уравнение с одним неизвестным.  А если у вас СЛАУ из 100 уравнений, вы скажите, что перемещение первой степени свободы равно 1, например. Но как найти остальные 99 неизвестных не решая СЛАУ? Нужно решать в общем случае?   Решайте любым методом. Вы скажите нужно СЛАУ решать для нахождения собственных векторов.  Предлагаю двигаться маленькими шажками. Если нужно решать СЛАУ, то это один путь развития диалога, если не нужно, другой.
    • bubl leg
      Кстати, может кто знает - возможно ли в Солиде, наложить на плоскую/круглую/произвольной формы деталь - картинку чёрно-белую (карта высот) и выдавить её в виде объёмной рельефной поверхности? Понимаю, что солид не совсем для этого -но чем чёрт не шутит...:-) Такой инструмент есть в 3D Studio Max - модификатор displace. "Знал, умел, практиковал". :-) Итак?
    • Nikomas
      Господа, ищу того, кто сможет внести изменения в программу ПЛК станка. В частности необходимо убрать инициализацию цепи безопасности (проверку замков дверей) при загрузке Sinumerik. Образ скачан и заархивирован в Step7.
    • Anat2015
      Какой станок, какое ЧПУ, какой магазин, и т.д. и т.п.? Задаете вопросы, как будто здесь все экстрасенсы.
    • Fedor
      верхняя линия это если не учитываем давления воздуха, а нижняя если учитываем.  То есть если не учитываем то считаем грунт более прочным чем на самом деле ...  
    • maxx2000
      @asd выводит нормально, с постпроцессором что-то  
    • Orchestra2603
      Это уже больше похоже на конструктивный разговор.   Я это понимаю. Мой тезис заключается в том, что когда мы ищем собственные вектора, мы вообще не решение ищем. Ну, не совсем решение, если хотите. В терминах СЛАУ можно сказать, что мы ищем базисные вектора фундаментальной системы решений. Нам не нужно что-то фиксировать и вводить какие-то точки отсчета. Нам нужно установить все пространство возможных решений однородной системы целиком, и потом из него просто выделить некоторый базис. Это не то же самое, что найти решение СЛАУ.   Про факторизацию... В моем понимании факторизация (в частоности, матрицы) - это разложение на множители (здесь на матричные множители), так чтобы получились какие-то другие матрицы, которые обладают какими-то выгодными свойствами (разложение Холецкого для положительно определенных матриц, LU, QR, QZ, сингулярное разложение и т.д.) В моем понимании это обычно нужно для повышении эффективности последующих операций, ускорения работы алгоритмов, для лучшей сходимости итерационных методов, где-то для эффективной параллелизации и т.д. Ничего не слышал раньше о ситуациях, когда факторизация жизненно необходима, и без нее задача не решается. Как я это вижу, существует много различных способов факторизации матрицы. Я просто не могу понять про какую конкретно факторизацию вы говорите и не могу понять, как она должна помочь, и почему ее невозможно сделать для вырожденной матрицы? Я бы, честно говорю, хотел разобраться в этом. Возможно, я что-то вообще неправильно понимаю.
    • asd
      Надеюсь, это то, что вы имели в виду.   TOOL PATH/THREAD_MILLING_1_COPY,TOOL,STD_DRILL TLDATA/TCUTTER,10.0000,0.0000,0.0000,80.0000,10.0000,8.0000 MSYS/0.0000,0.0000,0.0000,1.0000000,0.0000000,0.0000000,0.0000000,1.0000000,0.0000000 $$ centerline data PAINT/PATH PAINT/FEED PAINT/SPEED,10 PAINT/COLOR,186 FROM/0.0000,0.0000,50.0000,0.0000000,0.0000000,1.0000000 LOAD/TOOL,1 RAPID GOTO/0.0000,0.0000,3.0000 PAINT/COLOR,181 FEDRAT/MMPM,500.0000 GOTO/0.0000,0.0000,-33.0211 PAINT/COLOR,6 FEDRAT/250.0000 GOTO/21.6792,-1.2470,-33.0211 CIRCLE/21.7509,0.0000,-33.0000,0.0000000,0.0000000,-1.0000000,1.2491,0.0100,0.5000,10.0000,0.0000 GOTO/23.0000,0.0000,-33.0000 PAINT/COLOR,31 CIRCLE/0.0000,0.0000,-4.5000,0.0000000,0.0000000,-1.0000000,23.0000,0.0100,0.5000,10.0000,0.0000,TIMES,19 GOTO/23.0000,0.0000,-4.5000 PAINT/COLOR,1 CIRCLE/21.7509,0.0000,-4.4789,0.0000000,0.0000000,-1.0000000,1.2491,0.0100,0.5000,10.0000,0.0000 GOTO/21.6792,1.2470,-4.4789 GOTO/0.0000,0.0000,-4.4789 PAINT/COLOR,103 RAPID GOTO/0.0000,0.0000,50.0000 PAINT/FEED,NOMORE PAINT/SPEED,10 PAINT/TOOL,NOMORE END-OF-PATH  
    • gudstartup
      @Aiche если у вас осталасть на столе привязанная деталь  то можете выставить нули так чтобы значения совпали и ничего снимать не придется к тому же от того что вы снимите ничего не поменяется ведь под кожухами у вас нет никаких 0 меток ни направляющих ни на станине очень неприятные. надо было оставить режим принудительного обнуления @Aiche и срочно сделайте нормальный бэкап в вашем кроме программ ничего нет. хотябы копию памяти надо иметь а то может и в чпу батарейка сесть и тогда будет очень плохо
    • Fedor
      То есть грунт физически находится в сжатом состоянии на поверхности земли. И при вычислении связности грунта логично бы учесть это при построении предельного графика сигма - тау... 
×
×
  • Создать...