今天給大家帶來一個工程案例,使用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的全部性能
第四步 在CSS進行仿真
例如:天線模型可以根據控制輸入(力,力矩等)來進行仿真;
在MATLAB中使用Simulation下的Parameters項來控制控制系統積分器的步長、結束時間以及積分器設置。
Interactive模式與Batch模式
·Interactive模式對應於ADAMS/View(vcontrols.exe將使用.cmd文件,能看到模型的更新)
·Batch模式對應於ADAMS/Solver(scontrols.exe使用.adm文件,無法看到模型更新,但會運行的更快)
MATLAB要點:
·輸入輸出變量會自動保存在工作區(如果使用了「adams_sub」模塊)
·使用/改變MATLAB的變量名以改變面板中的數據,代替了直接在面板上編輯數據
·如果你希望手動或者在MATLAB的腳本中設置面板上的變量,只要使用命令行就能很輕易的實現
好了,今天的內容就到此為止,下期再見!