КОМПЬЮТЕРНАЯ АНИМАЦИЯ КИНЕМАТИЧЕСКИХ СХЕМ В ПРОГРАММАХ EXCEL И MATHCAD

advertisement
Компьютерная анимация кинематических схем в программах Excel и MathCAD
УДК 531.8+519.688
А.Н. ЕВГРАФОВ, Г.Н. ПЕТРОВ
КОМПЬЮТЕРНАЯ АНИМАЦИЯ КИНЕМАТИЧЕСКИХ СХЕМ
В ПРОГРАММАХ EXCEL И MATHCAD
Практика последних лет показывает, что для расчёта геометрии механизмов используются не только (и не всегда) специальные компьютерные программы, но и широко распространённые универсальные, такие, как Excel из офисного пакета от Microsoft или
MathCAD фирмы PTC. Причём возможности визуализации результатов расчётов, имеющиеся в этих программах и весьма полезные с точки зрения удобства пользования, используются далеко не в полной мере. В предлагаемой статье рассматриваются способы создания анимации диаграмм (например, кинематических схем механизмов).
Анимация в программе Excel1
В качестве первого примера рассмотрим построение кинематической схемы плоского
робота (рис. 1). Стойка связана со звеном 1 с помощью поступательной пары А; перемещение первого звена относительно стойки задаётся обобщённой координатой q1. Звено 2 связано со звеном 1 поступательной парой С; их относительное перемещение определяется
обобщённой координатой q2. Поворот звена 3 относительно звена 2 в кинематической паре
D определяется обобщённой координатой q3. Угол разворота звеньев 4 и 5 схвата задаётся
обобщённой координатой q4.
Рис. 1. Кинематическая схема робота
Чтобы нарисовать кинематическую схему, надо получить координаты некоторых точек, соединяя которые, можно нарисовать фигуры кинематической схемы: прямоугольники,
отрезки прямых и т.д. Назовём такие точки характерными. В данном примере это точки A, B,
C, D, M, а также все угловые точки, такие, как точки I, II, III, IV ползуна, входящего в кинематическую пару А. Введём системы координат: неподвижную, связанную со стойкой, и локальные, связанные с каждым из пяти подвижных звеньев. В локальных системах координат
зададим постоянные параметры, определяющие положение характерных точек. Введём эти
параметры в таблицу Excel. Для удобства это можно сделать так, как показано на рис. 2, а.
Здесь R B(1) – расширенный столбец локальных координат точки B:
1
Microsoft Office Excel 2007.
Теория Механизмов и Машин. 2008. №1. Том 6.
71
ТММ и компьютер
б)
a)
Рис. 2. Ввод в Excel: а) значений столбца координат R B(1) ; б) матрицы перехода H01(q1)
T

RB(1)  x B(1)

y B(1) 1 .
Значения локальных координат точки B введены в выделенные ячейки столбца B: x B(1) – в
ячейку B5, y B(1) – в ячейку B6.
Составим и введём в Excel матрицы перехода во всех кинематических парах: H01(q1),
H12(q2), H23(q3), H34(q4), H35(q4) (рис. 2, б). Зададим и введём в Excel начальные значения
обобщённых координат; например, q1 – в ячейку А2, q2 – в ячейку В2, q3 – в ячейку С2, q4 – в
ячейку D2 (рис. 3). Отметим, что, если для удобства угловые координаты q3 и q4 введены в
градусах, то для дальнейших расчётов их следует перевести в радианы (как это сделано в
ячейках С3 и D3).
Рис. 3. Ввод в Excel обобщённых координат
Найдём положение характерных точек кинематической схемы в неподвижной системе
координат [1]:
RN(0)  H 01 (q1 ) H12 (q2 )  ...  H s 1,s (qs ) RN( s )  H 0s (q1 , q2 ,..., qs ) RN( s ) ,
где H0s(q1,q2, … ,qs) – матрица перехода из s-й системы координат в неподвижную систему
координат; R N(s ) и R N( 0) – расширенные матрицы-столбцы некоторой точки N соответственно
в s-й и неподвижной системах координат. Перемножать матрицы можно либо «вручную»,
либо с помощью встроенной функции умножения матриц МУМНОЖ. Для этого надо установить курсор на свободной ячейке, на вкладке Формулы следует щёлкнуть на кнопке Математические, выбрать функцию МУМНОЖ; появится окно Аргументы функции (рис. 4).
Далее следует указать Массив1 (например, матрицу H01, выделив её, как показано на рис. 2,
б), затем Массив2 (например, матрицу H12, выделив её таким же образом) и нажать кнопку
ОК. Чтобы увидеть результат перемножения матриц (например, матрицу
H 02 (q1 , q 2 )  H 01 (q1 ) H 12 (q 2 ) ), следует выделить ячейки, куда будет записан результат (для
матрицы H02 надо выделить 3х3 ячейки), нажать клавишу F2, затем клавиши
Ctrl+Shift+Enter.
72
http://tmm.spbstu.ru
Компьютерная анимация кинематических схем в программах Excel и MathCAD
Рис. 4. Окно Аргументы функции
Определив положение всех характерных точек кинематической схемы в неподвижной
системе координат, переходим к рисованию кинематической схемы в Excel. На вкладке
Вставка выбираем диаграмму Точечная с прямыми отрезками (рис. 5).
Рис. 5. Выбор типа диаграммы
Появится прямоугольная область диаграммы. Щёлкнув по ней правой клавишей мыши, получим контекстное меню, в котором надо щёлкнуть на пункте Выбрать данные …. (рис. 6).
Рис. 6. Контекстное меню области диаграммы
После этого появится окно Выбор источника данных (рис. 7, а). Источниками данных в нашем случае являются ячейки таблицы, содержащие координаты характерных точек
фигур кинематической схемы.
Теория Механизмов и Машин. 2008. №1. Том 6.
73
ТММ и компьютер
а)
б)
Рис. 7. Добавление фигуры на диаграмму
Чтобы нарисовать какую-либо фигуру, надо щёлкнуть на кнопке Добавить. В появившемся окне Изменение ряда (рис. 7, б) следует ввести Имя ряда (желательно, чтобы
это было «говорящее» имя фигуры, например: прямоугольник А, отрезок DM и т.п.), Значения Х (координаты х характерных точек фигуры, например: для прямоугольника А –
( 0)
(0)
(см. рис. 5)), Значения Y (координаты y
x I(0) , x I(I0) , x I(II0) , x IV
, x I(0) ; для отрезка DM – x D( 0) , x M
тех же самых точек). После нажатия кнопки ОК на области диаграммы появится нарисованная фигура. Отметим, что при рисовании замкнутой фигуры (например, прямоугольника)
координаты последней точки должны совпадать с координатами первой точки. Цвет, толщину, тип линии, наличие или отсутствие маркера и т.д. можно изменить, выделив фигуру и
вызвав контекстное меню нажатием правой клавиши и выбрав пункт Формат ряда данных… (рис. 8).
Рис. 8. Контекстное меню фигуры на диаграмме
Нарисовав на диаграмме кинематическую схему в начальном положении, введём новое значение какой-либо из обобщённых координат q1 – q4, которые помещены в ячейки А2 –
D2 (см. рис. 3). При этом на диаграмме переместится изображение соответствующего звена.
На этом основана идея создания анимированной кинематической схемы.
Для более удобного изменения значений обобщённых координат составим небольшую
программу (макрос), используя встроенный в Excel редактор Microsoft Visual Basic. Вызвать
редактор можно, щёлкнув на вкладке Разработчик кнопку Visual Basic (или нажав клавиши
Alt + F11). Для записи кода программы вызовем Лист1, щёлкнув на кнопку View Сode. На
Листе1 запишем код макроса Step_forward_q1():
Sub Step_forward_q1()
Worksheets("robot").Cells(2, 1) = Worksheets("robot").Cells(2, 1) + Worksheets("robot").Cells(8, 1)
End Sub
74
http://tmm.spbstu.ru
Компьютерная анимация кинематических схем в программах Excel и MathCAD
Этот макрос увеличивает содержимое ячейки, находящейся на второй строке первого
столбца (т.е. ячейки А2) листа с именем robot на то число, которое содержит ячейка на восьмой строке первого столбца, т.е. ячейка А8. В эту ячейку введём произвольное число, которое станет шагом изменения содержимого ячейки А2. Поскольку в ячейке А2 содержится
значение обобщённой координаты q1, то при запуске макроса Step_forward_q1() значение q1
изменится на величину шага, а изображение звена 1 вместе с изображением всех остальных
подвижных звеньев переместится по стойке на тот же шаг.
Немного изменив код, запишем макросы для изменения значений всех остальных
обобщённых координат. Далее на лист Excel, на котором размещена диаграмма с кинематической схемой, поместим кнопки, с помощью которых будем запускать программы. Ими
могут быть: кнопки как элементы управления формой, рисунки, фигуры, надписи, декоративный текст (рис. 9).
Рис. 9. Управляющие элементы: кнопка в стиле Windows 3.1, фигура, декоративный текст
Каждому управляющему элементу надо назначить макрос: щёлкнув правой кнопкой,
из контекстного меню выбрать команду Назначить макрос…, в появившемся окне Назначить макрос объекту из списка макросов выбрать нужную программу. Теперь при щелчке
на управляющем объекте запустится закреплённый за ним макрос, а изображение соответствующих звеньев переместится на шаг (рис. 10).
Рис. 10. Диаграмма Excel с кинематической схемой робота и с управляющими элементами
Важно отметить: во избежание эффекта «дёргания» изображения в диаграмму надо
добавить рамку с размерами, гарантированно бóльшими, чем габариты кинематической схемы.
Мы промоделировали «ручное» управление каждой обобщённой координатой. Можно
Теория Механизмов и Машин. 2008. №1. Том 6.
75
ТММ и компьютер
составить макрос, в котором обобщённые координаты будут изменяться по заданному закону (раздельно или вместе). Рассмотрим пример. Пусть в начальном положении звенья 1, 2 и
3 неподвижны, а схват сжимается (имитируется «захват детали»). Затем при фиксированной
координате q4 обобщённые координаты q1, q2 и q3 равномерно увеличиваются до некоторых
значений («перемещение детали»), после чего при фиксированных q1, q2 и q3 схват разжимается («освобождение детали»). Возвращение в исходное положение.
При составлении макроса воспользуемся циклом конструкции For…Next. Во время
выполнения первого цикла (переменная-счётчик k) схват сжимается (обобщённая координата q4 уменьшается на 150 от начального значения с шагом, устанавливаемым переменной
Stp). После окончания цикла начинается второй цикл (переменная-счётчик i), во время которого звено 1 поднимается по стойке (на 80 мм), второе звено выдвигается относительно первого звена (тоже на 80 мм), а третье звено поворачивается относительно второго на 800
(обобщённые координаты q1, q2 и q3 увеличиваются до заданных максимальных значений с
тем же шагом Stp). Оба этих цикла (первый и второй) вложены во внешний цикл (переменная-счётчик j). После окончания второго вложенного цикла шаг Stp меняет знак, а программа возвращается к началу внешнего цикла. Процесс повторяется, только значение координаты q4 возрастает, а координат q1 – q3 уменьшается до начальных значений; робот возвращается в начальное положение. Ниже помещён код макроса Run() для рассмотренного примера:
Sub Run()
Dim i As Integer, j As Integer, k As Integer
Dim Stp As Integer
Worksheets("robot").Cells(2, 1) = 0
Worksheets("robot").Cells(2, 2) = 0
Worksheets("robot").Cells(2, 3) = 145
Worksheets("robot").Cells(2, 4) = 15
Stp = 1
Calculate
For j = 1 To 2
For k = 0 To 14
Worksheets("robot").Cells(2, 4) = Worksheets("robot").Cells(2, 4) - Stp
Calculate
Next
For i = 0 To 79
Worksheets("robot").Cells(2, 1) = Worksheets("robot").Cells(2, 1) + Stp
Worksheets("robot").Cells(2, 2) = Worksheets("robot").Cells(2, 2) + Stp
Worksheets("robot").Cells(2, 3) = Worksheets("robot").Cells(2, 3) + Stp
Calculate
Next
Stp = -1
Next
End Sub
Здесь шаг Stp перемещения звеньев (он же шаг приращения обобщённых координат)
постоянен и равен 1. Если шаг сделать переменным, то можно моделировать более сложные
законы движения звеньев.
При анимации схем цикловых механизмов код макроса упрощается. Например, для
изменения значения входной обобщённой координаты q от 00 до 3600 с шагом Stp можно
предложить макрос Start():
Sub Start()
Dim i As Integer
Dim Stp As Integer
Stp = Worksheets("1").Cells(9, 2)
Calculate
76
http://tmm.spbstu.ru
Компьютерная анимация кинематических схем в программах Excel и MathCAD
For i = 0 To 360 / Stp - 1
Worksheets("1").Cells(8, 2) = Worksheets("1").Cells(8, 2) + Stp
Calculate
Next
End Sub
В макросе Start() значение обобщённой координаты q содержится в ячейке B8 листа с
именем 1. Шаг Stp берётся из ячейки В9 того же листа, поэтому значение шага и, следовательно, скорость задаётся пользователем. Поскольку Stp объявлен как Integer, то шаг должен
быть натуральным числом. Цикл организован так же, как и в макросе Run(). Примеры кинематических схем цикловых механизмов, нарисованных в Excel, приведены на рис. 11.
б)
a)
Рис. 11. Диаграммы Excel с кинематическими схемами цикловых механизмов:
а) рычажного; б) кулачкового
Анимация в программе MathCAD1
Рассмотрим создание анимации замкнутого шестизвенного механизма (рис. 12) с помощью пакета MathCAD.
Механизм имеет пять подвижных звеньев и состоит из трех структурных групп (кривошипа OA и двух групп Ассура). На первой странице протокола введем все необходимые
размеры:
- первая структурная группа
длина кривошипа (OA)
L0:=0.1
- вторая структурная группа (первая группа Ассура)
длины звеньев (AB,O2B)
L1:=0.25, L2:=0.275
координаты присоединения к стойке (xO2, yO2) XF1:=0.24, YF1:=0.3
сборка, звено присоединения
M1:=-1, NP:=2
локальные координаты точки присоединения
следующей структурной группы (XCЛ, YCЛ)
X1:=0.14, Y1:=0.1
- третья структурная группа (вторая группа Ассура)
длина звена (CD)
L3:=0.375
координаты присоединения к стойке (yD*, φ*) QF2:=0.1, FF2:=15
сборка
M2:=1.
1
MathSoft MathCAD 13.
Теория Механизмов и Машин. 2008. №1. Том 6.
77
ТММ и компьютер
Рис. 12. Кинематическая схема шестизвенного механизма
Эти исходные данные однозначно определяют положение механизма для любой
входной координаты q (угол поворота кривошипа OA). Зададим число точек n:=60, для которых будем проводить геометрический расчет. Введем массивы k:=0 ... n-1 и qk:=2πk/n
(массив углов поворота кривошипа). Определим координаты всех точек:
 0
XYOk :   – столбец координат точки O,
 0
 L1  cos( q k )  – столбец координат точки A,

XYAk : 
 L1  sin( q k ) 
 XF1 – столбец координат точки O .
2

XYO 2 k : 
 YF 1 
По известному алгоритму [1] можно найти аналогичные массивы для точек B, C, D
(XYbk, XYcbk, XYdk). Сведём все полученные координаты в два массива:
x nk .k , y nk ,k – массивы координат всех точек в проекциях на оси X и Y,
где nk:=0 .. 5 – массив точек,
k:=0 … n-1 – массив положений кривошипа.
Получаем:
x
x
x
x 
 x0, k 
,  1,k 
,  2,k 
,  3,k 
,  4,k 
,


 y  : XYOk  y  : XYa k  y  : XYO 2 k  y  : XYc k  y  : XYd k
 2, k 
 1,k 
 3,k 
 0, k 
 4, k 
 x5, k 
.


 y  : XYbk
 5, k 
Определим массивы косинусов (Cfmk,k) и синусов (Sfmk,k) углов, связывающих локальные и неподвижные системы координат(mk:=0 ... 4 – массив звеньев). Для кривошипа (нулевое звено) можно записать:
Cf 0,k : cos( q k ) , Sf 0,k : sin( q k ) ,
78
http://tmm.spbstu.ru
Компьютерная анимация кинематических схем в программах Excel и MathCAD
FF 2  
FF 2  
) , Sf 4,k : sin(
).
180
180
Рисование кинематической схемы в MathCAD’е происходит аналогично тому, как
описано для среды Excel. Для каждого из 60 положений k можно построить с помощью диаграммы кинематическую схему механизма, определив предварительно характерные точки
(точки опор и ползуна).
Чтобы создать анимацию, воспользуемся переменной FRAME (по умолчанию
FRAME=0). Нарисуем кинематическую схему для угла кривошипа qFRAME=0 (рис. 13).
для ползуна (четвертое звено) – Cf 4,k : cos(
Рис. 13. Кинематическая схема механизма для угла qFRAME=0
Чтобы заставить схему двигаться, необходимо менять переменную FRAME . Для этого
на вкладке Инструменты выбираем Анимация > Запись (рис. 14).
Рис. 14. Создание анимации
Появится окно Запись анимации (рис. 15).
Рис. 15. Запись анимации
Теория Механизмов и Машин. 2008. №1. Том 6.
79
ТММ и компьютер
Выделяем область протокола, на которой расположена диаграмма (см. рис. 13), для
переменной FRAME в окне Запись анимации (рис. 15) задаем диапазон изменения От 0 До
59 Скорость 10 Кадров/Сек. Таким образом, меняя переменную FRAME, мы будем видеть
изменение положения механизма с заданной скоростью смены кадров в секунду. Полученный файл (*.avi) можно сохранить и в дальнейшем воспроизвести с помощью любого проигрывателя независимо от протокола MathCAD.
Файлы со всеми рассмотренными примерами размещены на портале «Теория механизмов и машин» вместе с интернет-версией статьи.
СПИСОК ЛИТЕРАТУРЫ
1. Теория механизмов и машин [Текст]: учеб. пособие / [М.З. Коловский, А.Н. Евграфов, Ю.А.Семёнов, А.В. Слоущ]. – 2-е изд., испр. – М.: Издательский центр «Академия, 2008. – 560 с.
Поступила в редакцию 15.10.2007
После доработки 28.01.2008
80
http://tmm.spbstu.ru
Download