№ вар.
|
|
|
|
|
|
|
|
9
|
2.5
|
20
|
-10
|
60
|
26
|
175
|
2.
Листинг программы
Скрипт для построения траектории движения звена
манипулятора:
t=2.5;
%время, за которое нужно осуществить перемещение
%переведем начальные и конечные углы плеч манипулятора из
%градусов в радианы
Q10=((-10)*pi)/180;=(60*pi)/180;tf=(26*pi)/180;
Q2tf=(175*pi)/180;=0.25; %длина первого звена
манипулятора=0.20; %длина второго звена манипулятора
%запишем СЛАУ для звена L1 манипулятора
%решив ее методом обратной матрицы получим значения
%коэффициентов а5, а4, а3
X1=[t^5 t^4 t^3; 5*t^4 4*t^3 3*t^2; 20*t^3 12*t^2
6*t];=[Q1tf-Q10; 0; 0];=inv(X1)*B1;
%аналогично запишем СЛАУ для звена L2 и получим b5, b4, b3
X2=[t^5 t^4 t^3;5*t^4 4*t^3 3*t^2;20*t^3 12*t^2
6*t];=[Q2tf-Q20; 0; 0];=inv(X2)*B2;
t1=0:0.1:t; %массив значений времени
%уравнения для получения значений изменения углов
q1=Q10+a(1)*t1.^5+a(2)*t1.^4+a(3)*t1.^3;=Q20+b(1)*t1.^5+b(2)*t1.^4+b(3)*t1.^3;
%зная длины звеньев манипулятора, переведем полученные углы в
%координаты
%рассчитаем координаты начальной точки траектории движения
%манипулятора
n1=L1*cos(Q10)+L2*cos(Q10+Q20);=L1*sin(Q10)+L2*sin(Q10+Q20);
%конечная точка траектории
k1=L1*cos(Q1tf)+L2*cos(Q1tf+Q2tf);
k2=L1*sin(Q1tf)+L2*sin(Q1tf+Q2tf);
plot(x,y) %по полученным значениям строим траекторию
движенияon %продолжаем строить на этом же графике
%нарисуем конечную и начальную точку
plot(n1,n2,'r*',k1,k2,'b*')
%зафиксируем нужную область на графике([-0 0.4 -0.1 0.4])on
%рисуем сетку
%сделаем необходимые подписи на осях
xlabel('x (t)');('y (t)');('Gpaopuk gBu)I(eHu9l
3BeHa MaHuTTy/l9lTopa');
Анимация
t=2.5; %время, за которое нужно осуществить перемещение
%переведем начальные и конечные углы звеньев манипулятора из
%градусов в радианы
Q10=((-10)*pi)/180;=(60*pi)/180;tf=(26*pi)/180;
Q2tf=(175*pi)/180;=0.25; %длина первого звена
манипулятора=0.20; %длина второго звена манипулятора
%запишем СЛАУ для зена L1 манипулятора
%решив ее методом обратной матрицы получим значения
%коэффициентов а5, а4, а3
X1=[t^5 t^4 t^3; 5*t^4 4*t^3 3*t^2; 20*t^3 12*t^2
6*t];=[Q1tf-Q10; 0; 0];=inv(X1)*B1;
%аналогично запишем СЛАУ для плеча L2 и получим b5, b4, b3
t1=0:0.1:t; %массив значений времени
%уравнения для получения значений измененных углов
q1=Q10+a(1)*t1.^5+a(2)*t1.^4+a(3)*t1.^3;=Q20+b(1)*t1.^5+b(2)*t1.^4+b(3)*t1.^3;
%зная длины звеньев манипулятора, переведем полученные углы в
%координаты
x=L1*cos(q1)+L2*cos(q1+q2);=L1*sin(q1)+L2*sin(q1+q2);
%координаты точки соединения плеч
манипулятора=L1*cos(q1);=L1*sin(q1);
%рассчитаем координаты начальной точки траектории движения
%манипулятора
n1=L1*cos(Q10)+L2*cos(Q10+Q20);=L1*sin(Q10)+L2*sin(Q10+Q20);
%конечная точка траектории
k1=L1*cos(Q1tf)+L2*cos(Q1tf+Q2tf);
k2=L1*sin(Q1tf)+L2*sin(Q1tf+Q2tf);
%цикл повториться ровно столько раз, сколько элементов
содержит %в себе массив t1i=1:length(t1)
%построим кривую траектории движения манипулятора(x, y,
'--')on %продолжаем строить на этом же графике
%нарисуем конечную и начальную точку
plot(n1,n2,'r*',k1,k2,'b*')
%рисуем первое звено манипулятора L1
plot([0 x1(i)],[0 y1(i)], 'LineWidth', 3, 'Color', 'b')
%второе звено манипулятора L2([x1(i)
x(i)],[y1(i) y(i)], 'LineWidth', 3, 'Color', 'b')
%нарисуем окружности в местах соединения звеньев
plot(x(i), y(i), 'o', 'Color', 'r', 'LineWidth',
6);(x1(i), y1(i), 'o', 'Color', 'r', 'LineWidth', 6);(0, 0, 'o', 'Color', 'r',
'LineWidth', 6);
%перестаем рисовать на существующем графике
%зафиксируем нужную область на графике([-0.1 0.4 -0.1 0.4])on
%рисуем сетку(i)=getframe; %создадим анимацию
%сделаем необходимые подписи на осях
xlabel('x (t)');('y (t)');('Gpaopuk gBu)I(eHu9l
3BeHa MaHuTTy/l9lTopa');
movie(M, 10) %запустим и повторим анимацию 10 раз
3.
Полученные результаты
По данным взятым из Таблицы была построена следующая
траектория движения манипулятора робота:
Дополнительно была построена траектория движения точки
соединения звеньев манипулятора:
4. Вывод
В ходе этой лабораторной работы я с помощью системы Mathlab записал СЛАУ и решил ее
получив коэффициенты , , и , , . По данным взятым из
Таблицы была построена траектория движения захвата манипулятора робота.