MV-8000:開ループのイベント

本チュートリアルでは、Assembly Wizardを用いてフルビークルシミュレーション用の車両を組み立て、Task Wizardでドライバーを追加する方法について学びます。

Altair Driverは、MotionViewのユーザーが車両イベントの制御やスクリプト記述ができるようにする、MotionViewのモデルとライブラリのセットです。

イベントの例には以下のものがあります:
  • 定常円旋回
  • Single Lane Change
  • Double Lane Change
  • ユーザー定義の経路の追従
  • フィッシュフックイベント、など
これは、下記の5つの車両入力へのインターフェースを作成することにより実施されます:
  • ステアリング
  • スロットル
  • Gear
  • ブレーキ
  • クラッチ
Altair Driverを使用することにより、複数の機能を用いたフルビークルのあらゆるイベントをシミュレートすることが可能です。
  • スクリプト記述 - シミュレーションを複数の運転操作に分割し、車両入力に対するコントローラーを選択して、各運転操作を終了する条件を定義します。
  • 制御するための、開ループ、閉ループ、およびユーザー定義のコントローラー
    • 前後速度または前後加速度
    • 車両経路または左右加速度
  • シミュレーション中のコントローラーの切り替え
  • 経路とスピードのプロファイルを、テーブル内またはデータファイルを参照することにより、パラメトリックに定義

車両の組み立て

このステップでは、Assembly Wizardを使って車両を組み立てます。

  1. 新しいMotionViewセッションを開始します。
  2. Advanced DriverのすべてのMotionView機能が正しく動作するようMBD-Vehicle Dynamics Toolsプリファレンスファイルが読み込まれていることを確認してください。
    図 1.
    図 2.
  3. メニューバーからModel > Assembly Wizardを選択します。
    図 3.
    開ループの加速イベントスクリプトの記述では、線形トルクマップパワートレインを使用して、ギアとクランチ用のコントローラーを使用しない単純なモデルとします。
  4. Full vehicle with advanced driverオプションを選択します。
    これで、Advanced Driverのすべての関連付けが管理されます。
    図 4.
  5. Nextをクリックします。
  6. 下に示すAssembly Wizardページで、デフォルトの選択肢を選びます。
    ページ ラベル 選択 デフォルト(Yes/No)
    1 Model type Full vehicle with driver No
    2 Driveline configuration Front wheel drive Yes
    3 車体 Body Yes
    4 Instrumentation Instrumentation Yes
    5 Front subframe None Yes
    6 Front suspension Frnt macpherson susp (1 pc. LCA) Yes
    7 Steering Linkages Rackpin steering Yes
    8 Rear subframe None Yes
    9 Rear suspension Rear quadlink susp Yes
    10 Powertrain Linear torque map powertrain Yes
    11 Signal generator Driver signal generator Yes
    12 Tires Auto Tires Yes
    13 Steering column Steering column 1 (not for Abaqus) Yes
    14 Steering boost None Yes
    15 Front struts Frnt strut (with inline jts) Yes
    16 Front stabilizer bars None Yes
    17 Rear struts Rear strut (with inline jts) Yes
    18 Rear stabilizer bars None Yes
    19 Front jounce bumpers None Yes
    20 Front rebound bumpers None Yes
    21 Rear jounce bumpers None Yes
    22 Rear rebound bumpers None Yes
    23 Disk brakes Disk brakes Yes
    24 Front Driveline Independent fwd Yes
    25 Driver System Altair Driver Yes
    26 Next Finish No

ドライバー解析の追加

このステップでは、Task Wizardを使って、ドライバー解析を読み込みます。

  1. メニューバーからAnalysis > Task Wizardを選択します。
    図 5.
  2. TypeドロップダウンメニューからAltairDriverFileを選択します。


    図 6.
    ヒント:

    Altair Driverアイコン)を選択すると、Altair Driverパネルが開きます。これで自動的に、Altair Driverのための車両のアタッチメントがすべて関連付けされます。

    図 7.

    AltairDriverFile 0を選択すると、ドライバーイベントのパネルが開きます。Event Editorボタンを選択し、Altair Driver Fileダイアログを開きます。

Altair Advanced Driverがブラウザツリーに追加されます。

Altair Driver File運転イベントの書き出し

このステップでは、開ループの加速度イベント、開ループの正弦波ステアリングイベント、および開ループの駆動制動イベントのスクリプトを記述します。

Driverは運転イベントの実行に、イベントのスクリプトまたはAltair Driver File(ADF)を必要とします。ADFは、任意のテキストエディターを使用、もしくはDriverパネル上のEdit Driver Fileボタンをクリックすることで、編集が可能です。

開ループの加速イベントスクリプトの記述

このステップでは、スロットル50%、ブレーキ0%、ステアリング角0のイベントスクリプトを記述します。

イベントは、より小さなサブイベントまたは動作に分割することができます。これを単一の動作イベントとしてモデル化します。

図 8.
  1. 任意のテキストエディターを開き、以下のテキストをコピーペーストします。
    重要: ファイルを保存する前に、すべての空白行を削除する必要があります。
    ヒント: ADFに何が書かれているかをしっかり理解するために、コメントをよく読んでください。
    $-----------------------------------------------------------------ALTAIR_HEADER
    $ This block is required for version control             
    [ALTAIR_HEADER]                                                                             
    FILE_TYPE 		= 'ADF'                                                                  
    FILE_VERSION 	= 1.0                                                                
    FILE_FORMAT 	= 'ASCII'                                                            
    $--------------------------------------------------------------------------UNITS 
    $In this block we specify the units in which this file should be read
    [UNITS]                                                                                     
    (BASE)                                                                                      
    {length  force      	angle       mass   time}                                               
    'meter'   'newton'   	'radians'  'kg'      'sec'                                              
    $--------------------------------------------------------------------VEHICLE_IC
    $In this block we specify the initial conditions specifically initial speed of the 
    $vehicle with respect to the vehicle IC marker in the driver attachments                     
    [VEHICLE_INITIAL_CONDITIONS]                                                                 
    VX0 = -20.0                                                                                     
    VY0 = 0.0                                                                                    
    VZ0 = 0.0                                                                                    
    $--------------------------------------------------------------STEERING_STANDARD
    $This block specifies the saturation and cutoff frequency for the low pass filter for
    $steering output signal. These signals are global and are active for the entire event            
    [STEER_STANDARD]                                                                            
    MAX_VALUE 			= 3.141593                                                         
    MIN_VALUE 			= -3.141593                                                         
    SMOOTHING_FREQUENCY 	= 10.0
    INITIAL_VALUE 		= 0.0
    $--------------------------------------------------------------THROTTLE_STANDARD
    $This block specifies the saturation and cutoff frequency for the low pass filter for
    $throttle output signal            
    [THROTTLE_STANDARD]                                                                         
    MAX_VALUE 			= 1.0                                                      
    MIN_VALUE 			= 0.00                                                      
    SMOOTHING_FREQUENCY 	= 10.0
    INITIAL_VALUE 		= 0.5                                        
    $---------------------------------------------------------------BRAKING_STANDARD            
    $This block specifies the saturation and cutoff frequency for the low pass filter for
    $brake output signal            
    [BRAKE_STANDARD]                                                                            
    MAX_VALUE 			= 1.0                                                         
    MIN_VALUE 			= 0.0                            
    SMOOTHING_FREQUENCY 	= 10.0                             
    INITIAL_VALUE 		= 0.0 
    $-----------------------------------------------------------------MANEUVERS_LIST 
    $This block provides the list of all the maneuvers, simulation time for each maneuver
    $maximum solver step size (hmax) and print interval           
    [MANEUVERS_LIST]                                                                            
    { name       		simulation_time  h_max  print_interval}                         
    'MANEUVER_1'	5.0                     0.01     0.01                        
    $---------------------------------------------------------------------MANEUVER_1            
    [MANEUVER_1]
    $This block provides the ties controllers to each driver output                                                                                 
    TASK = 'STANDARD'                                                                           
    (CONTROLLERS)                                                                               
    {DRIVER_SIGNAL  	PRIMARY_CONTROLLER 	ADDITIONAL_CONTROLLER}      
     STEER                   	OL_STEER_0	  		NONE                                
     THROTTLE             	OL_0.5	  		NONE                            
     BRAKE                   	OL_0	  			NONE                                
    $---------------------------------------------------------OL_STEER
    $This is controller block containing all the information required by
    $the driver to construct the controller. Different controllers have
    $different requirements. Here we are using open loop constant type
    $of controller.                                                                                              
    [OL_STEER_0]                                                                      
    TAG	= 'OPENLOOP'                                                             
    TYPE	= 'CONSTANT'                                            
    VALUE	= 0.0                                       
    $---------------------------------------------------------OL_BRAKE             
    [OL_0]                                                                      
    TAG	= 'OPENLOOP'                                                             
    TYPE	= 'CONSTANT'                                            
    VALUE	= 0.0                                            
    $---------------------------------------------------------OL_THROTTLE             
    [OL_0.5]                                                                      
    TAG	= 'OPENLOOP'                                                             
    TYPE	= 'CONSTANT'                                            
    VALUE	= 0.5
  2. ファイルを保存します。
  3. Altair Driver Fileブラウザで、このファイルを読み込みます。
    図 9.
    注: Edit driver fileボタンを使って、ファイルを編集することができます。
  4. をクリックし、シミュレーションを開始します。
  5. シミュレーションの実行が完了し、ソルバーがh3dおよびpltファイルを生成したら、メニューバーからAnalysis > View Reportsをクリックします。


    図 10.
  6. View Reportsダイアログで一番最後の実行を選択し、OKをクリックします。
    図 11.
  7. ステアリング内のノイズは、無視し得る大きさの数値誤差内で、実際上はすべて0です。スロットルは0.5で一定(ドライバースロットル、ブレーキおよびクラッチ出力は正規化され、50%)、ブレーキは0で一定です。
    図 12.
  8. 次に、多少異なる初期条件を試してみましょう。スロットルが0、ブレーキが100%で開始します。Edit Driver Fileボタンをクリックし、ファイルエディターを開きます。
  9. ADFのTHROTTLE_STANDARDブロックのINITIAL_VALUE属性を0.5から0に変更します。
    [THROTTLE_STANDARD]                                                                         
    MAX_VALUE 			= 1.0                                                      
    MIN_VALUE 			= 0.00                                                      
    SMOOTHING_FREQUENCY 	= 10.0
    INITIAL_VALUE 			= 0.5 0     
  10. 同様に、ADFのBRAKE_STANDARDブロックのINITIAL_VALUE属性を0.0から1.0に変更します。
    [BRAKE_STANDARD]                                                                            
    MAX_VALUE 			= 1.0                                                         
    MIN_VALUE 			= 0.0                            
    SMOOTHING_FREQUENCY 	= 10.0                             
    INITIAL_VALUE 			= 0.0 1.0 
  11. ADFを保存します。
  12. シミュレーションを実行し、結果を検証します。
  13. スロットルとブレーキがそれぞれの初期値からスタートし、コントローラー出力に至るまでを確認します。到達までの時間はおおよそ、(5x1/SMOOTHING_FREQUENCY)です。
    図 13.

開ループの正弦波ステアリングイベント

このステップでは、一定の20%のスロットル、一定の0%のブレーキ、および振幅が60度(∏/3ラジアン)で振動数が0.5 Hzである正弦波ステアリング入力の単一イベントをモデル化します。

  1. 任意のテキストエディターを開き、以下のテキストをコピーペーストします。
    重要: ファイルを保存する前に、すべての空白行を削除する必要があります。
    $-----------------------------------------------------------------ALTAIR_HEADER
     [ALTAIR_HEADER]                                                                             
    FILE_TYPE 		= 'ADF'                                                                  
    FILE_VERSION 	= 1.0                                                                
    FILE_FORMAT 	= 'ASCII'                                                            
    $--------------------------------------------------------------------------UNITS
    [UNITS]                                                                                     
    (BASE)                                                                                      
    {length  force      	angle       mass   time}                                               
    'meter'   'newton'   	'radians'  'kg'      'sec'                                              
    $--------------------------------------------------------------------VEHICLE_IC
     [VEHICLE_INITIAL_CONDITIONS]                                                                 
    VX0 = -20.0                                                                                     
    VY0 = 0.0                                                                                    
    VZ0 = 0.0                                                                                    
    $--------------------------------------------------------------STEERING_STANDARD
     [STEER_STANDARD]                                                                            
    MAX_VALUE 			= 3.141593                                                         
    MIN_VALUE 			= -3.141593                                                         
    SMOOTHING_FREQUENCY 	= 10.0
    INITIAL_VALUE 		= 0.0
    $--------------------------------------------------------------THROTTLE_STANDARD
     [THROTTLE_STANDARD]                                                                         
    MAX_VALUE 			= 1.0                                                      
    MIN_VALUE 			= 0.00                                                      
    SMOOTHING_FREQUENCY 	= 10.0
    INITIAL_VALUE 			= 0.2                                        
    $---------------------------------------------------------------BRAKING_STANDARD            
     [BRAKE_STANDARD]                                                                            
    MAX_VALUE 			= 1.0                                                         
    MIN_VALUE 			= 0.0                            
    SMOOTHING_FREQUENCY 	= 10.0                             
    INITIAL_VALUE 			= 0.0 
    $-----------------------------------------------------------------MANEUVERS_LIST 
     [MANEUVERS_LIST]                                                                            
    { name       		simulation_time  h_max  print_interval}                         
    'MANEUVER_1'		10.0                     0.01     0.01                        
    $---------------------------------------------------------------------MANEUVER_1            
    [MANEUVER_1]
    $This block provides the ties controllers to each driver output                                                                                 
    TASK = 'STANDARD'                                                                           
    (CONTROLLERS)                                                                               
    {DRIVER_SIGNAL  	PRIMARY_CONTROLLER 	ADDITIONAL_CONTROLLER}      
     STEER                   	OL_STEER	  		NONE                                
     THROTTLE             	OL_THROTTLE  		NONE                            
     BRAKE                   	OL_BRAKE  			NONE                                
    $---------------------------------------------------------OL_STEER.
    $SIGNAL_CHANNEL tells the driver which solver variable in Signal Generator to over-ride
    $with the EXPRESSION value. The EXPRESSION should be consistent with MOTIONSOLVE.                                                                                              
    [OL_STEER]                                                                      
    TAG			 = 'OPENLOOP'                                                             
    TYPE			= 'EXPRESSION'
    SIGNAL_CHANNEL 	  = 0                                            
    EXPRESSION 	      = 'DTOR(60)*SIN(2*PI*0.5*TIME)'                  
    $---------------------------------------------------------OL_THROTTLE             
    [OL_THROTTLE]                                                                      
    TAG	= 'OPENLOOP'                                                             
    TYPE	= 'CONSTANT'                                            
    VALUE	= 0.2                                            
    $---------------------------------------------------------OL_BRAKE             
    [OL_BRAKE]                                                                      
    TAG	= 'OPENLOOP'                                                             
    TYPE	= 'CONSTANT'                                            
    VALUE	= 0.0
  2. シミュレーションを実行し、結果を検証します。
    図 14.

開ループの曲線駆動の制動イベント

このステップでは、曲線としての制動信号を含む単一イベントをモデル化します。

図 15.
  1. 任意のテキストエディターを開き、以下のテキストをコピーペーストします。
    重要: ファイルを保存する前に、すべての空白行を削除する必要があります。
    $-----------------------------------------------------------------ALTAIR_HEADER
     [ALTAIR_HEADER]                                                                             
    FILE_TYPE 		= 'ADF'                                                                  
    FILE_VERSION 	= 1.0                                                                
    FILE_FORMAT 	= 'ASCII'                                                            
    $--------------------------------------------------------------------------UNITS
    [UNITS]                                                                                     
    (BASE)                                                                                      
    {length  force      	angle       mass   time}                                               
    'meter'   'newton'   	'radians'  'kg'      'sec'                                              
    $--------------------------------------------------------------------VEHICLE_IC
     [VEHICLE_INITIAL_CONDITIONS]                                                                 
    VX0 = -20.0                                                                                     
    VY0 = 0.0                                                                                    
    VZ0 = 0.0                                                                                    
    $--------------------------------------------------------------STEERING_STANDARD
     [STEER_STANDARD]                                                                            
    MAX_VALUE 			= 3.141593                                                         
    MIN_VALUE 			= -3.141593                                                         
    SMOOTHING_FREQUENCY 	= 10.0
    INITIAL_VALUE 		= 0.0
    $--------------------------------------------------------------THROTTLE_STANDARD
     [THROTTLE_STANDARD]                                                                         
    MAX_VALUE 			= 1.0                                                      
    MIN_VALUE 			= 0.00                                                      
    SMOOTHING_FREQUENCY 	= 10.0
    INITIAL_VALUE 			= 0.0                                        
    $---------------------------------------------------------------BRAKING_STANDARD            
     [BRAKE_STANDARD]                                                                            
    MAX_VALUE 			= 1.0                                                         
    MIN_VALUE 			= 0.0                            
    SMOOTHING_FREQUENCY 	= 10.0                             
    INITIAL_VALUE 			= 0.0 
    $-----------------------------------------------------------------MANEUVERS_LIST 
     [MANEUVERS_LIST]                                                                            
    { name       		simulation_time  h_max  print_interval}                         
    'MANEUVER_1'		10.0                   0.001     0.01                        
    $---------------------------------------------------------------------MANEUVER_1            
    [MANEUVER_1]
    $This block provides the ties controllers to each driver output                                                                                 
    TASK = 'STANDARD'                                                                           
    (CONTROLLERS)                                                                               
    {DRIVER_SIGNAL  	PRIMARY_CONTROLLER 	ADDITIONAL_CONTROLLER}      
     STEER                   	OL_STEER	  		NONE                                
     THROTTLE             	OL_THROTTLE  		NONE                            
     BRAKE                   	OL_BRAKE  			NONE                                
    $---------------------------------------------------------OL_STEER.
    $SIGNAL_CHANNEL tells the driver which solver variable in Signal Generator to over-ride
    $with the EXPRESSION value. The EXPRESSION should be consistent with MOTIONSOLVE.                                                                                              
    [OL_STEER]                                                                      
    TAG	= 'OPENLOOP'                                                             
    TYPE	= 'CONSTANT'                                            
    VALUE	= 0.0                                       
    $---------------------------------------------------------OL_THROTTLE           
    [OL_THROTTLE]                                                                      
    TAG	= 'OPENLOOP'                                                             
    TYPE	= 'CONSTANT'                                            
    VALUE	= 0.0                                            
    $---------------------------------------------------------OL_BRAKE             
    [OL_BRAKE]                                                                      
    TAG	= 'OPENLOOP'                                                             
    TYPE	= 'CURVE'                                            
    BLOCK	= 'BRAKE_CRV'
    $---------------------------------------------------------CURVE_DATA            
    [BRAKE_CRV]
    INDEPENDENT_VARIABLE 	= 'TIME'
    DEPENDENT_VARIABLE		= 'BRAKE_SIGNAL'
    INTERPOLATION			= 'LINEAR'
    {TIME	BRAKE_SIGNAL}
    0	0
    1	0
    2	0.2
    3	0.5
    4	0.8
    5   1.0
    6   1.0
    7   0
    10  0
  2. シミュレーションを実行し、結果を検証します。
    図 16.