栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

轴向柱塞泵(马达)回程盘孔与滑靴距离计算程序(python)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

轴向柱塞泵(马达)回程盘孔与滑靴距离计算程序(python)

#coding:UTF-8
#coding:gbk
import math
import numpy as np
import pandas as pd
# 定义以下变量:
# 转子旋转角度为phi(φ,单位°);                       滑靴中心对应失径rho(ρ 单位mm);  
# 回程盘滑靴安装孔与滑靴中心角度差dtheta(△θ ,单位°);   滑靴在斜盘上投影坐标(y0,z0)……(yn-1,zn-1);
# 回程盘滑靴安装孔分布圆转角theta(θ,单位°);            回程盘滑靴安装孔与滑靴中心距离ds0……dsn-1;  


n=9       #柱塞个数n
dp=28.8   #回程盘上滑靴孔的直径dp(单位mm)
d3=24     #滑靴颈部直径d3(单位mm)
R=50      #转子柱塞孔分布圆半径R(单位mm)
R2=51.3   #回程盘滑靴安装孔分布圆半径R2(单位mm)
gamma=17  #斜盘倾角gamma (γ单位°)
rho=[]
dtheta=np.arange(-6,6,0.001)  #定义一个比较大的dtheta范围
ds_angle=pd.DataFrame()
Dds_mn=pd.DataFrame()
for phi in range(361): 
    y=R*math.cos(math.radians(phi))/math.cos(math.radians(gamma))
    z=R*math.sin(math.radians(phi))
    theta=math.atan2(z,y)
    
    ds_mn=pd.DataFrame()
    
    ds=[]
    for item in dtheta:   #第一个循环,找到第一个柱塞滑靴在转子转动一周时,滑靴与回程盘孔之间的角度范围ddtheta
        dz2=R2*math.sin(theta-math.radians(item))
        dy2=R2*math.cos(theta-math.radians(item))
        dz1=R*math.sin(math.radians(phi))
        dy1=R*math.cos(math.radians(phi))/math.cos(math.radians(gamma))
        ds.append(math.pow(math.pow(dz2-dz1,2)+math.pow(dy2-dy1,2),0.5))
    dsi=pd.DataFrame(ds,index=dtheta,columns=['A'])
    dn=dsi[dsi.A<=(dp-d3)/2]
    dindex=dn.index
    dmin=dindex[0]
    dmax=dindex[-1]
    ddtheta=np.arange(dmin,dmax,0.001)
   # print(ddtheta)
    for i in range(n):  #第二个循环,通过在第一个循环找到ddtheta,再求其他几个柱塞滑靴转动一周时,滑靴与回程盘孔之间的角度范围,并从中找到每个phi对应的最小和最大ddtheta值
        dds=[]
        for k in ddtheta:
            dz2=R2*math.sin(theta+i*2*math.pi/n-math.radians(k)) 
            dy2=R2*math.cos(theta+i*2*math.pi/n-math.radians(k))
            dz1=R*math.sin(math.radians(phi)+i*2*math.pi/n)
            dy1=R*math.cos(math.radians(phi)+i*2*math.pi/n)/math.cos(math.radians(gamma))
            dds.append(math.pow(math.pow(dz2-dz1,2)+math.pow(dy2-dy1,2),0.5))
        ddsi=pd.DataFrame(dds,index=ddtheta,columns=['B'])
        ddn=ddsi[ddsi.B<=(dp-d3)/2]
        ddindex=ddn.index
        ddmin=ddindex[0] #△θ最小值
        ddmax=ddindex[-1]#△θ最大值
        ddmn=pd.DataFrame([ddmin,ddmax],index=["MIN","MAX"])
        ds_mn=pd.concat([ds_mn,ddmn],axis=1)
    #print(ds_mn)
    min_angle=max(pd.Series(ds_mn.loc["MIN"])) 
    print(min_angle)   
    max_angle=min(pd.Series(ds_mn.loc["MAX"]))
    dz_min=R2*math.sin(theta-math.radians(min_angle))-R*math.sin(math.radians(phi))
    dy_min=R2*math.cos(theta-math.radians(min_angle))-R*math.cos(math.radians(phi))/math.cos(math.radians(gamma))
    dz_max=R2*math.sin(theta-math.radians(max_angle))-R*math.sin(math.radians(phi))
    dy_max=R2*math.cos(theta-math.radians(max_angle))-R*math.cos(math.radians(phi))/math.cos(math.radians(gamma))
    ds_phi_min=math.pow(math.pow(dz_min,2)+math.pow(dy_min,2),0.5)
    ds_phi_max=math.pow(math.pow(dz_max,2)+math.pow(dy_max,2),0.5)
    phi_index=np.array([0])
    phi_index[0]=phi
    Ddtheta=np.arange(min_angle,max_angle,0.001)
    print(Ddtheta)
    Dds=[]
    for j in Ddtheta:
        ddz2=R2*math.sin(theta-math.radians(j))
        ddy2=R2*math.cos(theta-math.radians(j))
        ddz1=R*math.sin(math.radians(phi))
        ddy1=R*math.cos(math.radians(phi))/math.cos(math.radians(gamma))
        Dds.append(math.pow(math.pow(ddz2-ddz1,2)+math.pow(ddy2-ddy1,2),0.5))
    Dds_phi=pd.DataFrame(Dds,index=Ddtheta,columns=['Dds_phi'])
    print(Dds_phi)
    Dds_phi_min=Dds_phi.nsmallest(1,'Dds_phi',keep='all')
    print(Dds_phi_min)
    Dds_phi_min_index=Dds_phi_min.index[0]
    print(Dds_phi_min_index)
    Dds_phi_min_ds=Dds_phi_min.iloc[0,0]
    print(Dds_phi_min_ds)
    data=pd.DataFrame([min_angle,max_angle,ds_phi_min,ds_phi_max,Dds_phi_min_index,Dds_phi_min_ds],columns=phi_index,index=["min_angle","max_angle","min_ds","max_ds","Dds_phi_dtheta","Dds_phi_min"])
    print(data)
    ds_angle=pd.concat([ds_angle,data],axis=1,)

ds_360=ds_angle.T
print(ds_360)
ds_360.to_excel("D:Ddss.xlsx")
    

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1025603.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号