Mercurial > forge
changeset 11759:2f84019c5445 octave-forge
changes (not ready yet)
author | johanb88 |
---|---|
date | Fri, 07 Jun 2013 17:40:32 +0000 |
parents | d79300686065 |
children | fe32df8ef6ec |
files | main/mechanics/inst/ocframe/private/beamEB.m |
diffstat | 1 files changed, 31 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/main/mechanics/inst/ocframe/private/beamEB.m Fri Jun 07 15:38:09 2013 +0000 +++ b/main/mechanics/inst/ocframe/private/beamEB.m Fri Jun 07 17:40:32 2013 +0000 @@ -80,15 +80,31 @@ if (x1 - small < x && x < x2 + small ) #point load between node i and i+1 #load divide proportional over the nodes - q(i) = pointloads(index,2) * (x2-x)/delta; - q(i+1) = pointloads(index,2) * (x-x1)/delta; + q(i) += pointloads(index,2) * (x2-x)/delta; + q(i+1) += pointloads(index,2) * (x-x1)/delta; endif endfor #dist loads for index=1:rows(distributedloads) - if (distributedloads(index,1) > x - delta - small && distributedloads(index,3) < x + small ) - # point lays in the distributed load - # TODO: complete + a = distributedloads(index,1); + q1 = distributedloads(index,2); + b = distributedloads(index,3); + q2 = distributedloads(index,4); + if (a-small < x1 && b+small > x2) + # interval covered by load + #load q(x) = rico*x+offset + rico=(q1-q2)/(a-b); + offset=-(b*q1-a*q2)/(a-b); + F1 = rico*x1+offset; + F2 = rico*x2+offset; + if (F1 < F2) + q(i) += F1*delta/2+(F2-F1)*delta/6; + q(i+1) += F1*delta/2+(F2-F1)*delta/3; + else + q(i) += F2*delta/2+(F1-F2)*delta/3; + q(i+1) += F2*delta/2+(F1-F2)*delta/6; + endif + endif endfor x1+=delta; @@ -106,7 +122,7 @@ A(node-1,node) =-2; A(node-1,node+1) = 1; # V = 0 = v''' - # (using −1/2 1 0 −1 1/2: http://en.wikipedia.org/wiki/Finite_difference_coefficient) + # (using -1/2 1 0 -1 1/2: http://en.wikipedia.org/wiki/Finite_difference_coefficient) A(node-2,node-2) = -1/2; A(node-2,node-1) = 1; A(node-2,node) = 0; @@ -119,7 +135,7 @@ A(node+1,node) =-2; A(node+1,node+1) = 1; # V = 0 = v''' constraint on row "node" - # (using −1/2 1 0 −1 1/2: http://en.wikipedia.org/wiki/Finite_difference_coefficient) + # (using -1/2 1 0 -1 1/2: http://en.wikipedia.org/wiki/Finite_difference_coefficient) A(node+2,node-2) = -1/2; A(node+2,node-1) = 1; A(node+2,node) = 0; @@ -129,13 +145,14 @@ # normal node: EI v'''' + b k v = q # pattern for v'''' around node: 1 -4 6 -4 1 # source: Abramowitz and Stegun - A(node, node-2) = 1/delta^4*delta; - A(node, node-1) = -4/delta^4*delta; + # both sides of equation x delta + A(node, node-2) = 1/delta^3; + A(node, node-1) = -4/delta^3; A(node, node) = (6/delta^4 + b*k/(E*I))*delta; - A(node, node+1) = -4/delta^4*delta; - A(node, node+2) = 1/delta^4*delta; + A(node, node+1) = -4/delta^3; + A(node, node+2) = 1/delta^3; - B(node,1) = q(node-2)/(E*I); + B(node,1) = q(node)/(E*I); endfor #solve with LU decomposition @@ -157,7 +174,8 @@ M = M(3:NN-2); V = V(3:NN-2); xcoord = xcoord(3:NN-2); + endfunction #[x,v,M,V]=beamEB(15,1,500,[3,500;6.50,800],[],30.0e6, 1*1.077^3/12, 20.0e-3/0.01^3); # from berekeningvanconstructies.be - +#[x,v,M,V]=beamEB(15,1,500,[],[0,10,15,20],30.0e6, 1*1.077^3/12, 20.0e-3/0.01^3);