Asked by Zafer Duyenli
on 10 Nov 2018

Greetings,

I'm trying to make a position analysis of a mechanism via Newton-Raphson algorithm and when I constructed my model matrixes, I have this error "Index exceeds the number of array elements (1)" and I couldn't decide how to reduce my index. Could that error occurs because of that I'm missing something while giving the parameters? Whole model is given below:

clc, clear all;

%initiating physical parameters

a2=29;a3=15;a4=16;a5=27;a6=25;th4=332*pi/180;thd=240*pi/180;

%initiating max iteration

Nmax=100;

%initiating guess values for th3, th5, th6, to

x=[14*pi/180,59*pi/180,323*pi/180,32];

%initiate error tolerance

xe=0.001*abs(x);

%initiating system inputs

dth=5*pi/180;

th2=-30*pi/180:dth:30*pi/180;

w2=35*ones(1,length(th2));

al2=0*ones(1,length(th2));

%-------------------------

xe=transpose(abs(xe));

kerr=1;

for k=1:1:length(th2);

for n=1:Nmax

%-------------------

%assign initial gues to unknowns

th3(k)=x(1);th5=x(2);

th6=x(3);to=x(4);

%jacobian matrix

J=zeros(4,4)

J(1,1)=-a3*sin(th3(k));J(2,1)=a3*cos(th3(k));

J(3,2)=-a5*sin(th5(k));

J(3,3)=-a6*sin(th6(k));

J(3,4)=-1;

J(4,2)=a5*cos(th5(k));J(4,3)=a6*cos(th6(k));

%INPUT: FUNCTIONS

f=zeros(4,1);

f(1,1)=(a2*cos(th2(k))+a3*cos(th3(k))+a4*cos(th4)+a5*cos(thd)-43);

f(2,1)=(a2*sin(th2(k))+a3*sin(th3(k))+a4*sin(th4)+a5*sin(thd)+31);

f(3,1)=(a5*cos(th5(k))+a6*cos(th6(k))-to(k));

f(4,1)=(a5*sin(th5(k))+a6*sin(th6(k))-12);

%----------------

eps=inv(J)*f;x=x+transpose(eps);

if abs(eps)<xe

kerr=0;break

end

end

if kerr==1

'Error nr'

end

th3(k)=x(1);th5(k)=x(2);

th6(k)=x(3);to(k)=x(4)

end

thank you for answers.

Answer by Bruno Luong
on 10 Nov 2018

Accepted Answer

%assign initial gues to unknowns

th3(k)=x(1);th5=x(2);

th6=x(3);to=x(4);

I think it should be

th3(k)=x(1);

th5(k)=x(2);

th6(k)=x(3);

to(k)=x(4);

Opportunities for recent engineering grads.

Apply Today
## 0 Comments

Sign in to comment.