Неопределенная функция или переменная для механизма 3dos - PullRequest
0 голосов
/ 26 января 2020

Я пытался сделать 3dof (механизм 3 степеней свободы) в Matlab, но я получаю эту ошибку, и я не знаю почему. это для школьного проекта, и мне нужно смоделировать человеческий палец. код работает нормально, но после ввода значений углов он говорит, что A, B, C не определены, и я не знаю, почему

a1 = input('valuarea lui q1(grade):');
a2 = input('valuarea lui q2(grade):');
a3 = input('valuarea lui q3(grade):');
L1=35;
L2=45;
L3=30;
z = [-10 10];
plot(z,10);
grid ON;
O=[0;0;0;1];
m= linspace(pi/2,pi/2+a1*pi/180,100);
n = linspace(-pi/2,a2*pi/180,100);
k=linspace(-pi/2,a3*pi/180,100);

for a=1:100
    [A1,B1,C1] = Transform(m(a),n(a),k(a),L1,L2,L3);
    x = [O(1) A(1) B(1) C(1)];
    y = [O(2) A(2) B(2) C(2)];
    Cx(i)= C1(1);
    Cy(i) = C1(2);
    i=i+1;
    Plot = plot(x,y,'r',...1
         'LineWidth',1);
    title('Sumularea unui deget');
    plot(Cx,Cy,'--g',...
        'LineWidth',1);
    pause(0.075);
    delete(Plot);
end
plot(x,y,'r',...
    'LineWidth',3);

function [A,B,C ] = Transform( m,n,p,l1,l2,l3 )
P = [0;0;0;1];
T1 = [cos(m) -sin(m) 0 0;sin(m) cos(m) 0 0;0 0 1 0; 0 0 0 1];
T2 = [cos(n) -sin(n) 0 11;sin(n) cos(n) 0 0;0 0 1 0; 0 0 0 1];
T3 = [cos(p) -sin(p) 0 12;sin(p) cos(p) 0 0;0 0 1 0; 0 0 0 1];
T4 = [1 0 0 13;0 1 0 0; 0 0 1 0; 0 0 0 1];
A = T1*T2*P;
B = T1*T2*T3*P;
C = T1*T2*T3*T3*P;
end

1 Ответ

0 голосов
/ 26 января 2020

В вашей основной функции это первое использование переменных:

  x = [O(1) A(1) B(1) C(1)];

Они никогда не записывались ранее. Вместо A1 написано, что является другой переменной. Я предполагаю, что вы перепутали два.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...