Двухмерный анализ кадров с использованием Python: руководство для начинающих

Двухмерный анализ кадров с использованием Python: руководство для начинающих

16 мая 2023 г.

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

Поэтому я решил написать программу на Python, которая поможет мне проанализировать структуру двумерного кадра.

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

Виктор – это платформа для разработки, которая помогает строительным компаниям разрабатывать собственные средства инженерного анализа и проектирования, используя только язык программирования Python.

Мы будем использовать библиотеку Python под названием anastruct. anastruct – это реализация на Python двумерного метода конечных элементов для структур. Он позволяет выполнять структурный анализ рам и ферм. Это поможет вам рассчитать силы и перемещения в элементах конструкции. п

https://youtu.be/jVMJdUh1ij8?t=53

question from structville website

n Материалы

  • Я использую код VS в качестве (IDE)
  • Питон 3.10.0
  • anastruct — библиотека Python, разработанная Ричи Винк для анализа рам и ферм
  • Вопрос выше взят с веб-сайта structville. ли>

Мы собираемся вычислить и построить следующие графики:

* Диаграмма изгибающего момента * Диаграмма поперечной силы * Диаграмма осевых сил

Шаг 1. Установите библиотеку с помощью команды Pip

Откройте терминал VScode и введите следующее:

pip install anastruct

Шаг 2. Импорт класса SystemElement

Это план, содержащий поведение и свойства наших структурных элементов

from anastruct import SystemElements

Шаг 3. Создайте структурный объект из системного класса

Теперь мы собираемся создать наш объект(ы) структурного элемента, создав экземпляр нашего класса SystemElement, который мы импортировали следующим образом:

ss = SystemElements()

Шаг 4. Создайте структурный элемент с узловыми позициями

Теперь мы собираемся использовать метод add _element из класса systemElement. Что это делает, так это добавляет разные элементы в фрейм, соединенный в узлах и местоположениях аргументов, чтобы добавить различные промежутки или длины элементов.

ss.add_element(location=[[0, 0], [0, 2]])
ss.add_element(location=[[0, 2], [0, 4]])
ss.add_element(location=[[0, 4], [3, 4]])
ss.add_element(location=[[3, 4], [4, 4]])
ss.add_element(location=[[4, 4], [6, 4]])
ss.add_element(location=[[6, 4], [7, 4]])

Шаг 5. Определим шарниры

Из исходного вопроса у нас есть две внутренние петли в узлах 3(B) и 5(2). Итак, мы добавляем внутренние петли с помощью метода add_inernal_hinges.

ss.add_internal_hinge(node_id=3)
ss.add_internal_hinge(node_id=5)

Шаг 6. Определите условия поддержки

Каркасная конструкция имеет 3 опоры. В узле 1 зафиксирована, в узле 4 — роликовая опора, а в узле 6 — ролик.

ss.add_support_fixed(node_id=1)
ss.add_support_roll(node_id=4)
ss.add_support_roll(node_id=6)

Шаг 7: Добавьте внешние силы (нагрузки) к конструкции

Мы добавляем горизонтальную точечную нагрузку в node2, используя метод point_load, передавая местоположение узла и величину нагрузки в качестве аргумента. Также для другой точечной нагрузки.

Для равномерно распределенного использования используется метод q_load, и при передаче element_id нагрузка действует с величиной нагрузки q. Знак  —  в величине нагрузки q означает, что нагрузка действует вниз.

ss.point_load(node_id=2,Fx=+5)
ss.q_load(q=-2,element_id=3)
ss.q_load(q=-2,element_id=4)
ss.point_load(node_id=7,Fy=-10)

our model with loads and supports

Шаг 8. Анализ реакции конструкции и отображение сил реакции

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

Мы используем метод show_reaction_force для построения кадра с силами реакции на опорах:

ss.solve()
ss.show_reaction_force()

reactions forces at support

Шаг 9. Постройте диаграмму изгибающего момента

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

ss.show_bending_moment()

.

bending moment diagram from our python program

bending moment diagram from structville website

Шаг 10. Постройте диаграмму поперечной силы

Чтобы построить диаграмму поперечной силы, мы используем метод show shearforce. График Python находится слева, а диаграмма из ручного решения — справа.

ss.show_shear_force()

shear force diagram from our program

shear force diagram from structville website

Шаг 11: Постройте осевую силу n

ss.show_axial_force()

our program's axial force diagram

axial force from structville website

Заключение

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


Также опубликовано здесь


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE