import math
f = open("a.csv",'r') #a为质心数据
data = f.readlines()
f.close()
ls = []
del data[0]
for i in data:
i = i.strip('\n')
i = i.split(',')
del i[0]
ls.append(i)
f = open("b.csv",'r') #b为俯仰角数据
data2 = f.readlines()
f.close()
ls2 = []
del data2[0]
for i in data2:
i = i.strip('\n')
i = i.split(',')
del i[0]
ls2.append(eval(i[0]))
x = [8.91304348,6.91304348,-1.68695652,3.11304348,-5.28695652,-2.08695652]
y = [1.20652174,-1.39347826,1.20652174,0.60652174,-0.29347826,-1.49347826]
z = [0.61669004,0.21669004,-0.28330996,-0.18330996,0.41669004,0.21669004]
a = [1.5,2.2,2.4,1.7,2.4,2.4]
b = [0.9,0.8,1.1,1.3,1.2,1]
c = [0.3,1.1,0.9,1.2,1,0.5]
V = [0.3,1.5,2.1,1.9,2.6,0.8]
h = [] #液面高度
xall = [0]
yall = [0]
zall = [0] #初始总质心位置
storx, story, storz, storV, storh = [],[],[],[],[]
storx.append(x)
story.append(y)
storz.append(z)
storV.append(V)
storall = [xall,yall,zall] #数据存储
d2r = math.pi/180
rou = 850
for i in range(6):
h.append(V[i]/a[i]/b[i])
storh.append(h)
for i in range(7200 - 1):
#俯仰改变质心位置
theta = ls2[i] #俯仰角数据
for j in range(6):
if j == 1:
V[j] = V[j] - (eval(ls[i][j]) - eval(ls[i][j-1]) ) / rou
elif j == 4:
V[j] = V[j] - (eval(ls[i][j]) - eval(ls[i][j+1]) ) / rou
else:
V[j] -= eval(ls[i][j]) / rou
h[j] = V[j] / a[j] / b[j]
if a[j]*math.tan(theta*d2r) < 2 * h[j]:
x[j] = x[j] - a[j]**2*math.tan(theta*d2r)/12/h[j]
elif a[j]*math.tan(theta*d2r) > 2 * h[j] and theta != 0:
if theta > 0:
x[j] = x[j] - (a[j] - math.sqrt( V[j] / b[j] / math.tan(theta * d2r) )) / 2
z[j] = math.sqrt(V[j] * math.tan(theta*d2r) / b[j]) / 2
else:
x[j] = x[j] + (a[j] - math.sqrt(-V[j] / b[j] / math.tan(theta * d2r) )) / 2
z[j] = math.sqrt(V[j] * math.tan(theta*d2r) / b[j]) / 2
storx.append(x)
story.append(y)
storz.append(z)
storV.append(V)
storh.append(h)
sumx = 0
sumy = 0
sumz = 0
sumV = 0
for j in range(6):
sumx += x[j] * V[j]
sumy += y[j] * V[j]
sumz += h[j] * V[j]
sumV += V[j]
xall = sumx / sumV
yall = sumy / sumV
zall = sumz / sumV
storall[0].append(xall)
storall[1].append(yall)
storall[2].append(zall)
print(storall)
2020华为杯数学建模大赛F题第一问
需积分: 40 149 浏览量
2020-09-27
09:58:46
上传
评论 1
收藏 136KB RAR 举报
Greetings_Wang
- 粉丝: 2
- 资源: 2
最新资源
- Screenshot_20240427_031602.jpg
- 网页PDF_2024年04月26日 23-46-14_QQ浏览器网页保存_QQ浏览器转格式(6).docx
- 直接插入排序,冒泡排序,直接选择排序.zip
- 在排序2的基础上,再次对快排进行优化,其次增加快排非递归,归并排序,归并排序非递归版.zip
- 实现了7种排序算法.三种复杂度排序.三种nlogn复杂度排序(堆排序,归并排序,快速排序)一种线性复杂度的排序.zip
- 冒泡排序 直接选择排序 直接插入排序 随机快速排序 归并排序 堆排序.zip
- 课设-内部排序算法比较 包括冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序.zip
- Python排序算法.zip
- C语言实现直接插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序、归并排序、计数排序,并带图详解.zip
- 常用工具集参考用于图像等数据处理
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈