今天给大家带来一个工程案例,使用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的脚本中设置面板上的变量,只要使用命令行就能很轻易的实现
好了,今天的内容就到此为止,下期再见!
领取专属 10元无门槛券
私享最新 技术干货