МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ...

88
В.С. Щербаков, М.С. Корытов, А.А. Руппель, В.А. Глушец, С.А. Милюшенко МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ СИСТЕМ В MATLAB Омск·2007

Upload: others

Post on 03-Jun-2020

48 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

В.С. Щербаков, М.С. Корытов, А.А. Руппель, В.А. Глушец, С.А. Милюшенко

МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ

ДВИЖЕНИЙ МЕХАНИЧЕСКИХ СИСТЕМ

В MATLAB

Омск·2007

Page 2: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

4

Федеральное агентство по образованию Сибирская государственная автомобильно-дорожная академия

(СибАДИ)

В.С. Щербаков, М.С. Корытов, А.А. Руппель, В.А. Глушец, С.А. Милюшенко

МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ

ДВИЖЕНИЙ МЕХАНИЧЕСКИХ СИСТЕМ

В MATLAB

Учебное пособие

Омск Издательство СибАДИ

2007

Page 3: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

УДК 681.5: 621.87 ББК 32.973

М 54

Рецензенты: заведующий кафедрой «Автоматизация и робототехника»,

д-р техн. наук, проф. В. Г. Хомченко (ОмГТУ); д-р техн. наук, проф. В.А.Николаев (ОмГУПС)

Работа одобрена редакционно-издательским советами академии в качестве учеб-

ного пособия по дисциплинам «Моделирование систем управления», «Проектирование систем управления» для специальности 220301 – Автоматизация технологических про-цессов и производств.

М54 Моделирование и визуализация движений механических систем в MATLAB: Учебное пособие / В.С.Щербаков, М. С. Корытов, А.А. Руппель, В.А. Глушец, С.А. Милюшенко. – Омск: Изд-во СибАДИ, 2007. – 84с.

ISBN 978 – 5 –93204 –332–5 Изложены сведения о моделировании пространственных движений твердотель-

ных машин и механизмов, такие как строительные автомобильные краны, одноковшо-вые экскаваторы, строительные манипуляторы и др., на стадии инженерного проекти-рования. Приведены описания основных элементов библиотеки SimMechanics. Под-робно описаны принципы формирования моделей пространственных механизмов и машин в среде SimMechanics. Показана возможность визуализации движений про-странственных механизмов и машин с использованием встроенных средств SimMechanics, а также с помощью пакета Virtual Reality Toolbox.

Учебное пособие может быть полезно студентам механических специальностей и специальности «Автоматизация технологических процессов и производств» при курсо-вом и диплом проектировании, а также аспирантам при подготовке диссертаций.

Табл. 2. Ил. 83. Библиогр.: 4 назв.

ISBN 978 – 5 –93204 –332–5 В.С. Щербаков, М. С. Корытов, А.А. Руп-пель,

В.А. Глушец, С.А. Милюшенко, 2007

Page 4: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

3

ОГЛАВЛЕНИЕ

Введ-ние..................................................................................................................

4

1. Библиотека блоков пакета SimMechanics………………………………. 6 1.1. Блоки твердых тел (Bodies) . . . . . . . . . . . . . . . . . . . . . . . . . . …………..

7

1.2. Блоки шарнирных сочленений (Joints) . . . . . . . . . . . . . . . . ……………

13

1.2.1. Разобранные шарниры Disassembled Joints . . . . . . . …………….

20

1.2.2. Безынерционные соединители Massless Connectors . …………... 24 1.3. Блоки связи механических блоков SimMechanics с обычными S-

блоками Simulink (виртуальные регистраторы и возбудители движе-ния Sensors & Actuators) . . . . . . . . . . . . ………………………………

26

1.4. Блоки стационарных и нестационарных связей Constraints & Drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ……………

36

1.5. Блоки упруговязких элементов Force Elements . . . . . . . . …………… 39 1.6. Вспомогательные механические блоки Utilities . . . . . . . . . …………. 44 1.7. О топологии механизмов в SimMechanics . . . . . . . . . . . . . . …………..

46

2. Моделирование рабочих движений автокрана . . . . . . . . . . . . . ............. 51 3. Возможности визуализации движений в SimMechanics . . . . . . ……… 62 3.1. Визуализация встроенными средствами SimMechanics . . ...................

62

3.2. Создание собственной пользовательской анимации с использовани-ем пакета Virtual Reality Toolbox ………………………………………….

66

Библиографический список . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . …………

84

Page 5: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

4

ВВЕДЕНИЕ SimMechanics – это отдельная библиотека пакета Simulink среды

MATLAB, предназначенная для моделирования механического дви-жения твердых тел. Основное ее назначение – это моделирование пространственных движений твердотельных машин и механизмов на стадии инженерного проектирования, используя законы теоретиче-ской механики [1, 2].

При использовании библиотеки SimMechanics, интегрированной в Simulink, могут быть использованы все возможности системы MATLAB, в частности, добавление к модели механической системы компонентов из других библиотек Simulink и расширений системы. Пакет SimMechanics позволяет решать пространственные задачи ста-тики, кинематики и динамики многозвенных механических объектов.

К достоинствам реализации моделирования механических сис-тем при помощи SimMechanics в Simulink могут быть отнесены про-стота создания моделей не слишком подготовленными пользовате-лями и высокая скорость вычислений при моделировании движений многозвенных объектов с большим числом степеней свободы в больших перемещениях. Механическая система представляется свя-занной блочной диаграммой, подобно другим моделям Simulink, с использованием блоков из библиотеки SimMechanics. В качестве за-даваемых параметров механических блоков выступают массово-инерционные свойства тел (звеньев механизмов), координаты харак-терных точек тел (такие, как центры масс, точки приложения внеш-них и управляющих воздействий, точки присоединения шарниров и сочленений). В отличие от других блоков Simulink, которые выпол-няют математические действия или обрабатывают сигналы, механи-ческие блоки SimMechanics представляют непосредственно физиче-ские тела или связи между ними. Моделируемые механические сис-темы могут состоять из любого количества твердых тел, связанных шарнирами, имеющими поступательные и вращательные степени свободы. SimMechanics может моделировать механизмы со звеньями, организованными в иерархические структуры, как и в обычных мо-делях Simulink. Возможно наложение кинематических ограничений, сил и вращающих моментов, взаимных траекторий движения тел.

В SimMechanics термин «механизм» имеет два значения. Во-первых, он обозначает физическую систему, которая включает, по

Page 6: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

5

крайней мере, одно твердое тело. Также он обозначает топологиче-ски отдельную блочную диаграмму, представляющую один физиче-ский механизм. Модель может включать один или более механизмов. Модель SimMechanics состоит из блочной диаграммы, которая, в свою очередь, состоит из одного или более механизмов, каждый из которых представляет собой набор соединенных между собой узлов, представляющих единственный физический механизм. Например, следующая модель (рис. 1) содержит два механизма.

Рис. 1. Пример модели SimMechanics из двух механизмов Модель SimMechanics значительно отличается от других моде-

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

Математическая модель Simulink позволяет имитировать меха-низм. Напротив, модель SimMechanics изображает физическую структуру механизма, геометрические и кинематические отношения

Page 7: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

6

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

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

Основные блоки тел Bodies отображают составные части меха-низма и неподвижное окружение механизма (основание). Узловые блоки шарниров Joints изображают степени свободы одной части ме-ханизма относительно другой или основания. Блоки стационарных и нестационарных связей Constraints & Drivers ограничивают или за-пускают движения частей механизма относительно друг друга.

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

Блоки силовых упруговязких элементов Force Elements модели-руют усилия между частями механизма.

Сенсорные блоки Sensors измеряют усилия или движения частей механизма, узлов шарниров и связей.

Встроенные инструментальные средства визуального наблюде-ния SimMechanics позволяют запустить 3-D анимацию объекта в процессе моделирования, используя графические возможности сис-темы MATLAB.

1. БИБЛИОТЕКА БЛОКОВ ПАКЕТА SimMechanics

Также, как все остальные библиотеки Simulink, библиотека па-

кета SimMechanics представляет собой набор блоков в виде графиче-ских пиктограмм с оригинальными названиями на английском языке. Для их просмотра, выбора и перетаскивания мышью в окно созда-ваемой Simulink-модели (в дальнейшем S-модели) служит окно браузера библиотек Simulink (рис. 2).

Как видно на рис. 2, в библиотеке SimMechanics (в MATLAB7) всего шесть разделов [1, 2]:

1.1. Bodies;

Page 8: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

7

1.2. Constraints & Drivers; 1.3. Force Elements; 1.4. Joints; 1.5. Sensors & Actuators; 1.6. Utilities. Каждый раздел содержит блоки определенной группы. Рассмот-

рим их более подробно.

Рис. 2. Окно браузера библиотек Simulink, разделы пакета SimMechanics

1.1. Блоки твердых тел (Bodies)

Данный раздел библиотеки SimMechanics можно считать осно-

вополагающим. С него необходимо начинать при создании любой механической модели, хотя он содержит всего три блока (рис. 3):

− Body; − Ground; − Machine Environment. 1. Блок Body представляет собой твердое жесткое тело (отдель-

ное звено механизма, движения которого моделируются) с опреде-ленными пользователем параметрами.

Page 9: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

8

В качестве задаваемых параметров выступают: - масса тела (Mass) (рис. 4), которая может быть выражена в раз-

личных единицах (имеется выпадающий список, по умолчанию стоят килограммы);

Рис. 3. Блоки твердых тел Bodies

- тензор инерции тела относительно его центра масс (Inertia), представляющий собой матрицу размером 33:

,J000J000J

H

iz

iy

ix

где Jix, Jiy, Jiz, – осевые моменты инерции тела относительно осей соб-ственной локальной системы координат, связанной с его центром масс. Для ряда наиболее распространенных симметричных тел про-стой геометрической формы формулы для вычисления элементов тензора инерции приведены в табл. 1;

- декартовы координаты характерных точек, связанных с телом (Origin position vector [x y z]). В частности, обязательно должны быть указаны координаты центра тяжести тела CG и, при необходимости,

Page 10: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

9

координаты произвольного числа других характерных точек CS1, CS2, CS3, … CSN, таких как центры шарниров, связанных с данным телом, или точки приложения внешних сил и моментов.

Таблица 1

Элементы тензора инерции ряда тел простой формы

Формулы для вычисления Форма тела

Jix Jiy Jiz Тонкий стержень длиной L

вдоль оси Z 1/12(m·L2) 1/12(m·L2) 0

Сфера радиусом R 2/5(m·R2) 2/5(m·R2) 2/5(m·R2)

Цилиндр радиусом R и высо-той h с осью вращения Z

22 h

31Rm

41

22 h

31Rm

41

1/2(m·R2)

Прямоугольный параллелепи-пед со сторонами a, b и c

вдоль осей X, Y и Z соответст-венно

22 cbm121

22 cam121

22 bam121

Конус базового радиуса R и высоты h с осью вращения Z

22 hR

53m

41

22 hR

53m

41

3/10(m·R2)

Эллипсоид с размерами a, b и c вдоль осей X, Y и Z соответ-

ственно 22 cbm

51

22 cam51

22 bam51

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

рых связана с определенной точкой, служит группа кнопок

. Для того, чтобы добавить или убрать изображение входа/выхода

определенной точки на пиктограмме блока Body в окне модели, ис-пользуется установка или сброс флажка в колонке Show port.

В колонке Translated from origin of указывается имя системы ко-ординат (характерной точки), от начала которой отсчитываются ко-ординаты текущей характерной точки. Как минимум одна характер-ная точка (любая, в том числе это может быть и центр тяжести тела CG) должна быть задана в системе координат WORLD либо в систе-

Page 11: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

10

X

Y

Z 0

ме координат ADJOINING. Это необходимо, чтобы связать данное тело с соседними неподвижными или подвижными телами.

Система координат WORLD – это инерциальная неподвижная система, связанная с Землей, а система координат ADJOINING свя-зана с шарниром, присоединенным к телу (с той частью шарнирного сочленения, которая жестко связана с рассматриваемым телом).

Рис. 4. Настройка параметров блока Body Каждой точке, где тело через шарнир соединяется с другим те-

лом, должна быть поставлена в соответствие своя отдельная система координат CS. Это же касается и точек приложения к телу внешних сил и моментов (при их наличии).

- векторы углов поворота систем координат (на вкладке Orienta-tion). По умолчанию все углы поворота всех систем приняты нуле-выми. Изменение их в большинстве случаев не требуется.

Координатные оси любой системы координат в SimMechanics по умолчанию расположены так, как показано на рис. 5, что соответствует правой Эйле-ровой системе координат (Euler X-Y-Z).

Page 12: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

11

2. Блок Ground представляет собой непод-вижную стойку (основание), жестко связанную с абсолютной инерциальной системой координат

Земли. Наличие хотя бы одного этого блока обязательно в любой ме-ханической модели отдельного механизма (иначе при запуске моде-лирования будет выдана ошибка). В окне настройки этого блока за-дается вектор координат [X Y Z] одной неподвижной точки меха-низма относительно глобальной инерциальной системы координат WORLD. К механическому входу/выходу блока Ground, соответст-вующему заданной неподвижной точке, должен быть присоединен в окне модели блок шарнирного сочленения (из раздела Joints), а затем блок Body, опять блок из раздела Joint, блок Body и т.д., для того, чтобы стало возможным движение последующих тел Body.

3. Блок Machine Environment представляет собой настроечный блок параметров механической среды моделирования для машины (механизма). Блок Machine Environment связан с механическим бло-ком Ground (рис. 6).

Рис. 6. Модель механической системы с блоком Machine Environment

При двойном щелчке мышью по данному блоку открывается ок-

но установки параметров механического моделирования (рис. 7). Среди задаваемых параметров на четырех вкладках данного бло-

ка имеются: вектор сил тяжести вида [X Y Z], размерность механиз-ма (2-мерная либо 3-мерная схема), способ анализа, тип решающего устройства ограничения, допуски линеаризации, установка/снятие визуального наблюдения.

Рис. 5. Расположение

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

Page 13: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

12

По умолчанию вектор сил тяжести установлен как для механиз-ма, расположенного на горизонтальной опорной поверхности с нуле-выми углами наклона относительно гравитационной вертикали, и имеет вид [0 –9.81 0] (см. рис. 7). При необходимости изменения на-правления данного вектора во время моделирования он может быть подан на вход блока Machine Environment как векторный сигнал Simulink (для этого необходимо поставить флажок в поле Input grav-ity as signal, см. рис. 7).

Рис. 7. Установка параметров механического моделирования Предполагается, что к каждому блоку Ground, связанному с от-

дельным механизмом модели, должен быть присоединен свой собст-венный блок Machine Environment. Для того, чтобы блок Machine En-vironment можно было присоединить к блоку Ground, в окне на-стройки последнего должен стоять флажок в поле Show Machine Environment port.

Все параметры блока Machine Environment, стоящие на его вкладках по умолчанию, не требуют изменения в подавляющем большинстве случаев. Наличие этого блока в модели необязательно, поскольку в версии MATLAB 6.5 его в пакете SimMechanics еще не

Page 14: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

13

было, однако при отсутствии блока Machine Environment в начале моделирования будет выдано предупреждение в главном окне MAT-LAB. В этом случае значения всех настроек, задаваемых данным блоком, будут приняты как значения по умолчанию.

1.2. Блоки шарнирных сочленений (Joints) Раздел Joints (рис. 8) библиотеки SimMechanics– второй по зна-

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

Раздел Joints содержит пятнадцать основных блоков, имити-рующих всевозможные виды шарнирных сочленений: 1. Prismatic; 2. Revolute; 3. In-plane; 4. Universal; 5. Gimbal; 6. Spherical; 7. Planar; 8. Cylindrical; 9. Bearing; 10. Telescoping; 11. Bushing; 12. Six-DoF; 13. Screw; 14. Weld; 15. Custom Joint. Пиктограммы на блоках раздела Joints дают наглядную информацию об их назначении даже без опи-сания.

Кроме того, в разделе Joints присутствуют два дополнительных подраздела: Disassembled Joints (разобранные сочленения) и Massless Connectors (безинерционные соединители), которые будут рассмот-рены ниже.

Любой блок раздела Joints при перетаскивании его мышью в ок-но модели будет иметь два обязательных порта входа/выхода, кото-рые обозначаются индексами B (Base, база) и F (Follower, последую-щий, см. рис. 6). Эти порты нельзя убрать, и они обязательно должны быть соединены: порт B с блоком Body, представляющим первое те-ло, порт F с блоком Body, представляющим последующее тело, кото-рое движется относительно первого.

Page 15: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

14

Рис. 8. Блоки шарнирных сочленений Joints

Page 16: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

15

Рассмотрим основные блоки раздела Joints. 1. Блок Prismatic обеспечивает одну поступательную степень

свободы тела Follower (последователь) относительно тела Base (осно-вание). Ось, вдоль которой может при этом двигаться тело-последователь, должна быть указана на вкладке Axes окна настройки блока (рис. 9) в виде вектора [X Y Z].

Рис. 9. Настройка параметров блока Prismatic Вектор оси прямолинейного движения может быть задан в инер-

циальной системе координат WORLD, в системе координат, связан-ной с первым телом Base (основной рекомендуемый вариант), либо в системе координат, связанной с последующим телом Follower. Выбор осуществляется из выпадающего списка Reference csys. Обратите внимание, что векторы [0 0 1] и [0 0 92.47] обозначают одну и ту же ось Z.

Для того, чтобы увеличить либо уменьшить количество допол-нительных портов блока, служит поле Number of sensor/actuator ports. При числе дополнительных портов, равном нулю, все равно остаются два обязательных порта B и F, о чем было сказано выше. Дополни-тельные порты могут использоваться для подключения к шарниру

Page 17: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

16

виртуальных датчиков (Sensors) и возбудителей движения (Actuators) из раздела Sensors & Actuators.

2. Блок Revolute обеспечивает одну вращательную степень сво-боды тела, следующего за блоком Revolute вокруг оси, заданной на вкладке Axes окна настройки блока (рис. 10) в виде вектора [X Y Z], аналогично блоку Prismatic.

Рис. 10. Настройка параметров блока Revolute Вектор оси вращения также может быть задан в инерциальной

системе координат WORLD, в системе координат, связанной с пер-вым телом Base (рекомендуется), либо в системе координат, связан-ной с последующим телом Follower.

В отличие от блока Prismatic, у которого ось прямолинейного движения и связанная с ней степень свободы названа именем P1, в окне настройки параметров блока Revolute ось вращения автомати-чески названа именем R1, и это не случайно. В SimMechanics все по-ступательные степени свободы любых блоков раздела Joints обозна-чаются символом P с порядковым номером после него, а все враща-тельные степени свободы – аналогично символом R.

3. Блок In-plane («в плоскости») имитирует сочленение с двумя поступательными степенями свободы. Движение тела Follower отно-сительно тела Base возможно только поступательно в плоскости, за-данной осями P1 и P2 (рис. 11). Данный шарнир представляет собой

Page 18: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

17

последовательное соединение двух элементарных сочленений Prismatic.

Рис. 11. Настройка параметров блока In-plane 4. Блок Universal обеспечивает две вращательные степени сво-

боды тела Follower относительно тела Base, вокруг осей R1 и R2, за-даваемых в окне его настройки. Шарнир представляет собой после-довательное соединение двух элементарных сочленений типа Revolute.

5. Блок Gimbal (Карданов подвес) обеспечивает три вращатель-ные степени свободы тела Follower относительно тела Base, вокруг осей R1, R2 и R3, которые в общем случае могут быть некомпланар-ные.

6. Блок Spherical имитирует сферический шарнир. Как и блок Gimbal, он обеспечивает три вращательные степени свободы тела Follower относительно тела Base, однако в блоке Spherical нет явно

Page 19: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

18

выраженных осей вращения. В окне настройки указывается единст-венный примитив типа Spherical с именем S. Такие примитивы не могут быть приведены в движение по отдельным степеням свободы при помощи блоков возбуждения типа Actuator, и совершают только свободное движение. Блоки виртуальных датчиков типа Sensor при подключении к примитиву типа Spherical не могут получить углы поворота вокруг отдельных осей, а способны лишь выдать кватерни-он поворота тела Follower относительно тела Base, о чем будет сказа-но ниже в параграфе описания блоков типа Sensor.

7. Блок Planar, как и блок In-plane, способен обеспечивать дви-жение тела Follower относительно тела Base в плоскости, однако в отличие от блока In-plane, блок Planar имеет не две, а три степени свободы и позволяет телу Follower кроме двух прямолинейных дви-жений в плоскости еще дополнительно вращаться вокруг заданной оси. Для обеспечения плоского движения необходимо, чтобы указан-ные в блоке настройки оси были некомпланарными.

8. Блок Cylindrical (цилиндрическое соединение) позволяет ими-тировать такое шарнирное сочленение, которое обеспечивает пово-рот вокруг заданной оси с одновременным перемещением вдоль этой же оси.

9. Блок Bearing имеет четыре степени свободы: три вращательные R1, R2, R3 и од-ну поступательную P1, причем поступатель-ное движение вдоль оси P1 должно следо-вать после трех поворотов вокруг осей R1, R2, R3 и по направлению совпадать с осью последнего поворота R3.

Данный блок позволяет, например, мо-делировать подвес какого-либо тела на нити (тросе) с пространственными колебаниями и подъемом/опусканием нити (рис. 12).

Окно настройки параметров блока Bear-ing с заданием осей для схемы на рис. 12 представлено на рис.13.

10. Блок Telescoping, как и блок Bearing, имеет те же четыре сте-пени свободы: три вращательные и одну поступательную, но в отли-чие от предыдущего блока Bearing, у блока Telescoping три враща-тельных примитива R1, R2, R3 заменены одним сферическим S, по-этому данный блок не может быть приведен в движение по отдель-

Рис. 12. Схема, которую позволяет описывать

блок Bearing

R1

R2

R3

P1

Base

Follower

X Y

Z

Page 20: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

19

ным вращательным степеням свободы при помощи блоков возбуж-дения типа Actuator. Сказанное не относится к поступательному при-митиву P1 блока Telescoping, который может быть приведен в дви-жение принудительно.

Рис. 13. Настройка параметров блока Bearing для схемы на рис. 12

11. Блок Bushing – это блок наиболее общего шарнирного со-членения двух тел, обладающего максимально возможными шестью степенями свободы. Имеется три поступательных примитива P1, P2 и P3, а также три вращательных примитива R1, R2 и R3 (рис. 14). Вращательные движения и соответствующие строки в окне настрой-ки параметров блока должны следовать после поступательных.

12. Блок Six-DoF выполняет функцию, аналогичную блоку Bush-ing, и также имеет шесть степеней свободы, но в отличие от блока Bushing, Six-DoF использует один сферический S-примитив (Spheri-cal) вместо трех вращательных примитивов типа R. Возможность принудительного возбуждения движения к S-примитиву данного блока неприменима.

13. Блок Screw (Винт) имитирует винтовое относительное дви-жение двух тел и кроме оси вращения винта R1 имеет в качестве до-полнительного параметра шаг винтовой передачи Pitch.

14. Блок Weld (Сварка) задает жесткое соединение двух тел. Его можно использовать для создания моделей поводковых механизмов.

Page 21: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

20

Рис. 14. Окно настройки параметров блока Bushing

15. Блок Custom Joint (наборное сочленение) занимает особое положение. В отличие от всех прочих блоков, он позволяет пользова-телю самому установить число и порядок примитивов (и степеней свободы) в шарнире, то есть сконструировать собственную цепь при-митивов. Число степеней свободы не может быть больше макси-мально возможного – шести. При конструировании доступны все описанные выше примитивы типа P (Prismatic), R (Revolute) и S (Spherical). Использование S-типа влечет уже упомянутые ограничения по принудительному возбуждению движения.

1.2.1. Разобранные шарниры Disassembled Joints

Подраздел разобранных шарниров Disassembled Joints (рис. 15)

содержит набор шарниров, которые SimMechanics автоматически со-бирает в начале моделирования. То есть SimMechanics в начале мо-

Page 22: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

21

делирования позиционирует эти шарниры таким образом, чтобы они удовлетворяли сборочным ограничениям, определяемым типом шар-нира, например, поступательным (Prismatic) или вращательным (Revolute).

Использование этих шарниров устраняет необходимость для пользователя сборки закрытых контуров в механизме (ручной под-гонки линейных и угловых размеров в цепи звеньев с закрытой топо-логией).

Рис. 15. Блоки разобранных шарнирных сочленений Disassembled Joints

Разобранных шарниров всего четыре типа: 1) Disassembled Pris-

matic; 2) Disassembled Revolute; 3) Disassembled Cylindrical; 4) Disas-sembled Spherical.

Разобранные элементарные шарниры отличаются от аналогич-ных собранных шарниров числом задаваемых осей. Собранный эле-ментарный примитив имеет только одну ось поступательного движе-ния, или одну ось вращения, или одну сферическую точку. Разобран-ный поступательный или вращательный примитив имеет две оси по-ступательного движения или вращения: одну для тела-базы (Base) и другую для тела-последователя (Follower). Разобранный сферический примитив также имеет две точки.

Page 23: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

22

Все разобранные шарниры могут использоваться только в за-крытых контурах механизма (при их наличии). Каждый закрытый контур может содержать только один разобранный шарнир.

Перед запуском моделирования SimMechanics осуществляет сборку механизма и может перемещать тела, связанные разобранны-ми шарнирами, из их позиций, чтобы собрать эти шарниры. Решение проблемы сборки SimMechanics не может быть предсказано заранее за исключением простых случаев. Чтобы запретить SimMechanics передвигать тела в процессе сборки, необходимо использовать блоки начальных условий шарниров Joint Initial Condition, описанные да-лее, в которых определяется начальное положение тел, зафиксиро-ванное во время сборки. Это заставит SimMechanics найти такое ре-шение сборки, которое удовлетворяет начальным перемещениям шарниров, заданным при помощи блоков Joint Initial Condition.

Рис. 16. Настройка параметров блока Disassembled Revolute

Окно настройки разобранного шарнира (рис. 16) позволяет за-дать направление каждой оси. Как правило, эти направления будут совпадать.

Page 24: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

23

а) б)

Рис. 17. Эскиз четырехзвенного механизма, образующего закрытый контур (а) и его SimMechanics модель с использованием разобранного шарнира

Disassembled Revolute (б)

Пример закрытого контура, в котором может быть применен ра-зобранный шарнир Disassembled Revolute, приведен на рис. 17. Эски-зы разобранных шарниров, поясняющие их назначение, приведены на рис. 18.

а) б) в) г)

Рис. 18. Эскизы разобранных шарниров: а) Disassembled Prismatic; б) Disassembled Revolute; в) Disassembled Cylindrical; г) Disassembled Spherical

Разобранный шарнир Disassembled Revolute

Page 25: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

24

1.2.2. Безынерционные соединители Massless Connectors Безынерционные соединители Massless Connectors (рис. 19) уп-

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

Каждый безынерционный соединитель Massless Connectors явля-ется эквивалентом двум шарнирам, чьи соответствующие оси про-странственно разделены фиксированным расстоянием. Возможно за-дание как расстояния между осями (неявно), так и различного на-правления осей. Пространство между двумя примитивами считается соединенным жестким стержнем нулевой массы. Виртуальные дат-чики типа Sensor или возбудители движения типа Actuator не могут быть подключены к блокам Massless Connectors.

Рис. 19. Блоки безынерционных соединителей Massless Connectors

Безынерционных соединителей всего три типа: 1) Revolute-

Revolute; 2) Revolute-Spherical; 3) Spherical-Spherical.

Page 26: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

25

Окно настройки безынерционного соединителя (рис. 20) позво-ляет задать направление каждой оси вращательного R-примитива.

Рис. 20. Настройка параметров блока Revolute-Spherical

а) б)

Рис. 21. Эскиз четырехзвенного механизма с звеном Bar 2 нулевой массы (а) и его SimMechanics модель с использованием безынерционного соединителя

Revolute-Revolute (б)

Page 27: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

26

На примере уже рассматриваемого ранее четырехзвенного меха-низма покажем возможность применения безынерционного соедини-теля Revolute-Revolute. Пусть тело Bar 2 на рис. 21, а имеет очень малую массу, и его необходимо описать в модели как безынерцион-ный соединитель.

Тогда модель SimMechanics данного механизма должна выгля-деть примерно так, как это изображено на рис. 21, б. Если сравнить данную модель с моделью, изображенной на рис. 17, б, то видно, что один блок безынерционного соединителя Revolute-Revolute заменяет собой сразу три блока: два бока вращательных шарниров и блок тела Body.

а) б) в)

Рис. 22. Эскизы безынерционных соединителей: а) Revolute-Revolute;

б) Revolute-Spherical; в) Spherical-Spherical Эскизы безынерционных соединителей, поясняющие их назна-

чение, приведены на рис. 22.

1.3. Блоки связи механических блоков SimMechanics с обычными S-блоками Simulink (виртуальные

регистраторы и возбудители движения Sensors & Actuators) Для того, чтобы можно было измерить относительные движения

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

Однако подключение механических блоков SimMechanics из раз-делов Bodies и Joints к обычным S-блокам Simulink (таким, напри-мер, как источники сигналов Sources или регистраторы Sinks) воз-можно только через специальные связующие блоки механических

Page 28: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

27

виртуальных регистраторов тел и шарниров (Sensors) и возбудите-лей тел и шарниров (Actuators).

Рис. 23. Блоки виртуальных регистраторов и возбудителей движения Sensors & Actuators

Причины для этого следующие. Входы (и они же одновременно

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

Page 29: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

28

дов/выходов» механических блоков имеют вид не стрелок, а квадра-тов с диагоналями.

Как уже было отмечено ранее, блоки типа Body и Joint, а также описанные ниже блоки из раздела Constraints & Drivers могут быть снабжены дополнительными портами для подсоединения к ним бло-ков Actuator и Sensor. Благодаря этому, становится возможным ис-пользовать все остальные библиотеки Simulink для формирования сигналов и перевода получаемой информации обратно в рабочее про-странство Simulink.

Все девять блоков раздела Sensors & Actuators (рис. 23) можно разделить на три группы по типу блоков, к которым они подключа-ются.

Группа 1. Блоки измерителей и возбудителей движения тел: 1.1. Body Actuator; 1.2. Body Sensor; 1.3. Variable Mass & Inertia Actuator.

Группа 2. Блоки измерителей и возбудителей движения шарнир-ных сочленений: 2.1. Joint Actuator; 2.2. Joint Sensor; 2.3. Joint Initial Condition; 2.4. Joint Stiction Actuator.

Группа 3. Блоки измерителей и возбудителей движения ограни-чителей и нестационарных связей: 3.1. Driver Actuator; 3.2. Constraint & Driver Sensor.

Рассмотрим особенности использования блоков по группам. Для группы 1 возбуждение движения или снятие информации

происходит в той точке тела, к порту которой присоединен соответ-ствующий блок раздела Sensors & Actuators. Координаты точки должны быть предварительно заданы в окне настройки блока Body.

1.1. Блок Body Actuator задает возбуждающую силу и/или мо-мент, прикладываемые в точке тела, куда подсоединен данный блок. В качестве параметров блока выступают (рис. 24):

- поле выбора системы координат, в которой задается воздейст-вие Using reference coordinate system (сила или момент могут быть заданы в абсолютной World или локальной Body CS системах коор-динат, используется выпадающий список);

- поля простановки флажков для выбора приложения усилия и/или момента Apply force, Apply torque;

- единицы измерения усилия/момента. Само значение компонент вектора усилия (и/или момента) долж-

но подаваться в виде векторного сигнала (вида [X; Y; Z] для усилия)

Page 30: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

29

на вход блока Body Actuator, для чего могут быть использованы обычные S-блоки Simulink.

Рис. 24. Настройка параметров блока Body Actuator

1.2. Блок Body Sensor позволяет в общем случае измерить сле-дующие характеристики движения точки тела, к порту которой он присоединен:

- координаты (Position) [X; Y; Z] – вектор текущих значений аб-солютных координат точки тела;

- скорость (Velocity) [X′; Y′; Z′] – вектор проекций абсолютной скорости точки тела;

- угловую скорость (Angular velocity) [θX′; θY′; θZ′] – вектор про-екций абсолютной угловой скорости тела;

- [33] Rotation matrix – матрицу направляющих косинусов угло-вого положения тела;

- ускорение (Acceleration) [X″; Y″; Z″] – вектор проекций абсо-лютного ускорения точки тела;

- угловое ускорение (Angular acceleration) [θX″; θY″; θZ″] – век-тор проекций абсолютного углового ускорения тела.

Выбор измеряемых параметров осуществляется простановкой флажков в соответствующих полях окна настройки блока (рис. 25). Все измеряемые параметры могут быть объединены на выходе в

Page 31: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

30

один вектор, для чего необходимо поставить флажок в поле Output selected parameters as one signal.

Рис. 25. Настройка параметров блока Body Sensor

1.3. Блок Variable Mass & Inertia Actuator позволяет изменять массу и/или тензор инерции тела в собственной локальной системе координат тела как функцию времени прямо в процессе моделирова-ния. Значение массы и/или тензора инерции должно быть подано в виде векторного сигнала Simulink на вход блока.

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

2.1. Блок Joint Actuator позволяет задать как функцию времени: - либо силовое воздействие между элементами примитива, имя

которого выбирается из выпадающего списка в верхнем поле Connected to primitive;

- либо относительное движение элементов этого примитива.

Page 32: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

31

Рис. 26. Настройка параметров блока Joint Actuator

Рис. 27. Настройка параметров блока Joint Sensor

Установка вида возбуждения (силовое воздействие Generalized

forces или движение Motion) осуществляется при помощи переклю-чателя (рис. 26). Выбрать примитив можно лишь в том случае, если блок Joint Actuator уже присоединен к дополнительному порту како-го-либо блока Joint.

Когда выбран вид возбуждения Motion, относительное движение частей примитива должно быть подано в виде векторного сигнала Simulink вида [перемещение; скорость; ускорение] на вход блока Joint Actuator. В случае силового возбуждения на вход подается ска-лярный сигнал.

Page 33: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

32

2.2. Блок Joint Sensor позволяет в общем случае измерить сле-дующие характеристики относительного движения частей примити-ва, выбранного из выпадающего списка в верхнем поле Connected to primitive (рис. 27):

- угол (Angle) – угол поворота части примитива, соединенной с телом Follower, относительно его части, соединенной с телом Base;

- относительную угловую скорость (Angular velocity); - относительное угловое ускорение (Angular acceleration); - вычисленный момент (Computed torque) – полный момент сил,

вызывающий относительное угловое ускорение; - позицию (Position) – перемещение части примитива, соединен-

ной с телом Follower, относительно его части, соединенной с телом Base;

- скорость (Velocity) – относительная скорость; - ускорение (Acceleration) – относительное ускорение; - вычисленную силу (Computed force) – полную силу, вызываю-

щую относительное ускорение; - кватернион (Quaternion) – вектор из четырех компонент, опи-

сывающих текущее угловое положение частей сферического прими-тива.

Кватернион q определяется по формуле q=[nX·sin(θ/2); nY·sin(θ/2); nZ·sin(θ/2); cos(θ/2)],

где nX, nY, nZ – компоненты единичного вектора, определяющего ось поворота тела Follower на сферическом примитиве; θ – угол поворота вокруг указанной оси;

- производная кватерниона (Quaternion, derivative) – вектор из четырех компонент, каждая из которых является производной по времени от соответствующей компоненты вектора Quaternion;

- вторая производная кватерниона (Quaternion, second derivative) – вектор из четырех компонент, каждая из которых является второй производной по времени от соответствующей компоненты вектора Quaternion;

- момент реакции (Reaction torque) – момент реакции относи-тельно оси примитива;

- реакция (Reaction force) – сила реакции вдоль оси примитива. Для выбора необходимых измеряемых параметров служит про-

становка флажков в соответствующих полях. Поскольку примитив, выбранный в поле Connected to primitive, может быть одного из трех

Page 34: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

33

типов (поступательного P, вращательного R или сферического S), не все перечисленные характеристики могут быть измерены для кон-кретного примитива. Некоторые поля в окне настройки при выборе примитива становятся неактивными.

2.3. Блок Joint Initial Condition занимает особое положение сре-ди других блоков раздела Sensors & Actuators. Он задает начальное относительное положение и начальную относительную скорость двух частей элементарных примитивов R-типа (Revolute) или P-типа (Prismatic) какого-либо шарнира. При помощи одного блока Joint Ini-tial Condition могут быть заданы начальные условия положения и скорости для всех примитивов шарнира, к которому он подключен, либо только для части примитивов шарнира. Выбор примитивов осуществляется простановкой флажков в полях колонки Enable окна настройки блока (рис. 28). То есть начальные условия задаются по отдельным степеням свободы шарнира. Начальное положение – в по-лях колонки Position, начальная скорость – в полях колонки Velocity. Сферические примитивы S-типа не могут быть инициализированы при помощи блока Joint Initial Condition.

Рис. 28. Настройка параметров блока Joint Initial Condition 2.4. Блок Joint Stiction Actuator (рис. 29) позволяет моделиро-

вать «захват» отдельного примитива шарнирного сочленения силами вязкого и сухого трения в оси примитива.

Page 35: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

34

В качестве задаваемых в окне настройки параметров блока вы-ступают (рис. 30):

- примитив, который выбира-ется в поле Connected to primitive;

- единицы измерения сил/ моментов;

- порог относительной скоро-сти Velocity threshold (MKS-SI units), ниже которой шарнир бло-

кируется силами статического трения.

Рис. 30. Настройка параметров блока Joint Stiction Actuator

На вход блока в процессе моделирования должны подаваться в

виде скалярных сигналов (см. рис. 29): - внешнее усилие/момент External Actuation; - усилие/момент кинетического трения Kinetic friction; - нижний предел статического трения Forward Stiction Limit; - тестовое значение статического трения Static Friction; - верхний предел статического трения Reverse Stiction Limit.

Рис. 29. Вид блока Joint Stiction Actuator в окне модели

External Actuation Kinetic Friction Foward Stiction Limit Static Friction Reverse Stiction Limit

Joint Stiction Actuator

B F

Bearing

Page 36: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

35

Сферические примитивы S-типа не могут захватываться при по-мощи блока Joint Stiction Actuator.

Блоки группы 3 возбуждения нестационарных связей Driver Actuator (рис. 31) и измерения стационарных и нестационарных свя-зей Constraint & Driver Sensor (рис. 32) имеют ограниченную область применения.

Рис. 31. Настройка параметров блока Driver Actuator

Рис. 32. Настройка параметров блока Constraint & Driver Sensor

3.1. В частности, при помощи блока Driver Actuator, как стано-

вится ясно из его названия, возбуждаться могут только блоки неста-ционарных связей типа Driver. На вход блока Driver Actuator должен подаваться вектор из трех компонент: [перемещение; скорость; уско-рение]. Для нестационарной связи в виде поступательного переме-щения единицы измерения компонент указанного вектора будут линейными, а для нестационарной связи по углу поворота – угловыми. 3.2. Измерители Constraint & Driver Sensor могут быть подсое-динены и к блокам стационарных связей (ограничителей типа Constraint), и к блокам нестационарных связей типа Driver. Однако они могут измерять только силу и/или момент силы реакции в связи.

Page 37: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

36

1.4. Блоки стационарных и нестационарных связей

Constraints & Drivers Блоки раздела Constraints & Drivers (рис. 33) позволяют модели-

ровать стационарные и нестационарные ограничения на перемеще-ния между телами. Ограничения, не зависящие от времени, являются стационарными, названия соответствующих им блоков включают слово Constraint. Ограничения, изменяющиеся как функция времени, являются нестационарными, названия соответствующих им блоков включают слово Driver.

Рис. 33. Блоки стационарных и нестационарных связей Constraints & Drivers

В соответствии с данным признаком все блоки раздела

Constraints & Drivers могут быть разделены на две группы: Группа 1. Блоки стационарных связей: 1.1. Parallel Constraint;

1.2. Point-Curve Constraint; 1.3. Gear Constraint.

Page 38: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

37

Группа 2. Блоки нестационарных связей: 2.1. Distance Driver; 2.2. Angle Driver; 2.3. Linear Driver; 2.4. Velocity Driver.

Рассмотрим особенности использования блоков по группам. Все блоки группы 1 типа Constraints допускают подключение

виртуальных измерителей Constraint & Driver Sensor (но не блоков типа Actuator).

1.1. Блок Parallel Constraint задает связь двух осей двух систем координат, одна из которых связана с ведущим телом (Base), а другая с ведомым телом (Follower). Заданные две оси систем координат ос-таются во время движения параллельны друг другу. В качестве пара-метров блока выступают векторы направления параллельных осей вида [X Y Z] и система координат, в которой задается вектор (инер-циальная WORLD, связанная с телом Base или связанная с телом Fol-lower).

1.2. Блок Point-Curve Constraint ограничивает движение точки в теле Base таким образом, чтобы расстояние от этой точки до кри-вой в теле Follower было постоянным. Кривая определяется сплайн-интерполяцией заданных опорных точек в теле Follower. Координаты опорных точек считаются заданными в той системе координат, к порту которой на блоке Body Follower подключен порт F блока Point-Curve Constraint. В качестве параметров блока выступают три векто-ра [X0, X1, ..., XN+1]; [Y0, Y1, ..., YN+1]; [Z0, Z1, ..., ZN+1], задаю-щие координаты опорных точек кривой. Векторы должны иметь одинаковый размер.

1.3. Блок Gear Constraint позволяет моделировать обкат двух тел подобно зубчатому зацеплению двух зубчатых колес с заданными радиусами делительных окружностей. Передаточное отношение оп-ределяется как у зубчатой передачи, в виде отношения диаметров де-лительных окружностей. В качестве параметров блока выступают два условных радиуса: делительной окружности ведущего тела Base и делительной окружности ведомого тела Follower.

Блоки группы 2 нестационарных связей типа Driver требуют под-ключения к ним блоков Driver Actuator для того, чтобы реализовать изменение связи во времени. Если блок Driver Actuator не будет под-ключен к дополнительному порту блока типа Driver, то последний будет моделировать стационарную связь. Подключение виртуальных измерителей Constraint & Driver Sensor также возможно.

Page 39: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

38

2.1. Блок Distance Driver позволяет изменять расстояние между двумя точками тел Base и Follower согласно временной зависимости, задаваемой блоком Driver Actuator. Задание определенных парамет-ров в окне настройки блока Distance Driver не требуется, кроме числа дополнительных входных/выходных портов.

2.2. Блок Angle Driver позволяет изменять угол между двумя указанными осями систем координат, связанных с телами Base и Fol-lower, согласно временной зависимости, задаваемой блоком Driver Actuator. В окне настройки блока Angle Driver требуется указать на-правления двух осей систем координат: первой для тела Base, второй для тела Follower. Направления указываются в виде векторов вида [X Y Z]. Также требуется выбрать системы координат, в которых зада-ются векторы (инерциальная WORLD, связанная с телом Base или телом Follower).

2.3. Блок Linear Driver изменяет проекцию расстояния между двумя точками тел Base и Follower на указанную ось инерциальной системы координат согласно временной зависимости, задаваемой блоком Driver Actuator. В окне настройки блока Linear Driver требу-ется выбрать из выпадающего списка одну из трех осей системы ко-ординат WORLD: X, Y или Z.

2.4. Блок Velocity Driver управляет линейной комбинацией спроецированных линейных и/или угловых скоростей двух точек тел Base и Follower на указанную ось заданной системы координат со-гласно временной зависимости, задаваемой блоком Driver Actuator.

Page 40: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

39

Рис. 34. Настройка параметров блока Velocity Driver В окне настройки блока Velocity Driver требуется задать (рис. 34): - линейные (Linear velocity) и угловые (Angular velocity) ко-эффициенты скорости в виде векторов [X Y Z] для тела Base; - аналогичные коэффициенты для тела Follower. Также требуется выбрать системы координат, на которые про-

ецируются векторы скоростей для тела Base и тела Follower. По умолчанию во всех полях систем координат выбрана система

WORLD.

1.5. Блоки упруговязких элементов Force Elements В версии MATLAB7 в библиотеку SimMechanics добавлен раз-

дел упруговязких элементов Force Elements.

Page 41: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

40

Рис. 35. Блоки упруговязких элементов Force Elements

Раздел содержит два блока (рис. 35): 1. Body Spring & Damper;

2. Joint Spring & Damper. Блоки упруговязких элементов задают силовое воздействие на

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

1. Блок Body Spring & Damper моделирует соединение двух точек двух тел упруговязким элементом так, как это показано на рис. 36.

То есть при изменении расстоя-ния между заданными точками двух тел (к портам которых присоединен блок Body Spring & Damper) изменя-ется усилие F, которое прикладыва-ется к обоим телам в заданных точ-

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

Рис. 36. Схема соединения двух тел

упруговязким элементом Body Spring & Damper

Body A

Body B

Body Spring & Damper

F

F

Page 42: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

41

Рис. 37. Настройка параметров блока Body Spring & Damper

Величина F складывается из силы упругости, которая будет про-

порциональна смещению текущего расстояния между точками r от расстояния равновесного положения r0, и силы вязкого трения, кото-рая пропорциональна относительной скорости двух точек v:

F = –k·(r-r0)–b·v, где k – коэффициент упругости; b – коэффициент вязкого трения.

Значения коэффициента упругости Spring constant (k), коэффи-циента вязкого трения Damper constant (b) и расстояния равновесия между точками Spring natural length (r0) должны быть заданы в окне настройки параметров блока (рис. 37).

Расстояние равновесия между точками Spring natural length (r0) – это такое расстояние, при котором сила упругости равна нулю.

Блок Body Spring & Damper имеет в окне модели два обязатель-ных порта, для соединения двух соседних тел. Число портов блока не может быть изменено. Подключение блока Body Spring & Damper к двум блокам Body в окне модели должно выполнятся параллельно с соединением блоков Body через какой-либо шарнир типа Joint, на-пример так, как показано на рис. 38.

Page 43: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

42

Рис. 38. Пример соединения двух тел

блоком Body Spring & Damper Соединение двух тел параллельно необходимо, поскольку сам

упруговязкий элемент Body Spring & Damper не задает никаких сте-пеней свободы.

2. Блок Joint Spring & Damper моделирует соединение двух час-тей примитивов шарнира, к которому он подключен. Этот блок име-ет только один порт, поскольку он присоединяется к единственному блоку шарнира Joint.

Действие блока Joint Spring & Damper аналогично действию уп-руговязкого элемента Body Spring & Damper с той лишь разницей, что Joint Spring & Damper прикладывает усилие/момент не к двум точкам тел, а к двум частям примитива (элементарного сочленения вращательного типа R или поступательного типа P) какого-либо шарнира. В зависимости от того, какой тип примитива выбран (P или R), прикладывается усилие или момент соответственно. Один блок Joint Spring & Damper может возбуждать сразу все примитивы шар-нира, к дополнительному порту которого он присоединен, или только часть из них. Для выбора возбуждаемых примитивов служит проста-новка флажков в полях колонки Enable окна настройки (рис. 39).

Также в окне настройки должны быть заданы значения коэффи-циента упругости Spring constant (k), коэффициента вязкого трения Damper constant (b) и линейного/углового расстояния равновесия ме-жду частями примитива Spring Offset (x0).

B F

Custom Joint CS2 CS3 CS1

Body2 CS1 CS2

CS3 Body1

Body Spring & Damper

Page 44: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

43

Рис. 39. Настройка параметров блока Joint Spring & Damper Описанные блоки Body Spring & Damper и Joint Spring & Damper

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

С помощью блоков Body Actuator и Joint Actuator, дополнитель-но используя блоки Body Sensor, Joint Sensor и ряд обычных блоков Simulink, можно выполнять те же функции, что и при помощи блоков Body Spring & Damper и Joint Spring & Damper. Поясним это на при-мере моделирования упруговязкого элемента вращательного шарни-ра Revolute с одной степенью свободы. Возбуждение шарнира Revolute происходит по единственному его примитиву R1. На рис. 40, а показано моделирование упруговязкого элемента при помощи блоков Joint Sensor, Joint Actuator, Constant, Demux, Gain и Sum, то есть не прибегая к использованию специального блока из раздела Force Elements. Обработка сигналов происходит следующим образом: блок Joint Sensor измеряет текущий угол поворота шарнира (в радиа-нах) и угловую скорость. Затем этот векторный сигнал разделяется на два скалярных при помощи блока Demux. Текущий угол сравни-вается с равновесным значением X0=2.2 при помощи сумматора, и их

Page 45: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

44

разность умножается на приведенный коэффициент упругости k=20000. В результате получается момент упругости. Угловая ско-рость умножается на коэффициент вязкого трения b=50000 и получа-ется момент вязкого трения, который вычитается из момента упруго-сти, поскольку он всегда направлен против движения. Результатом является искомый возбуждающий момент, который при помощи бло-ка Joint Actuator подается на шарнир Revolute.

20000 k

50000 b

2.2 X0

B F

Revolute

Joint Sensor

Joint Actuator

CS1 CS2 Body2

CS1 CS2 Body1

B F

Revolute

Joint Spring & Damper

CS1 CS2 Body2

CS1 CS2 Body1

а) б) Рис. 40. Две альтернативные модели SimMechanics, имитирующие упруговязкий

элемент шарнира Revolute: а) с использованием блоков Joint Sensor и Joint Actuator; б) с использованием блока Joint Spring & Damper

Модель на рис. 40, б, напротив, использует единственный специ-

альный элемент Joint Spring & Damper для решения той же задачи. Сравнив схемы, можно сделать вывод, что один блок Joint Spring & Damper заменяет собой восемь блоков при альтернативном описа-нии, то есть очевидно значительное упрощение модели. Причем в рассматриваемом примере шарнир имеет лишь один примитив, а ес-ли бы их было, например два, то единственный блок Joint Spring & Damper заменил бы собой уже не восемь, а шестнадцать альтерна-тивных блоков.

Однако использование блоков из раздела Force Elements имеет и свои недостатки. Задаваемые в окне настройки параметры блоков, а именно коэффициент упругости, коэффициент вязкого трения и рас-стояние равновесия, не могут быть изменены обычными средствами во время моделирования. Это ограничивает колебания малыми пере-мещениями, делает описание линейным. Альтернативная модель (см. рис. 40, а), несмотря на свою сложность, более универсальна, допус-

Page 46: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

45

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

1.6. Вспомогательные механические блоки Utilities Блоки из этого раздела выполняют в моделях SimMechanics

вспомогательные функции. Всего в разделе Utilities четыре блока (рис. 41): 1. Connection Port; 2. Continuous Angle; 3. Convert from Rotation Matrix to Virtual Reality Toolbox; 4. Mechanical Branching Bar.

Рис. 41. Вспомогательные механические блоки Utilities 1. Блок Connection Port используется в модели SimMechanics

вместо обычных Simulink-блоков ввода и вывода In и Out. Если соз-дается подсистема, содержащая блоки SimMechanics, и необходима передача двухсторонних механических сигналов в основную модель или подсистему более высокого уровня, то вместо однонаправленных блоков In и Out используется вспомогательный механический блок Connection Port.

Page 47: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

46

2. Блок Continuous Angle позволяет получить (при использова-нии совместно с блоком измерителя Joint Sensor) правильное значе-ние угла относительного поворота двух частей вращательного при-митива шарнира, если угол поворота превышает значение ±π радиан. Использование в этих случаях только одного блока Joint Sensor вы-зывает разрыв измеряемого значения угла величиной в 2π радиан. Блок Continuous Angle должен следовать за блоком Joint Sensor, и на его вход, кроме самого угла Angle, нужно подавать скорость измене-ния угла Rate. Тогда на выходе блока получится непрерывный сигнал угла.

3. Необходимость использования блока Convert from Rotation Matrix to Virtual Reality Toolbox может возникнуть лишь в том слу-чае, если для визуализации движений звеньев механизма в процессе моделирования используется пакет Virtual Reality Toolbox системы MATLAB. Для задания ориентации тела в 3-D пространстве вирту-альной анимационной сцены Virtual Reality необходимо подать на вход специального блока VR Sink из отдельной библиотеки Virtual Reality Toolbox векторный сигнал, состоящий из четырех компонент вида [nX nY nZ θ], где nX, nY, nZ – компоненты единичного вектора, определяющего в декартовой системе координат тела Base ось пово-рота тела Follower относительно Base на воображаемом сферическом примитиве; θ – угол поворота вокруг указанной оси в радианах.

Блок Convert from Rotation Matrix to Virtual Reality Toolbox пре-образует подаваемую на его вход матрицу направляющих косинусов углового положения тела ([33] Rotation matrix, может быть измерена блоком Body Sensor) в четырехкомпонентный вектор [nX nY nZ θ], который может быть подан на вход блока виртуальной анимации VR Sink.

4. Блок Mechanical Branching Bar выполняет важную функцию в плане упрощения механических моделей. Он способен объединить нескольких линий, соединяющих механические блоки тел Bodies, шарниров Joints или связей Constraints & Drivers с виртуальными из-мерителями и возбудителями Sensors & Actuators в одну линию. Это позволяет использовать один порт блока Body, Joint, Constraint или Driver для связи с несколькими блоками типа Sensors & Actuators.

Пример использования блока Mechanical Branching Bar приведен на рис. 42. Блок шарнира Custom Joint здесь имеет один дополни-

Page 48: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

47

тельный порт вместо четырех, благодаря использованию Mechanical Branching Bar.

Sine Wave1

Sine Wave

Scope1

Scope

Mechanical Branching

Bar

Joint Sensor1

Joint Sensor

Joint Actuator1

Joint Actuator

Ground B F

Custom Joint1

CS1 Body

Рис. 42. Пример использования блока Mechanical Branching Bar

В качестве единственного параметра блока Mechanical Branching

Bar выступает число ветвлений.

1.7. О топологии механизмов в SimMechanics

Основу блок-схемы любого механизма в SimMechanics составля-

ет цепь звеньев типа Ground-Joint-Body-Joint-Body-Joint-…-Body. Как вариант, вместо шарниров типа Joint в цепи могут присутствовать блоки связей Constraints & Drivers. Эти цепи могут быть с открытой или с закрытой топологией, то есть замкнутые или разомкнутые.

Чтобы избежать ошибок при моделировании, необходимо быть уверенным, что топология построенной блочной диаграммы SimMechanics правильная. Блочная диаграмма будет правильна с то-пологической точки зрения, если все механизмы, из которых она со-стоит, адекватны. Механизм же адекватен, если адекватно его основ-ное дерево (цепь звеньев, указанная выше). Таким образом, чтобы определить, является ли модель адекватной, сначала необходимо по-

Page 49: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

48

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

Для получения основного дерева механизма необходимо удалить (условно) из модели механизма все блоки, кроме блоков тел и шар-ниров Ground, Joint и Body и открыть каждый замкнутый контур в механизме при их наличии. Чтобы открыть замкнутый контур, необходимо удалить из этого контура блок шарнира Joint или связи (при наличии блоков из раздела Constraints & Drivers).

Например, для механизма с двумя замкнутыми контурами (рис. 43) для решения задачи возможно удаление двух блоков: разобранно-го шарнира Disassembled Prismatic и стационарной связи Parallel Constraint.

Рис. 43. Пример определения основного дерева механизма с двумя замкнутыми контурами

Топологическая адекватность основного дерева гарантируется

следующими условиями: основное дерево должно иметь по меньшей мере один блок основания Ground, связывающий механизм с инерци-альной системой координат; каждый блок шарнира должен быть обязательно связан с двумя блоками тел; каждый блок тела не осно-вания Body должен иметь собственный путь к блоку основания Ground; каждый блок тела не основания Body в конце цепи звеньев

Page 50: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

49

тел должен иметь массу или инерционный момент, отличные от нуля (каждая поступательная степень свободы должна нести массу, от-личную от нуля, и каждая вращательная степень подвижности – инерционный момент, отличный от нуля. Это предотвращает беспре-рывное ускорение, когда применяются силы и крутящие моменты).

Примеры неправильной топологии механизмов приведены на рис. 44, а) механизм с закрытым контуром не имеет блока основания; б) открытый механизм имеет обособленный блок шарнира Prismatic; в) другой открытый механизм имеет тело с массой, равной нулю в конце цепи тел (например, тело Body4, из блок-схемы этого не вид-но).

а)

Рис. 44. Примеры неправильной топологии механизмов (начало)

Рис. 44. Примеры неправильной топологии механизмов (окончание)

б)

в)

Page 51: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

50

Кроме перечисленных выше существует еще одно условие рабо-

тоспособности механизма в модели SimMechanics. Механизм должен иметь по меньшей мере одну степень подвижности. Свободное фи-зическое тело имеет шесть степеней свободы: три поступательных и три вращательных. Но в механизме при добавлении связей между те-лами посредством шарнирных сочленений и блоков Constraints & Drivers независимые степени свободы снижаются до меньшего коли-чества. Также снижается количество степеней свободы, если движе-ние механизма ограничивается до двух пространственных измерений в настройках блока Machine Environment.

Блок любого тела Body сам по себе не имеет степеней свободы. При подключении к нему блоков шарнирных сочленений Joint это добавляет степени свободы для всего механизма. Подключение бло-ков связей Constraints & Drivers к телам или шарнирам, напротив, снижает степени свободы механизма.

Формула для определения числа независимых степеней свободы S, которые имеет весь механизм: S=B+J–C, где B – число степеней свободы тел механизма; J – число степеней свободы шарниров меха-низма; C – количество ограничений движения по степеням свободы.

Здесь B=6·(ni– nj), где ni – общее число тел механизма кроме стойки; nj – общее число всех шарниров механизма. Если движение механизма ограничивается до двух пространственных измерений, то 6 в формуле необходимо заменить на 3.

J= np+nr+3·ns, где np, nr и ns – общее количество поступательных, вращательных и сферических примитивов соответственно во всех шарнирах механизма.

Для определения числа ограничений движения C необходимо просуммировать количество ограничений по каждому блоку типа Constraints или Drivers механизма. Для этого нужно воспользоваться табл. 2, в которой приведены числа ограничений, создаваемых каж-дым блоком из раздела Constraints & Drivers.

Т а б л и ц а 2

Количество ограничений движения, создаваемых блоками связей Constraints & Drivers

Блоки Constraints Блоки Drivers

Gear 1 Angle 1

Page 52: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

51

Parallel 2 Distance 1 Linear 1 Point-Curve 2 Velocity 1

В качестве примера, для механизма двойного маятника, модель

которого изображена на рис. 45, число степеней свободы будет равно двум: S=0+2–0=2, поскольку B=6·(ni–nj)=6·(2–2)=0; J=np+nr+3·ns= =0+2+3·0=2; C=0.

Sine Wave

BF

Revolute2

B F

Revolute1

Env

Joint Sensor2

Joint Sensor1

Joint Actuator

Ground

CS1

Body2

CS1 CS2

Body1

Angle

Rev olute2

Rev olute1

Рис. 45. Модель двойного маятника

Здесь число тел ni=2, число шарниров nj=2, число вращательных

примитивов в двух шарнирах Revolute nr=2. Число остальных прими-тивов равно нулю, блоки связей не используются (C=0).

2. МОДЕЛИРОВАНИЕ РАБОЧИХ ДВИЖЕНИЙ АВТОКРАНА

Рассмотрим в качестве примера Simulink-модель механической

системы автомобильного крана. Для создания модели автокрана с использованием блоков библиотеки SimMechanics была предложена пространственная обобщенная расчетная схема, изображенная на рис. 46 [3].

Динамическая система автокрана представлена пятью звеньями: 1) базовое шасси; 2) поворотная колонка; 3) стрела; 4) телескопиче-ское выдвижное звено; 5) груз. Элементы ходового оборудования и

Page 53: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

52

привода представлены на расчетной схеме упруговязкими телами Фохта.

Y0 X0

Z0 u=1 u=2

u=3 u=4 u=5 u=6

u=7 u=8

u=9

u=1

u=11 u=12

u=13

u=14

u=15

u=16, 17, 18

u=19

G1

G2

G3

G4

G5

X5

Y5

Z5

Y4 X4

Z4

Z3

Y3 X3 Y2

X2 Z2

Z1 X1

Y1

Рис. 46. Обобщенная расчетная схема динамической системы автокрана

Механизм автокрана имеет 13 степеней свободы: перемещение центра масс базового шасси вдоль оси X0 (q1); перемещение центра масс базового шасси вдоль оси Y0 (q2); перемещение центра масс ба-зового шасси вдоль оси Z0 (q3); поворот базового шасси вокруг оси X1 (q4); поворот базового шасси вокруг оси Z1 (q5); поворот базового шасси вокруг оси Y1 (q6); поворот поворотной платформы вокруг оси Y2 (q7); поворот стрелы вокруг оси Z3 (q8); выдвижение телескопиче-ского звена вдоль оси X4 (q9); поворот груза вокруг оси Z5 (q10); пово-рот груза вокруг оси X5 (q11); поворот груза вокруг оси Y5 (q12); сме-щение груза вдоль оси Y5 (растяжение грузовой лебедки, q13).

На рис. 47 представлена принципиальная схема связей для по-строения Simulink-модели автокрана.

Из блоков пакета SimMechanics при моделировании системы ав-токрана использовались следующие [3]:

Ground – блок, представляющий собой стойку, т. е. тело, связан-ное с неподвижной инерциальной системой координат.

Page 54: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

53

Body – блок, представляющий определенное пользователем же-сткое твердое тело.

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

Body Sensor – виртуальный датчик тела, блок, выходными сиг-налами которого являются величины линейного или углового перемещения, скорость и/или ускорение определенной точки тела в заданной системе координат.

Body Actuator – так называемый блок «привода» тела, который прикладывает к телу заданный вращающий момент или сосредото-ченную силу.

Bushing – один из многочисленных блоков раздела библиотеки шарниров SimMechanics, блок наиболее общего шарнира, имеющего 6 степеней свободы.

Bearing – блок шарнира, имеющего четыре степени свободы: три вращательные и одну поступательную.

Revolute – блок вращательного шарнира, имеющего одну сте-пень свободы – поворот вокруг заданной оси координат.

Prismatic – блок поступательного шарнира, имеющего одну сте-пень свободы – перемещение вдоль заданной оси координат.

Joint Sensor – виртуальный датчик шарнира, блок, выходными сигналами которого являются величины линейного или углового пе-ремещения, скорость и/или ускорение для примитива (отдельной сте-пени свободы) шарнира. Блоки данного типа использовались в Simulink-модели для определения усилий и моментов, описывающих упруговязкие тела Фохта.

Page 55: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

54

Ground

Bushing Body «Базовое шасси»

Bod

y Se

nsor

Bod

y Se

nsor

Bod

y Se

nsor

Bod

y Se

nsor

Группа блоков, за-дающих величину сосредоточенных сил от опорных

элементов

Body

Act

uato

r

Body

Act

uato

r

Body

Act

uato

r

Body

Act

uato

r

Revolute

Body «Поворотная

колонка»

Joint Sensor

Блоки задания управляющего

воздействия

Revolute Body «Стрела»

Блоки задания управляющего воздействия

Joint Actuator

Joint Actuator

Prismatic Body «Призматическое звено»

Joint Sensor

Bearing

Блоки задания управляющего воздействия

Body «Груз»

Joint Sensor

Join

t Sen

sor

Join

t Sen

sor

Join

t Sen

sor

Join

t Sen

sor Группа блоков, за-

дающих управляю-щие воздействия по отдельным примити-вам шарнира Bearing

Joint Actuator

Joint Actuator Joint Actuator Joint Actuator Joint Actuator

Рис. 47. Принципиальная схема связей для построения Simulink-модели автокрана

Page 56: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

55

Рис. 48. Главное окно модели автокрана Ural

Рис. 49. Окно подсистемы базового шасси shassy

Page 57: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

56

Рис. 50. Окно настройки параметров блока Body (shassy)

Рис. 51. Окно подсистемы определения усилий, действующих на базовое шасси со стороны первой из опор

Page 58: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

57

Рис. 52. Окно настройки блока Ground

Рис. 53. Окно настройки блока Joint Ini-tial Condition шарнира Bushing

Рис. 54. Окно настройки блока Body Sensor

Рис. 55. Окно настройки блока

Body Actuator

Page 59: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

58

Рис. 56. Окно подсистемы поворотной колонки povorotn kolonka

Рис. 57. Окно подсистемы

стрелы strela

Рис. 58. Окно настройки блока Joint Sensor подсистемы поворотной колонки

Рис. 59. Окно настройки блока Joint

Initial Condition шарнира Revolute под-системы поворотной колонки

Page 60: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

59

Рис. 60. Окно подсистемы телескопического звена teleskop zveno

Joint Actuator – так называемый блок «привода» шарнира, кото-рый прикладывает к отдельному примитиву шарнира заданный вра-щающий момент или усилие.

Принципиальная схема соединения указанных блоков SimMechanics для расчетной схемы автокрана (см. рис. 46) приведе-на на рис. 47.

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

Главное окно модели Ural, окна подсистем звеньев и окна на-стройки ряда механических блоков Simulink-модели представлены на рис. 48-61. Из рис. 48 видно, что каждое звено автокрана представ-лено своей собственной подсистемой.

Шарнир Bushing, соединяющий тело базового шасси крана со стойкой Ground, имеет шесть степеней свободы. Он присоединен к телу в данном случае в точке центра масс, как это видно из рис. 49 и 50 (первая строка в окне на рис. 50, соответствующая точке CG цен-

Page 61: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

60

тра масс, задает нулевые координаты точки CG относительно AD-JOINING).

Движение шарнира Bushing не ограничивается явно через блоки разделов Sensors & Actuators или Constraints & Drivers. Задача пози-ционирования базового шасси в пространстве решается при помощи блоков Body Sensor и Body Actuator. Шесть блоков Body Sensor (см. рис. 49) по числу опор крана в общем случае (четыре выносные опо-ры и два передних колеса) измеряют в абсолютной системе WORLD координаты и скорости характерных точек опор (точки CS1…CS7) и выдают их в виде векторных сигналов. Поступая в подсистемы опре-деления усилий Sily1… Sily6, действующих на базовое шасси со сто-роны опор, вектор координат и скоростей точек разделяется на ска-лярные сигналы (см. рис. 51).

Используя равновесные значения по каждой из осей декартовой системы координат (константы 2.8, –0.1 и 1 для осей X, Y и Z соот-ветственно на рис. 51) и приведенные коэффициенты упругости вдоль осей (900000, 900000 и 600000 для осей X, Y и Z соответствен-но), определяются компоненты вектора силы упругости, действую-щей на опору. Равновесные значения в блоках констант должны со-ответствовать координатам характерных точек CS1…CS7 опор в ок-не настройки параметров блока тела базового шасси Body (shassy), с учетом того, что центр масс тела, относительно которого заданы ко-ординаты точек CS1…CS7, имеет свои собственные координаты в инерциальной системе WORLD, заданные в окне настройки блока Ground (см. рис. 52). Силы вязкого трения также определяются в ви-де компонент, действующих вдоль осей инерциальной системы ко-ординат, путем умножения компонент вектора скоростей точки опо-ры на приведенные коэффициенты вязкости (50000, 10000 и 120000 для осей X, Y и Z соответственно). Затем силы упругости и вязкого трения суммируются по компонентам и объединяются в один век-торный сигнал, который подается на соответствующий опоре блок Body Actuator. Шесть блоков Body Actuator подключены к портам шести характерных точек CS7…CS12, координаты которых совпа-дают с координатами точек CS1…CS7 соответственно.

Начальные относительные положения двух частей примитивов шарнира Bushing, соответствующие статическим отклонениям обоб-щенных координат базового шасси под действием сил тяжести, за-даются в окне настройки блока Joint Initial Condition (см. рис. 53).

Page 62: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

61

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

Точка CS13 (см. рис. 49 и 47) имеет в теле базового шасси коор-динаты точки нахождения вращательного шарнира Revolute пово-ротной колонки. Вектор оси вращения в окне настройки блока Revolute поворотной колонки должен иметь вид [0 1 0], поскольку ось вращения поворотной колонки расположена вертикально относительно базового шасси.

Подсистемы поворотной колонки, стрелы и телескопического звена имеют принципиально одинаковую структуру (см. рис. 56, 54 и 57), поскольку каждое из этих звеньев автокрана имеет относительно предыдущего звена одну степень свободы. Только для звеньев пово-ротной колонки и стрелы это будет вращение (правда, вокруг раз-личных осей, что должно быть отражено в окнах настройки соответствующих блоков Revolute подсистем), а для телескопического звена – прямолинейное поступательное движение. Поэтому в подсистеме телескопического звена использован шарнир Prismatic. Для моделирования упруговязких элементов, ограничивающих относительное движение звеньев автокрана через шарниры, были использованы блоки Joint Sensor и Joint Actuator. Способ такого альтернативного моделирования был раскрыт ранее в параграфе описания упруговязких элементов Force Elements. Это позволило моделировать большие перемещения звеньев, поскольку вместо постоянной координаты равновесия шарнира может быть подан переменный сигнал из блока Table. Подсистема лебедки с грузом (рис. 61), в отличие от предыду-щих, включает шарнир Bearing с четырьмя степенями свободы: тре-мя вращательными (раскачивание лебедки с грузом в продольном и поперечном направлениях и закручивание лебедки вокруг своей оси) и одной поступательной (подъем/опускание груза). Упруго-вязкие элементы шарниров моделировались отдельно по каждой степени свободы аналогично шарнирам Revolute и Prismatic подсистем пово-ротной колонки, стрелы и телескопического звена. Разница состояла лишь в том, что по степеням свободы шарнира R1 и R2, соответст-вующим раскачиванию лебедки с грузом в продольном и поперечном направлениях, сила упругости принималась равной нулю, и модели-ровалась только сила вязкого трения.

Page 63: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

62

Рис. 61. Окно подсистемы лебедки с грузом lebedka s gruzom

В качестве решателя при моделировании движений автокрана использовался метод ode15s с переменным шагом либо метод ode14x с фиксированным шагом, так как прочие методы в данном случае не всегда обеспечивают решение за приемлемое время.

Page 64: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

63

3. ВОЗМОЖНОСТИ ВИЗУАЛИЗАЦИИ ДВИЖЕНИЙ В SimMechanics

Для анализа результатов моделирования различных динамиче-

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

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

3.1. Визуализация встроенными средствами SimMechanics Пользователю предоставляется возможность визуализировать

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

Для запуска визуального наблюдения в SimMechanics требуется соблюдение двух условий. Во-первых, на вкладке Visualization окна параметров механического моделирования, открываемого при двой-

Page 65: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

64

ном щелчке по настроечному блоку Machine Environment (рис. 62), должен быть поставлен флажок в поле Visualize machine (по умолча-нию он там уже есть).

Рис. 62. Установка флажка в поле Visualize machine блока Machine Environment, открывающая возможность

визуализации перемещений механизма

Рис. 63. Изменение параметров Simulink-модели для визуализации SimMechanics

Page 66: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

65

Во-вторых, требуется изменить параметры моделирования Simulink-модели. В окне установки параметров моделирования Simulink-модели, если модель содержит блоки SimMechanics, обяза-тельно должна присутствовать в самом низу строка SimMechanics (рис. 63).

Окно установки параметров моделирования можно открыть че-рез меню главного окна Simulink-модели (меню Simulation – Configu-ration Parameters) либо нажав на кнопку Open Configuration Parame-ters… на вкладке Visualization блока Machine Environment (см. рис. 62).

Если в окне установки параметров моделирования выбрать мы-шью в браузере слева последнюю строку SimMechanics (см. рис. 63), то появится возможность установить флажки в полях Update machine visualization on update diagram и Animate machine during simulation.

Флажок в поле Update machine visualization on update diagram по-зволяет отображать окно визуального наблюдения SimMechanics в статике и обновлять его в соответствии с изменениями в модели ме-ханизма. Для обновления необходимо воспользоваться строкой Update Diagram меню Edit главного окна Simulink-модели.

Рис. 64. Окно визуального наблюдения SimMechanics с изображением

Главное меню Панель инструментов Изображение механизма Панель состояния

Page 67: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

66

механизма автокрана в процессе моделирования Флажок в поле Animate machine during simulation позволяет ани-

мировать перемещения механизма в окне визуального наблюдения SimMechanics в процессе моделирования. Если флажок в этом поле поставлен, а в поле Update machine visualization on update diagram нет, то визуальное наблюдение доступно, только когда начинается процесс моделирования (графическое окно при этом откроется авто-матически).

Все другие элементы управления визуального наблюдения рас-положены в окне визуального наблюдения SimMechanics (рис. 64). Доступ к ним возможен, только когда это окно открыто.

Тела механизма в окне визуального наблюдения могут быть изо-бражены двумя способами: 1) в виде поверхностей, соединяющих характерные точки тел (по умолчанию); 2) в виде эллипсоидов, по-ложение и размеры которых зависят от положения центров масс тел и их массово-инерционных свойств.

Рис. 65. Назначение основных кнопок специальных инструментов визуализации SimMechanics

Кроме того, для выделения характерных точек определенного

вида используются специальные знаки. Знак «плюс в круге» ис-пользуется для обозначения центров масс тел CG. Знак «начало сис-темы координат» используется для обозначения всех остальных характерных точек CS, положение которых задано в окне настройки блока Body.

Вид

в пл

ане

осей

X и

Y –

Вид

в пл

ане

осей

Y и

Z –

Вид

в пл

ане

осей

X и

Z –

Вид

в 3D

(объ

емны

й) –

Впис

ать

изоб

раж

ение

в о

кно

Пок

азат

ь ка

ркас

из т

очек

Пок

азат

ь эл

липс

оиды

тел

П

оказ

ать

пове

рхно

сти

Пок

азат

ь ос

обо

цент

ры м

асс

Пок

азат

ь ос

обо

точ

ки C

S –

Пок

азат

ь вр

емя

мод

елир

ован

ия –

О

бнов

ить

окно

Стар

т м

одел

иров

ания

Стоп

мод

елир

ован

ия –

Запи

сат

ь ан

имац

ию в

avi

-фай

л –

Page 68: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

67

В окне визуального наблюдения SimMechanics используются стандартные графические элементы управления. Все кнопки панели инструментов имеют всплывающие подсказки. Имеется возможность сохранить текущую картинку в виде фигуры в формате MATLAB (в файл с расширением *.fig), а также записать анимацию в файл видео с расширением *.avi.

Наиболее часто используемые кнопки специальных инструмен-тов визуализации SimMechanics находятся в самом нижнем, третьем ряду панели инструментов. Их назначение поясняет рис. 65. Кнопка

в первом ряду позволяет вращать изображение мышью в 3D. Существенным недостатком способа визуализации встроенными

средствами SimMechanics является очень сильное снижение скорости моделирования при включенной анимации. Кроме того, внешний вид тел при стандартной визуализации SimMechanics недостаточно реа-листичен. Всех этих недостатков можно избежать при создании соб-ственной пользовательской анимации с использованием пакета Virtual Reality Toolbox, не прибегая к встроенным средствам SimMechanics. Однако создание собственной анимации в Virtual Reality требует от пользователя минимальных знаний этого пакета и затрат времени на подготовку виртуальной сцены, объекта механиз-ма в ней, на организацию передачи данных для анимации из модели в Virtual Reality. Подробнее об этом рассказано в следующем пара-графе.

3.2. Создание собственной пользовательской анимации с использованием пакета Virtual Reality Toolbox

Пакет Virtual Reality Toolbox предназначен для интеграции вир-

туальной сцены, описанной на языке программирования виртуальной реальности VRML (Virtual Reality Modeling Language) в MATLAB и Simulink. Для того, чтобы создать виртуальную сцену на VRML, не-обязательно знание этого языка программирования. Гораздо проще воспользоваться встроенным графическим редактором V-Realm Builder системы MATLAB, поддерживающим формат VRML [3, 4].

Недостатком встроенного редактора V-Realm Builder является его неполная совместимость с более мощными 3D редакторами, под-держивающими VRML такими, например, как 3D MAX. При откры-

Page 69: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

68

тии объектов из этих редакторов в V-Realm Builder импортируется много ненужных деталей в дереве объектов, затрудняющих управле-ние объектами из Simulink. Поэтому для создания пользовательской анимации в среде MATLAB и Simulink лучше всего воспользоваться возможностями встроенного редактора V-Realm Builder.

Рассмотрим процесс создания пользовательской анимации сред-ствами Virtual Reality Toolbox на примере описанного ранее автокра-на. Разработанная Simulink-модель механической системы автокрана, имеющего 13 степеней свободы (см. рис. 46), в процессе моделиро-вания выступает как источник значений 13 обобщенных координат. Для анимации в Simulink-модели должен присутствовать блок VR Sink пакета Virtual Reality Toolbox (рис. 66), входными параметрами которого выступают обобщенные координаты объекта.

Рис. 66. Блок VR Sink, регулирующий выбранные свойства (перемещения) виртуального объекта согласно входным сигналам,

и окно настройки его параметров В окне настройки параметров данного блока, которое раскрыва-

ется при двойном щелчке по «чистому» (только что скопированному из браузера Simulink) блоку VR Sink, необходимо указать имя файла с расширением *.wrl (см. рис. 66), который описывает пространст-венные объекты, анимацию которых необходимо осуществить. В рас-

Page 70: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

69

сматриваемом примере это будет файл ural1.wrl. Полный путь к фай-лу рекомендуется не указывать. Если файла с таким именем еще не существует на жестком диске ни в одной из папок MATLAB, его можно будет тут же создать, нажав на кнопку New окна настройки «чистого» блока VR Sink. Нажатие вызовет загрузку встроенного ре-дактора V-Realm Builder, окно которого будет пустым (рис. 67).

Рис. 67. Пустое окно редактора V-Realm Builder, возникающее при нажатии кнопки New в окне настройки блока VR Sink

Page 71: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

70

Рис. 68. Окно существующей виртуальной сцены, от-крывающееся при двойном щелчке по блоку VR Sink

Если нажать уже в окне V-Realm Builder на стандартную кнопку создания нового файла , это вызовет появление пустой виртуаль-ной сцены, в которую нужно будет добавить объекты и сохранить файл с оригинальным именем (ural1.wrl).

Если файл ural1.wrl с объектами уже существует и его имя было указано в поле Source file окна настройки блока VR Sink, то при двойном щелчке по блоку VR Sink сразу откроется окно с виртуаль-ной сценой автокрана, описанной в файле ural1.wrl (рис. 68). И в этом случае имеется возможность вызвать окно настройки VR Sink, если нажать на кнопку Block parameters в окне анимации. Но вме-сто кнопки New в окне настройки параметров будет уже кнопка Edit (см. рис. 66), при нажатии на которую будет загружен редактор V-Realm Builder с виртуальной сценой автокрана (файл ural1.wrl), кото-рую можно при необходимости изменить (рис. 69).

Рис. 69. Виртуальная сцена файла ural1.wrl в окне редактора V-Realm Builder

Page 72: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

71

В редакторе V-Realm Builder левую часть окна занимает подокно браузера, в котором в виде дерева отражены все геометрические объ-екты сцены. Для создания звеньев виртуального автокрана можно воспользоваться примитивами параллелепипедов, цилиндров, шаров и конусов. V-Realm Builder предусматривает также возможность соз-дания сложных объемных фигур способом выдавливания из плоской фигуры, хотя в рассматриваемом примере эта возможность не ис-пользовалась. Каждое тело-примитив в V-Realm Builder обязательно привязывается к определенной форме Shape, которая может являться потомком системы координат, но не может сама иметь потомков. Системы координат могут и не содержать геометрических тел, а ис-пользоваться для задания точки наблюдения за сценой, точки допол-нительного освещения и т. п. Редактор V-Realm Builder имеет боль-шое количество разных возможностей, однако для создания анима-ции механического объекта используются далеко не все.

Любая система координат (стро-ка, которая начинается на T{}) может иметь в качестве родителя и потомков другие системы координат. При этом потомки располагаются ниже и правее родителей в подокне браузера. По умолчанию всем системам координат присвоено название Transform, кото-рое можно изменить на оригинальное, щелкнув мышью по слову Transform. Наличие оригинальных имен является обязательным для систем координат звеньев автокрана, приводимых в дви-жение. Причины этого будут раскры-ты ниже. На рис. 70 в качестве приме-ра в развернутом виде показаны две системы координат: родитель Trans-form и потомок Nom1. Если система-родитель приводится в движение из

модели Simulink, то вместе с ней приводятся в движение и все ее системы-потомки, и связанные с ними тела-примитивы.

Обязательные свойства любой системы координат в редакторе V-Realm Builder задают строки center (центр), rotation (вращение),

Рис. 70. Пример системы-

родителя и системы-потомка

Page 73: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

72

scale (увеличение), scaleOrientation (ориентация увеличения), transla-tion (перемещение), bboxCenter (центр коробки объекта, привязанно-го к системе), bboxSize (размеры коробки объекта).

Используемые при создании и приведении в движение анимации строки – это перемещение начала системы координат translation и ее вращение rotation, которые задаются относительно родительской сис-темы координат. Также иногда используется строка center, чтобы за-дать положение точки, через которую будет проходить ось вращения тела, задаваемая в строке rotation. Другие свойства не понадобятся при разработке пользовательской анимации, если только звенья ме-ханизма не должны изменять свои размеры и форму в процессе мо-делирования.

При двойном щелчке мышью по любой из этих строк открывает-ся окно установки соответствующих параметров. На рис. 71 в каче-стве примера задано перемещение начала системы координат отно-сительно оси Z родительской системы на 3,2 единиц длины, а на рис. 72 – вращение системы координат относительно оси Y родительской системы на 45º.

Рис. 71. Пример задания перемещения центра системы координат (строка

translation)

Рис. 72. Пример задания вращения системы координат (строка rotation)

Пример «привязывания» тела-примитива цилиндра к системе

координат с именем Nom2 показан на рис. 73. Здесь система коорди-нат Nom2 имеет двух потомков: форму Shape с примитивом Cylinder и систему координат Transform. Каждая форма Shape может содер-жать только один примитив какого-либо вида (параллелепипед Box, конус Cone, цилиндр Cylinder, шар Sphere) либо одну фасонную по-

Page 74: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

73

верхность Extrusion. В то же время любая система координат может иметь в качестве потомков несколько форм Shape с примитивами.

Общая последовательность добавле-ния в дерево объектов систем координат и их потомков форм Shape с примитива-ми следующая. Допустим, необходимо добавить еще одну систему координат Patr2 в качестве потомка к системе коор-динат с именем Patr1. Для этого необхо-димо сначала щелкнуть мышью один раз по нижней строке children системы коор-динат Patr1, чтобы выделить ее (рис. 74, а). Затем нажать на кнопку на верти-кальной панели инструментов в левой части окна либо использовать меню в по-следовательности Nodes– Insert – Groups – Transform. При этом в дерево объектов в качестве потомка системы Patr1 добавится система координат Transform (рис. 74, б). Чтобы

изменить ее название, необходимо щелкнуть один раз мышью по уже выделенной строке Transform и ввести новое имя Patr2. Затем двой-ным щелчком раскрыть систему Patr2 и выделить в ней строку chil-dren (рис. 74, в).

Затем добавить форму, нажав на кнопку , либо использовать меню в последовательности Nodes – Insert – Common – Shape. При этом в дерево объектов в качестве потомка системы Patr2 добавится форма Shape, которая пока не содержит никакого примитива. Рас-крыв форму Shape двойным щелчком и выделив в ней строку geome-try (рис. 74, г), добавить примитив, нажав на одну из кнопок: – параллелепипед; – конус; – цилиндр; – шар; – фасон-ная поверхность. Для тех же целей можно использовать меню в по-следовательности Nodes – Insert – Geometry – (вид примитива). После последней операции дерево объектов будет иметь вид, как на рис. 74, д.

Рис. 73. Примитив тела Cyl-inder в системе координат

Nom2

Page 75: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

74

а)

б)

в)

Page 76: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

75

г) д)

Рис. 74. Последовательность добавления в дерево объектов систем координат,

форм и примитивов Указанную последовательность действий можно сократить, если

после выделения строки children системы координат Patr1 (см. рис. 74, а) сразу нажать на кнопку или другого примитива. Результат будет аналогичен описанному выше, однако название добавленной системы координат Transform придется изменить.

Любой примитив имеет свои свойства-строки, в которых зада-ются его размеры. Так, например, при нажатии на единственную строку свойств size параллелепипеда Box открывается окно, изобра-женное на рис. 75, а при нажатии на строку свойств height (высота) цилиндра, открывается окно, изображенное на рис. 76. В рассматриваемом на рис. 75 примере все три размера параллелепипеда равны 2 м. Изменить любой размер можно, поставив флажок в соответствующем поле (X Axis, Y Axis или Z Axis), затем ввести в числовое поле соответствующее точное значение либо воспользоваться прокруткой и нажать на кнопку OK.

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

Page 77: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

76

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

Рис. 75. Задание размеров параллелепипеда

Рис. 76. Задание высоты

цилиндра Рассмотрим цветовое оформление сце-

ны и объектов на ней. Вновь созданная сце-на имеет черный цвет. Чтобы изменить его на требуемый, необходимо добавить в де-рево в любом его месте объект фона Back-ground нажатием на кнопку либо ис-пользуя последовательность меню Nodes – Insert – Bindable – Background. Свойства-строки groundColor и skyColor задают цвета фона, которые могут быть изменены поль-зователем после двойного щелчка по строке (рис. 77).

Для изменения цвета тел примитивов, который по умолчанию серый, необходимо выделить строку appearance соответствую-щей формы Shape того примитива, цвет которого необходимо изме-нить (рис. 78, а). Затем, используя последовательность меню Nodes – Insert – Appearance – Appearance, вставить группу Appearance, содер-жащую три строки: material, texture и textureTransform (рис. 78, б). Затем, выделив строку material и нажав на кнопку либо используя последовательность меню Nodes – Insert – Appearance – Material,

Рис. 77. Объект фона сцены Background

Page 78: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

77

вставить группу материала Material, содержащую еще 6 свойств-строк (рис. 78, в). Строка diffuseColor позволяет изменить цвет объ-екта.

Еще один важный момент – установка точки и направления про-смотра сцены в процессе моделирования. Необходимо нажать на кнопку либо воспользоваться последовательностью меню Nodes – Insert – Bindable – Viewpoint. При этом в дереве объектов появится группа Viewpoint, содержащая 6 свойств-строк (рис. 79, а).

а) б) в)

Рис. 78. К изменению цвета тела примитива

а) б) в)

Page 79: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

78

Рис. 79. К установке точки и направления просмотра сцены

Строки position (рис. 79, б) и orientation (рис. 79, в) позволяют

установить соответственно позицию (координаты) точки просмотра и направление просмотра. Свойство-строка set_bind может прини-мать два значения: True (истина) и False (ложь). Необходимо, чтобы было установлено значение True, чтобы установка координат точки и направления просмотра сцены вступили в силу.

Вернемся к разработке виртуальной сцены автокрана. Порядок построения дерева объектов в окне V-Realm Builder должен опирать-ся на порядок нумерации локальных систем координат звеньев объ-екта на расчетной схеме автокрана (см. рис. 46), который, в свою очередь, зависит от конструкции механизма автокрана. Нулевая сис-тема координат на рис. 46 является неподвижной, а первая система координат X1Y1Z1 связана с базовым шасси автокрана и имеет 6 сте-пеней свободы относительно системы X0Y0Z0: перемещение центра масс базового шасси вдоль оси X0 (q1); перемещение центра масс ба-зового шасси вдоль оси Y0 (q2); перемещение центра масс базового шасси вдоль оси Z0 (q3); поворот базового шасси вокруг оси X1 (q4); поворот базового шасси вокруг оси Z1 (q5); поворот базового шасси вокруг оси Y1 (q6).

Начать построение дерева объектов для анимации автокрана лучше всего с цветового оформления сцены (добавить объект фона Background) и установки точки и направления просмотра сцены (до-бавить объект Viewpoint). В строке position объекта Viewpoint реко-мендуется для начала установить координату Z не менее 10-15 м, чтобы виден был весь объект. В конце построения дерева объектов, свойства position и orientation могут быть изменены.

При создании сцены анимации автокрана, для того чтобы можно было задать пространственные перемещения базового шасси относи-тельно абсолютной системы координат q1...q6, были созданы не-сколько систем координат: Base1, у нее дочерняя система координат Base2, а у нее, в свою очередь, дочерняя система координат Base3.

Система координат Base1 в рассматриваемом случае имеет 3 по-ступательных и одно вращательное перемещение относительно абсо-лютной (неподвижной) системы координат. Последняя в редакторе V-Realm Builder всегда задана неявно и связана со сценой, на кото-

Page 80: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

79

рой происходит анимация. Соответствующие обобщенные координа-ты автокрана q1...q4.

Система координат Base2 будет иметь одну вращательную сте-пень свободы относительно Base1 (q5). И, наконец, система коорди-нат Base3 будет иметь одну вращательную степень свободы относи-тельно Base2 (q6).

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

Здесь необходимо сделать отступление и рассказать о том, в ка-ком формате должны подаваться данные (значения обобщенных ко-ординат) из Simulink-модели автокрана в блок VR Sink. Поступа-тельные перемещения для каждого входа translation задаются в виде вектора, имеющего 3 компоненты [X Y Z], описывающие перемещения вдоль трех декартовых осей родительской системы координат. Если система координат (потомок) имеет только одно поступательное перемещение относительно родительской, то две из трех соответствующих компонент вектора [X Y Z] должны оставаться нулевыми в течение всего процесса моделирования. То есть на один вход translation блока VR Sink могут быть поданы от одного до трех поступательных перемещений какой-либо системы координат. Последнее и было сделано для системы координат Base1, значения трех обобщенных координат q1...q3 были в виде вектора поданы на один вход. Все последующие обобщенные координаты автокрана (q4...q13) подавались каждая на отдельный вход.

Вращательное перемещение для каждого входа rotation задается в виде вектора, имеющего 4 компоненты: [X Y Z ]. Здесь первые три компоненты задают вектор (в родительской системе координат) оси вращения, вокруг которой будет вращаться дочерняя система коор-динат, а – собственно угол поворота в радианах. Таким образом,

Page 81: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

80

если известно, например, что поворотная платформа автокрана пово-рачивается вокруг вертикальной оси Y базового шасси, то вектор, за-дающий вращение поворотной платформы на анимации, будет иметь вид: [0 1 0 ], причем угол будет изменяться в процессе моделиро-вания и векторный сигнал будет подаваться на вход блока VR Sink (что, собственно, и приведет к движению анимации). В самом редак-торе V-Realm Builder угол будет задаваться в градусах аналогично рис. 79, в, и должен быть равен значению соответствующей обоб-щенной координаты автокрана в начальный момент моделирования, чтобы исключить мгновенные перемещения анимации при запуске моделирования. В то же время векторный сигнал из 4-х компонент, подаваемый на вход блока VR Sink, должен содержать значение угла в радианах.

У системы координат Rama в качестве потомка была задана еще одна система координат – kolonka, которая, в отличие от всех прочих систем координат (потомков) системы Rama, должна в процессе мо-делирования иметь перемещение относительно нее. Это вращение поворотной платформы относительно базового шасси (q7).

Остальные системы координат в файле ural1.wrl были последо-вательно присоединены в качестве потомков друг к другу, и аналогично уже описанным, обладали каждая одной степенью свободы относительно своей родительской системы координат, что соответствовало обобщенным координатам автокрана q8...q13.

Необходимо отметить, что численные значения перемещений в свойствах-строках translation должны соответствовать численным значениям координат характерных точек CS шарниров механизма в окнах настройки параметров блоков Body модели, а углы поворота в свойствах-строках rotation – начальным углам поворота звеньев, пе-реведенным в градусы из радиан.

Как исключение, значения перемещений translation будут не сов-падать с координатами соответствующих характерных точек CS шар-ниров механизма, если звено вращается вокруг оси, не проходящей через его центр симметрии. Это вызвано тем, что в редакторе V-Realm Builder любое тело-примитив имеет центр в точке, координаты которой заданы строкой translation относительно родительской сис-темы координат.

Page 82: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

81

Рис. 80. К заданию координат translation в V-Realm Builder Так, например, для рассматриваемого автокрана координаты, за-

даваемые в редакторе V-Realm Builder для системы координат стре-лы Strela в строке translation, должны быть равны X13 и Y13 соответст-венно (рис. 80). Точка 1 на рис. 80 лежит на вертикальной оси вра-щения поворотной колонки (звена, предыдущего по отношению к стреле), точка 2 – проекция оси вращения стрелы, точка 3 – центр те-ла параллелепипеда стрелы. В строке translation должны быть заданы именно координаты точки 3 относительно точки 1. Затем, чтобы стрела поворачивалась при подаче сигнала rotation вида [X Y Z ] во-круг оси 2, а не вокруг оси 3, необходимо в строке center системы Strela задать расстояния X23, Y23 со знаком минус.

В модели автокрана в блоке тела поворотной колонки Body (povorotn kolonka) фигурируют только координаты точки 2 относи-тельно точки 1, т.е. X12, Y12. В то же время в блоке тела стрелы Body (strela) фигурируют координаты центра масс стрелы X23, Y23 со зна-ком плюс, значения которых необходимо использовать в строке cen-ter системы Strela в редакторе V-Realm Builder.

После завершения построения дерева объектов в редакторе V-Realm Builder необходимо сохранить файл с именем ural1.wrl и за-крыть редактор. Затем в окне настройки параметров блока VR Sink необходимо расставить флажки в полях, соответствующих обобщен-ным координатам объекта автокрана, после чего у блока VR Sink появится столько входов, сколько было проставлено флажков. В рас-сматриваемом случае число флажков (и входов блока VR Sink) не бу-дет равно числу обобщенных координат автокрана, так как три пер-вые обобщенные координаты, в отличие от всех остальных, заданы одним общим флажком в поле translation.

1

2

3

X13 X12 X23

Y13 Y23

Y12

Стрела

Page 83: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

82

На рис. 81 приведено полное содержание подокна с прокруткой, фрагмент которого виден на рис. 66 в окне блока VR Sink. Каждая система координат звена автокрана имеет одну или несколько систем координат (потомков), которые: 1) либо не имеют степеней свободы относительно родительской системы координат; 2) либо имеют одну или несколько степеней свободы относительно родительской систе-мы координат. В последнем случае в одном или одновременно в двух из полей translation и/или rotation системы координат потомка дол-жен быть поставлен флажок.

В окне блока VR Sink никакие изменения уже невозможны, кро-ме простановки флажков в нужных полях. Поля для простановки флажков появятся лишь в том случае, если какая-либо система коор-динат была названа собственным уникальным именем в редакторе V-Realm Builder.

Page 84: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

3

Рис. 81. Простановка флажков в полях, соответствующих обобщенным координатам автокрана

81

Page 85: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

82

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

При запуске процесса моделирования Simulink-модели, в кото-рой присутствует блок VR Sink, окно анимации (рис. 82), в котором видны все перемещения объекта, откроется автоматически, при ус-ловии, что в окне настройки блока VR Sink был поставлен флажок в поле Open VRML viewer automatically (см. рис. 66). Время дискрети-зации Sample time для блока VR Sink рекомендуется установить рав-ным 0.1…0.2 с. Этот параметр определяет частоту обновления окна анимации во время моделирования. При значениях, больших реко-мендуемых, будет заметна дискретность движений автокрана, мень-шие значения могут замедлить процесс моделирования.

Page 86: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

83

Рис. 82. Окно анимации в процессе моделирования Точка наблюдения может быть изменена уже во время модели-

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

Главное окно модели автокрана с анимацией Ural_VR изображе-но на рис. 83. В отличие от модели автокрана без анимации (см. рис. 48), здесь добавлены блок VR Sink и блоки констант. Дополнитель-ные блоки констант задают постоянные компоненты векторов вида [X Y Z] и [X Y Z ] для строк translation и rotation соответственно.

Рис. 83. Главное окно модели автокрана с анимацией Ural_VR

Разработанная при помощи пакета Virtual Reality Toolbox сцена анимации позволяет визуализировать сложные пространственные перемещения механизма в рабочем режиме при моделировании, что упрощает анализ моделирования.

Page 87: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

84

Библиографический список

1. Лазарев Ю. Ф. Моделирование процессов и систем в MATLAB: Учебный

курс. – СПб.: Питер; Киев: Издательская группа BHV, 2005. – 512 с. 2. SimMechanics User's Guide. Version 2. The MathWorks, Inc., November 2002.

522 p. 3. Корытов М. С., Глушец В. А., Зырянова С. А. Моделирование рабочих

движений автокрана при помощи SimMechanics и Virtual Reality Toolbox // Exponenta Pro. Математика в приложениях. – 2004. – № 3 – 4 (7 – 8). – С. 94-102.

4. Щербаков И. С. Особенности виртуального моделирования экскаватора ЭО-3322 в среде MATLAB/Simulink/Virtual Reality Toolbox // Общие и комплексные проблемы технических и прикладных наук: Межвуз. сб. тр. студентов, аспирантов и молодых ученых. – Омск: Изд-во СибАДИ, 2005. – Вып. 2, ч. 1. – С. 39-44.

Учебное издание

В.С. Щербаков, М. С. Корытов, А.А. Руппель, В.А. Глушец, С.А. Милюшенко

МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕ-СКИХ СИСТЕМ В MATLAB

Учебное пособие

Редактор Т. И. Калинина

Подписано к печати __.__.2007 Формат 60 х 90 1/16. Бумага писчая Гарнитура Таймс Оперативный способ печати Усл. п. л. 5,25 , уч.-изд. л. 5,25

Тираж 100 экз. Заказ Цена договорная

Издательство СибАДИ 644099, Омск, ул. П. Некрасова, 10

Отпечатано в ПЦ издательства СибАДИ

Page 88: МОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ …bek.sibadi.org/fulltext/ED1646.pdfМОДЕЛИРОВАНИЕ И ВИЗУАЛИЗАЦИЯ ДВИЖЕНИЙ МЕХАНИЧЕСКИХ

85

644099, Омск, ул. П.Некрасова, 10