ADAMS模型导入,振动分析,以及MATLAB/SImulink联合仿真 流程笔记

您所在的位置:网站首页 模态分析怎么看固有频率 ADAMS模型导入,振动分析,以及MATLAB/SImulink联合仿真 流程笔记

ADAMS模型导入,振动分析,以及MATLAB/SImulink联合仿真 流程笔记

2024-07-16 18:41| 来源: 网络整理| 查看: 265

仅对自己之前做的课题中的一部分做总结,概括,所以省略了很多的东西,主要把联合仿真总结一下。主要涉及内容为:

    1. 关于CATIA模型导入ADAMS 

    2. 关于ADAMS模型中的振动分析

    3. 关于借助MATLAN对ADAMS模型的联合仿真分析

----前言----

课题中有一部分,是需要对一个车辆传动系统,包括后桥在内的模型进行固有特性分析,以及对各种工况下进行强迫振动分析,并进行优化。由于前期对软件等之类的不熟悉,踩了许多坑,也十分影响自己的进度,故回过头来,整理出来,希望对知识点进行总结了,对各位B友有些帮助。

---CATIA建模

对自己的车辆模型进行简单分析之后,遂开始仿真建模,借助CATIA进行模型建立。

注意点:

    a.建议以PART 类型进行建模,并新建大量关键点并做区分,否则在后期ADAMS中进行取点时极为麻烦。

    b.保存为igs格式(我的大脑仅支持这种格式,其他的我没操作成功过)

---ADAMS模型导入并做处理

讲另存为igs 格式的模型,放在一个统一文件夹,作为ADAMS 的环境路径。

打开ADAMS软件,新建一个模型NEW MODEL,选择工作环境(一般不建议中文路径)working Directory进入初始界面。

FIg1.初始界面

在File--Import 栏中,进行igs模型的分别导入。Fig2.

File Type 选择导入模型的格式;File to read 右键--brouse,选择导入的模型

Part Name 栏,右键---Part---Create  对part 进行命名,一般以默认的严格名称即可,更改会报错。Fig3

Fig2.Fig3

导入模型之后,通过ADAMS 各类操作对你的模型进行平移,旋转。Fig4

踩坑点:

        1. 位置变换功能中的Translate平移,是以当前平面为基准,即必须通过功能栏中的 视图功能选定操作的平面。

        2. Rotate 旋转功能以当前屏幕中心为圆心,以当前平面为基准平面。即必须通过视图选择操作平面,必须通过Rotate 中间那个按钮选择你的旋转圆心,才能精准操作

        3.应该先点击选择模型,再点击Position 功能按钮

Fig4

后面就是分别导入各个模型,位置变换,建立部件与部件之间的约束,建立部件的自身属性(重量,质心,转动惯量等之类),建立部件与大地ground之间的约束。

建立各种需要用到的力约束,例如弹簧等。

最终可以得到一个简单的刚体模型:Fig5

Fig5

---利用ADAMS 获取系统的振动固有特性---

---ADAMS进行强迫振动分析---

想要获取系统固有特性,按照振动理论,只要给激励输入,同时确定观测自由度,就可以获取系统固有特性。列如:电机有z向,俯仰两个自由度,可以z向自由度给激励,同时z向自由度做观测,就可以获取 z向激励--z向相应的振动特性。同理对整个系统进行自由确定(省略)。

    1,设置一个输入(激励)。在vibration 模块---Build--Input Channel--New

Fig6

        名称可改;激振力选择Force;

        输入点右键--Marker--Pick点击屏幕上的点选择激振力的作用点(注意物体自带的点和大地上的点区别);

        选择 Translation (点力)或者 Rotational (扭矩)。

        选择力的方向Force Direction为全局还是随物体运动的local,全局方向看大坐标。

        一般选择普通的三角函数 Swept Sine,一般幅值Force Mag=1,相位Phase Angle=0

Fig7

    建立好的输入可以在左侧栏中以及图中显示:Fig8

    

Fig9

    同理,可以对关注的自由度建立一个输出 Output,来观测激励输入下的输出情况。

    vibration 模块---Build--Output Channel--New

    选择关注自由度的输出点Output Marker,关注的属性,以及方向 。

    同理可以建立系统所有自由度的激励与关注输出。(一般每个自由度都可以建立一个输入和输出)

所有关注的自由度上,激励与关注的输出建立完毕之后,下面就是建立振动分析,vibration模块--Test--Vibration Analysis  

新建一个振动分析,选择强迫振动分析Forced Vibration Analysis的话,可以通过下面的频率范围的设置进行强迫振动分析,可以得到在某些自由度激励下,其他自由度的强迫振动相应情况。选择Nor Mode Analysis 可以进行固有特性分析,即得到固有频率和固有振型。

Input channel 右键可以选择之前建立的输入,output channels可以选择关注的输出。

建立好分析之后,F8 进入数据分析界面,可以选择刚刚进行的振动分析,进行曲线输出,这里列举 一个激励下的强迫振动相应幅值曲线Fig10.

Fig10

同样的,我们可以建立一个固有特性Analysis 。在Model Energy Computation功能中 勾选上坐标计算。

Fig11

那么我们就可以在varivibration模块---Review--Display Modal Info Table功能下看到对整个模型计算得到的固有频率和固有振型。通过选择Mode 观测不同的模态信息

例如:可以读出无阻尼的固有频率, 模态阻尼比,  广义质量(模态质量),广义刚度(模态刚度),以及模态1下的固有振型坐标(模型当时没调好)Fig12.

Fig12

----与MATLAB的联合仿真---

确保模型没啥问题之后,开始规划与MATLAB数学模型的变量数据传输,哪些参数是需要从ADAMS传出去到MATLAB的?哪些参数是从MATLAB读取到ADAMS中的?怎么关联的。

例如:MATLAB 会给一个时变的车速,车速转变为对车轮的激励,那么必须建立一个变量存储这个车速,再写到一个函数中,赋值给作用于车轮的力,那么这个车轮的力就不是常量了,是一个function。又列如,如果轴存在偏心,车速也会对传动系统的纵向产生激振力,那么我可以先在轴上给一个Force,并存储为一个变量,用来接收来自MATLAB计算出的轴速相关的力,这样实时的轴速,可以转变对模型的实时Force。

首先可以通过Elements 建立一系列System Elements 用以ADAMS 内部参数识别与存储,关注的的力,速度,位移都可以列为变量,可以通过Function函数功能实现对任何参数的观测(具体函数分析不展开)。这些变量,既可以用以内部计算引用,也可以用来输入与输出。Fig13

踩坑点:

    建立的System Elements尽量要建立一个measurement确认,ADAMS中很多概念定义和平常想的会不一样,防止建立的变量不是自己真正需要的

Fig13

在所有的System Elements 规划编辑好之后。确定哪些参数是需要往外传,以及哪些参数是从外部接收的。Fig14。

建立DATA Elements ,建立PINPUT以及POUTPUT,表示输出与输出并与上文建立的System Ele 关联。

Fig14

所有参数建立OK之后,就是生成一个MATLAB可以用的接口文件(我也不知道叫啥)。

在Control --Plant Export 界面,进行一些参数设置。

Initial Static Analysis 可以帮助你对模型的初始化进行检查,如果模型初始化为静态就没啥问题,如果初始不是静态(比如力不平衡)静态分析就过不了。

在From Pinput 以及From Poutput 可以导入自己建立的对外输入与输出的变量。注意不要留空否则报错

Target Software选择对接的软件,我自己用的MATLAB。

根据模型可以选择线性linear 或者非线性Nonlinear

solver choice可以默认选择FORTRAN(MATLAB对应)(其他没研究过)

建立好之后,就可以在你的工作环境下看到生成的接口文件

Fig 接口文件

----MATLAB设置---

将你的Simulink 文件,放到ADAMS工作环境下(纯属方便)。

MATLAB中选定该文件夹作为环境,添加到路径

改路径下输入你的m文件名称

输入 adams_sys   进入它的simulink模块,等待弹出Adams的接口simulink

选择了多少输出输入,都会在这里显示出来

这些模块是可以通过复制直接导入到自己的simulink里面

关于ADAMS模块的一些配置:进入sub,对MSC进行一些配置

确认对应的算法Adams/Solver type

协议默认interprocess(没研究过)

是否交互 animation mode, 选择interactive 会有与ADAMS 的交互动画

仿真模式Simulation mode  离散discrete 还是连续continuous。(我自己在仿真中发现,对于刚体模型,算法中的误差一直存在且不好消除(理论中也是这样),所以选择连续往往会产生一些奇奇怪怪的误差,且有可能会出现不收敛的情况。选择离散的话,曲线不会顺滑,但是误差会很小,虽然这也和MATLAB 中自己选定的算法有关,离散的数据对于需要取来用也不是很方便,存在连续2点数值相同的情况)

communication interval   交互数据传输的时间步长(好像是越小精度越高,但是受外部算法影响)

Fig adams 模块的设置

模块复制到自己的simulink,数据连接与调整,选择simulink 的算法。(为了方便演示随便选了个ode113adams的变步长算法)

然后就是运行看结果咯



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3