首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ADAMS与MATLAB联合仿真

今天给大家带来一个工程案例,使用ADAMS/Controls在ADAMS中建立模型并插入到控制模型中去。

例子:Antenna Control Problem

Azimuth and Elevation DOF

Flexible support

Disturbance to elevation loop

Input torques applied

第一步:从ADAMS输出使用于控制仿真软件(CSS)的被控对象文件

例如:创建或输入天线模型;确定天线模型的输入输出变量(控制antenna运动的力,扭矩;方位角和高度位置测量)

“plant export”命令会创建几种特定的文件,这些文件能够在CSS中生成一个ADAMS天线模型:

·.adm和.cmd文件描述机械模型

·.acf文件包含solver命令(不是必要使用)

·.m文件用于MATLAB;.inf文件用于MATRIXx和EASY5

例子:天线模型产生的.m文件如下所视

addpath( 'F:\PROGRA~1\ADAMS1~2.0/controls' ) ;

addpath( 'F:\PROGRA~1\ADAMS1~2.0\controls\matlab' ) ;

% ADAMS / MATLAB Interface - Release 12.0.0

ADAMS_sysdir = 'F:\PROGRA~1\ADAMS1~2.0' ;

ADAMS_exec = '' ;

ADAMS_prefix = 'ant_test' ;

if (exist([ADAMS_prefix,'.adm']))

ADAMS_static = 'no' ;

ADAMS_init = '' ;

ADAMS_inputs = 'control_torque' ;

ADAMS_outputs = 'rotor_velocity!azimuth_position' ;

ADAMS_pinput = '.main_olt.tmp_MDI_PINPUT' ;

ADAMS_poutput = '.main_olt.tmp_MDI_POUTPUT' ;

ADAMS_uy_ids = [

1

2

3

] ;

ADAMS_mode = 'non-linear' ;

tmp_in = decode( ADAMS_inputs ) ;

tmp_out = decode( ADAMS_outputs ) ;

disp( ' ' ) ;

disp( '%%% INFO : ADAMS plant actuators names :' ) ;

disp( [int2str([1:size(tmp_in,1)]'),blanks(size(tmp_in,1))',tmp_in] ) ;

disp( '%%% INFO : ADAMS plant sensors names :' ) ;

disp( [int2str([1:size(tmp_out,1)]'),blanks(size(tmp_out,1))',tmp_out] ) ;

disp( ' ' ) ;

clear tmp_in tmp_out ;

else

disp( ' ' ) ;

disp( '%%% ERROR : missing ADAMS plant model file !!!' ) ;

disp( ' ' ) ;

end

% ADAMS / MATLAB Interface - Release 12.0.0

第二步:在CSS中创建被控对象

MATLAB

将.m文件读入MATLAB后,键入“adams_sys”命令可以生成ADAMS模型

双击视窗中的“adams_sub”模块

·输入输出名是自动产生的

·Workspace hooks也是自动产生的

第三步:与ADAMS被控对象建立联系并在CSS中调整仿真参数

MATLAB plant面板

·双击Mechanical Dynamics模块就会弹出面板

·在这里你可以从中选择模式并且可以得到ADAMS/Controls的全部性能

Interactive模式与Batch模式

·Interactive模式对应于ADAMS/View(vcontrols.exe将使用.cmd文件,能看到模型的更新)

·Batch模式对应于ADAMS/Solver(scontrols.exe使用.adm文件,无法看到模型更新,但会运行的更快)

MATLAB要点:

·输入输出变量会自动保存在工作区(如果使用了“adams_sub”模块)

·使用/改变MATLAB的变量名以改变面板中的数据,代替了直接在面板上编辑数据

·如果你希望手动或者在MATLAB的脚本中设置面板上的变量,只要使用命令行就能很轻易的实现

好了,今天的内容就到此为止,下期再见!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190110G10HN300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券