WSMLink`
WSMLink`

WSMCreateModel

WSMCreateModelは,バージョン11.3で試験的に導入されたCreateSystemModelに段階的に置き換えられつつある.

WSMCreateModel["newmodel",sys]

システムモデル sys のModelicaモデル "newmodel" を作成する.

WSMCreateModel["newmodel",eqns,t]

独立変数 t でシステム方程式 eqns のモデルを作成する.

WSMCreateModel["newmodel",,tspecs]

変数とパラメータのタイプ指定 tspecs でモデルを作成する.

WSMCreateModel["newmodel""partial",eqns,t]

"partial" で与えられた指定を拡張するコンポーネントモデルを作成する.

詳細とオプション

  • WSMCreateModelは,WSMModelData["newmodel"]を返す.
  • WSMCreateModel["PackageA.NewModel"]は,"NewModel""PackageA"に挿入する.
  • 可能なシステムモデル sys にはTransferFunctionModelStateSpaceModelが含まれる. »
  • 可能な方程式 eqns には,常微分方程式,微分代数方程式,初期値方程式,およびWhenEventで与えられる事象指定が含まれる. »
  • eqnssys のパラメータは,明示的に t に依存しない変数であるとされる.
  • 変数とパラメータ{tspec1,}のタイプ指定 tspecs で,それぞれの tspeci が以下の形式である.
  • paritypeiパラメータタイプ typei
    varitypei変数タイプ typei
  • タイプ typei は,基本的なRealsIntegersBooleans,あるいは単位を含む任意のModelicaのタイプである. »
  • WSMNames["Modelica.Units.*","type"]は,組込みの標準単位を求めるのに使える.
  • Modelicaモデルは一般に,数多くのモデルを組み合せて1つのより大きなモデルにすることによって構築する.モデル間のインタラクションは,Modelicaの概念 connector(コネクタ)で説明される. »
  • コネクタは,エフォート変数とフロー変数からなる.複数のコネクタを接続する場合には,フロー変数の総和は0となり,エフォート変数は等しく設定される.
  • 例として,通常端子と呼ばれる電気回路コネクタは,電圧変数 v と電流変数 i からなる.
  • 端子 np を接続すると,フロー変数(この場合は電流 i)は合計で0になり,エフォート変数(この場合は電圧 v)は等しく設定される.
  • すべてのフロー変数は,コンポーネントに流れ込む方向に正である.
  • さまざまな領域でのエフォート変数とフロー変数:
  • <領域><エフォート変数><フロー変数>
    電気回路電圧電流
    磁気回路磁位磁束
    平行移動力学位置
    回転力学角度トルク
    3D力学位置ベクトル,方向オブジェクト切削力ベクトル,切削トルクベクトル
    流体系圧力,比エンタルピー質量流量,エンタルピー流量
    伝熱系熱流量
    ブロック図実数,整数,ブール数-
  • 領域に可能なコネクタ conni は,通常Interfacesパッケージで定義される.例えば,組込みのElectricalライブラリのコネクタを見付けるのにWSMNames["Modelica.Electrical.Analog.Interfaces.*","connector"]を使うことができる.
  • 指定 variconni を使って,変数 vari がタイプ conni のコネクタを参照するように指定することができる.
  • コネクタ c の変数 vi は,cvi を含む eqns の中で参照することができる.この場合,「 」の文字は\[UpPointer]として入力できる.
  • コネクタ conn で定義される変数は,WSMModelData[conn,"SystemVariables"]でリストすることができる.
  • ライブラリにはしばしば,interfaces と呼ばれる,新しいコンポーネントモデルを構築するための部分的なモデルが含まれている.これらのインターフェースは通常,これらのインターフェース間の基本的な関係を表すコネクタと方程式からなる.
  • WSMCreateModel["newmodel""partial",eqns,]を使うと,"newmodel"eqns をModelicaで定義された既存の "partial"モデルと組み合せることができる. »
  • WSMCreateModel["newmodel""partial",]は,Modelicaで "extends"キーワードを使うことに対応する.
  • モデルは,"newmodel"{,"partiali",}を使って複数のモデルに拡張することができる.
  • 構築する部分的なモデルは通常,Interfacesパッケージで定義される.例えば,WSMNames["Modelica.Electrical.Analog.Interfaces.*","model"|"block"]を使って,組込みのElectricalライブラリの部分的なモデルを求めることができる.
  • WSMNames["*.type"]が一意的なマッチを与えるところでは,最短の一意的な"type"あるいは"partial"を使うことができる. »
  • 以下のオプションを与えることができる.
  • WSMInitialValues Automatic開始値
    WSMParameterValues Automaticパラメータ値
  • WSMInitialValuesは,Modelicaモデルの start 特性に対応する.

例題

すべて開くすべて閉じる

  (4)

Wolfram SystemModeler Linkをロードする:

StateSpaceModelに基づいてモデルを作成する:

TransferFunctionModelに基づいてモデルを作成する:

既存のインターフェースの周りにモデルを構築する:

スコープ  (25)

系のモデル  (9)

単一入力単一出力のTransferFunctionModelのモデルを作成する:

単一入力単一出力のStateSpaceModelのモデルを作成する:

多入力多出力:

伝達関数モデルのパラメータを持つモデルを作成する:

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

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

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

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

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

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

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

関数は入出力のブロックに変換される:

微分方程式  (11)

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

任意次数の方程式を指定する.より高次の導関数の簡約は,自動的に行われる:

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

代数的な制約条件を持ち,結果として高指数問題をもたらす系を定義する:

ハイブリッド方程式は,WhenEventを使って指定することができる:

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

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

start の値を指定する:

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

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

関数は,Modelicaの関数に置き換えられる:

コネクタ  (3)

導関数ブロックを作成する:

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

モデルを作成する:

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

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

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

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

単一入力単一出力のブロックインターフェースを拡張して,ブロックを作成する:

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

オプション  (7)

WSMInitialValues  (5)

変数に start 値を与える:

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

start 値と初期方程式の両方がある場合には,初期方程式に優先権がある:

WSMInitialValuesは,初期化を解くのに開始値を与える:

y[0]2が初期方程式として与えられたので,x の開始値は無視される:

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

WSMParameterValues  (2)

パラメータ値を与える:

他のパラメータに従ってパラメータを与える:

アプリケーション  (5)

跳ねるボールについての方程式を定義する:

モデルを作成する:

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

高さを時間の経過とともにプロットする:

被食者と捕食者の関係をモデル化して,LotkaVolterra方程式のモデルを作成する:

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

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

モデルを作成する:

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

より高い被食者の成長パラメータが系の循環をスピードアップする:

2つの繋がった水槽を,2つ目の水槽には水漏れがあるものとして,モデル化する:

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

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

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

2つ目の水槽に水漏れがあるので,時間の経過とともに両方の水槽から水が流れ出る:

一方向にだけ減衰のある機械的な平行移動ダンパーを作成する:

減衰定数を定義する:

並進運動の力学ライブラリからの部分的なインターフェースを使ってダンパーを作成する:

双方向のダンパーと比べる:

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

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

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

信号発生源を作成する:

信号源をフィルタに繋ぐ:

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

特性と関係  (3)

WSMModelDataを使ってモデルから情報を抽出することができる:

既存モデルからの方程式を含む新しいモデルを作成し,パラメータを変更する:

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

特別文字は,その長い形式に変換される:

Subscriptは,_に変換される:

考えられる問題  (3)

モデルは,SystemModeler Model Centerで明示的に保存されない限り,保存されない:

Wolfram言語カーネルとSystemModelerを終了すると,モデルは消えてしまう:

系のモデルの中には変換されるものもある:

Modelicaは,Wolfram言語関数の一部をサポートする: