SEW减速机参数查询 2-2 实践

首先说说结论:在不和SEW官方取得沟通之前,你几乎无法直接通过查阅SEW官方文档得到相关减速机的所有技术参数:比如轴的模数和齿数,轴承的参数。我在周一耗费了一个上午,最终和SEW方面确认后才知晓相关技术参数需要凭借销售合同查询。不过,也把我做的搜集和尝试列在后面。

前面的参数查询里,漏掉了一种减速机,就是行星齿轮减速机。这个产品的故障频点需要另行分析。

1.一个失败的尝试 

案例一 Gear reducer 32.38:1 ST77DT100L4-KS 二手价 290刀
这个减速机是在bing.com上搜索"SEW gearbox ratio 35.5 tag",随机找到一个铭牌:
 

注意sn = 890036862.08.07.001

1.1 SEW资料库的资料全集:

首先在SEW资料库里找到,因为有序列号。

https://www.sew-eurodrive.cn/os/dud/?tab=productdata&country=CN&language=zh_cn1

1.1.1 产品参数:

从产品参数页面可以知道:

  • 变速比32.38
  • 460V/60Hz的电压是美标电机
Catalog designationST77DT100L4-KS
Product data 
Serial number                       890036862.08.07.001
Gear ratio                          32.38
Output speed                        52
Mounting position                   M4B
Shaft diameter                      NP-NS
Terminal box position               0
Cable entry at terminal box         X
Output torque (lb-in)               5375
Service factor                      1.7
Motor power                         5
Motor voltage                       230YY/460Y
Frequency                           60
Wiring diagram                      DT79
Rated current                       13.6/6.8
KVA Code                            G
Thermal class                       F
Other                               CB@0, CE X, Bore Size=1 5/8  
Weight on request

2.原始资料搜集和故障频点计算.py程序(片段)

频点计算部分可以自动进行。我现在的做法是使用.json搜集相关信息,然后使用python自动计算,请参见附录A,附录B.

最终我们需要计算出相关的故障频点有多少,分别隶属于哪根轴,哪个齿轮,那个轴承。在故障发生后,还需要反向查询这个故障频点表,来搜索出可能出问题的故障源。这个过程,无需人工参与,是可以自动计算的。

附录A 机械设备相关振动配置信息搜集(.json)

仅仅是一个示例

{
    "author": "fengxh",
    "desc": "产品的一级参数录入,注意不要混入任何可以自动计算的结果",
    "json_format": "1.0",
    "created": "Apr16,2024",
    "last_modify": "Apr16,2024",
    "CAD_file": "xxxxx.pdf",
    "unit": {
        "engine": {
            "type": "xxxx",
            "manualfacture": "xxxx",
            "PinKw": 30,
            "type_rpm": 730
        },
        "gearbox": {
            "type": "xxxxx",
            "ratio": 75.577,
            "shaft_in": {
                "desc": "变速箱输入轴",
                "memo": "输入轴 - 一个外齿轮,一个输入大齿轮,一个输出小齿轮,2个轴承",
                "gear": [
                    {
                        "type": -1,
                        "memo": "外齿轮",
                        "module": -1,
                        "tooth": -1
                    },
                    {
                        "type": -1,
                        "memo": "输入大齿轮",
                        "module": -1,
                        "tooth": -1
                    },
                    {
                        "type": -1,
                        "memo": "输出小齿轮",
                        "module": -1,
                        "tooth": -1
                    }
                ],
                "bearing": [
                    {
                        "type": -1,
                        "memo": "动力端轴承",
                        "outer_edge_D_in_mm": -1,
                        "inter_edge_D_in_mm": -1,
                        "ball_D_in_mm": -1,
                        "ball_cnts": -1
                    },
                    {
                        "type": -1,
                        "memo": "随动轴承",
                        "outer_edge_D_in_mm": -1,
                        "inter_edge_D_in_mm": -1,
                        "ball_D_in_mm": -1,
                        "ball_cnts": -1
                    }
                ]
            },
            "shaft_inter": [
                {
                    "sn": 1,
                    "desc": "变速箱二级输入轴",
                    "memo": "中间轴 - 一个输入大齿轮,一个输出小齿轮,2个轴承",
                    "gear": [
                        {
                            "type": -1,
                            "memo": "输入大齿轮",
                            "module": -1,
                            "tooth": -1
                        },
                        {
                            "type": -1,
                            "memo": "输出小齿轮",
                            "module": -1,
                            "tooth": -1
                        }
                    ],
                    "bearing": [
                        {
                            "type": -1,
                            "memo": "动力端轴承",
                            "outer_edge_D_in_mm": -1,
                            "inter_edge_D_in_mm": -1,
                            "ball_D_in_mm": -1,
                            "ball_cnts": -1
                        },
                        {
                            "type": -1,
                            "memo": "随动轴承",
                            "outer_edge_D_in_mm": -1,
                            "inter_edge_D_in_mm": -1,
                            "ball_D_in_mm": -1,
                            "ball_cnts": -1
                        }
                    ]
                },
                {
                    "sn": 2,
                    "desc": "变速箱三级输入轴",
                    "memo": "中间轴 - 一个输入大齿轮,一个输出小齿轮,2个轴承",
                    "gear": [
                        {
                            "type": -1,
                            "memo": "输入大齿轮",
                            "module": -1,
                            "tooth": -1
                        },
                        {
                            "type": -1,
                            "memo": "输出小齿轮",
                            "module": -1,
                            "tooth": -1
                        }
                    ],
                    "bearing": [
                        {
                            "type": -1,
                            "memo": "动力端轴承",
                            "outer_edge_D_in_mm": -1,
                            "inter_edge_D_in_mm": -1,
                            "ball_D_in_mm": -1,
                            "ball_cnts": -1
                        },
                        {
                            "type": -1,
                            "memo": "随动轴承",
                            "outer_edge_D_in_mm": -1,
                            "inter_edge_D_in_mm": -1,
                            "ball_D_in_mm": -1,
                            "ball_cnts": -1
                        }
                    ]
                }
            ],
            "shaft_out": {
                "desc": "变速箱输出轴",
                "memo": "输出轴 - 一个输入齿轮,2个轴承",
                "gear": [
                    {
                        "type": -1,
                        "memo": "输入大齿轮",
                        "module": -1,
                        "tooth": -1
                    }
                ],
                "bearing": [
                    {
                        "type": -1,
                        "memo": "动力端轴承",
                        "outer_edge_D_in_mm": -1,
                        "inter_edge_D_in_mm": -1,
                        "ball_D_in_mm": -1,
                        "ball_cnts": -1
                    },
                    {
                        "type": -1,
                        "memo": "随动轴承",
                        "outer_edge_D_in_mm": -1,
                        "inter_edge_D_in_mm": -1,
                        "ball_D_in_mm": -1,
                        "ball_cnts": -1
                    }
                ]
            }
        },
        "final_output": {
            "name": "齿轮齿条摇架",
            "gear": [
                {
                    "type": -1,
                    "memo": "输入外齿轮",
                    "module": 20,
                    "module_scale": "mm",
                    "tooth": 16
                },
                {
                    "type": -1,
                    "memo": "齿条",
                    "module": 20,
                    "module_scale": "mm",
                    "length": 4631
                }
            ]
        },
        "smooth_oil": {
            "desc": "润滑液",
            "std_tempeature": -1,
            "deadline_tempeature": -1
        }
    }
}

附录B 故障频点自动解析程序(.py)

并不完整,仅显示部分逻辑。可以逆推处理的方法。

''''
''''

class GpGearDesc:
    def __init__(self, module, tooth, ratioOfShaft):
        self.module = module
        self.tooth = tooth
        self.ratioOfShaft = ratioOfShaft
        self.ratioOfGear = ratioOfShaft*tooth
    
    def __hash__(self):
        # 返回一个哈希值,通常可以使用内置类型的哈希值,比如元组
        return hash((self.module, self.tooth))
    
    def __eq__(self, other):
        # 定义相等性判断逻辑
        return isinstance(other, GpGearDesc) and (self.module == other.module) and (self.tooth == other.tooth)

    def __str__(self):
        return str("gear.errFreq:%8.3f, with(shaftRatio=%8.3f, module=%8.3f, tooth=%8.3f" (self.ratioOfGear, self.ratioOfShaft, self.module, self.tooth))

    def __repr__(self):
        return f"GpGearDesc('moudle = {self.module}', tooth = {self.tooth})"


''''
''''
def getVibrationSensorList_v1(filename):
    # 读取JSON文件
    sensor_data={}
    with open(filename, 'r', encoding='utf-8') as file:
        sensor_data = json.load(file)
    # 初始化温振型传感器数量
    total_temperature_vibration_sensors = 0

    # 遍历每个单元
    sensor_location = []
    for unit in sensor_data["sensors"]:
        # 获取当前单元的温振型传感器数量
        unit_temperature_vibration_sensors = sum(unit["sensors"]["温振型"].values())
        locations =  unit["sensors"]["温振型"].keys();
        cntOfLocation =  unit["sensors"]["温振型"].values();
        for loc in unit["sensors"]["温振型"]:
            for j in np.arange(unit["sensors"]["温振型"][loc]):
                sensor_location.append(unit["unit"] + "\\" + loc + "\\" + str("%02d" %j))
        # 将当前单元的数量添加到总数中
        total_temperature_vibration_sensors += unit_temperature_vibration_sensors
    # 打印总数
    print("总温振型传感器数量:", total_temperature_vibration_sensors)     
    print(sensor_location)
    return sensor_location

def doGearsOfShaft(gearsArray, shaftRpm, shaftName, arGear, last_gear_tooth):
    gearIdx = 1
    for gear in gearsArray:
        gearName = str(shaftName+"\\gear\\%d" %gearIdx)
        gearRpmRatio = shaftRpm;
        gearTooth = gear["tooth"]
        gearModule = gear["module"]
        arGear |= {gearName: GpGearDesc(gearModule, gearTooth, gearRpmRatio)}
        gearIdx=gearIdx+1
        last_gear_tooth = gearTooth
    return last_gear_tooth

def doBearingsOfShaft(bearingArray, shaftRpm, shaftName, arBearing):
    bearingIdx = 1
    for bearing in bearingArray:
        bearingName = str(shaftName +"bearing\\%d" %bearingIdx)
        outer_edge_D_in_mm = bearing["outer_edge_D_in_mm"]
        inner_edge_D_in_mm = bearing["inter_edge_D_in_mm"]
        ball_D_in_mm = bearing["ball_D_in_mm"]
        ball_cnts = bearing["ball_cnts"]
        arBearing |= {"bearingName": GpBearingDesc(outer_edge_D_in_mm*1e-3, inner_edge_D_in_mm*1e-3, ball_D_in_mm*1e-3, ball_cnts, shaftRpm)}
        bearingIdx += 1


def getVibrationUnitsOf(arJsonFiles):
    ret=[]
    # 遍历每个单元
    arShaft = {}
    arGear = {}
    arBearing = {}

    for filename in arJsonFiles:
        # 读取JSON文件
        sensor_data={}
        with open(filename, 'r', encoding='utf-8') as file:
            sensor_data = json.load(file)

        # 初始化温振型传感器数量
        total_vibration_units = 0
    
        last_gear_tooth = -1
        for unit in sensor_data["unit"]:
            if "gearbox" == unit:
                shaftRpm = 1.0;
                if("shaft_in" in sensor_data["unit"]["gearbox"].keys()):
                    si = sensor_data["unit"]["gearbox"]["shaft_in"]
                    shaftName = filename + "\\gearbox\\shaft_in";
                    shaftRpm = shaftRpm*si["gear"][0]["tooth"]/si["gear"][1]["tooth"]
                    arShaft |= {shaftName:shaftRpm}
                    
                    last_gear_tooth = doGearsOfShaft(si["gear"], shaftRpm, shaftName, arGear, last_gear_tooth)
                    doBearingsOfShaft(si["bearing"], shaftRpm, shaftName, arBearing)
                if("shaft_inter"):
                    rpmUpdated = False;
                    for si in sensor_data["unit"]["gearbox"]["shaft_inter"]:
                        if not (rpmUpdated):
                             shaftRpm = shaftRpm*si["gear"][0]["tooth"]/last_gear_tooth
                             rpmUpdated = True
                        shaftName = filename + "\\gearbox\\shaft_inter";
                        arShaft |= {shaftName:shaftRpm}
                        last_gear_tooth = doGearsOfShaft(si["gear"], shaftRpm, shaftName, arGear, last_gear_tooth)
                        doBearingsOfShaft(si["bearing"], shaftRpm, shaftName, arBearing)
                if("shaft_out" in sensor_data["unit"]["gearbox"].keys()):
                    si = sensor_data["unit"]["gearbox"]["shaft_out"]
                    shaftRpm = shaftRpm*si["gear"][0]["tooth"]/last_gear_tooth
                    shaftName = filename + "\\gearbox\\shaft_out";
                    arShaft |= {shaftName: shaftRpm}
                    last_gear_tooth = doGearsOfShaft(si["gear"], shaftRpm, shaftName, arGear, last_gear_tooth)
                    doBearingsOfShaft(si["bearing"], shaftRpm, shaftName, arBearing)
    # 打印总数
    #
    return (arShaft, arGear, arBearing)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/554616.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

claude不支持中国怎么办

Claude 3 是AnthropicAI 公司推出的大语言模型,直接对标GPT4。Claude 3 系列模型,包括Claude 3 Opus、Claude 3 Sonnet 和 Claude 3 Haiku。 我们完全可以依据自己的需求选用适合的模型,在在智能水平、处理速度和成本之间,找到最…

取模学习之Image2Lcd

使用软件Image2Lcd V0.4 1.:打开图片,图片格式可选如下图,本文使用的.jpg格式 转换后数组例子(数组头数据占前8字节): 2.:扫描模式 由第1个字节低四位配置 (1)水平扫描 …

vue3 源码解析(7)— diff 算法源码的实现

前言 vue3 采用的 diff 算法名为快速 diff 算法,整个 diff 的过程分为以下5个阶段完成。 处理前置节点处理后置节点处理仅有新增节点处理仅有删除节点处理其他情况(新增 / 卸载 / 移动) 这里我们先定义新旧两个节点列表,接下来…

再生龙(Clonezilla)网络克隆linux系统实现迁移——筑梦之路

官方网站:Clonezilla - 簡介 环境说明 源端:CentOS 7 操作系统的虚拟机,硬盘大小为 40GiB,分为 1GiB 的 /boot(启动)分区、4GiB 的 swap(交换)分区和 35GiB 的 /(根&…

K8S一 k8s基础知识及实战

一 K8S 概览 1.1 K8S 是什么? K8S官网文档:https://kubernetes.io/zh/docs/home/ K8S 是Kubernetes的全称,源于希腊语,意为“舵手”或“飞行员”,官方称其是:用于自动部署、扩展和管理“容器化&#xff08…

LeetCode in Python 509. Fibonacci Number (斐波那契数)

斐波那契数实现方式有多种方法,最容易理解的为递归法,也可使用动态规划降低时间复杂度,本文给出递归法和动态规划两种方法的代码实现。 示例: 图1 斐波那契数输入输出示例 方法一:递归法 代码: class …

如何在本地创建一个贪吃蛇小游戏node.js服务并实现无公网IP远程游玩

文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 正文开始前给大家推荐个网站,前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽…

CoFSM基于共现尺度空间的多模态遥感图像匹配方法--论文阅读记录

目录 论文 Multi-Modal Remote Sensing Image Matching Considering Co-Occurrence Filter 参考论文:SIFT系列论文, SIFT Distinctive Image Features from Scale-Invariant Keypoints,作者:David G. Lowe 快速样本共识算法…

Leetcode 53. 最大子数组和

心路历程: 子数组的和是可以通过前面的和加上当前值递推获得,所以可以用动态规划解决这道题 注意的点: 1、这道题再获取最大值时res不能用0而需要用负无穷初始化 解法:动态规划 class Solution:def maxSubArray(self, nums: …

(十三)C++自制植物大战僵尸游戏多用户存档实现(二)

植物大战僵尸游戏开发教程专栏地址http://t.csdnimg.cn/8UFMs UserData.h 在头文件中定义了枚举类型openUserDataReturnType,用于表示打开用户数据文件的返回状态。FileExistError表示文件存在但是打开错误,FileExistCorrect表示文件在且正确&#xff0…

Python | Leetcode Python题解之第29题两数相除

题目: 题解: class Solution:def divide(self, dividend: int, divisor: int) -> int:INT_MIN, INT_MAX -2**31, 2**31 - 1# 考虑被除数为最小值的情况if dividend INT_MIN:if divisor 1:return INT_MINif divisor -1:return INT_MAX# 考虑除数为…

Pandas数据分析学习笔记

前言 开刷Pandas数据分析,看起来很好理解,不过没做笔记没敲代码心里总是不安稳,所以复现下课程代码并演示其中遇到的问题,顺便水一水笔记好了 参考资料: 课程视频链接:Pandas数据分析从入门到实战 数据…

Halo自定义页面

在使用Halo后台维护项目,有的页面是固定的,但内容需要一些自定义样式,内容动态编辑生成,这个时候就需要自定义页面; Halo版本 版本:2.121.首先在theme.yaml中添加自定义页面并指定文件名 spec:customTemplates:page:…

面试题集中营—GC日志简析及频繁GC的调优

如何查看GC日志 有两种方式查看GC日志&#xff0c;一种是动态命令行查看 jstat -gc <pid> 300 5 第二种就是在JVM参数中增加打印的参数&#xff0c;如下&#xff1a; -XX:PrintGCDetails -XX:PrintGCTimeStamps 表示打印每次GC的日志以及GC发生的时间 -Xloggc:gc.log …

如何解决PPT中获取加载项是灰色的,无法链接到Power BI的问题?

问题描述&#xff1a; 最近有朋友留言询问:“在尝试之前我发布的如何在PPT中展示Power BI报告的操作步骤的时候&#xff0c;想要在PPT中展示Power BI报告&#xff1f;只需这样做&#xff01; (qq.com) 碰到在PowerPoint中【获取加载项选项】是灰色&#xff0c;无法链加载Powe…

WordPress网站上添加看板娘

续接上篇——基于LNMP部署wordpress-CSDN博客 目录 一.下载并解压 二.设置头文件 修改header.php 修改配置文件footer.php 三.将你设置的主题包上传到/usr/share/nginx/html/wp-content这个目录里 四.扩展——将看板娘修改到左侧 一.下载并解压 [rootaliyun ~]# wget htt…

技术分享 | app测试中常用的Android模拟器

Emulator Emualor 是 Android Studio 自带的模拟器&#xff0c;是官方提供的工具&#xff0c;Android 开发最常使用的就是这一款。 它功能非常齐全&#xff0c;电话本、通话等功能都可正常使用。用户可以使用键盘输入&#xff0c;鼠标点击模拟器按键输入&#xff0c;甚至还可…

安卓投屏延时数据如何测试,测试工具如何写?

背景&#xff1a; 投屏其实在android等使用场景非常非常多&#xff0c;比如现在火爆小米汽车的车机&#xff0c;上面涉及到手机和车机互联画面相关都是属于投屏范围。这种跨设备的投屏场景&#xff0c;流畅的体验是最重要的&#xff0c;这里就会要求投屏中最重要的一个性能指标…

Nerf技术原理

Neural Radiance Fields (NeRF) 是一种3D场景重建技术,用于从一组稀疏的2D图像创建高质量的3D模型。这一技术基于深度学习,通过训练一个神经网络来模拟场景的体积密度和颜色分布,实现在新的视角下渲染出高质量的3D图像。 NeRF的核心原理 NeRF的核心在于使用一个全连接的神经…

开源事件通知库libevent及网络连接管理模块bufferevent详解

目录 1、libevent介绍 1.1、什么是libevent&#xff1f; 1.2、libevent特点 1.3、网络连接管理模块bufferevent 2、bufferevent有什么用&#xff1f; 3、bufferevent的整体设计与实现细节 3.1、整体概况 3.2、evbuffer与bufferevent 3.3、defer callback 4、bufferev…