#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")

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

  1. VOC数据集制作 滑窗切分图片python

    1.labelme画标签转标签 这一步见链接labelme转标签 2.python滑窗切分图片 上一步生成的标签是单通道的,我们所需要的PASCAL VOC的数据集的标签也是单通道8位图,所以切分的时 ...

  2. 利用python进行数据分析微盘_谁有有《利用Python进行数据分析》pdf 谢谢

    展开全部 Python[1]  (英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象的解释型计算机62616964757a686964616fe4b893e5b19e31 ...

  3. 21天python百度网盘_《21天学通Python》PDF 高清版百度网盘下载

    提取码:gr0z 内容简介  · · · · · · <21天学通Python>全面.系统.深入地讲解了Python编程基础语法与高级应用.在讲解过程中,通过大量实际操作的实例将Pytho ...

  4. python网络爬虫与信息提取嵩天百度网盘_基于MOOC嵩天《Python网络爬虫与信息提取》视频学习记录——第一周:requests库...

    1.requests库入门 requests的get( )方法 爬取百度网页实例: import requests r = requests.get("http://www.baidu.co ...

  5. 像计算机科学家一样思考python 百度网盘_像计算机科学家一样思考Python PDF_Python教程...

    资源名称:像计算机科学家一样思考Python PDF 第1章 程序之道 1 1.1 Python编程语言 1 1.2 什么是程序 3 1.3 什么是调试 3 1.4 语法错误 3 1.5 运行时错误 ...

  6. 派克轴向柱塞泵PV系列

    派克轴向柱塞泵PV系列 Parker派克PV系列轴向柱塞泵有带标准压力调节器和带功率调节器两种选择.最大排量从16至270ml/rev,额定工作压力为350bar,最低转速为每分钟300转,泄油口朝上 ...

  7. matlab轴向柱塞泵动力学仿真,基于虚拟样机的轴向柱塞泵柱塞副性能研究

    副泄漏量则采用等效液阻模型构建[8],其泄漏量q s 和q v 如下所示. ()(c d s d s d s P P l h r r d h d q ??+= ] 128ln 6[31243 4μπ) ...

  8. 机械硬盘-空气盘与氦气盘的区别

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.硬盘是什么? 二.空气盘与氦气盘的区别 1.容量 2.功耗 3.温度 4.噪音 5.性能 总结 前言 随着用户对数 ...

  9. 计算机的u盘显示桌面,U盘图示在我的电脑显示不出?

    U盘图示在我的电脑显示不出?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! U盘图示在我的电脑显示不出? 试一下在开始- ...

最新文章

  1. PHP计划任务:如何使用Linux的Crontab执行PHP脚本(转)
  2. BestCoder Round #65 B C D || HDU 5591 5592 5593
  3. 【转】多线程Core Data
  4. 返回content-length=0问题解决
  5. 【MATLAB】进阶绘图 ( Boxplot 箱线图 | boxplot 函数 | Error Bar 误差条线图 | errorbar 函数 )
  6. windows下tomcat日志输出至catalina.out文件
  7. C++(七)——多态
  8. echarts折线图怎么从y轴开始_基于echarts的双y轴实时更新折线图
  9. 【Tomcat】安装Tomcat服务器Tomcat的目录结构
  10. Unix domain socket IPC
  11. 单片机c语言期末考试题(a)的答案,单片机C语言期末考试题(A).doc
  12. CSS3中的过渡、动画和变换
  13. java换行输出的几种方式
  14. python 广告联盟_利用京东联盟API获取自定义推广链接
  15. 金额转换,阿拉伯数字转换成中国传统形式
  16. linux终端安装搜狗输入法rpm,Linux下deb包安装工具(附带安装搜狗输入法)
  17. 来看一看2019年3月中国电商+手游平台用户口碑排行榜
  18. 腾讯课堂老师可以看到学生本人吗?
  19. Android 应用多开/分身检测
  20. HIT 软件构造 lab3实验报告

热门文章

  1. 机器学习实验(一):运用机器学习(Kmeans算法)判定家庭用电主因
  2. Hololens 学习摘要及翻译记录 四 Gestures
  3. 科创板历史行情数据 API 接口
  4. 红薯淀粉加工设备行业分析
  5. 商城电商day13一、订单业务简介
  6. 什么是c 语言中源文件,C++中头文件和源文件详细介绍
  7. 设计素材|这些创意海报合成,你会发现创意比技术更重要!
  8. mysql删除主键的操作
  9. 30天自制操作系统:第十二天 定时器(1)
  10. php 时间随机数,PHP——生成随机数和日期时间