今天給大家帶來一個工程案例,使用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的腳本中設定面闆上的變量,隻要使用指令行就能很輕易的實作
好了,今天的内容就到此為止,下期再見!