Skip to content

vakym4273-max/Visualization-of-a-composite-material-with-reinforcing-fibers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

Visualization-of-a-composite-material-with-reinforcing-fibers

Визуализация композитного материала с армирующими волокнами

Описание проекта

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

Программа реализована на JavaScript с использованием графической библиотеки p5.js и позволяет:

  • Наглядно наблюдать, как ориентация волокон влияет на распределение нагрузки
  • Изменять уровень и направление приложенной нагрузки
  • Добавлять новые волокна в реальном времени
  • Визуализировать критические зоны разрушения

Физическое обоснование

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

В данной модели реализованы следующие упрощения:

  1. Матрица считается однородной средой
  2. Волокна работают только на растяжение/сжатие
  3. Напряжение в волокне зависит от угла между его ориентацией и направлением нагрузки
  4. При достижении критического напряжения волокно может разрушиться

Управление программой

Интерфейс управления:

  • Стрелка вверх/вниз - увеличение/уменьшение нагрузки (0-100%)
  • Стрелка влево/вправо - изменение направления нагрузки (0-180°)
  • Клик мыши - добавление нового волокна в точке клика

Визуальные индикаторы:

Цвет волокна (уровень напряжения):

  • 🟢 Зелёный - низкое напряжение (0-50%)
  • 🟡 Жёлтый - среднее напряжение (50-75%)
  • 🔴 Красный - высокое напряжение (75-100%)

Дополнительные маркеры:

  • 🔴 Красный кружок - локальное разрушение волокна (напряжение >80%)
  • 🔵 Голубые линии - трещины в матрице (появляются при нагрузке >50%)
  • Красная стрелка - направление приложенной нагрузки

Структура кода

Основные переменные:

let fibers = [];     // Массив объектов-волокон
let stress = 0;      // Уровень нагрузки (0-100%)
let loadAngle = 0;   // Угол направления нагрузки

Структура объекта волокна:

Каждое волокно представлено объектом со свойствами:

x, y - координаты центра

length - длина волокна

angle - угол ориентации

stress - текущее напряжение

color - цвет (зависит от напряжения)

broken - флаг разрушения

Ключевые функции:

updateFiber(f)
Вычисляет напряжение в волокне на основе угла между направлением волокна и направлением нагрузки:

if (angleDiff < PI/4) {
    f.stress = stress * (1 - angleDiff / 1.5);
} else {
    f.stress = stress * 0.3;
}
drawFiber(f)
Отрисовывает волокно с учётом его ориентации и цвета:

Использует push()/pop() для изоляции трансформаций

Рисует прямоугольник, повёрнутый на угол волокна

Добавляет индикатор разрушения при высоком напряжении

drawMatrix()
Отрисовывает матрицу с трещинами (при нагрузке >50%)

drawLoadDirection()
Рисует стрелку, показывающую направление нагрузки

Научно-образовательная ценность

Проект демонстрирует следующие важные концепции материаловедения:

  • Анизотропия механических свойств - зависимость прочности от направления

  • Концентрация напряжений - неравномерное распределение нагрузки

  • Критерии разрушения - условия, при которых происходит повреждение

  • Роль ориентации армирующих элементов - важность правильного расположения волокон

Требования и запуск

Технические требования:

  • Современный веб-браузер (Chrome, Firefox, Edge)

  • Поддержка JavaScript

  • Библиотека p5.js (включается автоматически)

Способы запуска:

Вариант 1: Онлайн редактор p5.js Перейдите на https://editor.p5js.org/

  • Создайте новый проект

  • Скопируйте код и вставте в редактор

  • Нажмите кнопку "Play"

Демонстрация работы

VID_20251224_022152_9852

Возможные улучшения

Физическая модель:

  • Учёт взаимодействия между волокнами

  • Добавление различных типов волокон (разная прочность)

  • Моделирование пластической деформации матрицы

Функциональность:

  • Сохранение/загрузка конфигураций

  • Статистика повреждений

  • Графики зависимости напряжения от угла

Интерфейс:

  • Слайдеры для точной настройки параметров

  • Возможность изменения свойств отдельных волокон

  • Режим пошаговой симуляции

Использованные технологии

JavaScript - основной язык программирования

p5.js - библиотека для творческого кодирования

HTML5 Canvas - технология отрисовки графики

Автор

Смирнов Егор Дмитриевич

Лицензия

Проект распространяется под лицензией MIT. Подробности в файле LICENSE.

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

About

Visualization-of-a-composite-material-with-reinforcing-fibers

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors