news 2026/8/9 20:54:50

轴承-转子系统动力学仿真手记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
轴承-转子系统动力学仿真手记

MATLAB轴承—转子系统动力学代码(可考虑轴承故障、转子碰摩、转子涂层),根据集中质量法建模(含数学方程建立和公式推导)并在MATLAB中采用ODE45进行数值计算。 可模拟不同系统参数的动力学特性,输出时域加速度、速度和位移波形、动态碰摩力、频谱图、相图、庞加莱图和分岔图。

最近在折腾旋转机械的故障仿真,发现用集中质量法建模轴承-转子系统还挺有意思。这个模型能模拟轴承故障、转子碰摩这些典型问题,今天就来说说怎么用MATLAB的ODE45实现这个动力学仿真。

先上核心的数学模型。我们把转子简化为两个垂直方向的自由度,考虑质量块的位移x和y。轴承刚度用k表示,阻尼系数c,碰摩发生时会产生非线性接触力。系统方程长这样:

mx'' + cx' + k*x = Funbalance + Frubbing

my'' + cy' + k*y = Funbalance + Frubbing

这里碰摩力F_rubbing的模型是关键。当转子位移超过间隙δ时触发碰摩,可以用库伦摩擦模型:

if sqrt(x^2 + y^2) > δ

F_rubbing = -μN(x/r, y/r)

else

F_rubbing = 0

end

接下来是MATLAB的实现部分。先定义系统参数:

m = 12.5; % 质量 kg k = 8e5; % 刚度 N/m c = 1200; % 阻尼 N·s/m mu = 0.08; % 摩擦系数 delta = 1e-4; % 碰摩间隙 m omega = 1200; % 转速 rpm

微分方程的函数实现需要注意状态变量的拆分。这里把x和y方向的位移、速度都放进状态向量:

function dydt = rotor_sys(t, y) % y = [x; dx/dt; y; dy/dt] global m c k mu delta omega F_unbalance = 0.05*m*omega^2*sin(omega*t); % 不平衡激励 % 碰摩力计算 r = sqrt(y(1)^2 + y(3)^2); if r > delta F_rub = -mu*k*(r - delta)*[y(1); y(3)]/r; else F_rub = [0; 0]; end % 微分方程组 dydt = zeros(4,1); dydt(1) = y(2); dydt(2) = (-c*y(2) - k*y(1) + F_unbalance + F_rub(1))/m; dydt(3) = y(4); dydt(4) = (-c*y(4) - k*y(3) + F_unbalance + F_rub(2))/m; end

这个函数有几个需要注意的点:1)全局变量的使用虽然方便,但后续可以考虑参数传递优化;2)碰摩力的方向处理需要归一化坐标;3)不平衡力的幅值需要根据实际工况调整。

求解器调用采用自适应步长的ODE45:

[t, Y] = ode45(@rotor_sys, [0 2], [1e-5 0 1e-5 0], ... odeset('RelTol',1e-6));

结果后处理可以玩出很多花样。时域波形直接plot就行,频谱分析用FFT要注意窗函数选择:

% 加速度计算 acc = gradient(Y(:,2), t(2)-t(1)); % 频谱分析 Fs = 1/(t(2)-t(1)); NFFT = 2^nextpow2(length(acc)); freq = Fs/2*linspace(0,1,NFFT/2); fft_acc = fft(acc, NFFT);

庞加莱图通过周期采样实现,分岔图则需要扫频计算。比如改变转速omega,观察系统行为变化:

omega_range = 800:50:2000; bifurcation_data = zeros(length(omega_range), 100); for i = 1:length(omega_range) omega = omega_range(i); [~, Y] = ode45(...); % 重新求解 bifurcation_data(i,:) = Y(end-99:end,1); % 取稳态解 end

实际跑代码时可能会发现,当转速接近临界转速时,系统会出现明显的共振峰。加入碰摩后,频谱中会出现超谐波成分,庞加莱图呈现点阵分布,说明系统进入准周期运动状态。

调试过程中遇到过几个坑:1)刚度系数太大导致数值发散,需要调整求解器相对误差;2)碰摩力计算时忘记归一化导致方向错误;3)分岔扫频耗时太长,后来改用parfor并行计算才解决。

最后说个有意思的现象:当摩擦系数超过0.1时,系统会出现混沌运动,相图轨迹不再闭合,分岔图上出现典型的倍周期分岔序列。这说明即使简单的两自由度模型,也能呈现丰富的非线性动力学行为。

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

Numpy库实践2_索引和数组的操作

索引 副本和视图 在 Numpy 中,尤其是在做数组运算或数组操作时,返回结果不是数组的 副本 就是 视图。 在 Numpy 中,所有赋值运算不会为数组和数组中的任何元素创建副本。 numpy.ndarray.copy() 函数创建一个副本。 对副本数据进行修改&#x…

作者头像 李华
网站建设 2026/8/7 23:05:43

初始化列表和特殊成员

一 首先要知道&#xff0c;是先执行初始化列表&#xff0c;然后在执行构造函数体#include<iostream> using namespace std;class Date { public:int m_year;int m_month;int m_day; public:Date(){m_year 0;m_month 0;m_day 0;}Date(int year, int month, int day){m_…

作者头像 李华
网站建设 2026/8/9 10:26:00

(二)前端基础框架构建

一、环境准备 1.1 技术选型 项目/模块 技术栈 核心库/框架 用途/说明 管理后台 (Web) Vue 3 vue (3.3+), vue-router , pinia 构建响应式后台的单页应用(SPA) UI框架 element-plus 提供丰富、成熟的桌面端UI组件 构建工具 vite 极速的现代化构建与开发体验 HTTP…

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

vLLM推理引擎教程6-Nsight Systems性能分析

1、概念 我们需要通过推理引擎极致地优化推理的性能&#xff0c;所以必不可少需要一个性能分析工具。 本文介绍Nvidia Nsight Systems&#xff0c;它时一个低开销的系统级性能分析器。它的核心设计目标是回答一个关键问题&#xff1a;“我的应用程序在运行过程中&#xff0c;…

作者头像 李华