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

news2024/11/17 23:30:47

首先说说结论:在不和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)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode 1052. 爱生气的书店老板

题目链接 https://leetcode.cn/problems/grumpy-bookstore-owner/description/?envTypedaily-question&envId2024-04-23 先把最初的满意人数累加算出来,然后使用滑动窗口来模拟连续 minutes分钟不生气,计算不生气minutes分钟最大的满意数 class S…

2010-2023年“国家级大数据综合试验区”试点城市DID匹配数据

2010-2023年国家级大数据综合试验区试点城市DID匹配数据 1、时间:2010-2023年 2、来源:国家发展改革委、工业和信息化部、ZY网信办发函批复的试验区 3、指标:行政区划代码、年份、所属省份、地区、国家级大数据综合试验区、最早设立年份 …

基于Google Gemini 探索大语言模型在医学领域应用评估和前景

概述 近年来,大规模语言模型(LLM)在理解和生成人类语言方面取得了显著的飞跃,这些进步不仅推动了语言学和计算机编程的发展,还为多个领域带来了创新的突破。特别是模型如GPT-3和PaLM,它们通过吸收海量文本…

面试遇到算法题:实现LRU缓存

请你设计并实现一个满足 LRU (最近最少使用) 缓存约束的数据结构。 这是一道大厂面试高频出现的算法题,难度为⭐️⭐️⭐️,属于中等,老铁们来一起看看这个题该怎么解? 1. 原题再现 没有废话,翠花,上酸菜&…

LeetCode:2385. 感染二叉树需要的总时间(DFS Java)

目录 2385. 感染二叉树需要的总时间 题目描述: 实现代码与解析: DFS 原理思路: 2385. 感染二叉树需要的总时间 题目描述: 给你一棵二叉树的根节点 root ,二叉树中节点的值 互不相同 。另给你一个整数 start 。在第…

Simulink从0搭建模型03-Enabled Subsystem 使能子系统

参考博客 b站视频 【Simulink 0基础入门教程 P4 使能子系统 Enabled Subsystem 的使用介绍】 个人听了这个博主的视频风格觉得很适合我入门学习,讲得很清楚。 另外,视频里面教得很详细了,我也不会再详细写怎么打开创建等步骤,跟着…

QT中对于QPushButton样式的调整

文章目录 前言1.QPushButton1.1 新建项目导入资源1.2 添加Push Button并定义样式1.3 调整样式1.4 实际需求情况1.5 背景色和边框 2. 一些概念理解2.1 图片2.2 边距 总结 前言 前段时间在调软件的样式,学到了些新的东西,也碰到了些问题,这里做…

电脑遗失d3dx9_43.dll文件会给电脑带来什么问题,有哪些方法可以解决丢失d3dx9_43.dll文件的办法

电脑遗失了d3dx9_43.dll文件,可能会引发一系列麻烦的后果。那么,针对这种情况,我们应该采取哪些方法来修复丢失的d3dx9_43.dll文件呢?下面将介绍几种解决d3dx9_43.dll文件丢失问题的有效方法。 对d3dx9_43.dll文件的简要介绍 d3d…

Flutter 中优雅切换应用主题的组件

Flutter 中优雅切换应用主题的组件 视频 https://youtu.be/L–XLpc452I https://www.bilibili.com/video/BV1wD421n75p/ 前言 原文 https://ducafecat.com/blog/flutter-app-theme-switch Adaptive Theme 这个组件通过包裹 MaterialApp 的方式整体管理 theme 主题&#xff0…

Linux中Ctrl+C和Ctrl+Z的区别_实战讲解(超详细)

1、CtrlC和CtrlZ的区别: CtrlZ:暂停进程 即挂起进程 暂停当前进程并将其放到后台。可以在后续恢复执行。 暂停的进程仍然占用系统内存 CtrlC:终止进程 终止进程后,程序代码占用的内存会释放掉 2、实战讲解 跑人工智能代码的时候…

Ts类型体操详讲 之 extends infer (下)

目录 1、函数 (1)提取参数类型 (2)提取返回值类型 2、构造器 (1)提取构造器返回值 (2)提取构造器参数类型 3、索引类型 本章我们继续上节的内容继续,展示我们对ex…

day12 过一遍Nestjs框架(java转ts全栈/3R教室)

介绍:NestJS是Ts技术栈的后端框架,相当于Java中的springboot。 学习方法:与java技术体系进行对比学习。学习目标:nest相关知识也是挺多,但对比学spring的时候,大部分在项目生产中都是套路化的,大…

Qt开发(二)打包发布

注意qt6生成的exe不能再win7(包含win7)以下运行 1、编译程序 编译程序不演示 2、找到exe文件 在这个路径下找到该exe文件 3、打包 新建一个文件夹 将exe放在该文件夹下除了exe开始这里面没有其他文件 找到安装目录下 在cmd中运行 把这个文件和编…

html2Canvas截图包含滚动条解决思路

概况描述 在项目中使用html2Canvas进行截图时发现无法截取滚动条部分,前端是使用vue2的版本,网上找了很多方式都没效果,冷静思考后,给出解决办法。 解决思路 当我们截取的div容器的宽和高与内部的子容器div的宽和高不一样时&am…

江开2024年春《大学英语(B)(2) 060052》过程性考核作业4参考答案

答案:更多答案,请关注【电大搜题】微信公众号 答案:更多答案,请关注【电大搜题】微信公众号 答案:更多答案,请关注【电大搜题】微信公众号 单选题 1阅读Passage One,回答C-1C-4个问题。请…

七星创客新零售系统:颠覆性商业模式的崛起

大家好,我是微三云周丽,今天给大家分析当下市场比较火爆的商业模式! 小编今天跟大伙们分享什么是七星创客新零售系统? 随着经济的快速发展和科技的不断进步,商业模式的革新成为了企业发展的关键。在这个新旧动能转换、…

【2023】springboot通过阿里云oss进行文件单个批量文件上传下载

SpringBoot整合阿里OSS实现上传下载 目录💻 前言一、介绍二、阿里云添加oss1、进入oss目录2、创建bucket3、测试上传下载4、创建AccessKey管理账号 三、依赖以及配置1、依赖2、yml3、Config类4、OSSUtil 工具类 四、controller五、测试1、测试上传2、测试删除 前言 …

牛客 题解

文章目录 day4_17**BC149** **简写单词**思路:模拟代码: dd爱框框思路:滑动窗口(同向双指针)代码: 除2!思路:模拟贪心堆代码: day4_17 BC149 简写单词 https://www.now…

stm32F407-PS手柄代码,20240424

一、硬件接线 手柄接收器—stm32板子 GND—GND VCC—5V DAT–F3 CMD–F5 CS–F6 CLK–F4 二、PStwo.h #ifndef __PSTWO_H #define __PSTWO_H//F3 F5 F6 F4 F10 // #include "delay.h" #include "sys.h"#define DI PFin(3) //PB12 输入#defin…

C# Solidworks二次开发:枚举应用实战(第三讲)

大家好,今天继续介绍枚举相关内容。 下面是今天要介绍的枚举: (1)第一个为swACisOutputVersion,这个枚举为ACIS的版本,下面是官方的具体解释: 其枚举值为: MemberDescriptionswAc…