Spline

Model ElementSplineは、滑らかさの度合いをユーザーが制御する区分的多項式関数です。

クラス名

Spline

説明

数学では、測定データのフィッティングや補間にスプラインがよく使用されます。Reference_Splineは、2つまたは3つの独立変数を使用してスプラインを定義します。つまり、データを曲線またはサーフェスにすることができます。

属性の概要

名前 プロパティ コマンドで変更可能か 設計可能か
id Int ()    
label Str ()    
x Double (count=0) FDのみ
y Double (count=0) FDのみ
z Double (count=0)   FDのみ
linear_extrapolate Bool (False)  
file String ()  
block String ()  
function Function ("SPLINE_READ")    

使用法

MotionSolveは、スプラインを定義するための4通りの方法を提供しています。
#1: Spline for X-Y data
Spline (x=list, y=list, optional_attributes)

#2: Spline for X-Y-Z data
Spline (x=list, y=list, optional_attributes)

#3: Spline data read from a file by a compiled user subroutine
Spline (file=string, function=userString, routine=string, optional_attributes)

#4: Spline data read from a file by a Python function
Spline (file=string, function=userString, routine=functionPointer, optional_attributes)

属性

X-Yデータのスプライン
x
数値のリスト。
スプラインのX値のリストを指定します。
x属性は必須です。
要件: len (x) ≥ 4
y
数値のリスト
スプラインのY値のリストを指定します。
y属性は必須です。
要件:
  • len (y) ≥ 4
  • len (x) = len (y)
X-Y-Zデータのスプライン
x
数値のリスト。
スプラインのX値のリストを指定します。
x属性は必須です。
要件:len (x) ≥ 4
z
数値のリスト。
スプラインのZ値のリストを指定します。
z属性は省略可能です。
y
数値のリスト。
スプラインのY値のリストを指定します。
y属性は必須です。
Zを指定する場合の要件:
  • yは、二次元リストとして指定された次元(M、N)のマトリクスです。
  • Mはz値の数です。
  • Nはx値の数です。
  • 各行がzの1つの値に対応します。
Zを指定しない場合の要件:
  • yは、一次元リストとして指定された次元(1、N)のマトリクスです。
  • Nはx値の数です。
  • 各行に少なくとも4つの数値が必要です。
  • すべての行を同じ長さにする必要があります。
コンパイルされたユーザーサブルーチンによってファイルから読み取られるスプラインデータ
file
文字列
スプラインデータを含むファイルのパスと名前を指定します。データが外部ファイルに含まれている場合にのみ使用します。
file属性は必須です。
function
文字列
データファイルからユーザー定義のサブルーチンに渡されるパラメータのリスト。
function属性は必須です。
routine
文字列
ユーザーサブルーチンの代替名を指定します。この名前は、“∷”で区切られた情報の2つの部分で構成されます。1つ目は、ユーザー定義のSurfaceの応答を計算する関数を含む共有ライブラリへのパス名です。2つ目は、計算を実行する共有ライブラリ内の関数の名前です。
例: routine="/staff/Altair/engine.dll::mySplineRead"
  • "/staff/Altair/engine.dllはDLLです。
  • "mySplineRead"は、計算を実行するこのDLL内の関数です。
属性routineは省略可能です。
指定しない場合、routineはデフォルトでSpline_Readになります。
属性routineは省略可能です。
block
文字列
スプラインデータを含むブロック名を指定します。1つのファイルに複数のデータのブロックを含めることができます。
このパラメータは省略可能です。多数のデータブロックがある外部ファイルにデータが含まれている場合にのみ使用します。
block属性は省略可能です。
Python関数によってファイルから読み取られるスプラインデータ
file
文字列
スプラインデータを含むファイルのパスと名前を指定します。データが外部ファイルに含まれている場合にのみ使用します。
file属性は必須です。
function
文字列
データファイルからユーザー定義のサブルーチンに渡されるパラメータのリスト。
function属性は必須です。
routine
Python内の呼び出し可能な関数へのポインタ。
例:routine=my_Spline_Read
  • my_Spline_Readは、モデルが存在する場所ならどこからでも呼び出すことが可能なPython関数またはメソッドです。
属性routineは省略可能です。
指定しない場合、routineはデフォルトでSpline_Readになります。
block
文字列
スプラインデータを含むブロック名を指定します。1つのファイルに複数のデータのブロックを含めることができます。
このパラメータは省略可能です。多数のデータブロックがある外部ファイルにデータが含まれている場合にのみ使用します。
block属性は省略可能です。
オプション属性 - すべての記述方法に使用できます。
id
整数
要素識別番号を指定します。この番号は、モデル内のすべてのSplineオブジェクトの中で一意にする必要があります。
この属性は省略可能です。MotionSolveは、IDが指定されていない場合、自動的にこれを作成します。
値の範囲:id > 0。
label
文字列
Splineオブジェクトの名前を指定します。
この属性は省略可能です。指定しない場合は、MotionSolveが代わりにラベルを作成します。
linear_extrapolate
ブール
独立座標が指定されたデータの範囲を越えた場合にMotionSolveがどのように処理するかを指定する論理フラグ。TrueまたはFalseを選択します。
  • Trueは、MotionSolveが線形補間を使用してスプライン値を推定することを示します。
  • Falseは、MotionSolveが外挿せずにエラーを返す必要があることを示します。
この属性は省略可能です。指定しない場合、MotionSolvelinear_extrapolate = Trueに設定します。

同じモデルのXMLシンタックスとPythonシンタックスの比較。
XMLシンタックス Pythonシンタックス
<Reference_Spline
  id = "301001"
  label = "SWA vs. Time"
  num_x = "11"
   0.00E+00  1.09E+00
   1.00E-01  6.88E+00
   2.00E-01  2.52E+00
   3.00E-01  3.02E+00
   4.00E-01  3.30E+00
   5.00E-01  3.23E+00
   6.00E-01 -8.91E-02
   7.00E-01 -4.20E+00
   8.00E-01 -3.00E+00
   9.00E-01  2.05E+00
   1.00E+00  0.04E+00
</Reference_Spline>
time = [ 0, .1, .2, .3, .4, .5, .6, .7, .8, .9, 1] 
swa = [1.09, 6.88, 2.52, 3.02, 3.30, 3.23,-.0891,-4.20, 3, 2.05, 0]
spl1 = Spline (label="SWA vs. Time", x=time, y=swa)
<Reference_Spline
 id = "301001"
 num_x = "5"
 num_z = "3">
<!--x Y(zl) Y(z2) Y(z3)-->
 0.00 0.00 0.00 0.00
 0.25 0.50 0.70 0.90
 0.50 0.00 0.00 0.00
 0.75 0.50 0.70 0.90
 1.00 0.00 0.00 0.00
 <!--Z values-->
     0.00 1.00 20.0
</Reference_Spline>
xval = [ 0, 0.25, 0.5, 0.75, 1] 
zval = [ 0.0, 1.0, 20.0 ]
yval = [[0, 0.5, 0, 0.5, 0]
        [0, 0.7, 0, 0.7, 0]
        [0, 0.9, 0, 0.9, 0]]spl2 = Spline (label="jagged surface", x=xval, y=yval, z=zval)
<Reference_Spline
 id              = "301001"
 usrsub_dll_name = "./wheel.so"
 file_name       = "./wheel_1.dat"
 block_name      = "wheel_angle"
/>
dll = "./wheel.dll" 
fnam = "./wheel_1 .dat"
blk = "wheel angle"
spl3 = Spline (label="SWA vs. Time", routine=dll, 
file=fnam, block=blk)

コメント

  1. プロパティの概要、使用理由、および拡張方法については、プロパティをご参照ください。
  2. Splineの詳細については、Reference: Splineをご参照ください。