Моделирование выдавливаний и вращений

Экструзии и вращения

Для твердых частиц с пользовательскими поперечными сечениями Extruded Solid и Revolved Solid блоки позволяют создавать более справедливые твердые представления, чем часто позволяют более простые формы, такие как Brick Solid, Cylindrical Solid и Spherical Solid. Используйте их при моделировании твердых частиц, которые имеют произвольные, но постоянные сечения вдоль или вокруг оси. Блок Extruded Solid может быть либо General экструзия или Regular экструзия.

Что такое блок Extruded Solid?

Общее выдавливание является линейным сдвигом пользовательского поперечного сечения вдоль оси, перпендикулярной плоскости поперечного сечения. Сдвиг охватывает длину, заданную в диалоговом окне Extruded Solid блока. Поперечное сечение может иметь произвольный контур и одно или несколько полых сечений - хотя правила определения поперечных сечений немного различаются, когда отверстия присутствуют.

Примеры экструзии включают прямые балки, пластины, лонжероны, стойки и стержни. На рисунке показан угол балка, общая экструзия, поперечное сечение которой состоит из двух тонких прямоугольников, расположенных в L-образной форме. Блок Extruded Solid выносит форму L линейно из плоскости поперечного сечения, получая конечную геометрию балки.

Общий Extruded Solid блока как линейного протягивания

Примечание по Extruded Solid формам.  Блок Extruded Solid обеспечивает вторую форму выдавливания, названную Regular экструзия. Эта форма является более простой версией General экструзия и подходит только для твердых частиц, поперечные сечения которых являются правильными многоугольниками - теми, которые имеют стороны одинаковой длины. Контур поперечного сечения фиксируется количеством сторон многоугольника и не может содержать отверстий.

Что такое блок Revolution Solid?

Используйте блок Повернутое тело (Revolved Solid), чтобы выполнить угловой сдвиг поперечного сечения вокруг оси, которая лежит на той же плоскости, что и поперечное сечение. Сдвиг может охватывать полный оборот или меньший угол между 0 и 360 степени. Как и в случае с вытесненными формами, поперечное сечение может иметь произвольный контур с отверстиями или без них.

Примеры вращения включают конусы, купола, поршни, зубчатые валы и повороты русла трубопровода. Рисунок показывает цилиндрический стержень, Revolved Solid, поперечное сечение которого, как угол балка, состоит из двух тонких прямоугольников, расположенных в L-образной форме. Блок Revolved Solid сдвигает форму L вокруг оси, лежащей на плоскости поперечного сечения, чтобы получить окончательную геометрию привязки.

Revolved Solid как угловой сдвиг

Профили сечений

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

% Coordinate Matrix Example:
% Square Cross-Section with Center at [0, 0] and Side Length 2
[
-1 -1; % Lower left corner
1 -1; % Lower right corner
1 1; % Upper right corner
-1 1; % Upper left corner
]

Пары координат обрабатываются как (x, y) значения в случае экструдированных форм и как (x, z) значения - заданные в этом порядке - в случае вращающихся форм. Координаты разрешаются в опорной системе координат блока Extruded Solid или Revolved Solid, при этом пара (0, 0) совпадает с источником этой системы координат. Обычной практикой является параметризация координат с точки зрения переменного MATLAB, сопоставленных с ключевыми размерами твердого тела - например, радиусом или длиной.

От координат до сечений

Пары координат соединяются последовательно в порядке, неявном в матрице координат. Соединения выполняются с помощью прямой линии сегментов. Результатом является замкнутая полилиния, которая отделяет область, которая будет заполнена материалом (твердой частью), от области, которая будет оставлена пустой (любые отверстия, которые могут присутствовать, и пустые окрестности).

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

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

Особое ограничение для революций

Revolved Solid матрицы координат подвержены особому ограничению: x -кординаты не могут быть отрицательными. Это правило частично вытекает из оси вращения (z), используемой блоком Revolved Solid. При сдвиге поперечного сечения любые области слева от этой оси (области с отрицательными x -координатами) перекрываются с площадями справа (положительные x), что приводит к неожиданной стереометрии. Чтобы предотвратить эту проблему, выдается ошибка, если найдено Revolved Solid сечение с отрицательными x -согласованными.

Попробуйте: задайте простое поперечное сечение

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

Сечение двоичной ссылки (без отверстий)

Начните с открытия нового скрипта MATLAB и сохраните его в удобном месте под именем modelParams. Добавьте две переменные для размерностей, показанной на рисунке, длина (l) и ширина (w). Установите длину равной 20 и ширина, к 2 (в том, что будет позже единицами cm).

l = 20; 
w = 2; 

Задайте концы скругления как полукруги. Сначала сгенерируйте два массивов с угловыми пролетами левого и правого концов. Эти массивы позволяют вам параметризовать (x, y) координаты с использованием простых тригонометрических выражений. Каждый массив имеет пять точек, но для более гладких фигур можно задать больше. Символ транспонирования (') обеспечивает, чтобы A и B являются массивами столбцов.

A = linspace(-pi/2, pi/2, 5)';
B = linspace(pi/2, 3*pi/2, 5)';

Задайте матрицы координат правого конца (csRight) и левый конец (csLeft). Первый столбец каждой матрицы соответствует x -cordinate. Второй столбец соответствует y -cordinate. x-координаты двух концов смещены в противоположных направлениях l/2.

csRight = [l/2 + w/2*cos(A) w/2*sin(A)];
csLeft = [-l/2 + w/2*cos(B) w/2*sin(B)];

Объедините матрицы координат в одну матрицу с именем cs. Это матрица, которую вы должны задать в параметре Cross-Section блока Revolved Solid. Обратите внимание, что прямые сегменты поперечного сечения автоматически генерируются при соединении конечных точек полукругов.

cs = [csRight; csLeft];

Можно визуализировать контур сечения с помощью MATLAB® plot команда. Введите код, показанный ниже в командной строке MATLAB.

figure; hold on; axis equal;
plot(cs(:,1), cs(:,2), 'Color', [0.6 0.6 0.6], 'Marker', '.',...
'MarkerSize', 9, 'MarkerEdgeColor', [1 0 0]);

На график показано сечение двоичных ссылок. Точки в координатной матрице показаны в виде красных точек. Получившийся контур поперечного сечения показан в виде светло-серой линии. Заметьте, что торцевые сечения состоят из пяти точек - число, заданное в массивах угловых пролётов.

Сечения с отверстиями

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

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

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

Попробуйте: задайте сечение с двумя отверстиями

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

Сечение двоичной ссылки (два отверстия)

Начните, добавив новую переменную для диаметра отверстия (d). Установите диаметр равным 1.2 (в том, что будет позже единицами cm).

d = 1.2;

Сгенерируйте новый массив угловых пролётов для левого и правого отверстий. Отверстия рисуются в том же порядке, и один массив достаточно. Элементы массива упорядочены по часовой стрелке, что гарантирует, что при создании поперечного сечения твердая область остается налево. Количество элементов массива удвоилось, чтобы отразить более широкий угловой пролет отверстий (360 ° против 180 °).

C = linspace(3*pi/2, -pi/2, 10)';

Задайте контуры левого отверстия (csLeftHole), правое отверстие (csRightHole) и соединительная линия между ними (csConnLine). Координаты X смещены влево на половину длины (l/ 2) для левого отверстия и справа на то же расстояние для правого отверстия.

csLeftHole = [-l/2 + d/2*cos(C) d/2*sin(C)];
csRightHole = [+l/2 + d/2*cos(C) d/2*sin(C)];
csConnLine = [-l/2 -w/2; +l/2 -w/2];

Добавьте новые матрицы координат к существующей cs матрица. Порядок матриц определяет порядок, в котором нарисовано полное поперечное сечение. Результатом является переменная, которую можно задать в параметре Cross-section блока Revolved Solid.

cs = [csRight; csLeft; csLeftHole; ...
    csConnLine; csRightHole];

Как и прежде, можно визуализировать контур сечения с помощью MATLAB plot команда. Убедитесь, что приведенный ниже код графического изображения включен в ваш скрипт. Затем запустите скрипт, чтобы сгенерировать график.

figure; hold on; axis equal;
plot(cs(:,1), cs(:,2), 'Color', [0.6 0.6 0.6], 'Marker', '.',...
'MarkerSize', 9, 'MarkerEdgeColor', [1 0 0]);

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

От сечений к твердым телам

Ось z опорной системы координат служит осью сдвига как в Extruded Solid, так и в Revolved Solid блоках. Заданное поперечное сечение перемещается вдоль этой оси в случае Extruded Solid блока и вокруг этой оси в случае Revolved Solid блока. Стреловидность симметрична относительно плоскости поперечного сечения: она проходит половину длины или угла стреловидности в каждом направлении оси стреловидности. Эта симметрия оставляет плоскость поперечного сечения - и, следовательно, источник опорной системы координат - на полпути между концами сдвига.

Попробуйте: Используйте ваше поперечное сечение для моделирования твердого тела

  1. Откройте новый Simulink® модель и, из библиотеки Bodies, добавить блок Extruded Solid. Можно кликнуть полотно модели, ввести имя блока и сделать выбор из показанных опций. Сохраните модель в удобном месте как binaryLinkSolid.

  2. В диалоговом окне Extruded Solid блока установите параметры Geometry как показано в таблице. Установите модули параметра равными cm. Параметр Cross-Section определяется терминами cs переменная в вашем modelParams скрипт.

    ПараметрЗначение
    Cross-Sectioncs
    Length1

  3. Загрузите modelParams скрипт в рабочее рабочее пространство модели:

    1. На вкладке Modeling нажмите Model Explorer. Вы используете этот инструмент, чтобы загрузить modelParams скрипт, который вы ранее создали в рабочем пространстве модели.

    2. На панели Model Hierarchy разверните узел, соответствующий вашей модели (binaryLinkSolid), и выберите Model Workspace.

    3. На панели Model Workspace установите параметр Data source равным MATLAB File и просмотрите свои modelParams скрипт. Нажмите кнопку Reinitialize from Source, чтобы загрузить переменные, определенные в скрипте.

  4. В диалоговом окне Extruded Solid блока нажмите кнопку Update Visualization,. Панель визуализации обновляется конечной стереометрией.

    Нажмите кнопку Fit to View, чтобы масштабировать двоичную ссылку на размер панели визуализации. Нажмите кнопку Toggle visibility of frames, чтобы отобразить твердотельную систему координат. Источник опорной системы координат совпадает с координатой поперечного сечения [0, 0] и лежит на полпути между концами экструзии.

    Обратите внимание на зубчатые внешние виды круглых концов и отверстий. Этот эффект результатов от малых чисел точек, используемых в круглых фрагментах матрицы координат - csLeftEnd, csRightEnd, csLeftHole, и csRightHole. Увеличьте количество элементов в массивах угловых пролётов, чтобы получить более сглаженную геометрию.

Похожие темы