帮助一个脚本,该脚本计算悬臂梁的弯矩。

2视图(30天)
我有一个数组
ssmat = [10 9 7 6 3 2 1 0;
20 0 5 0 0 15 10 0;
0 10 0 0 15 0 0 0;
10 0 10 10 10 0 0 0]
ssmatl =逻辑(ssmat)
ssmatl = [1 1 1 1 1 1 1 0;
0 1 1 0 0 1 1 0;
0 1 0 0 1 0 0 0;
1 0 1 1 1 0 0 0]
第一行ssmat告诉从原点的距离。第四行,目前工作,告诉distibuted均匀载荷的大小。
例如:从lefto向右看,因为ssmat(4,1) ~ = 0意味着ssmat(1,1)点负载启动和最近的非零值在第四行结束(ssmat(4,3)),实际值的大小是负载(10)。在这种情况下,有两个均匀分布载荷ssmat (4,1) ssmat从ssmat(4,3)和(4,4)ssmat (4、5)。
我在计算弯矩引起的这些力量在梁的不同部分。在这种情况下席拉14分(Pp = 14), Pp = 2 *(长度(ssmat) 2)。
点定位是这样的:
点P的弯矩的计算方法是这样的:
M = * l *力的大小(l / 2 + d)
在点P有多个负载:
M = l1 force1 * *级(l1/2 + d1) + l2级force2 * * (l2/2 + d2)。
如果是在点P的发出召唤和负载的结束:
M = l1 force1 * *级(l1/2) +级的l2 force2 * * (l2/2 + d2)。
我写一个剧本,直到第五个点之后,它将变得更加棘手,目前只是分崩离析。我想我能运用同样的原则进行进一步的点,但我希望有人可以帮助我更好的解决方案。
我希望我能解释形势。
如果页= = 14
i = 1
如果sum (ssmatl (1:2)) = = 0
mg1 = 0;
mg2 = 0;
mg3 = 0;
elseifsum (ssmatl (1:2)) = = 1 & & ssmat (4, i) = = 0
mg1 = 0;
mg2 = 0;
mg3 = mg2;
elseifsum (ssmatl (1:2)) = = 1 & & ssmat(我)~ = 0
mg1 = 0;
mg2 = ssmat (4,1) * abs (ssmat (1、2) -ssmat (1,1)) * abs ((ssmat (1、2) -ssmat (1,1)) / 2);
mg3 = mg2;
elseifsum (ssmatl (1:2)) = = 2
mg1 = 0;
mg2 = ssmat (4,1) * abs (ssmat (1、2) -ssmat (1,1)) * abs ((ssmat (1、2) -ssmat (1,1)) / 2);
mg3 = mg2;
结束
结束
我= 3:1:1
j = 2: 1:1
如果sum (ssmatl (1:3)) = = 0
mg4 = 0;
mg5 = 0;
elseifsum (ssmatl (1:3)) = = 1 & & ssmat(我)~ = 0
mg4 = ssmat(我)* abs (ssmat (1、3) -ssmat(我))* abs ((ssmat (1、3) -ssmat(我))/ 2);
mg5 = mg4;
elseifsum (ssmatl (1:3)) = = 2 & & ssmat (4, i) = = ssmat (4 j) & &我~ = j
mg4 = ssmat(我)* abs (ssmat(我)-ssmat (j)) * abs (((ssmat(我)-ssmat (j)) / 2) + (ssmat (1、3) -ssmat(我)))
mg5 = mg4;
elseifsum (ssmatl (1:3)) = = 3
mg4 = ssmat (4,1) * abs (ssmat (1、2) -ssmat (1,1)) * abs (((ssmat (1、2) -ssmat (1,1)) / 2) + (ssmat (1、3) -ssmat (1、2)));
mg5 = mg4;
结束
结束
结束
我= 4:1:1
j = 3: 1:1
k = 2: 1:1
如果sum (ssmatl (1:4)) = = 0
mg6 = 0;
mg7 = mg6;
elseifsum (ssmatl (1:4)) = = 1 & & ssmat(我)~ = 0
mg6 = ssmat(我)* abs (ssmat (1、4) -ssmat(我))* abs ((ssmat (1、4) -ssmat(我))/ 2);
mg7 = mg6;
elseifsum (ssmatl (1:4)) = = 2 & & ssmat (4, i) = = ssmat (4 j) & &我~ = j
mg6 = ssmat(我)* abs (ssmat(我)-ssmat (j)) * abs (((ssmat(我)-ssmat (j)) / 2) + (ssmat (1、4) -ssmat(我)));
mg7 = mg6;
elseifsum (ssmatl (1:4)) = = 3 & & ssmat (4, 4) = = 0
mg6 = (ssmat (4,1) * abs (ssmat (1、2) -ssmat (1,1)) * abs (((ssmat (1、2) -ssmat (1,1)) / 2) + (ssmat (1、4) -ssmat (1、2)))) + (ssmat (4,3) * abs (ssmat (1、4) -ssmat (1、3)) * abs (((ssmat (1、4) -ssmat (1、3) / 2)));
mg7 = mg6;
elseifsum (ssmatl (1:4)) = = 3 & & ssmat (j) = = ssmat (4 k) & & j ~ = k
mg6 = ssmat (j) * abs (ssmat (j) -ssmat (k)) * abs (((ssmat (j) -ssmat (k)) / 2) + (ssmat (1、4) -ssmat (j)));
mg7 = mg6;
结束
结束
结束
结束
我= 5:1:1
j = 4: 1:1
k = 1:4
l = 2: 1:1
如果sum (ssmatl (1:5)) = = 0
mg8 = 0;
mg9 = mg8;
elseifsum (ssmatl (1:5)) = = 1 & & ssmat(我)~ = 0
mg8 = ssmat(我)* abs (ssmat (1、5) -ssmat(我))* abs ((ssmat (1、5) -ssmat(我))/ 2);
mg9 = mg8;
elseifsum (ssmatl (1:5)) = = 2 & & ssmat (4, i) = = ssmat (4 j) & &我~ = j
mg8 = ssmat(我)* abs (ssmat(我)-ssmat (j)) * abs (((ssmat(我)-ssmat (j)) / 2) + (ssmat (1、4) -ssmat(我)));
mg9 = mg8;
elseifsum (ssmatl (1:5)) = = 3 & & ssmat (4
mg8 = (ssmat (4,1) * abs (ssmat (1、2) -ssmat (1,1)) * abs (((ssmat (1、2) -ssmat (1,1)) / 2) + (ssmat (1、4) -ssmat (1、2)))) + (ssmat (4,3) * abs (ssmat (1、4) -ssmat (1、3)) * abs (((ssmat (1、4) -ssmat (1、3) / 2)));
mg9 = mg8;
elseifsum (ssmatl (1:4)) = = 3 & & ssmat (j) = = ssmat (4 k) & & j ~ = k
mg8 = ssmat (j) * abs (ssmat (j) -ssmat (k)) * abs (((ssmat (j) -ssmat (k)) / 2) + (ssmat (1、4) -ssmat (j)));
mg9 = mg8;

答案(2)


内森Hardenberg
内森Hardenberg 2023年5月25日22:41
我想写一个脚本只解决这个梁设置不是很有用。适当的方式把光束分成部分手工计算中非常有用,但非常昂贵的编程。我认为这是更容易选择小incements和计算每一个增量。
我发现了一个类似的问题,我answerd那里。但它是更一般的:
对分布式负载可能更容易,计算剪切力。然后把这个弯矩。

类别

找到更多的在编程帮助中心文件交换

下载188bet金宝搏


释放

R2020a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!