天天看點

matlab中結束腳本運作_ADAMS與MATLAB聯合仿真

   今天給大家帶來一個工程案例,使用ADAMS/Controls在ADAMS中建立模型并插入到控制模型中去。

例子:Antenna Control Problem

Azimuth and Elevation DOF

Flexible support

Disturbance to elevation loop 

Input torques applied

matlab中結束腳本運作_ADAMS與MATLAB聯合仿真

第一步:從ADAMS輸出使用于控制仿真軟體(CSS)的被控對象檔案

例如:建立或輸入天線模型;确定天線模型的輸入輸出變量(控制antenna運動的力,扭矩;方位角和高度位置測量)

“plant export”指令會建立幾種特定的檔案,這些檔案能夠在CSS中生成一個ADAMS天線模型:

·.adm和.cmd檔案描述機械模型

·.acf檔案包含solver指令(不是必要使用)

·.m檔案用于MATLAB;.inf檔案用于MATRIXx和EASY5

matlab中結束腳本運作_ADAMS與MATLAB聯合仿真

例子:天線模型産生的.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模型

matlab中結束腳本運作_ADAMS與MATLAB聯合仿真

輕按兩下視窗中的“adams_sub”子產品

·輸入輸出名是自動産生的

·Workspace hooks也是自動産生的

matlab中結束腳本運作_ADAMS與MATLAB聯合仿真

第三步:與ADAMS被控對象建立聯系并在CSS中調整仿真參數

MATLAB plant面闆

·輕按兩下Mechanical Dynamics子產品就會彈出面闆

·在這裡你可以從中選擇模式并且可以得到ADAMS/Controls的全部性能

matlab中結束腳本運作_ADAMS與MATLAB聯合仿真

第四步  在CSS進行仿真

例如:天線模型可以根據控制輸入(力,力矩等)來進行仿真;

在MATLAB中使用Simulation下的Parameters項來控制控制系統積分器的步長、結束時間以及積分器設定。

matlab中結束腳本運作_ADAMS與MATLAB聯合仿真

Interactive模式與Batch模式

·Interactive模式對應于ADAMS/View(vcontrols.exe将使用.cmd檔案,能看到模型的更新)

·Batch模式對應于ADAMS/Solver(scontrols.exe使用.adm檔案,無法看到模型更新,但會運作的更快)

matlab中結束腳本運作_ADAMS與MATLAB聯合仿真

MATLAB要點:

·輸入輸出變量會自動儲存在工作區(如果使用了“adams_sub”子產品)

·使用/改變MATLAB的變量名以改變面闆中的資料,代替了直接在面闆上編輯資料

·如果你希望手動或者在MATLAB的腳本中設定面闆上的變量,隻要使用指令行就能很輕易的實作

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

繼續閱讀