У меня есть домашний вопрос, на который я не могу ответить. Вот подсказка для вопроса:
- Определите уравнение. 8.3 и уравнение. 8.4 в функции. Эта функция должна принимать вектор углов сочленения (
и
) в качестве входных данных и должен возвращать вектор-столбец, содержащий две функции (
и
) оценивается под этими углами. Функция должна содержать длины ссылок и значения
и
для расчета. Включите свой код в свое решение.
Уравнения 8.3 и 8.4:
(8.3)
(8.4)
куда
Вот функция, которую я написал:
function F = rob_arm (alphag, betag)
F = (1).*cos(alphag)+ (1).*(cos(alphag+betag))-(1) ;
(1).*sin(alphag) + (1).*(sin(alphag+betag))-(1.1) ;
end
Поскольку alpha
и beta
являются матрицами разных размеров, я использовал meshgrid
для создания alphag
и betag
и использовал эти матрицы для вычисления значений rob_arm
. После четырех часов возни с этим я даже не понимаю, о чем вопрос, а ТА в настоящее время не отвечают на электронные письма. Я написал следующий код, чтобы попытаться поместить rob_arm
в один столбец:
alpha = 0:pi/100:(pi/2); %define angle alpha
beta = 0:pi/100:pi; %define angle beta
[alphag, betag] = meshgrid (alpha, beta); %mesh grid alpha and beta b/c different matrix dimensions
arm_pos = rob_arm (alphag, betag);
for ii = 1:1:101
for k = 1:1:51
col_vec (1,1:1:5151) = arm_pos(ii,k);
end
end
Если игнорировать запрос на создание вектора-столбца, полученный результат arm_pos
является хорошим результатом. Я могу построить график и получить очень красивую картину всех возможных точек, которых может «достичь» эта рука робота.
Но поскольку я тупой и пробовал это в течение многих часов, он не сохраняет последовательные значения rob_arm
в col_vec
, он просто заменяет его каждый раз, и я получаю матрицу 1x1. В конечном итоге цель будет заключаться в использовании метода Ньютона-Рафсона для определения нулей этой функции, но до этого еще далеко. Я думаю, что если мне удастся собрать все значения, вычисленные rob_arm
, в один столбец, то я смогу ответить на этот вопрос.
Следующий вопрос:
- Создайте отдельную функцию, которая принимает ввод однострочного вектора, содержащего пару углов
и < img src = "https://chart.googleapis.com/chart?cht=tx&chl=%5Cbeta" alt = "\ beta">. На выходе функции должен быть якобиан (матрица 2 на 2). Сначала вычислите производные уравнений. 8.3–8.4 вручную, а затем вставьте их в свою функцию. Включите свой код функции в свое решение
Мне нужно будет попросить разъяснений, потому что я не понимаю, как матрица 1 x 51 (alpha
) и матрица 1 x 102 (beta
) могут быть приняты в один вектор-строку, который затем выведет матрицу 2x2 . Я знаю, что такое якобиан, и это частные производные двух моих функций, а не матрица значений.
Если кто-то захочет помочь мне, это будет супер!
F = [ f1; f2 ]
с соответствующими выражениями дляf1
иf2
? - person Lutz Lehmann   schedule 30.03.2015function F = rob_arm (alphag, betag) F = [(1).*cos(alphag)+ (1).*(cos(alphag+betag))-(1) ; ... (1).*sin(alphag) + (1).*(sin(alphag+betag))-(1.1)]; end
- person Buck Thorn   schedule 30.03.2015