news 2026/5/4 23:01:15

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

作者头像

张小明

前端开发工程师

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/5/1 0:23:16

Kubernetes 环境 NFS 卡死问题排查与解决纪要

Kubernetes 环境 NFS 卡死问题排查与解决纪要 一、事件背景 在 Kubernetes 集群运行过程中,xxxx 命名空间内多个业务 Pod 出现启动异常,部分 Pod 长时间处于 CreateContainerError 或 ContainerCreating 状态,重建 Pod、重启业务均无法恢复。…

作者头像 李华
网站建设 2026/4/30 23:46:02

艾默生EV2000变频器源代码:算法特色显著

艾默生EV2000变频器源代码,算法很有特色蹲在实验室角落拆解EV2000变频器时,意外发现它的电流环控制算法藏着点"野路子"。这货的源代码里有个特别骚的操作——在传统的矢量控制框架下嵌入了动态惯性补偿机制,简单说就是在电机突然加…

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

vue3生成的word中图片是空白

问题分析在Vue3项目中生成Word文档时出现图片空白的情况,通常是由于图片处理方式不当或文档生成工具的限制导致的。常见原因包括:图片路径问题、异步加载未完成、Base64编码错误或Word生成库对图片的支持不足。解决方案检查图片路径和加载状态 确保图片路…

作者头像 李华
网站建设 2026/5/2 6:52:11

为什么联合索引会优先使用前导字段,而不是非前导字段

好的!我们用通俗的例子和索引的底层原理来解释为什么优化器会优先使用联合索引的前导字段(即联合索引的第一个字段),以及为什么这种设计更高效。一、索引的底层结构:B树数据库索引(如InnoDB的B树索引&#…

作者头像 李华
网站建设 2026/4/30 23:46:09

华为HiSuite评测:功能、优点、缺点及最佳替代方案

华为HiSuite是华为官方开发的桌面管理工具,旨在帮助用户在电脑上管理华为手机。借助它,您可以备份数据、恢复文件、更新系统软件以及在手机和电脑之间传输内容。但华为HiSuite真的容易上手吗?它是否支持用户关心的所有数据类型?如…

作者头像 李华