Оглавление:

Измерение изменений силы созданной оптоволоконной сети при смещении под действием внешней силы: 8 шагов
Измерение изменений силы созданной оптоволоконной сети при смещении под действием внешней силы: 8 шагов

Видео: Измерение изменений силы созданной оптоволоконной сети при смещении под действием внешней силы: 8 шагов

Видео: Измерение изменений силы созданной оптоволоконной сети при смещении под действием внешней силы: 8 шагов
Видео: Микромеханические системы на примере смартфона | Сириус Дома 2024, Ноябрь
Anonim
Измерение изменений силы созданной оптоволоконной сети при смещении под действием внешней силы
Измерение изменений силы созданной оптоволоконной сети при смещении под действием внешней силы

Клетки способны взаимодействовать с окружающим их внеклеточным матриксом (ЕСМ) и могут как действовать, так и отвечать на силы, оказываемые ЕСМ. Для нашего проекта мы моделируем взаимосвязанную сеть волокон, которые будут действовать как ECM, и видим, как сеть изменяется в ответ на движение одной из точек. ЕСМ моделируется как взаимосвязанная система пружин, которые изначально находятся в равновесии с нулевым результирующим усилием. Поскольку сила применяется к сети в ответ на движение точки, мы пытаемся заставить соединенные точки реагировать на силу таким образом, чтобы они пытались вернуться к равновесию. Сила контролируется уравнением F = k * x, где k - жесткость пружины, а x - изменение длины волокна. Это моделирование может помочь дать общее представление о распространении силы в волокнистых сетях, что в конечном итоге может быть использовано для моделирования механотрансдукции.

Шаг 1. Создайте матрицу равномерных квадратов NxN

Сгенерируйте матрицу равномерных квадратов NxN
Сгенерируйте матрицу равномерных квадратов NxN
Сгенерируйте матрицу равномерных квадратов NxN
Сгенерируйте матрицу равномерных квадратов NxN

Чтобы начать код, мы выбираем N, которое будет определять размеры нашей сети (NxN). Значение N можно изменить вручную, чтобы при необходимости изменить размеры сети. В этом примере N = 8, поэтому у нас есть сеть точек 8x8. После того, как мы сгенерировали матрицу, мы соединяем все точки в матрице, которые имеют длину 1 единицу, используя формулу расстояния, Distance = sqrt ((x2-x1) ^ 2 + (y2-y1) ^ 2). Делая это, мы получаем сеть квадратов, которые все равно разнесены на 1 единицу. Это можно увидеть на рисунке 101.

Шаг 2: рандомизация сети

Случайный выбор сети
Случайный выбор сети
Случайный выбор сети
Случайный выбор сети

На этом этапе мы хотим случайным образом расположить все точки, кроме внешних точек, которые будут формировать нашу границу. Для этого мы сначала находим все координаты матрицы, которые равны 0 или N. Эти точки и составляют границу. Для неграничных точек расположение рандомизируется путем добавления другого случайного значения от -,5 до 0,5 к позициям x и y. Построенное рандомизированное изображение можно увидеть на рисунке 1.

Шаг 3. Получите новые расстояния

Получите новые расстояния
Получите новые расстояния

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

Шаг 4. Выберите точку и сравните расстояние от этой точки до других

Выберите точку и сравните расстояние от этой точки до других
Выберите точку и сравните расстояние от этой точки до других
Выберите точку и сравните расстояние от этой точки до других
Выберите точку и сравните расстояние от этой точки до других
Выберите точку и сравните расстояние от этой точки до других
Выберите точку и сравните расстояние от этой точки до других

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

Шаг 5: перейти к новой точке

Перейти к новой точке
Перейти к новой точке
Перейти к новой точке
Перейти к новой точке
Перейти к новой точке
Перейти к новой точке

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

Шаг 6: Сила = K * расстояние

Сила = K * расстояние
Сила = K * расстояние

На этом этапе мы применяем уравнение сила = k * расстояние, где k - константа 10 для коллагеновых волокон. Поскольку волоконная сеть начинается в состоянии равновесия, результирующая сила равна 0. Мы создаем нулевой вектор длины матрицы, которую мы сгенерировали ранее, чтобы представить это равновесие.

Шаг 7: Измените движение сети из-за перемещенной точки

Изменение движения сети из-за перемещенной точки
Изменение движения сети из-за перемещенной точки
Изменение движения сети из-за перемещенной точки
Изменение движения сети из-за перемещенной точки
Изменение движения сети из-за перемещенной точки
Изменение движения сети из-за перемещенной точки
Изменение движения сети из-за перемещенной точки
Изменение движения сети из-за перемещенной точки

На этом этапе мы моделируем движение сети в ответ на движение точки, чтобы вернуться в состояние равновесия. Начнем с нахождения новых расстояний между двумя точками. Таким образом, мы можем определить изменение длины волокна, посмотрев на разницу между старым и новым расстоянием. Мы также можем увидеть, какие точки переместились, а также точки, с которыми они связаны, сравнив новые и старые местоположения точек. Это позволяет нам увидеть, какие точки должны двигаться в ответ на приложенную силу. Направление движения может быть разбито на его компоненты x и y, что дает двумерный вектор направления. Используя значение k, изменение расстояния и вектор направления, мы можем вычислить вектор силы, который можно использовать для перемещения наших точек к равновесию. Мы запускаем этот раздел кода 100 раз, каждый раз двигаясь с шагом Force *.1. Выполнение кода 100 раз позволяет нам в конечном итоге снова достичь равновесия, и, сохраняя граничные условия, мы видим изменение в сети, а не просто полный сдвиг. Движение сети можно увидеть на Рисунке 3, где желтым цветом обозначены перемещенные позиции, а синим - предыдущие.

Шаг 8: Готовый код

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

Рекомендуемые: