Guest User

Untitled

a guest
Apr 22nd, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.97 KB | None | 0 0
  1. %Assembling the matrix B
  2. function B=AssembleB(B,mseg,dseg,lseg,Iseg,AngleMatrix,k,n,eseg)
  3. B=zeros(n,n);
  4. for i=1:1:n
  5. for j=1:1:n
  6. %B is symmetrical so I just calculated half of that and sum
  7. %with the transposte
  8. if i==j
  9. if i<n
  10. B(i,j)= (mseg(i)*dseg(i)^2+mseg(i)*eseg(i)^2+sum(mseg(i+1:n))*lseg(i)^2+Iseg(i))/2;
  11. else
  12. B(i,j)= (mseg(i)*dseg(i)^2+mseg(i)*eseg(i)^2+Iseg(i))/2;
  13. end
  14. elseif i>j
  15. B(i,j)= (mseg(i)*dseg(i)+sum(mseg(i+1:n))*lseg(i))*lseg(j)*cos(AngleMatrix(k,j)-AngleMatrix(k,i))+mseg(i)*eseg(i)*lseg(j)*sin(-AngleMatrix(k,j)+AngleMatrix(k,i));
  16. end
  17. end
  18. end
  19. B=B+transpose(B);
  20. end
  21.  
  22.  
  23. %Assembling C
  24. function C=AssembleC(C,M,mseg,dseg,lseg,AngleMatrix,AngleVelMatrix,g,k,n,eseg)
  25. C=zeros(n,1);
  26. for i=1:1:n
  27. for j=1:1:n
  28. if j<i
  29. C(i)=C(i)+AngleVelMatrix(k,j)^2*((mseg(i)*dseg(i)+sum(mseg(i+1:n))*lseg(i))*lseg(j)*sin(AngleMatrix(k,j)-AngleMatrix(k,i))+mseg(i)*eseg(i)*lseg(j)*cos(-AngleMatrix(k,j)+AngleMatrix(k,i)));
  30. elseif j>i
  31. C(i)=C(i)+AngleVelMatrix(k,j)^2*(-(mseg(j)*dseg(j)+sum(mseg(j+1:n))*lseg(j))*lseg(i)*sin(AngleMatrix(k,i)-AngleMatrix(k,j))-mseg(j)*eseg(j)*lseg(i)*cos(AngleMatrix(k,j)-AngleMatrix(k,i)));
  32. end
  33. end
  34.  
  35. if i<n
  36. C(i)=C(i)+(mseg(i)*dseg(i)+sum(mseg(i+1:n))*lseg(i))*g*sin(AngleMatrix(k,i))+M(k,i+1)-M(k,i)-mseg(i)*eseg(i)*g*cos(AngleMatrix(k,i));
  37. else
  38. C(i)=C(i)+(mseg(i)*dseg(i)+sum(mseg(i+1:n))*lseg(i))*g*sin(AngleMatrix(k,i))-M(k,i)-mseg(i)*eseg(i)*g*cos(AngleMatrix(k,i));
  39. end
  40. end
  41. end
  42.  
  43.  
  44. % changing to a first order system
  45. B'=[eye(n) zeros(n,n);zeros (n,n) B];
  46. C'=[transpose(AngleVelMatrix(k,1:n));C];
Add Comment
Please, Sign In to add comment