Jump to content

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


Igoshechka

Recommended Posts

Необходимо провести расчёт для одномерной задачи со скачком. Есть стержень с областями  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.)


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

Link to post
Share on other sites


UnPinned posts
soklakov
21 час назад, Igoshechka сказал:

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

Охохо)

Link to post
Share on other sites

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

Link to post
Share on other sites
soklakov
27.11.2022 в 14:59, Igoshechka сказал:

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

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

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

Link to post
Share on other sites
  • 3 weeks later...

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

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

Link to post
Share on other sites
soklakov
54 минуты назад, Igoshechka сказал:

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

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

  • Нравится 1
Link to post
Share on other sites
28.11.2022 в 16:58, Igoshechka сказал:

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

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

Link to post
Share on other sites
soklakov
27.11.2022 в 14:59, Igoshechka сказал:

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

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

Link to post
Share on other sites
19 минут назад, soklakov сказал:

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

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

 

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

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

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

Link to post
Share on other sites
Цитата

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

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

Цитата

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

:) 

Edited by Fedor
  • Конфузия 1
Link to post
Share on other sites
soklakov
2 часа назад, Igoshechka сказал:

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

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

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

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

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

 

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

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

 

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

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

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

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

Link to post
Share on other sites
55 минут назад, soklakov сказал:

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

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

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

 

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

 

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

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

 

 

  • Нравится 1
Link to post
Share on other sites
AlexKaz
22 часа назад, Igoshechka сказал:

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

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

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

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

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

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

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

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

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

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

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

 

 

  • Чемпион 1
Link to post
Share on other sites
Цитата

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

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

Link to post
Share on other sites
AlexKaz
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

Edited by AlexKaz
Link to post
Share on other sites
soklakov
3 часа назад, Igoshechka сказал:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.




  • Сообщения

    • AlexArt
      Очень интересно, но не понятно. Нужен простой пример действий и целей. Тогда, возможно, получится подсказать.
    • KorovnikovAV
      У тебя странные представления о страхе. Страна кстати в большинстве белая, просто с высоким уровнем преступности. А свои влажные фантазии оставь при себе, мне такое не интересно. 
    • netlend
      Добавка следуюющих страниц  
    • Jesse
      это ты типа показал, как надо шутить?)   это вряд ли..) и что же с тобой делали в ЮАР чёрные мальчики, давай рассказывай Только сильно без подробностей
    • Alex_anders
      Устанавливаю комплекты Simodrive 611 (платы 6SN1118-1NH01-...) на фрезерный станок. Управление импульсными сигналами, ОС по энкодерам син/кос. Почитал мануалы, скачал Simocom U. Подключил на столе. В целом все понятно, вопросов по параметризации приводов нет, двигатели работают нормально. Осталась пара вопросов.    1. Так и не понял, как организовать экстренное торможение двигателями при пропадании сигнала разрешения. Сигнал Естоп по ТБ должен быть заведен и в чпу и в привод. Если кнопкой аппаратно разрывать сигнал разрешения привода, он останавливается выбегом. У меня хоть и двигатели с тормозами, но хотелось бы сделать совсем по-правильному.     2. Не понял, может ли этот привод управлять вентилятором шпиндельного двигателя. Нашел параметр, при достижении температуры выводить предупреждение. Настроил его на выход. Вроде бы все хорошо, но по истечении таймаута (240с макс), привод вываливается в ошибку по перегреву. Такой вариант не прокатил  ).   
    • netlend
      Добрый вечер. Вообщем станок поехал,причину озвучивать не буду-элементарная ошибка ,что аж стыдно.С правой стороны обнаружил отгнивщий датчик ренишау.Дума завтра электронщик вернет-и предупреждение исчезнет.Не решилась проблема с проскоком револьверной головки и автозапуском гидравлики.Сделал фотки PMC страниц-может кто увидит некорректные данные.Буду благодарен за подсказки.
    • Ветерок
      Я тоже. Но Солид непобедим.
    • Shvg
      Не совсем понятно что пишется. Macros, standalone API (.exe files) или add-in (.dll files). И да, это затратная функция, особенно в exe файлах. Примерно раз в десять время можно сократить в них используя swApp.CommandInProgress.   Вот примерные тестовые результаты сборки из 10000 шариков с использованием CommandInProgress и exe файла. Время дано в миллисекундах. Функция GetChildren: 3198 Цикл for: 21069 Функция GetChildren: 3078 Цикл for: 21612 Функция GetChildren: 3127 Цикл for: 21538 Функция GetChildren: 3237 Цикл for: 21151 Функция GetChildren: 2973 Цикл for: 21622   Без CommandInProgress сама функция GetChildren отрабатывала 42...48 сек. P.S. Комп старенький.
    • ressurect83
      Подкидывал два других драйвера по оси Х, менял местами драйвера. Реакции ноль.
    • KorovnikovAV
      Что то я сомневаюсь в вероятности такого развития событий. Сильно. Да и после месяца в ЮАР меня сложно испугать. 
×
×
  • Create New...