|
MapleSim コネクターテンプレート: DynamicSystems オブジェクトのための Simulink コンポーネントブロック生成
|
作者:
日付:
|
|
|
|
説明
|
|
このテンプレートを用いると、DynamicSystems オブジェクトから C コードを作成することができます。はじめに DynamicSystems オブジェクトの方程式とパラメータを定義し、それからそのシステムオブジェクトから C コードと M スクリプトを生成し、Simulink® モデル内で利用可能なブロックを作成します。
このテンプレートを使用する前に、MATLAB® と通信できるように Maple™ を設定する必要があります。詳細は、ヘルプトピック MATLAB 用にコンピュータを設定する をご覧ください。
|
|
コンポーネント方程式
|
|
以下のモデル方程式のサンプルを、所望の DynamicSystems オブジェクトの方程式で置き換えてください。Model Equations セクションのコンポーネント方程式とパラメータの定義に使用する変数を下記の表で指定してください。
システムモデルの生成についての詳細は、DynamicSystems ヘルプトピックをご覧ください。
|
|
モデル方程式
|
|
以下の例では、パラメータを指定して DynamicSystems オブジェクトを作成する方法を示します。
| (3.1) |
| (3.2) |
| (3.3) |
システムの微分方程式を表示する際は、DynamicSystems[DiffEquation] コマンドを使用できます。以下の例では、システムオブジェクトが sys de という変数に割り当てられます。次いで、de パラメータが使用されて微分方程式が表示されます。
| (3.4) |
| (3.5) |
|
|
コード生成拡張設定
|
|
以下の設定項目では、コード生成処理の拡張オプションを指定します。
|
コード最適化オプション
|
|
コード最適化オプションでは、コード生成処理の際に方程式を間接形式のままにするか、または常微分方程式 (ODE) 系に変換するかを指定します。以下のオプションのいずれかを選択してください:
•
|
無し:最適化を実行しません。生成されるコード内ではデフォルトの方程式が使用されます。
|
•
|
一部:冗長な方程式をシステムから取り除きます。
|
•
|
全部:指数減少法を実行して、当該システムを指数 1 の微分代数方程式 (DAE) 系または ODE 系に簡略化します。さらに、冗長な方程式を取り除きます。
|
|
|
DAE 制約オプション
|
|
制約射影オプションでは、生成される Simulink ブロック内で制約射影を使用することにより、DAE 系において制約条件を満たすかどうかを指定します。このオプションは、制約条件付きの DAE 系の精度を上げる際に使用します。制約条件が満たされない場合、系の結果は実際の解から外れてしまい、誤差が指数関数的に増大する恐れがあります。
DAE 系の計算結果のドリフトを制限するため、MathWorks™ ウェブサイトに記載されている通り External Model Interface の constraint projection ルーチンにより制約射影を行います。
デフォルトの制約射影の設定
最大許容反復回数フィールドでは、解の精度を高めるために許容する射影の最大反復回数を指定します。最大許容相対誤差フィールドでは、射影後に得る所望の許容誤差を指定します。
Maximum Allowable Iterations:
Maximum Allowable Relative Error:
|
|
|
Simulink ブロックの生成
|
|
S-Function ブロックを Simulink 内に直接生成するには、Simulink 向けに生成 をクリックしてください。S-Function コードを生成して保存するには、コードをディレクトリに保存 をクリックしてください。
|
モデルのタイプ
|
|
|
|
コード表示
|
|
|
Simulink C S-Function コード
|
|
|
|
Simulink .mdl Block スクリプト
|
|
|
|
|
|
|
|
ソースコード生成後、このワークシートを Maple で保存する。
|
Download Help Document
Was this information helpful?