adams和matlab的联合仿真心得

时间:2024.5.15

经过反复查阅资料和无数次尝试,终于初步实现了adams和matlab的联合仿真,放在这里,一为备忘,二为纪念。

*:\MSC.Software\MSC.ADAMS\2005\controls\examples中的ball_beam为例,以下为详细步骤:

1、将ball_beam文件夹拷贝到任一位置,在adams/aview中以"import a file"打开"ball_beam.cmd"。

2、假定已经完成adams的建模、约束和力的添加。

3、创建输入状态变量:my_torque

build ->state elements ->state varilable ->new:在name栏内填写“my_torque”。ok退出。

在主界面中需要连接输入状态变量的力矩标示上右点选择

"Torque:*** ->modify",在function栏后点击"function builder"按钮,填写函数VARVAL(.ball_beam.my_torque),然后ok退出。

至此,完成了“从 my_torque 中获取力矩值”的关键一步,控制软件matlab到adams的输入通道构建完毕。

4、检验定义的状态变量:

build ->state elements ->state varilable ->modify中选取 my_torque,在F(time..)栏任意填写一给定,在主界面右点然后使用“measure"进行某参数值的量测,进行仿真判断输出变量设置,完成后改回零值。

5、创建输出状态变量:my_angle, my_position

build ->state elements ->state varilable ->new:在name栏内填写“my_angle”。在F(time..)栏后点击按钮,创建函数

AZ(.ball_beam.beam.cm),ok退出。

build ->state elements ->state varilable ->new:在name栏内填写“my_position”。在F(time..)栏后点击按钮,创建函数

DX(.ball_beam.ball.cm, ball_beam.beam.ref,

ball_beam.beam.ref),ok退出。

需要说明的是,在以后的实际工作中,这些函数的定义方法需要作者自行推敲研究。

至此,完成了输出函数的创建,实现了从adams中的构件量测或计算matlab需要的输出值。

6、Build->Controls Toolkit->Plant Input,创建一个Plant Input。 Plant Input Name: ****(自定义)

Name: my_torque

7.Build->Controls Toolkit->Plant Output,创建一个Plant Output。

Plant Output Name: ****(自定义)

Name: my_Angle, my_Position

8、输出被控对象,使用Controls->Plant Export

File Prefix = **** (自定义)

Plant Input = **** (6中定义)

Plant Output = **** (7中定义)

Package = MATLAB

solver choice= 可选

host= 本机名

ok退出。

至此,文件夹下应产生.m等三个文件。

9、关闭aview,打开matlab,工作路径选择1中自定义的文件夹。

10、以后步骤有关帮助说明很详细,恕不赘述,主要有三点备忘:

(1)运行.m文件(2)运行 adams_sys (3)需要观察动画时,在adams plant中设置 Animation mode为interactive。

11、执行仿真命令,自行弹出adams界面。

注意DOS窗口,提示“找不到系统文件”,有什么影响尚且不得而知。


第二篇:adams和matlab的联合仿真 手记


初步实现了adams和matlab的联合仿真。*:\MSC.Software\MSC.ADAMS\2005\controls\examples中的ball_beam为例,以下为详细步骤:1、将ball_beam文件夹拷贝到任一位置,在adams/aview中以"import a file"打开"ball_beam.cmd"。2、假定已经完成adams的建模、约束和力的添加。3、创建输入状态变量:my_torque。build ->state elements ->state varilable ->new:在name栏内填写“my_torque”。ok退出。在主界面中需要连接输入状态变量的力矩标示上右点选择"Torque:*** ->modify",在function栏后点击"function builder"按钮,填写函数VARVAL(.ball_beam.my_torque),然后ok退出。至此,完成了“从 my_torque 中获取力矩值”的关键一步,控制软件matlab到adams的输入通道构建完毕。4、检验定义的状态变量:build ->state elements ->state varilable ->modify中选取 my_torque,在F(time..)栏任意填写一给定,在主界面右点然后使用“measure"进行某参数值的量测,进行仿真判断输出变量设置,完成后改回零值。5、创建输出状态变量:my_angle, my_position。build ->state elements ->state varilable ->new:在name栏内填写“my_angle”。在F(time..)栏后点击按钮,创建函数 AZ(.ball_beam.beam.cm),ok退出。build ->state elements ->state varilable ->new:在name栏内填写“my_position”。在F(time..)栏后点击按钮,创建函数DX(.ball_beam.ball.cm, ball_beam.beam.ref, ball_beam.beam.ref),ok退出。需要说明的是,在以后的实际工作中,这些函数的定义方法需要作者自行推敲研究。至此,完成了输出函数的创建,实现了从adams中的构件量测或计算matlab需要的输出值。6、Build->Controls Toolkit->Plant Input,创建一个Plant Input。Plant Input Name: ****(自定义)Name: my_torque7.Build->Controls Toolkit->Plant Output,创建一个Plant Output。Plant Output Name: ****(自定义)Name: my_Angle, my_Position8、输出被控对象,使用Controls->Plant ExportFile Prefix = **** (自定义)Plant Input = **** (6中定义)Plant Output = **** (7中定义)Package = MATLABsolver choice= 可选host= 本机名ok退出。至此,文件夹下应产生.m等三个文件。9、关闭aview,打开matlab,工作路径选择1中自定义的文件夹。10、以后步骤有关帮助说明很详细,恕不赘述,主要有三点备忘:(1)运行.m文件(2)运行 adams_sys (3)需要观察动画时,在adams plant中设置 Animation mode为interactive。11、执行仿真命令,自行弹出adams界面。注意DOS窗口,提示“找不到系统文件”,有什么影响尚且不得而知。发文庆祝一下ADAMS/contro中的例子ball_beam通过联合仿真,个人觉得这个例子比天线的例子更加直观,更容易理解adams和simulink的联合仿真精髓。小球在一

脉冲力的作用下沿着横梁滚动,此时梁的两端受力不平衡,梁的一段倾斜,为了使得小球不掉下横梁,在横梁上施加一个绕Z轴的力矩,横梁达到一定的角度之后逆向转动,然后小球就在这个作用力矩的控制下来回滚动而不掉下横梁!其中控制力矩在整个过程中是个动态变化的,力矩Torque_In是通过位移Position 和横梁转角Beam_Angle确定,这个是在simulink中通过框图完成的。首先我申明一下我用的是adams2003和matlab6.5以下我说明一下我的操作步骤:1、把control中的ball_beam文件copy到另外一个文件夹下,同时设置adams和matlab的默认路径即为ball_beam文件夹,这样可以省略很多不必要的麻烦!2、用aview打开ball_beam.cmd文件,先试试仿真一下,可以看到小球会在脉冲的作用下滚动,仿真时间最好大于8s3、载入control模块,点击tools|plugin manager在control框选定。4、点击control|plant export在file prefix下输入你的文件名,这个可以随便的,我输入的是myball,在plant input点击右键点击guess选定tmp_MDI_PINPUT,在tmp_MDI_PINPUT中就是输入力矩Torque_In,只有一个输入参数;同样在plant output中点击右键guess选定tmp_MDI_POUTPUT,这是模型的输出变量横梁转角Beam_Angle和小球与横梁中心轴的距离position。control package选择matlab,type是non_linear,初始化分析选择no,然后按ok!此时m文件已经生成了!5、打开matalb,设置你的工作路径在ball_beam文件夹上,键入myball,马上有%%% INFO : ADAMS plant actuators names :1 Torque_In%%% INFO : ADAMS plant sensors names :1 Beam_Angle2 Position 出现6、再键入adams_sys,弹出一个控制框图,这时可以新建一个mdl文件,将adams_sub拖入你新建的mdl框图中,其实再这里有一个偷懒的办法,就是在matlab中打开ball_beam.mdl文件,然后把他的那个adams_sub用你的刚产生的这个代替,然后另存为my_ball.mdl!7、设置仿真参数,在你刚建立的my_ball.mdl框图上的simulation parameter里设置一下stop time为10s,步长为ode15s。然后双击adams_sub打开adams_pant,再双击adams_pant弹出一个设置框图,在animation mode这一栏中选择interactive这是交互的,如果选择batch的话在联合仿真中看不到adams模型的运行情况(个人这样理解的:)!最后保存一下!8、开始联合仿真start simulation,就会出现asolver,弹出dos文件,这个不管他,然后adams模型中的小球开始运动,估计会比较慢,最后会出现小球在横梁上运动而不掉下横梁!这是我在做这个模型的过程中的一些东东,写的比较杂,呵呵!如果大家觉得好的话可以顶一下,希望能给那些在adams和simulink联合仿真而徘徊的xdjm一点启示就行了!note:这个例子是adams/cotrol自带的,可以在example中找到! 关于下述

错误,我找到一个解决方法Error reported by S-function 'adams_plant' in 'my_ball/adams_sub/ADAMS Plant/S-Function':error in startup Could not connect to ADAMS server编辑myball.m文件,将第24行ADAMS_sysdir = strcat(topdir, '');替换为第29行ADAMS_sysdir = '...' ;依各人配置不同,具体路径有所区别改完之后保存即可

更多相关推荐:
matlab实验心得总结

通过《matlab仿真》实验使我学习掌握了许多知识。首先是对matlab有了一个全新的认识,其次是对matlab的更多操作和命令的使用有了更高的掌握,最重要的事对matlab的处理能力有了一个更高的飞跃尤其是对…

matlab心得体会

MATLAB学习心得体会Matlab,提起它,不管我们上课是否认真听讲了,我们都应该对它不再陌生,我们不可否认它的强大之处,正如一节课时老师给我们说的“Matlab可以做很多事情”。通过近一段的学习,使我更加确…

matlab心得体会

Matlab心得体会班级:电气08-3班姓名:张强学号:24Matlab一个高级的距阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可…

学习matlab心得体会

1前言2matlab的一些特点3学习matlab心得体会4matlab的一些资源1前言我接触Matlab的时间比较长了最开始是在大学里面的数学实验课上了解了一些学了些基础的命令后来参加过一次数学建模又自学了点而...

matlab学习心得

编程心得1helpwin只是寻找函数类一般不如用doc相当于帮助文档中的搜索但在用doc搜索不到帮助文件时可用helpwin如找有关的帮助等打开格式非标准的mat或xls等数据文件如dat文件或无后缀名的文件时...

matlab学习心得体会

Matlab学习心得班级机械124姓名万明男学号20xx093386电话139xxxxxxxxmatlab学习心得体会MATLAB中有丰富的图形处理能力提供了绘制各种图形图像数据的函数他提供了一组绘制二维和三维...

matlab的学习心得

MATLAB的学习体会姓名陈燕民班级11信息2班学号20xx24093246经过一学期的c的学习我们开始转化学习Matlab软件的学习学习Matlab软件应用是一次更高要求的学习计划也是一种结合我们信息专业背景...

ASK信号的仿真分析matlab课程设计报告

武汉理工大学Matlab课程设计报告课程设计任务书学生姓名瞿子敬专业班级通信1104班指导教师张小梅工作单位信息工程学院题目ASK信号的仿真分析课程设计目的1较全面的了解常用的数据分析与处理原理及方法2能够运用...

随机信号matlab仿真

电子科技大学通信与信息工程学院标准实验报告实验名称随机数的产生及统计特性分析电子科技大学实验报告学生姓名吴振国学号20xx019xx0006指导教师周宁实验室名称通信系统实验室实验项目名称随机数的产生及统计特性...

matlab在自动控制方面的仿真

MATLAB在控制系统仿真方面的应用物电0911自动化20xx118121高傲雷摘要MATLAB自问世以来以其优良而强大的数学运算和系统仿真功能深受使用者青睐在数学运算复杂概念抽象的自动控制原理课程中发挥着无与...

提高matlab运行速度的心得

提高matlab运行速度的心得转自振动论坛首先说说Matlab与其他语言的差异例如对于C或者C来说只要算法的思想不变采用的数据结构相同不同人写出来的语句在效率上一般不会产生太大的差别所以对于C来说程序的好坏一般...

matlab心得与学习方法(也许这是个大牛写的)

发现现在很多人找工作的或者读博的都想要学习或者正在学习Matlab问我要怎么学习其实我虽然写Matlab代码的经验还算丰富但是还不能说是一个很好的Matlab编程人员这里有一些心得分享给大家希望对大家有所帮助关...

matlab仿真心得体会(13篇)