Pull to refresh

Comments 56

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

Спасибо! Очень приятная статья для вечера пятницы!

(Кстати, если кто-то захочет почитать ещё чего-то подобного на ночь глядя, то вот вам отличный вариант 😎)

Эх, я вспомнил сразу метод единичных перемещений (метод конечных элементов) и метод единичных сил :)

Да, МКЭ — по сути, и есть метод перемещений, но доведённый до абсолютной формализации.

К сожалению, у нас в универе МКЭ демонстрировался только на одномерных задачах, что лишало его обаяния и оставляло недоумение ("Зачем огород городить? Рассчитать балку на растяжение я могу и попроще").

Ну мы считали не балки :)

А ещё я помню, несмотря на кажущийся парадокс, что от порядка нагрузки элементов многомерной конструкции, эпюра напряжений сил и моментов будет принимать различные очертания...

В универе проходные лабы были, надо было запрогать МКЭ с визуализацией на c++, а теперь это статьи на Хабре, и гораздо выше уровнем. Респект.

А триангуляцию тоже на этих лабах писали?

Это было сто лет назад, не помню уже как было, думаю что простое разбиение сеткой. писали код для расчета напряжений, теплопроводности, ещё чего, то, и визуализация была по пластине, например, в статике. А тут я смотрю целую прогу написали, с динамическими анимациями.

У нас был курсач по информатике. Один из вариантов был как раз МКЭ :)

Сетку, правда, рисовал вручную. Потом мою прогу, на сколько я знаю, использовали в лабораторках.

Скорее курсовая, всё же. У гениального автора статьи на это дело ушла неделя труда, а в институте же лабораторная каждую неделю, да по нескольким предметам, не считая всего остального, да и не все студенты (возможно, я ошибаюсь), особенно лет 20 назад, владели именно С++. У нас в МФТИ в начале 200-х на первых курсах владели в основном С, да и то не все. Хотя, может я чего-то не догоняю...

Кстати, можно было бы точки не в программе задавать (и делать интерфейс для всего этого), а взять 3д редактор (например, Blender), там нарисовать контур, триангулировать, отредактировать сетку как хочется и потом экспортировать в файл в obj формате.

А потом из него загрузить и использовать.
Сам формат очень простой, написать его загрузку несложно: https://en.wikipedia.org/wiki/Wavefront_.obj_file

P.S. Когда-то ради интереса пробовал написать что-похожее, но для 3д и у меня ничего толкового не получилось, потому что про матрицы жёсткости и прочие штуки я не знал :D

А что делать с силами, связями и материалом? Здесь в любом случае нужен специализированный редактор. Ну и вообще, продолжая вашу логику, можно просто взять ANSYS и сразу всё посчитать. Но удовольствие было не в этом.

А используемый Вами МКЭ, это тот же FEM, что в АNSYS? Я просто в вашей статье ни одного интеграла не увидел, вот и спрашиваю.

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

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

С одной стороны, FEM - это всякие weak integration form, shape functions, test functions, не обязательно 3 точки на треугольник, а больше, 6 или даже 7, но это ладно.

С другой, из вашего объяснения у меня сложилось впечатление, что в вашей модели треугольники связаны между собой только вершинами. А ребра соседних элементов друг друга не чувствуют. Вы делаете разрезы по каждому ребру и начинаете "дергать" треугольники за вершины? И теперь на ребрах у нас нормальная компонента стресса оказывается равна нулю. Но это ведь совсем другие граничные условия там? В реальности то соседние (виртуальные) элементики именно ребрами взаимодействуют.

Или математически доказывайте эквивалентность подходов, или сравнивайте ваше решение с каким-нибудь известным софтом. Тот же ANSYS, Сomsol или FEniCS. Конечно, сетки должны быть одинаковыми. И это будет проблема номер 2 - импорт сетки в "чужом" формате.

Т.е. с третьей стороны построение сетки к FEM никакого отношения не имеет. Offtopic, если на название статьи смотреть ;)

  1. У меня было желание вернуться к истокам и показать МКЭ в самом простом и наглядном исполнении. Поэтому и задача выбрана механическая — самая интуитивная и исторически первая, решённая этим методом. Все те понятия, что вы перечислили, — позднейшие математические наслоения, нужные ради обобщения, но педагогически вредные при первом знакомстве. К тому же, моё образование — механика, а не уравнения математической физики.

  2. Действительно, в моей модели (хотя она вовсе не моя) треугольники связаны только вершинами. Опять же, это самое простое исполнение, дающее хоть сколько-то адекватный результат. Получающиеся при этом разрывы напряжений на рёбрах — издержка аппроксимации (в том конспекте лекции, на который я ссылался в статье, этому уделено внимание). Возьми я более сложную модель с непрерывными напряжениями, меня бы спросили, а почему они не гладкие. Усложнять можно до бесконечности. Я хотел упростить.

  3. Построение сетки имеет к МКЭ хотя бы то отношение, что без сетки МКЭ невозможен. Руководства по МКЭ (в том числе и статьи на Хабре) упоминали сетку как некую данность. Для меня это — потерянное звено в цепи. К тому же, МКЭ выдвигает свои требования и к конкретным свойствам сетки (почему Делоне, а не какая-нибудь наугад взятая триангуляция?).

почему Делоне, а не какая-нибудь наугад взятая триангуляция?

Насколько я помню, тут ведь положения нод фиксированы? А хорошоие генераторы сеток их сами расставляют, проверяют качество ячеек и при нужде пытаются точки подвигать, чтобы по выбранному критерию качество улучшить. И опять же, можно даже поуправлять размером ячеек, где надо, сделать погуще, где наоборот. Можно refine попросить у ноды, у ребра. Увы, все денег стоит :(

Да, фиксированы. И автоматического измельчения сетки тоже нет. Можно только натыкать дополнительных точек руками, предварительно посмотрев, где случаются самые интересные перепады напряжений.

вашего объяснения у меня сложилось впечатление, что в вашей модели треугольники связаны между собой только вершинами

Насколько я помню (я регулярно использую ANSYS, но теорию МКЭ уже подзабыл) - треугольники (или любые другие элементы, которых есть великое множество) всегда связаны только узлами. Рёбра же предполагаются прямыми, причём ребро получается общее для нескольких элементов. Поэтому и рассматривать взаимодействия рёбер бессмысленно - его просто нет. Всё, что у нас есть - это реакции и деформации в узлах, которые мы затем пересчитываем в напряжения через площадь. А дальше уже хитрой математикой считаем те напряжения, которые нам нужны - нормальные, сдвиг, сигму один-два-три, эквивалентные по Мизесу.

Полагаю, вы правы. Я и сам навскидку не могу придумать, как можно учесть взаимодействие рёбер (если они не разбиты дополнительными вершинами). Замечание @Andy_U справедливо в одном: разрыв напряжений на рёбрах — физически абсурдный результат. "Природа не делает скачков". Но что-то подобное случается с любой дискретизацией любого уравнения. Любое интегрирование прямоугольниками — уже скачки, которых нет в исходной физической системе.

А если они разбиты - то у нас получается 6-узловой элемент вместо 3-узлового (в ANSYS это PLANE183 и PLANE182 соответственно, вырожденные до треугольников), и они всё так же взаимодействуют узлами. Просто эти узлы у них не только на концах ребер, но и на серединах.

Это повышает точность результата, но и растут затраты потребных на расчёт мощностей. Поэтому иногда бывает оправдано не использовать их, а замельчить сетку вдвое, чтобы вместо одного 8-узлового получить четыре 4-узловых (и лишний узел по центру).

Рёбра же предполагаются прямыми

Да разве ANSYS в квадратичный порядок не умеет? Типа когда 6 точек на ячейку, 3 в нодах, 3 в центрах ребер? Вот судя по этой ссылке https://www.princeton.edu/~dynaflow/femgv/manuals/preansy/node16.htm вполне себе умеет.

я регулярно использую ANSYS, но теорию МКЭ уже подзабыл

Это нормально. Но элементарные то вещи должны помнить?

Да, все задается в нодах. Дальше интерполяция (с помощью shape functions - простите, русской терминологией не владею), если хочется, линейная, квадратичная, не важно. Важно то, что ноды общие. Т.е. берем ребро, принадлежащее двум ячейкам и интерполяцией смотрим, что-там. Результат - общие сдвиги и напряжения вдоль ребра для обеих ячеек. Так интерполяция устроена. А в модели автора, судя по приведенному им словесному описанию - нет.

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

Повторю: у меня используется самый низкий — первый — порядок интерполяции упругих перемещений. Относительная деформация — производная перемещения, она постоянна. Напряжения пропорциональны деформациям — они тоже постоянны по всей площади треугольника. Нет никаких особых напряжений вдоль рёбер, есть просто напряжение, общее для всего треугольника. И да, на рёбрах получаются разрывы напряжений от двух смежных треугольников. И да, такого в природе не бывает — это артефакт расчётной схемы. Примерно как при интегрировании прямоугольниками.

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

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

Суть метода ухитрились затуманить именно Вы, по крайнем мере, мне, когда начали использовать сокращение МКЭ, в результате чего я решил, что ссылка на конспект лекции, это что-то из старых еще советских учебников. Да еще очень странная Ваша интерпретация того, что в этом конспекте, как оказалось, какого-то профессора из университета New Mexico, написано.А там все правильно, по перемещениям нод вычисляем потенциальную энегргию в каждом треугольнике, которая квадратична по сдвигам (4.69), потом суммируем по всем кускам, учитывая связи, и, диффффференцируя по степеням свободы (используя известный вариационый принцип статики, что в равновесии потенциальная энергия минимальна - вот этого, кстати, в конспекте нет), получаем матричное уравнение для перемещаний нод. Ну и в результате для нод имеем первый порядок аппрокимации, а для стрессов - нулевой, поскольку они через производные от сдвигов считаются, ну и да, кусочно-постоянная аппроксимация.

Я не знаю, чем вам не угодила аббревиатура МКЭ и при чём тут советские учебники. Пока я вижу только то, что даже среди комментаторов моего текста собрались представители двух разных школ — условно, "механиков" и "математиков". Для первых МКЭ — это раздел сопромата и развитие метода перемещений, для вторых — что-то из области уравнений в частных производных и вариационного исчисления.

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

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

При этом вы так и не объяснили, откуда должна была взяться непрерывность напряжений при линейной интерполяции перемещений и почему эта линейная интерполяция допустима у автора конспекта и недопустима у меня.

При этом вы так и не объяснили, откуда должна была взяться непрерывность напряжений при линейной интерполяции перемещений

Так FEM устроен. Все задается в нодах и интерполируется с помощью shape-функций.

и почему эта линейная интерполяция допустима у автора конспекта и недопустима у меня.

Все наоборот, у автора конспекта линейно интерполируются сдвиги, а стрессы оказыватся постоянными внутри ячеек, поскольку зависят от производных сдвигов. Но там FEA.

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

Так что наоборот-то? Или вы запутались в терминологии? Ваши "сдвиги" — это displacements, перемещения. Ваши "стрессы" — это stresses, напряжения. Тогда вы слово в слово озвучили то, что есть и у автора конспекта, и у меня. Я несколько раз повторил про линейную интерполяцию перемещений и постоянное напряжение.

Ваши "сдвиги" — это displacements, перемещения. Ваши "стрессы" — это stresses, напряжения.

Да, конечно.

Тогда вы слово в слово озвучили то, что есть и у автора конспекта, и у меня. Я несколько раз повторил про линейную интерполяцию перемещений и постоянное напряжение.

Ранее, Вы написали в ответе мне, удивленному картинкой с силами, приложенными к вершинам треугольника, что:

Действительно, в моей модели (хотя она вовсе не моя) треугольники связаны только вершинами.

В этой интерпретации постановки задачи стрессы ну никак не могут быть постоянными в треугольнике - на свободной границе свертка тензора напряжений с нормалью к поверхности будет нулевой. И как сетку не мельчить - число \pi будет равно четырем.

А вот если посмотреть на "конспект", то там никаких странных слов нет. Никакие силы к вершинам треугольника не приложены. Просто строится сетка из (маленьких) треугольников, внутри каждого можно считать displacements с помощью линейной интерполяции, итого напряжения окажутся постоянными и разными в соседних треугольниках. Но если размеры треугольников уменьшить, то и ступеньки уменьшатся. Отмечу, что постоянства стрессов внутри quadrilateral элементов уже не будет.

Что касается моего более раннего утверждения, что и стрессы должны интерполироваться с таким же порядком аппроксимации - увы, был неправ. Зря воспользовался аналогией с гидродинамикой со свободными поверхностями - там все обычно в нодах задается.

Ну и вишенка на торт. В "конспекте" говорится об использовании FEA (Finite Element Analysis), т.е. об анализе конечных элементов (АКЭ). FEM и FEA - это разные термины. У вас используется а принцип минимума потенциальной энергии в состоянии равновесия (см. например главу 2 из https://mecheng.iisc.ac.in/suresh/me237/feaNotes/), а не переход к слабой интегральной форме исходного уравнения, . Мне конечно интересно, будут ли абсолютно такими же матрицы жесткости, полученные и классическим FEM (точнее методом Галеркина https://www.iue.tuwien.ac.at/phd/orio/node45.html) и тем, что в вашем источнике, в данном частном случае, но тратить на это время я не готов.

Там, где я сейчас нахожусь, мне всякие интересные сайты доступны и без VPN, вот ссылка https://www.mm.bme.hu/~gyebro/files/ans_help_v182/ans_thry/thy_et1.html, где рассказано, как вычисляются всякие интегралы от произведений shape и test/trial функций. Похоже, что тут таки FEM используется. а не то, что у вас.

Никакие силы к вершинам треугольника не приложены.

А куда же они тогда приложены? Воспроизвожу картинку из конспекта и цитирую:

"Regardless of the source, all forces are applied at the nodes only. Tractions, and body forces may be distributed across several nodes but they are still applied at the nodes."

"A force is applied at the top right corner of the plate."

FEM и FEA - это разные термины. У вас используется принцип минимума потенциальной энергии в состоянии равновесия, а не переход к слабой интегральной форме исходного уравнения.

Различение FEM и FEA на основании каких-то способов вывода уравнений выглядит как педантизм, причём локальный. Вот несколько цитат из терминологического разбора:

"The differences between FEA and FEM relies on the source, author, and market authority"

"FEA is a practical application of the Finite Elements Method (FEM)"

"FEA is a computerized method for the prediction of how a product reacts to surrounding conditions"

"Both terms refer to the same concept, FEA being mostly used in the industry and FEM academically"

А куда же они тогда приложены? Воспроизвожу картинку из конспекта и цитирую:

Это таки лекция. В реальной жизни, ну до масштабов, где еще твердое тело можно считать непрерывной средой, такая сила вызывает бесконечное давление/стресс, и как бы вы не мельчили сетку, в окрестности этой точки, бесконечности не получится. А нет сеточной сходимости, нет и решения, которому можно доверять.

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

А в методе Галеркина и так у вас есть распределение давления (плюс сдвиговое напряжение) по поверхности. После дискретизации - давление в нодах, интерполяция по внешним ребрам. А как точечную силу задать? Хотя ANSYS как-то может.

И кстати, вот для ноды можно смещение задать.

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

Да разве ANSYS в квадратичный порядок не умеет? 

Умеет, я об этом дальше по ветке написал. Но это опять же будет связь между узлами (размещенными в середине ребер), а не между рёбрами как таковыми.

Вообще никаких проблем. В своей версии, в порыве энтузиазма, добавил экспорт из DXF (благо он текстовый). Мы тогда как раз много с Автокадом работали. Как обозначал опоры уже не помню, но как-то обозначал. Силы уже внутри своего редактора добавлял.

Понял вас. Но лично мне не хотелось иметь несамодостаточный редактор. И конечно, было желание самому пройти все этапы пути к решению. Триангуляция оказалась даже более интересной проблемой, чем МКЭ как таковой.

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

Вы не поняли. Редактор полностью самодостаточный. Всё как в лучших домах лондОна: мышкой малюешь, мышкой таскаешь, мышкой скалишь. По тем временам (у нас тогда половина компов была ещё с DOSом. АКАД тоже досовый, управление командами через консоль) это было прям круто (:

Просто времени оставалось много когда закончил, по этому добавил туда импорт-экспорт. Всё-таки в АКАДе делать большие конструкции проще сильно. Особенно когда у тебя много типовых элементов, которые можно просто копированием получить.

Нашел прогу, даже работает. Только интерфейс под Вайном слегка покорёжило. Походу он не понимает однобайтных кодировок в надписях :|

PS: Что-то не понял, как теперь спойлер добавить :/

А какие элементы у вас тут: стержни или треугольники? Вся конструкция ферменная или сплошная?

Стандартная ферма. Собственно МКЭ фермами и оперирует. Сплошные, вроде как, тоже сводятся к фермам.

Нет. Вся моя статья была о том, как МКЭ оперирует не фермами. Треугольный элемент никак не сводится к стержням: это 2D элемент с другим числом степеней свободы (6 вместо 4), другим набором напряжений (3 вместо 1, в том числе сдвиговое, чего в ферме принципиально быть не может), другой матрицей жёсткости и т.д. Если вы станете моделировать сплошную пластину фермой, вы получите очень грубый результат.

Пардон, упустил этот момент.

Однако тут возник вопрос - как вы учитываете, что один узел относится к нескольким разным треугольникам? По картинке возникает впечатление, что один треугольник вообще не нагружен, а второй, смежный с ним, нагружен сильно. Но граница между ними - это один элемент, а не два разных.

>Если вы станете моделировать сплошную пластину фермой, вы получите очень грубый результат.

Это вполне решается уменьшением размера элемента. МКЭ достаточно легко масштабируется, причём автоматически. Просто делим треугольник рекурсивно и получаем более точную сетку, которая учитывает и внутренние для целого элемента напряжения. Разница при одинаковом размере элемента будет. Однако при более плотной сетке её можно ощутимо уменьшить.

как вы учитываете, что один узел относится к нескольким разным треугольникам?

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

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

Да, это возможно. Напряжения постоянны по площади треугольников и зависят от перемещений всех трёх вершин. Разное напряжение в двух смежных треугольниках может быть оттого, что их вершины, не входящие в общее ребро, переместились по-разному.

Но граница между ними - это один элемент, а не два разных.

Нет. Кажется, вы по-прежнему пользуетесь ферменными понятиями. Элемент у меня — это треугольник (кусок плоскости), а не граница между треугольниками.

Это вполне решается уменьшением размера элемента. МКЭ достаточно легко масштабируется, причём автоматически.

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

Весь смысл ферм в том, что они убирают лишние степени свободы. Например вращение в узлах. Собственно у вас он тоже отсутсвует. Вы же по сути сделали из 3х ферм один треугольник. Собственно при рассмотрении этого треугольника в виде ферм там точно так же присутсвутет сдвиг, поскольку он уже 2Д. Сейчас прикинул — и получилось, что по факту у вас всё равно учитываются только продольные нагрузки вдоль рёбер, но с усложнением системы уавнений. Точнее, на смом деле, особо не вникал (для этого надо поднимать заново всю теорию), но у вас в итоге должны получиться те же самые уравнения, что и для ферм.

>Если этим злоупотребить, что метод лишится своего главного преимущества — конечных (не бесконечно малых) элементов, которые могут быть достаточно большими, но при этом давать хорошую точность

На сколько я знаю (хотя мои знания могли сильно устареть) в моделировании используется именно разбиение на фермы. Оно банально проще и проще интерполировать резултаты между соседними элементами.

>(И кстати, совсем неочевидно, что ваша бесконечно мелкая ферма действительно в пределе сходится к пластине).

Абсолютно уверен. Думаю, что связи молекул вполне можно условно считать фермами :)

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

ЗЫ: Видимо я совcем тупой. А как цитаты добавить в этом редакторе?

Весь смысл ферм в том, что они убирают лишние степени свободы.

Нет. Весь смысл ферм в том, чтобы моделировать фермы — мосты, подъёмные краны и т.д. Сплошные поверхности моделируются сплошными элементами.

Например вращение в узлах. Собственно у вас он тоже отсутствует.

Вот именно. И для этого мне не нужны фермы.

Вы же по сути сделали из 3х ферм один треугольник... у вас в итоге должны получиться те же самые уравнения, что и для ферм.

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

  1. Какую площадь сечения должны иметь стержни эквивалентной фермы? Для сплошного треугольника такого параметра вообще нет. Чтобы найти эту эквивалентную площадь сечения, вам придётся-таки приравнять две матрицы жёсткости (фермы и треугольника) и выразить эту площадь.

  2. Как получить напряжения в сплошном треугольнике (два нормальных и одно касательное) исходя из напряжений в эквивалентной ферме? Она ведь эквивалентна только по деформациям, а напряжения в ней совсем другие (три разных напряжения растяжения).

Насколько я знаю (хотя мои знания могли сильно устареть) в моделировании используется именно разбиение на фермы.

Ещё раз нет. Посмотрите типовой элемент ANSYS, который уже упоминал коллега в этой дискуссии.

Абсолютно уверен.

Осторожнее. Интуиция часто даёт сбой в предельных переходах. Как известно, она говорит, что π = 4:

Думаю, что связи молекул вполне можно условно считать фермами :)

Они могут оказаться совсем не такими фермами, на которые вы рассчитывали — например, пространственными и с какими-то совсем другими углами между связями. Да ещё и подчиняющимися квантовой механике. Квантовый сопромат — это уже высший пилотаж.

Ради интереса можно попробовать загнать какую-нибудь конструкцию в обе программы и сравнить результат.

Вы не сможете этого сделать, пока не решите вопрос об эквивалентной площади сечения стержня (см. выше).

А как цитаты добавить в этом редакторе?

Нажать на большой "+" слева от строки и выбрать "Цитата".

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

Спросил Гугл. Итог - используются все варианты. В 3Д - могут быть и стержни, и плоские и обьемные элементы. И даже более сложные типа балок! И даже их сочетание в специфических случаях. Так что вопрос решаемый. Но не очень простой.

Какую площадь сечения должны иметь стержни эквивалентной фермы? Для сплошного треугольника такого параметра вообще нет. Чтобы найти эту эквивалентную площадь сечения, вам придётся-таки приравнять две матрицы жёсткости (фермы и треугольника) и выразить эту площадь.

С другой стороны как посчитать прочность треугольника? Со стержнем всё просто, однако математический треугольник имеет бесконечно тонкие углы куда, как раз, и приложена нагрузка

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

Собственно почему другие? Одинаковые перемещения должны вызывать одинаковые напряжения. Т.е. можно просто приложить те же перемещения к треугольнику. Элементы независимы по определению.

Осторожнее. Интуиция часто даёт сбой в предельных переходах. Как известно, она говорит, что π = 4:

На данный момент реальное пространство вполне предполагается многими дискретным (планковская длинна), так что в каждой шутке... ;)

Ну и в примере это математически неверно просто потому, что при любом приближении мы получаем не эквивалентные фигуры. Апроксимация - штука не столь простая. В случае с молекулами же мы имеем вполне известный предел разбиения.

Они могут оказаться совсем не такими фермами, на которые вы рассчитывали

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

Вы не сможете этого сделать, пока не решите вопрос об эквивалентной площади сечения стержня (см. выше).

Когда отправил прошлый - уже сообразил, что там несколько сложнее. Но, как уже написал выше, решаемо. Правда я к такому не готов :(

Итог - используются все варианты. В 3Д - могут быть и стержни, и плоские и обьемные элементы.

Конечно, могут. Потому что и в жизни в 3D могут быть стержни (стрела подъёмного крана), оболочки (купол, котёл), сплошные объёмные конструкции. Но это не значит, что купол нужно моделировать фермой.

С другой стороны как посчитать прочность треугольника? Со стержнем всё просто, однако математический треугольник имеет бесконечно тонкие углы куда, как раз, и приложена нагрузка

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

Собственно почему другие? Одинаковые перемещения должны вызывать одинаковые напряжения.

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

Конечно, могут. Потому что и в жизни в 3D могут быть стержни (стрела подъёмного крана), оболочки (купол, котёл), сплошные объёмные конструкции. Но это не значит, что купол нужно моделировать фермой.

Именно, что для моделирования сплошных объектов использутся все варианты и их комбинации.

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

Вот тут возник вопрос: у вас крепление элементов подразумевается шарнирное. как я понимаю. Иначе были бы ещё моменты в узлах. Однако при полностью шарнирном креплении сдвиг непонятно, как получить. Для сдвига нужен момент, но при шарнирном креплении суммарный момент=0. Он уходит либо в растяжение, либо в сжатие по разным осям.

Именно, что для моделирования сплошных объектов использутся все варианты и их комбинации.

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

Однако при полностью шарнирном креплении сдвиг непонятно, как получить. Для сдвига нужен момент, но при шарнирном креплении суммарный момент=0. Он уходит либо в растяжение, либо в сжатие по разным осям.

  1. А силы сами по себе разве не могут создавать момент? Отсеките от треугольника кусочек, чтобы посмотреть внутренние силы, и увидите, что там должна быть какая-то внутренняя сила вдоль линии разреза, чтобы уравновесить внешнюю силу в вершине.

  2. Когда вы говорите о ферменном треугольнике, вы каждый раз прилаживаете систему координат по оси одного из стержней, то есть для разных стержней у вас системы координат повёрнуты по-разному. В каждой из них у вас чистое нормальное напряжение. В сплошном треугольнике у вас одна система координат. Перенося её от точки к точке, вы будете иметь разные касательные напряжения. Разумеется, и в сплошном треугольнике можно всё свести к чистым нормальным напряжениям, если разрешить в каждой точке по-своему поворачивать координатные оси. (Как известно, это и есть процедура поиска главных напряжений.)

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

Под сплошным элементом понимается обычно сплошной элемент. Фермы - это отдельный элемент, который обычно считается отдельно.

А силы сами по себе разве не могут создавать момент? Отсеките от треугольника кусочек, чтобы посмотреть внутренние силы, и увидите, что там должна быть какая-то внутренняя сила вдоль линии разреза, чтобы уравновесить внешнюю силу в вершине.

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

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

Их сумма никуда не денется. При наличии касательных они просто распределятся на соседние стержни в подходящем направлении.

Сдвиг — это не характер внешней нагрузки, а характер напряжённого состояния в точке. Мысленно вырезаем маленький квадратик вокруг точки; если есть напряжения вдоль его сторон (т. е. касательные) — это и есть сдвиг.

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

Вопрос лишь в том, можно ли квадратики вокруг всех точек пластины повернуть на один и тот же угол, чтобы касательные напряжения исчезли сразу всюду. Ответ — нет, нельзя. В этом смысле сдвиг неустраним.

Это одинаково относится и к ферме, и к сплошной пластине. Однако в случае фермы вы можете поворачивать эти квадратики на разные углы для разных стержней и всякий раз говорить: "Касательных напряжений нет, здесь чистое растяжение".

Иными словами, локально вы можете устранить сдвиг всегда подходящим поворотом осей координат, глобально — не можете ни в ферме, ни в сплошной пластине.

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

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

Всё остальное решается лишь более плотной сеткой. Но она с 1D заведомо считается проще, чем в варианте 2D элементов, так что тут есть запас при одинаковой вычислительной сложности.

Иными словами, локально вы можете устранить сдвиг всегда подходящим поворотом осей координат, глобально — не можете ни в ферме, ни в сплошной пластине.

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

Например болт в плотном отверстии при поперечной нагрузке работает на сдвиг

Это означает только то, что в пределах болта вы можете так ориентировать оси элементарных кубиков, что во всех них одновременно исчезнут нормальные напряжения и останутся касательные.

Собственно весь прикол ферм в том, что они действтельно работают только на сжатие и растяжение.

Это вновь означает, что в пределах одного стержня вы можете так ориентировать оси элементарных кубиков, что в них одновременно исчезнут касательные напряжения и останутся нормальные.

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

Вообще весь мой посыл был в том, что эти усилия не имеют смысла, а не в том, что они возможны. Но ладно, не важно...

Какие усилия? МКЭ? Сплошные треугольники? Учёт касательных напряжений?

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

Вы же мне возражали на макроскопическом языке: дескать, откуда в треугольнике сдвиговые напряжения, если он в целом нагружен совсем не так, как срезаемый болт? Конечно, не так. И это вовсе не чистый сдвиг. Но неустранимые сдвиговые напряжения в точках, тем не менее, есть.

Однозначно плюс! По больше бы таких статей, и еще технических деталей. Как расчет делали и GUI, оптимизации и все-все-все

Триангуляция Делоне - мощная штука! В частности и в геоинформационных системах для анализа поверхностей используем.

Очень крутая статья, с удовольствием изучу ее подробнее на выходных! И надеюсь, смогу повторить вашу программу - очень интересно и самому попробовать. Да и стыдно как-то каждый день на работе считать в программах мкэ и не уметь применить его самостоятельно)

Вообще, я наткнулся на статью, когда искал литературу по мкэ в связи с конкретным вопросом, который возник у меня на работе, может быть вы поможете с ответом на него? Вопрос вот такой: зависит ли размер сетки конечных элементов от толщины элемента? Скажем, плоская пластина длиной и шириной 1м и толщиной 0,1м. Размер сетки конечных элементов, на которые ее необходимо разбить, зависит как-то от ее толщины?

И надеюсь, смогу повторить вашу программу - очень интересно и самому попробовать.

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

Вопрос вот такой: зависит ли размер сетки конечных элементов от толщины элемента?

Я полагаю так: если у вас чистая двумерная задача, то не зависит. В моей программе толщина просто отнесена к параметрам материала, как и модуль Юнга. Другое дело, что настоящая двумерность подразумевает не только плоскую пластину и плоскую систему сил, но и постоянство нагрузки по толщине. Чем толще пластина, тем, скорее всего, менее адекватна эта гипотеза.

Sign up to leave a comment.

Articles