Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.03 KB | None | 0 0
  1. clear
  2.  
  3. L = 10;
  4. EI = 100;
  5. XY = [ ..
  6. 1, 1;..
  7. 2, 2;..
  8. 3, -1..
  9. ];
  10. springStiffness = 100;
  11.  
  12. function c = beamStiffness(beamLength)
  13. l = beamLength;
  14. l2 = l*l;
  15. l3 = l2*l;
  16. c = EI/l3 * [12,6*l,-12,6*l; 6*l,4*l2,-6*l,2*l2; ..
  17. -12,-6*l,12,-6*l; 6*l,2*l2,-6*l,4*l2];
  18. endfunction
  19.  
  20. function u = bendingBySprings(xy, x)
  21. springCount = size(xy, 1);
  22. beamCount = springCount + 1;
  23. n = beamCount * 2;
  24. C = zeros(n,n);
  25. F = zeros(n,1);
  26. c = beamStiffness(xy(1,1));
  27. C(1:2, 1:2) = C(1:2, 1:2) + c(3:4, 3:4);
  28. for i=1:springCount
  29. xnext = L;
  30. if (i<springCount) then
  31. xnext = xy(i+1,1);
  32. end
  33. c = beamStiffness(xnext-xy(i,1));
  34. r = 2*i-1:2*i+2;
  35. C(r,r) = C(r,r) + c;
  36. r = 2*i-1;
  37. C(r,r) = C(r,r) + springStiffness;
  38. F(r) = F(r) + springStiffness*xy(i,2);
  39. end
  40. U = C\F;
  41. // TODO: Generate u
  42. u = x.*x;
  43. endfunction
  44.  
  45. x = linspace(0, L, 500)';
  46.  
  47. u = bendingBySprings(XY, x);
  48.  
  49. plot(x, u);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement