CreateSystemModel

CreateSystemModel[sys]

システムモデル sys からModelica SystemModelを作る.

CreateSystemModel[eqns,t]

独立変数 t を有するシステム方程式 eqns についてのモデルを作る.

CreateSystemModel[,tspec]

パラメータと変数についての型指定 tspec でモデルを作る.

CreateSystemModel[,spec]

パラメータ値,初期値,モデル関係についての spec でモデルを作る.

詳細とオプション

  • CreateSystemModelSystemModel[]を返す.
  • CreateSystemModel["NewModel",]は,作成されたモデルに"NewModel"という名前を与える.
  • CreateSystemModel["PackageA.NewModel"]"PackageA""NewModel"を挿入する.
  • 使用可能な動的システムモデル sys には,StateSpaceModelTransferFunctionModelAffineStateSpaceModelNonlinearStateSpaceModelDiscreteInputOutputModelがある. »
  • 使用可能な静的モデル sys にはFittedModelNetChainNetGraphがある.
  • 使用可能な方程式 eqns には,常微分方程式(ODE),微分代数方程式(DAE),初期値方程式,WhenEventで与えられるイベント指定がある. »
  • eqns および sys のパラメータは,t に明示的には依存しない変数であると解釈される.
  • 変数とパラメータについての型指定 tspecs{tspec1,}となる.tspeci は以下の形式でよい.
  • paritypeiパラメータ型 typei
    varitypei変数型 typei
  • typeiは,基本的なRealsIntegersBooleans,あるいは単位を含む任意のModelicaの型でよい. »
  • SystemModels["Modelica.Units.*","type"]を使って組込みの標準単位を探すことができる.
  • Modelicaのモデルは,一般に,多くのモデルを繋げて大きいシステムを作ることで構築される.モデル間のインタラクションは,「コネクタ(connector)」というModelicaのコンセプトで説明される. »
  • コネクタは力変数,流れ変数,ストリーム変数からなる.複数のコネクタを接続するときは,流れ変数の合計は0になるように,力変数は等しくなるように設定される.
  • 例えば,しばしばピンと呼ばれる電気回路のコネクタは,電圧変数 v と電流変数 i からなる.
  • ピン n とピン p を繋ぐと,流れ変数(この場合は電流 i)の合計が0になり,力変数(この場合は電圧 v)は等しく設定される.
  • 流れ変数はすべてコンポーネントに流れ込む方向で正である.
  • 以下は,さまざまな領域における力変数と流れ変数である.
  • 領域力変数流れ変数
    電気回路電圧電流
    磁気回路磁位磁束
    並進力学位置
    回転力学角度トルク
    3D力学位置ベクトル,方向オブジェクト切断力ベクトル,切断トルクベクトル
    流量系圧力,比エンタルピー質量流量,エンタルピー流量
    熱伝導系温度熱流量
    ブロック図実数,整数,ブーリアン-
  • ある領域に使用可能なコネクタ conniは,一般に,Interfacesパッケージ内で定義される.例えば,SystemModels["Modelica.Electrical.Analog.Interfaces.*","connector"]を使って組込みの電気ライブラリ内のコネクタを探すことができる.
  • 指定 variconniを使って,変数 variが型 conniのコネクタを参照するように指定することができる.
  • コネクタ c 内の変数 viは,eqns 内で cviとして参照することができる. という記号は\[UpPointer]で入力できる.
  • コネクタ conn で定義された変数はSystemModel[conn,"SystemVariables"]でリストすることができる.
  • CreateSystemModel[,spec]spec は次のキーのAssociationである.
  • "ParameterValues"{p1val1,}パラメータ値
    "InitialValues"{v1val1,}初期値
    "ExtendsModels"{partial1,}構築する部分モデル
    "DiscreteVariables"{v1,v2,}イベントのみで変化する変数
    "SimulationSettings"{opt1val1,}モデルのシミュレーションオプション
  • ライブラリには,新たなコンポーネントモデルを構築するための「インターフェース(interface)」と呼ばれる部分モデルがしばしば含まれている.これらのインターフェースは,大抵の場合,コネクタとコネクタ間の基本的な関係を説明する方程式からなる.
  • CreateSystemModel[,"ExtendsModels"partial]では,新たなモデルがModelica内で定義されている既存の partial SystemModelと組み合される. »
  • モデルは,"ExtendsModels"{"partial1",}を使って複数のモデルに拡張することができる.
  • 上に構築するための部分モデルは,通常は,Interfacesパッケージで定義されている.例えば,SystemModels["Modelica.Electrical.Analog.Interfaces.*","model"|"block"]を使って組込みの電気ライブラリについての部分モデルを探すことができる.
  • "InitialValues"はModelicaモデルの start 特性に相当する.
  • 次は,"SimulationsSettings"->{opt1val1,}で使用可能なオプションである.
  • "Method"シミュレーションメソッド
    "StartTime"シミュレーションの開始時間
    "StopTime"シミュレーションの終了時間
  • 次は,使用可能な適応的ステップ"Method"の値である.
  • "DASSL"DASSL DAEソルバ
    "CVODES"CVODES ODEソルバ
  • 次は,適応的ステップ法のオプションである.
  • "InterpolationPoints"補間点の数
    "Tolerance"適応的ステップサイズの許容範囲
  • 次は,使用可能な固定ステップ"Method"の値である.
  • "Euler"次数1の明示的なオイラー(Euler)
    "Heun"次数2のホイン(Heun)
    "RungeKutta"次数4の明示的なルンゲ・クッタ(RungeKutta)
  • 次は,固定ステップ法のオプションである.
  • "StepSize"固定ステップサイズ
  • GeneratedAssetLocationloc のオプション設定のときは,生成されたデジタルアセットを loc に保存することができる.

例題

すべて開くすべて閉じる

  (3)

StateSpaceModelに基づくモデルを作る:

TransferFunctionModelに基づくモデルを作り,それにカスタム名を与える:

方程式を使って,既存のインターフェースの周りにモデルを構築する:

スコープ  (50)

システムモデル  (11)

1入力1出力(SISO)のTransferFunctionModelのモデルを作る:

SISOのStateSpaceModelのモデルを作る:

多入力多出力(MIMO):

伝達関数モデルのパラメータを使ってモデルを作る:

状態空間モデルでパラメータを指定する:

伝達関数モデルのパラメータ値を定義する:

状態空間モデルのパラメータ値を与える:

パラメータの型と値を与える:

離散伝達関数モデルからモデルを作る:

離散状態空間モデルからモデルを作る:

ディスクリプタシステムを使う:

アフィン状態空間モデルからモデルを作る:

非線形状態空間モデルからモデルを作る:

離散入出力モデルからモデルを作成する:

微分方程式  (12)

単一の方程式の常微分方程式系を作る:

任意階数の方程式を指定する.高階微分方程式の簡約は自動的に行われる:

複数の方程式の系を定義する:

代数制約がある系を定義する.結果は高指数問題になる:

混合方程式はWhenEventを使って指定することができる:

離散時間でしか変化しない変数 a を宣言する:

階段を跳ねるボールのモデルのシミュレーションを行ってプロットする:

Wolfram 言語の関数は,そのModelica版に自動的に変換される:

デフォルトのパラメータ値を指定する:

start 値を指定する:

変数とパラメータの型を指定する:

配列はIndexedを使って表現される:

方程式に使われる関数はModelicaの関数に変換される:

連想と関数  (4)

Associationは記録に変換される:

記録を使って粒子の運動を保存する:

Functionからの特化関数を使ってクラスを作成する:

Moduleを使ってプロテクトされた変数を導入する:

領域とGraphics3D  (2)

埋込み次元が3の領域は,可視化と動的特性を持つオブジェクトを作成する:

RegionMeasureRegionCentroidMomentOfInertiaのようなデータは"Modelica.Mechanics.MultiBody"成分を使って保存される:

Graphics3Dオブジェクトは可視化のためにエキスポートされる:

DiscretizeGraphicsまたはBoundaryDiscretizeGraphicsGraphics3Dから領域が生成できるかもしれない:

フィットモデルとニューラルネットワーク  (2)

FittedModelから入出力ブロックを作成する:

入力を与え,シミュレーションを行なってプロットする:

訓練済みあるいは初期化済みのNetChainまたはNetGraphから入力出力ブロックを作成する:

入力を与え,シミュレーションを行ってプロットする:

モデルの命名  (3)

作成したモデルにカスタムの名前を付ける:

モデルの名前を表示する:

パッケージ内にモデルを作る:

モデルの名前を表示する:

名前が付いていない場合は,一意的な名前が生成される:

生成されたモデル名を表示する:

モデルにカスタムの名前を付ける:

新たなモデル名を表示する:

型とコネクタ  (4)

単一の出力ブロックを作る:

これを実数型として返す:

モデルを作成する:

微分ブロックを作る:

入出力のコネクタを定義する:

モデルを作る:

Electricalライブラリからのコネクタを使って抵抗器を作る:

短縮形を使ってコネクタを参照する:

初期値とパラメータ値  (6)

変数に start 値を与える:

パラメータに start 値を与える:

start 値と初期方程式では,初期方程式の方が優先順位が高い:

パラメータを初期値として使う:

パラメータ値を与える:

別のパラメータに依存するパラメータを与える:

部分的なモデルの上に構築する  (3)

入力に1を加えるブロックを作る:

SISOブロックインターフェースを拡張してブロックを作る:

短縮形を使って既存のインターフェースを参照する:

文字列のペアのリストから列挙する:

シミュレーション設定  (3)

モデルに開始時間と終了時間を与える:

モデルのシミュレーションを行い,プロットする:

シミュレーションにルンゲ・クッタメソッドを選択する:

モデルのシミュレーション設定を表示する:

モデルのリアルタイム同期を設定する:

モデルのシミュレーション設定を表示する:

オプション  (2)

GeneratedAssetLocation  (2)

領域から作られたモデルは,デフォルトで,アセットファイルを$WolframDocumentsDirectoryにエキスポートする:

GeneratedAssetLocationを使ってアセットの場所を指定する:

ニューラルネットワークから作成されたモデルは,デフォルトで,ONNXファイルを$WolframDocumentsDirectoryにエキスポートする:

GeneratedAssetLocationを使ってアセットの場所を指定する:

アプリケーション  (7)

バウンドするボールの方程式を定義する:

モデルを作る:

95%の回復率でシミュレーションを行う:

高さを時間に沿ってプロットする:

捕食・被食関係をモデル化するロトカ・ヴォルテラ(LotkaVolterra)方程式を作る:

2つの状態の初期値を定義する:

パラメータ値を定義する:

モデルを作る:

捕食者と被食者のレベルを時間とともに表示する:

被食者の増加パラメータを大きくすると,この系の中の循環が速くなる:

2番目のタンクに漏れがある,連結された2つのタンクをモデル化する:

初期方程式とパラメータを含む方程式を設定する:

与えられたパラメータ値の集合をデフォルトとして使ってモデルを作る:

シミュレーションを行う:

2番目のタンクに漏れがあるので,どちらのタンクも時間が経つと空になる:

1方向だけに減衰させる機械並進ダンパーを作る:

減衰定数を定義する:

Translational Mechanicsライブラリからの部分的インターフェースを使ってダンパーを作る:

双方向ダンパーと比較する:

デジタルローパスフィルタを作る:

フィルタを伝達関数に変換する:

フィルタのモデルを作る:

信号生成源を作る:

信号源をフィルタに接続する:

信号の出力とフィルタがかかった信号のシミュレーションを行い,プロットする:

領域をワールド成分と一緒に使用して,体が重力の影響を受ける新しいモデルを作成する:

質量の中心の位置のシミュレーションを行ってプロットする:

平行六面体の回転現象を可視化する:

ワールド成分のパラメータを変更することで重力の影響をオフにして角速度に初期値を与える:

シミュレーションをして体に固定したフレームの回転行列を入手する:

体の回転を可視化する:

特性と関係  (3)

SystemModel特性を使ってモデルから情報を抽出する:

既存のモデルからの方程式をパラメータを変えて使って,新たなモデルを作る:

2つのモデルのシミュレーションを行い,比較する:

特殊文字はその長文形に変換される:

Subscript_に変換される:

考えられる問題  (2)

モデルは明示的に保存しなければ保存されない:

Wolfram言語カーネルを終了するとモデルもなくなる:

CreateSystemModelはWolfram言語関数の部分集合をサポートする:

Wolfram Research (2018), CreateSystemModel, Wolfram言語関数, https://reference.wolfram.com/language/ref/CreateSystemModel.html (2022年に更新).

テキスト

Wolfram Research (2018), CreateSystemModel, Wolfram言語関数, https://reference.wolfram.com/language/ref/CreateSystemModel.html (2022年に更新).

CMS

Wolfram Language. 2018. "CreateSystemModel." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2022. https://reference.wolfram.com/language/ref/CreateSystemModel.html.

APA

Wolfram Language. (2018). CreateSystemModel. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/CreateSystemModel.html

BibTeX

@misc{reference.wolfram_2024_createsystemmodel, author="Wolfram Research", title="{CreateSystemModel}", year="2022", howpublished="\url{https://reference.wolfram.com/language/ref/CreateSystemModel.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_createsystemmodel, organization={Wolfram Research}, title={CreateSystemModel}, year={2022}, url={https://reference.wolfram.com/language/ref/CreateSystemModel.html}, note=[Accessed: 22-November-2024 ]}