Maple Professional
Maple Academic
Maple Student Edition
Maple Personal Edition
Maple Player
Maple Player for iPad
MapleSim Professional
MapleSim Academic
Maple T.A. - Testing & Assessment
Maple T.A. MAA Placement Test Suite
Möbius - Online Courseware
Machine Design / Industrial Automation
Aerospace
Vehicle Engineering
Robotics
Power Industries
System Simulation and Analysis
Model development for HIL
Plant Modeling for Control Design
Robotics/Motion Control/Mechatronics
Other Application Areas
Mathematics Education
Engineering Education
High Schools & Two-Year Colleges
Testing & Assessment
Students
Financial Modeling
Operations Research
High Performance Computing
Physics
Live Webinars
Recorded Webinars
Upcoming Events
MaplePrimes
Maplesoft Blog
Maplesoft Membership
Maple Ambassador Program
MapleCloud
Technical Whitepapers
E-Mail Newsletters
Maple Books
Math Matters
Application Center
MapleSim Model Gallery
User Case Studies
Exploring Engineering Fundamentals
Teaching Concepts with Maple
Maplesoft Welcome Center
Teacher Resource Center
Student Help Center
MapleSim[Multibody][BuildSimCode] - MapleSim/Multibody モデルモジュールに基づくシミュレーションコード生成する
使い方
BuildSimCode(MSimMultibodyModel, オプション)
パラメータ
MSimMultibodyModel - BuildEQs コマンドで作成するか GetModel コマンドを実行して MapleSim/Multibody のストアファイル (`.lib`) から取得した Maple のシステムモジュール。
options - (オプション) 次の形式の方程式 keyword = value
モデルの説明
重要:BuildSimCode コマンドは deprecated になりました。代わりに、MapleSim テンプレートフォルダにあるテンプレートを使用して、モデルを解析してください。詳しくは、Opening MapleSim Templates を参照してください。
BuildSimCode コマンドは、最適なプロシージャや関数を多様な出力言語で生成するために使用することができます。SilentMode オプションを true に設定している場合を除き、BuildSimCode は生成された任意の関数の場所と引数を示します。
行列の出力は、列が主体の形式では列行列として返されます。
オプション
'TargetDir' = string
BuildSimCode コマンドでエクスポートされる生成後のシミュレーションコードの宛先ディレクトリを示す文字列。文字列が存在しないディレクトリに割り当てられたり、割り当てが行われないと、BuildSimCode は currentdir コマンドで定義された作業ディレクトリにシミュレーションコードをエクスポートします。オプション 'Language' が MapleProc または MapleFunc に設定されているとこのオプションは無視されます。
'Exports' = set
'Exports' オプションは、BuildSimCode がコードをエクスポートする関数を示します。事前定義関数とユーザー定義関数のどちらを希望するかに応じて 2 種類の構文が使用できます。生成される関数の引数は、選択される 'Language' オプションによって異なります。
- 事前定義関数:この場合、 'Exports' は文字列と等価です。各文字列は、特定の事前定義された関数 (つまり 'Exports' = {"Xdot", "Reactions"}) を示します。事前定義関数に関する詳細については、 kinematics および dynamics のヘルプページを参照してください。次の表に許容可能な文字列を一覧します。:
許容可能な文字列
説明
"Xdot"
状態変数の初回導関数、つまり および .
"Reactions"
モデル生成時に BuildEQs で使用されたオプション 'AugType' に応じたモデルの列行列 vReactions または vLambda に相当する m 作用の負荷。
"PosCons"
モデルの GetPosCons() 関数に相当する m 位置レベルの拘束方程式。
"VelCons"
モデルの GetVelCons() 関数に相当する m 速度レベルの拘束方程式。
"JacPos"
モデルの xJacPos エクスポートに相当する、一般化座標に対する位置拘束方程式の m x n Jacobian 行列。行列は列主体で階数を指定した配列としてエクスポートされます。
"JacVel"
モデルの xJacVel エクスポートに相当する、一般化速度に対する速度拘束方程式の m x n Jacobian 行列。行列は列主体で階数を指定した配列としてエクスポートされます。
"VelRHS"
モデルの vVelRHS 列行列に相当する、速度レベルの運動拘束方程式の右辺。
"AccRHS"
モデルの vAccRHS 列行列に相当する、加速レベルの運動拘束方程式の右辺。
"C"
モデルの xC のエクスポートに相当する、拘束作用の m x n 係数行列。
"M"
モデルの xM のエクスポートに相当する、n x n 質量行列。
"F"
モデルの vF 列行列に相当する、運動方程式の n x 1 の右側。
"A"
GetAYBSysODEs() のエクスポートによって返される最初の行列。詳細については、ヘルプページ 「Dynamic Exports 」を参照してください。
"B"
GetAYBSysODEs() のエクスポートによって返される 3 番目の行列。詳細については、ヘルプページ「 Dynamic Exports 」を参照してください。
ユーザー定義のベクトルおよび行列:Maple ワークシートにユーザー定義の Matrix または Vector が作成された場合は、サポートされている任意の言語の BuildSimCode にこれをエクスポートできます。次のように、文字列ではなくリストの一覧を使用できます。
'Exports' = {[["Func1Name", Func1VectorOrMatrix, Func1Subs], ["Func2Name", Func2VectorOrMatrix, Func2Subs], ...]}
サブリストの最初の要素は、生成される関数の名前を表す文字列です。2 番目の要素は Maple ワークシートに作成済みのオブジェクト Matrix または Vector です。各サブリストの最後の要素は方程式のリストで、未知の入力、パラメータ、または状態変数を定義する記号です。ほとんどの場合、このエントリは空のリスト ([ ]) のままになります。
'Language'= string
エクスポートされるシミュレーションコードの形式を示す文字列。次の表に許容可能な文字列を一覧します。:
"MapleProc"
Mapleプロシージャを次の形式で生成します。
PROCNAME(NumStates, t, vX, Output)
このプロシージャは、 dsolve/numeric を使用して積分されるように設計されています。
ヒント: このオプションは、モデルの状態変数の導関数のプロシージャを生成する場合にのみ使用します。モデルのすべてのパラメータと入力は、このオプションが使用された時点で数値または関数に置き換える必要があります。
"MapleFunc"
Maple 関数を次の形式で作成します。
Output = FUNCNAME(t,vX,Params,Input)
t は時刻、vX は状態変数 q と p の列行列です。Params と Inputs はプロシージャの評価に必要なパラメータと入力で (これらの特定ではモデル関数 GetParams() コマンドと GetInputs() コマンドを使用します)、Output は算出された出力です。
"Cproc"
次の形式で C-プロシージャを作成します。
PROCNAME(t,vX,Params,Inputs,Output)
"BB_SFunc"
このオプションは、MapleSim Connector がインストールされている場合に適用されます。選択すると、BuildSimCode は Maple ワークシートにオブジェクトを作成し、MATLAB® スクリプトを保存します。このスクリプトは、選択されたプロシージャの Simulink® S-Function を、指定の 'TargetDir' に自動生成するのに必要です。
結果の Simulink ブロックは、内部の状態を持たない入力または出力ブロックになります。このプロセスを容易にするには、状態変数の vX を状態変数配列 (State Variable Array) から入力配列 (Inputs Array) に移動します。
"BB_SFunc_WithIntegrator"
このオプションは、MapleSim Connector がインストールされている場合に適用されます。選択すると、BuildSimCode は Maple ワークシートにオブジェクトを作成し、MATLAB スクリプトを保存します。このスクリプトは、選択されたプロシージャの Simulink S-Function を、指定の 'TargetDir' に自動生成するのに必要です。
結果の Simulink ブロックには、内部の状態が含まれ (モデルの vX 列行列に相当)、さらに、状態変数を時間通りに進める積分器も含まれます。
'Optimize'= boolean
最終コードを生成する前に、最適化ルーチンをシミュレーションコードに適用するかどうかを示すブール値。デフォルト値は true です。
'NumericSubs'= list
`parameter=value` の形式の等式のリスト。このリストに含まれていないパラメータまたは関数は、生成されたシミュレーションコードへの入力として残されます。
'ICs'= list
後続する積分の初期条件を示す浮動小数のリスト。このリストでの階数は、モデルの vX のエクスポートの状態変数の階数に対応することを前提としています。オプション 'Language' が "BB_SFunction_WithIntegrator" に設定されている場合はこのオプションは無視されます。
'SilentMode'= boolean
このオプション設定が true の場合、BuildSimCode コマンドで生成される出力が非表示になります。デフォルト値は true です。
例
重要:BuildSimCode コマンドは deprecated になりました。代わりに、MapleSim ドキュメントフォルダにあるテンプレートを使用して、モデルを解析してください。
下図は、平面上のスライダクランク機構を MapleSim の組み込みモデルで表した例です。この例では組み込みコンポーネント名は Simulation0、モデル名は SliderCrank です。コードが生成されると、BuildSimCode コマンドを使用して Maple プロシージャをワークシートにエクスポートできます。
leArguments := [ 'InputString'=MapleSim:-Multibody:-GetMultibodyInput("Simulation0"), 'ModelName'="SliderCrank", 'KinSimpType'="Simplify", 'DynSimpType'="Simplify", 'AugType'="Lagrange", 'MaxSmallQOrder'=1, 'SaveToLib'=true, 'SilentMode'=false ]: MapleSim:-Multibody:-BuildEQs(op(leArguments)):
leNumericSubs := [G=9.81, m_1=1, m_2=1, m_3=3, F(t)=0]:
leArguments := [ SliderCrank, 'Language'="MapleProc", 'Optimize'=true, 'NumericSubs' = leNumericSubs, 'Baumgarte'=[2,2], 'Exports'={"Xdot"}, 'SilentMode'=false ]: MapleSim:-Multibody:-BuildSimCode(op(leArguments)):
eval(pXdot);
関連項目
Dynamic Exports, Kinematic Exports, MapleSim, MapleSim[Multibody][BuildEQs], MapleSim[Multibody][BuildExpression](deprecated), MapleSim[Multibody][BuildPlot](deprecated), MapleSim[Multibody][BuildSimulation](deprecated), MapleSim[Multibody][GetModel](deprecated), MapleSim[Multibody][GetMultibodyInput](deprecated)
Download Help Document