news 2026/5/13 20:58:13

齿轮啮合刚度傅立叶级数展开程序解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
齿轮啮合刚度傅立叶级数展开程序解析

齿轮啮合刚度傅立叶级数展开程序,注释给全,附带一个例子

在机械动力学领域,研究齿轮啮合刚度的特性至关重要。而通过傅立叶级数展开可以对其进行深入分析。下面咱们就来详细看看相关的程序实现。

程序代码

import numpy as np import matplotlib.pyplot as plt # 定义傅立叶级数展开函数 def fourier_series_expansion(x, a0, an_coeffs, bn_coeffs, num_terms): result = a0 / 2 for n in range(1, num_terms + 1): result += an_coeffs[n - 1] * np.cos(n * x) + bn_coeffs[n - 1] * np.sin(n * x) return result # 假设我们有一组齿轮啮合刚度数据(这里简单模拟) # 周期T假设为2*pi T = 2 * np.pi # 采样点数 N = 1000 x = np.linspace(0, T, N) # 模拟的齿轮啮合刚度数据 y = 2 + 3 * np.cos(x) + 1.5 * np.sin(2 * x) # 计算傅立叶系数 # 计算a0 a0 = (2 / T) * np.trapz(y, x) # 计算an an_coeffs = [] for n in range(1, 10): integrand = y * np.cos(n * x) an = (2 / T) * np.trapz(integrand, x) an_coeffs.append(an) # 计算bn bn_coeffs = [] for n in range(1, 10): integrand = y * np.sin(n * x) bn = (2 / T) * np.trapz(integrand, x) bn_coeffs.append(bn) # 使用傅立叶级数展开重构数据 num_terms = 5 reconstructed_y = fourier_series_expansion(x, a0, an_coeffs, bn_coeffs, num_terms) # 绘图展示 plt.plot(x, y, label='Original Data') plt.plot(x, reconstructed_y, label='Reconstructed Data ({} terms)'.format(num_terms)) plt.xlabel('x') plt.ylabel('Gear Mesh Stiffness') plt.legend() plt.show()

代码分析

  1. 导入必要的库
    -numpy是Python中常用的数学计算库,在处理数值计算如积分、三角函数运算等方面非常方便。
    -matplotlib.pyplot主要用于数据可视化,我们可以用它将原始数据和傅立叶级数展开重构后的数据进行绘图展示,直观地看到两者的关系。
  1. 定义傅立叶级数展开函数
    -fourierseriesexpansion函数接收自变量x,常数项a0,余弦项系数列表ancoeffs,正弦项系数列表bncoeffs以及展开项数numterms
    - 公式中首先加上常数项a0 / 2,然后通过循环,从n = 1num
    terms,依次加上ancos(nx)bnsin(nx),最终返回傅立叶级数展开的结果。
  1. 模拟齿轮啮合刚度数据
    - 我们假设周期T2pi,在这个周期内生成N = 1000个采样点x
    - 这里简单构造了一个函数y = 2 + 3
    cos(x) + 1.5sin(2x)来模拟齿轮啮合刚度数据,实际应用中这个数据可能来自实验测量或其他复杂模型。
  1. 计算傅立叶系数
    -计算a0a0的计算公式为(2 / T)∫y(x)dx,在代码中通过np.trapz(y, x)来数值计算积分,np.trapznumpy提供的梯形积分方法。
    -计算an:循环从n = 19(这里选择计算前9项,实际可按需调整),对于每一个n,计算积分(2 / T)
    ∫y(x)cos(nx)dx,同样使用np.trapz进行数值积分,并将结果添加到ancoeffs列表中。
    -计算bn:与计算an类似,只是积分中的被积函数变为y(x)sin(nx),计算结果添加到bn
    coeffs列表。
  1. 重构数据与绘图
    - 选择展开项数为5,调用fourierseriesexpansion函数重构数据得到reconstructedy
    - 最后使用matplotlib绘图,将原始数据y和重构数据reconstructed
    y绘制在同一幅图中,通过标签和图例区分,这样可以很直观地看到使用傅立叶级数展开重构数据与原始数据的拟合程度。

通过这个程序示例,相信大家对齿轮啮合刚度的傅立叶级数展开有了更清晰的认识,实际应用中可以根据具体的需求调整参数和数据处理方式。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/8 7:48:38

使用Python处理JSON Lines格式的文件

使用Python处理JSON Lines格式的文件常用来处理JSON Lines格式日志文件;也适用于 .txt 中存储的 JSON 数据。著-------------Pan诶1准备需要使用到的外部库:Pandas、json。导入库,代码如下:import pandas as pdimport jsonimport …

作者头像 李华
网站建设 2026/5/10 14:59:52

海豹油 vs 鱼油,一秒看懂哪个更适合你

为什么越来越多人选择 mixomi 海豹油作为长期 Omega-3 补充方案在众多 Omega-3 营养补充剂中,鱼油和海豹油无疑是被讨论最多的两种。鱼油长期占据主流,而近年来,含有 DPA 的海豹油,正逐渐成为关注“吸收效率”和“结构完整性”人群…

作者头像 李华
网站建设 2026/5/10 2:29:05

【多Agent系统实战指南】:从理论到落地的7步协同构建法

第一章:跨领域 Agent 协同机制的核心挑战在分布式智能系统中,跨领域 Agent 协同机制的设计面临多重技术与架构层面的挑战。不同领域的 Agent 往往基于异构的技术栈、通信协议和语义模型构建,导致信息交互存在天然壁垒。语义异构性 各领域 Age…

作者头像 李华
网站建设 2026/5/9 21:12:10

22、公共和私有证书的获取与SSL通信通道配置

公共和私有证书的获取与SSL通信通道配置 1. 证书更新与获取概述 SSL证书的更新过程与获取过程类似,但更新速度会稍快一些。获取私有证书需要已部署的PKI(公钥基础设施),如果PKI未正确部署,可能需要重新搭建,这会使之前颁发的所有证书失效。 2. 获取和更新私有证书 2.…

作者头像 李华
网站建设 2026/5/12 13:01:12

好用的Windows软件推荐

好用的Windows软件推荐 ​ 本内容来源于GitHub项目:https://github.com/stackia/best-windows-apps ​ 目录 For Everyone如果你是工程师如果你是影视与设计工作者偶尔想摸鱼的话 1. For Everyone 名称推荐理由授权方式相关链接Flow Launcher快搜搜索文件和启动…

作者头像 李华
网站建设 2026/5/4 19:10:50

一种用于智能体系统的动作级强化学习微调模块设计与实现

一种用于智能体系统的动作级强化学习微调模块设计与实现 一、背景:为什么“动作执行精度”成了智能体瓶颈? 在当前的智能体(Agent)系统中,我们往往把更多注意力放在决策是否正确上,却忽略了另一个现实问题&…

作者头像 李华