понедельник, 20 октября 2014 г.

Основы мехатроники и робототехники 3: Динамика манипулятора (Simulink MATLAB)

В данной заметке рассматривается динамика двухзвенного манипулятора. Процесс моделируется с помощью Simulink MATLAB.
Ссылки: скачать файл модели Simulink, скачать исходный код (*.m)

         1. Краткие теоретические сведения
         Предметом динамики манипулятора как раздела робототехники является математическое описание действующих на манипулятор сил и моментов в форме уравнений динамики движения. Также уравнения необходимы для моделирования  движения манипулятора с помощью ЭВМ, при выборе законов уравнения и при оценке качества кинематической схемы и конструкции манипулятора.
         Задача управления включает задачу формирования динамической модели реального манипулятора и задачу выбора законов или стратегий управления, обеспечивающих выполнение поставленных целей.
         Динамическая модель манипулятора может быть построена на основе использования известных законов ньютоновой или лагранжевой механики. Результатом применения этих законов является уравнения, связывающие действующие в сочленениях силы и моменты с кинематическими характеристиками и параметрами движения звеньев.
         Таким образом, уравнения динамики движения реального манипулятора могут быть получены методами Лагранжа-Эйлера или Ньютона-Эйлера. Уравнения Лагранжа-Эйлера обеспечивают строгое описание динамики манипулятора. Их можно использовать для решения прямой и обратной задачи динамики.
         Прямая задача состоит в том, чтобы по заданным силам и моментам определить обобщённые ускорения, интегрирование которых позволит получить значения обобщённых координат и скоростей.
        Обратная задача динамики заключается в том, чтобы по заданным обобщённым координатам, скоростям и ускорениям определить действующие в сочленениях манипулятора силы и моменты. 

         2. Практическая часть
  Рассматриваемая структурная схема двухзвенного манипулятора, реализованная в пакете Matlab, представлена на рисунке 1.
Рисунок 1 — структурная схема двухзвенного манипулятора


Eтпi — ЭДС преобразования, питающего якорную цепь i-го двигателя;
Kei — коэффициент противоЭДС;
iредi — передаточное число i-го редуктора;
Rai — сопротивление якорной цепи i-го двигателя;
Таi — электромагнитная постоянная i-го двигателя;
Км — коэффициент вращательного момента;
ωi — угловая скорость вращения i-го звеньев;
φ i — угол поворота i-го звена.
         Для запуска симуляции вышеуказанной схемы используется следующий код:
clc;
clear;
title = 'Ввод данных';
promt = {'Длина первого звена:','Длина второго звена:',...
'Масса первого звена: ','Масса второго звена: ','Масса груза в схвате:',...
'Моммент первого двигателя:','Моммент второго двигателя:',...
'Передаточное число первого редуктора:', ...
'Передаточное число второго редуктора:',...
'Сопротивление якоря первого двигателя:',...
'Сопротивление якоря второго двигателя:'};
lines = 1;
def = {'1.5','1.1', ...
       '22.5','17','10',...
       '15','10',...
       '125','75',...
       '100','75'};
answer = inputdlg(promt,title,lines,def);
L1=str2num(char(answer(1)));
L2=str2num(char(answer(2)));
m1=str2num(char(answer(3)));
m2=str2num(char(answer(4)));
m3=str2num(char(answer(5)));
Jd1=str2num(char(answer(6)));
Jd2=str2num(char(answer(7)));
n1=str2num(char(answer(8)));
n2=str2num(char(answer(9)));
Ra1=str2num(char(answer(10)));
Ra2=str2num(char(answer(11)));
title = 'Ввод данных';
promt = {'Электромагнитная постоянная первого двигателя:', ...
    'Электромагнитная постоянная второго двигателя:',...
    'Конструктивный коэффициент первого двигателя:', ...
    'Конструктивный коэффициент второго двигателя:'};
lines = 1;
def = {'125','100','50','25'};
answer = inputdlg(promt,title,lines,def);
Ta1=str2num(char(answer(1)));
Ta2=str2num(char(answer(2)));
Km1=str2num(char(answer(3)));
Km2=str2num(char(answer(4)));
m4=m2+m3;
g=9.81;
a(1,1)=m1*(L1^2)+m4*((L1+L2)^2)+Jd1*(n1^2);
a(1,2)=m1*L2*(L1+L2);
a(2,1)=m4*L2*(L1+L2);
a(2,2)=m4*(L2^2)+Jd2*(n2^2);
c(1,1)=(m1+m4)*g*L1+m4*g*L2;
c(1,2)=m4*g*L2;
c(2,1)=m4*g*L2;
c(2,2)=m4*g*L2;
sim('untitled1');
Результаты работы симуляции
Рисунок 2 — ввод входных данных
Рисунок 3 — угловые перемещения при входных параметрах, указанных на рисунке 1
         Оставляя неизменными параметры манипулятора (см. рисунок 1) и изменяя массу груза в схвате, получим несколько графиков угловых перемещений для различных случаев:
Опыт 1. Масса груза — 5000 кг
Рисунок 4 — угловые перемещения при массе груза 5000 кг
Опыт 2. Масса груза — 500 кг
Рисунок 5 — угловые перемещения при массе груза 500 кг
Опыт 3. Масса груза — 50 кг
Рисунок 6 — угловые перемещения при массе груза 50 кг
Опыт 4. Масса груза — 5 кг
Рисунок 7 — угловые перемещения при массе груза 5 кг
         
Из приведённых опытов следует вывод о том, что при увеличении массы груза в схвате, система манипулятора становится динамически неустойчивой. 

Комментариев нет:

Отправить комментарий