Моделирование экструзий и оборотов

Экструзии и обороты

Для твердых частиц с пользовательскими поперечными сечениями блок Solid обеспечивает более универсальный General Extrusion и формы Revolution. Эти формы позволяют вам создать более истинные основательные представления, чем более простые формы, такие как Brick, Cylinder, и Sphere часто позволяет. Используйте их при моделировании твердых частиц, которые имеют произвольные все же постоянные поперечные сечения вперед или об оси.

Что такое General Extrusion?

General Extrusion является линейной разверткой пользовательского поперечного сечения вдоль оси, которая нормальна к плоскости поперечного сечения. Развертка охватывает длину, заданную в диалоговом окне блока Solid. Поперечное сечение может иметь произвольную схему и один или несколько полых разделов — хотя правила для определения поперечных сечений отличаются немного, когда дыры присутствуют.

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

General Extrusion как линейная развертка

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

Что такое Revolution?

Revolution является угловой разверткой поперечного сечения об оси, которая находится на той же плоскости как поперечное сечение. Развертка может охватить полный оборот или меньший угол между степенями 360 и 0. Как с формами General Extrusion, поперечное сечение может иметь произвольную схему с или без дыр.

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

Revolution как угловая развертка

Профили поперечного сечения

Вы задаете поперечные сечения численно как матрицы 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) значения в случае форм General Extrusion и как (x, z) значения — заданный в том порядке — в случае форм Revolution. Координаты разрешены в ссылочном кадре блока Solid, с (0, 0) пара, совпадающая с источником того кадра. Это - установившаяся практика к параметризованному координаты с точки зрения переменных MATLAB, сопоставленных с ключевыми твердыми размерностями — например, радиус или длина.

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

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

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

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

Специальное ограничение для оборотов

Матрицы координаты Revolution подвергаются специальному ограничению: x - координаты не могут быть отрицательными. Это правило следует частично от оси оборота (z), используемый блоком Solid. При развертке поперечного сечения любые области слева от этой оси (те с отрицательным x - координаты) становятся перекрытыми с теми направо (положительный x), приведении к неожиданной стереометрии. Чтобы предотвратить эту проблему, ошибка выпущена, если поперечное сечение Revolution найдено с отрицательным 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 - координата. Второй столбец соответствует y - координата. 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 блока 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 блока Solid.

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

Как прежде, можно визуализировать схему поперечного сечения с помощью команды 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]);

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

От поперечных сечений до твердых частиц

z - ось ссылочного кадра блока Solid служит осью развертки и в General Extrusion и в твердых частицах Revolution. Заданное поперечное сечение развертывается вдоль этой оси в случае твердых частиц General Extrusion и об этой оси в случае твердых частиц Revolution. Развертка симметрична относительно плоскости поперечного сечения: это запускает половину длины развертки или угла в каждом направлении оси развертки. Эта симметрия оставляет плоскость поперечного сечения — и поэтому источник ссылочного кадра — на полпути между концами развертки.

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

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

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

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

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

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

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

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

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

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

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

Похожие темы