CreateDataSystemModel[{v1,v2,…}]
値 viの信号を生成するSystemModelを作る.
CreateDataSystemModel[{{t1,v1},…}]
時間と値のペア {ti,vi}のモデルを作る.
TimeSeriesあるいはInterpolatingFunction obj のモデルを作る.
CreateDataSystemModel[fun,tmin,tmax]
関数 fun の tmin から tmax までのサンプルでモデルを作る.
CreateDataSystemModel[data,"dspec"]
データ指定"dspec"でモデルを作る.
CreateDataSystemModel
CreateDataSystemModel[{v1,v2,…}]
値 viの信号を生成するSystemModelを作る.
CreateDataSystemModel[{{t1,v1},…}]
時間と値のペア {ti,vi}のモデルを作る.
TimeSeriesあるいはInterpolatingFunction obj のモデルを作る.
CreateDataSystemModel[fun,tmin,tmax]
関数 fun の tmin から tmax までのサンプルでモデルを作る.
CreateDataSystemModel[data,"dspec"]
データ指定"dspec"でモデルを作る.
詳細とオプション
- CreateDataSystemModelは,主に他のモデルに対する柔軟な入力として使われる補間曲線を作る.
- CreateDataSystemModelは他のモデルに接続可能なSystemModel[…]オブジェクトを返す.
- CreateDataSystemModel["NewModel",…]は,作成されたモデルに"NewModel"という名前を与える.
- CreateDataSystemModel["PackageA.NewModel",…]は"NewModel"を"PackageA"に挿入する.
- 次は,使用可能なオプションである.
-
InterpolationOrder Automatic 補間次数 SamplingPeriod Automatic サンプル間の時間 GeneratedAssetLocation None データファイルの場所 - 入力によるInterpolationOrderのデフォルト値
-
{v1,v2,…},{{t1,v1},…} 1 TimeSeries, InterpolatingFunction 保存された値 fun 3 - 値 viのリストについてのSamplingPeriodのデフォルトは1である.
- TimeSeriesとInterpolatingFunctionのサンプル点は保存される.
- 次は,"dspec"の可能な値である.
-
"Time" 時間の列と値の列 "1D" 引数の列と値の列 "2D" 引数の行と列と値の行列 - 対応するデータ配列は以下のレイアウトを持つ.
- デフォルトの"dspec"は"Time"である.
例題
すべて開く すべて閉じる例 (3)
data = {{0, 6}, {1, 9}, {2, 1}, {3, 9}, {4, 7}, {5, 6}, {6, 1}, {7, 8}, {8, 0}, {9, 2}, {10, 9}};model = CreateDataSystemModel[data]sim = SystemModelSimulate[model, 10]SystemModelPlot[sim, "y[1]"]TimeSeriesからモデルを作る:
ts = TimeSeries[{{0, 6}, {1, 9}, {2, 1}, {3, 9}, {4, 7}, {5, 6}, {6, 1}, {7, 8}, {8, 0}, {9, 2}, {10, 9}}]model = CreateDataSystemModel[ts];sim = SystemModelSimulate[model, 10];SystemModelPlot[sim, "y[1]"]0秒から10秒までで関数のサンプルを取ってデータのモデルを作る:
model = CreateDataSystemModel[Sin, 0, 10];sim = SystemModelSimulate[model, 10];SystemModelPlot[sim, "y[1]"]スコープ (18)
値のリスト (4)
data = {6, 9, 1, 9, 7, 6, 1, 8, 0, 2, 9};model = CreateDataSystemModel[data];sim = SystemModelSimulate[model, 10];SystemModelPlot[sim, "y[1]"]data = {6, 9, 1, 9, 7, 6, 1, 8, 0, 2, 9};model = CreateDataSystemModel[data, SamplingPeriod -> 0.1];sim = SystemModelSimulate[model, 1];SystemModelPlot[sim, "y[1]"]カスタムのInterpolationOrderを使う:
data = {6, 9, 1, 9, 7, 6, 1, 8, 0, 2, 9};model = CreateDataSystemModel[data, InterpolationOrder -> 0];sim = SystemModelSimulate[model, 10];SystemModelPlot[sim, "y[1]"]SparseArrayは,対応するNormal配列であると解釈される:
s = SparseArray[{{1} -> 1, {2} -> 3, {5} -> 2, {7} -> 1}];model = CreateDataSystemModel[s];sim = SystemModelSimulate[model, 7];SystemModelPlot[sim, "y[1]"]時間と値のペア (3)
data = {{0, 6}, {2, 1}, {3, 9}, {4, 7}, {5, 6}, {6, 1}, {7, 8}, {8, 0}, {9, 2}, {10, 9}};model = CreateDataSystemModel[data];sim = SystemModelSimulate[model, 10];SystemModelPlot[sim, "y[1]"]カスタムのInterpolationOrderを使う:
data = {{0, 6}, {2, 1}, {3, 9}, {4, 7}, {5, 6}, {6, 1}, {7, 8}, {8, 0}, {9, 2}, {10, 9}};model = CreateDataSystemModel[data, InterpolationOrder -> 0];sim = SystemModelSimulate[model, 10];SystemModelPlot[sim, "y[1]"]data = {{0, 8, 4}, {1, 5, 2}, {2, 9, 6}, {3, 10, 2}, {4, 4, 1}, {5, 0, 4}, {6, 6, 8}, {7, 3, 6}, {8, 1, 3}, {9, 0, 1}, {10, 6, 1}};model = CreateDataSystemModel[data];sim = SystemModelSimulate[model, 10];SystemModelPlot[sim, {"y[1]", "y[2]"}]時系列 (3)
TimeSeriesからデータモデルを作る:
ts = TimeSeries[{{0, 6}, {1, 9}, {2, 1}, {3, 9}, {4, 7}, {5, 6}, {6, 1}, {7, 8}, {8, 0}, {9, 2}, {10, 9}}]model = CreateDataSystemModel[ts];sim = SystemModelSimulate[model, 10];SystemModelPlot[sim, "y[1]"]TimeSeriesからのInterpolationOrderは保存される:
data = {{0, 6}, {1, 9}, {2, 1}, {3, 9}, {4, 7}, {5, 6}, {6, 1}, {7, 8}, {8, 0}, {9, 2}, {10, 9}};ts = TimeSeries[data, ResamplingMethod -> {"Interpolation", InterpolationOrder -> 0}]model = CreateDataSystemModel[ts];sim = SystemModelSimulate[model, 10];SystemModelPlot[sim, "y[1]"]データモデルを作るときは,InterpolationOrderをオーバーライドする:
data = {{0, 6}, {1, 9}, {2, 1}, {3, 9}, {4, 7}, {5, 6}, {6, 1}, {7, 8}, {8, 0}, {9, 2}, {10, 9}};ts = TimeSeries[data, ResamplingMethod -> {"Interpolation", InterpolationOrder -> 0}]model = CreateDataSystemModel[ts, InterpolationOrder -> 3];sim = SystemModelSimulate[model, 10];SystemModelPlot[sim, "y[1]"]補間関数 (2)
InterpolatingFunctionからモデルを作る:
data = {{0, 6}, {2, 1}, {3, 9}, {4, 7}, {5, 6}, {6, 1}, {7, 8}, {8, 0}, {9, 2}, {10, 9}};if = Interpolation[data];model = CreateDataSystemModel[if];sim = SystemModelSimulate[model, 10];SystemModelPlot[sim, "y[1]"]モデルを作る前にInterpolatingFunctionをリサンプルする:
data = {{0, 6}, {2, 1}, {3, 9}, {4, 7}, {5, 6}, {6, 1}, {7, 8}, {8, 0}, {9, 2}, {10, 9}};if = Interpolation[data];model = CreateDataSystemModel[if, SamplingPeriod -> 2];sim = SystemModelSimulate[model, 10];SystemModelPlot[sim, "y[1]"]関数 (3)
model = CreateDataSystemModel[Cos, 0, 10];sim = SystemModelSimulate[model, 10];SystemModelPlot[sim, "y[1]"]InterpolationOrderを選択する:
model = CreateDataSystemModel[Cos, 0, 10, InterpolationOrder -> 0];シミュレーションを2秒間行い,データ出力をプロットして補間次数を示す:
sim = SystemModelSimulate[model, 2];SystemModelPlot[sim, "y[1]"]model = CreateDataSystemModel[Cos, 0, 10, InterpolationOrder -> 1, SamplingPeriod -> 1];sim = SystemModelSimulate[model, 10];SystemModelPlot[sim, "y[1]"]データ指定 (3)
時間を取って2つの値の列についてこれを補間するデータモデルを作る:
data = {#, Cos[#], Sin[#]}& /@ Range[0, 2π, 0.1];Take[data, 5]//MatrixFormmodel = CreateDataSystemModel[data, "Time"];sim = SystemModelSimulate[model, π];SystemModelPlot[sim, {"y[1]", "y[2]"}]入力を取って2つの値の列でこれを補間するデータモデルを作る:
data = {#, Cos[#], Sin[#]}& /@ Range[0, 2π, 0.1];Take[data, 5]//MatrixFormmodel = CreateDataSystemModel[data, "1D"];時間の2倍の速度でサンプルを取る入力でシミュレーションを行う:
sim = SystemModelSimulate[model, π, <|"Inputs" -> {"u" -> Function[t, 2t]}|>];SystemModelPlot[sim, {"y[1]", "y[2]"}]2つのスカラー入力を取り,二変量補間を通してそれらを実行するデータを作る:
data = (| | | | | |
| --- | --- | --- | --- | --- |
| 0.0 | 0.1 | 0.2 | 0.3 | 0.4 |
| 0.1 | 0.3 | 0.5 | 0.7 | 0.9 |
| 0.2 | 0.4 | 0.6 | 0.8 | 1.0 |
| 0.3 | 0.5 | 0.7 | 0.9 | 1.1 |
| 0.4 | 0.6 | 0.8 | 1.0 | 1.2 |);xcoords = data[[2 ;; , 1]];ycoords = data[[1, 2 ;; ]];values = data[[2 ;; , 2 ;; ]];points = Join@@Table[{xcoords[[x]], ycoords[[y]], values[[x, y]]}, {x, Length[xcoords]}, {y, Length[ycoords]}];p1 = ListPointPlot3D[points]model = CreateDataSystemModel[data, "2D"];inputx = Function[t, 0.2 + 0.4t Cos[50 t]];inputy = Function[t, 0.2 + 0.4t Sin[50 t]];sim = SystemModelSimulate[model, 0.3, <|"Inputs" -> {"u1" -> inputx, "u2" -> inputy}|>];p2 = ParametricPlot3D[{inputx[t], inputy[t], sim["y", t]}, {t, 0, 0.3}];Show[p1, p2]オプション (7)
InterpolationOrder (3)
InterpolationOrderを0にすると,サンプル間は一定長の線分になる:
data = {{0, 6}, {1, 9}, {2, 1}, {3, 9}, {4, 7}, {5, 6}};model = CreateDataSystemModel[data, InterpolationOrder -> 0];sim = SystemModelSimulate[model, 5];SystemModelPlot[sim, "y[1]"]InterpolationOrderを1にすると,サンプル間は直線になる:
data = {{0, 6}, {1, 9}, {2, 1}, {3, 9}, {4, 7}, {5, 6}};model = CreateDataSystemModel[data, InterpolationOrder -> 1];sim = SystemModelSimulate[model, 5];SystemModelPlot[sim, "y[1]"]InterpolationOrderを3にすると,連続微分による平滑化された線が与えられる:
data = {{0, 6}, {1, 9}, {2, 1}, {3, 9}, {4, 7}, {5, 6}};model = CreateDataSystemModel[data, InterpolationOrder -> 3];sim = SystemModelSimulate[model, 5];SystemModelPlot[sim, "y[1]"]SamplingPeriod (3)
データのリストについて,SamplingPeriodはデータ点間の周期を決定する:
data = {6, 9, 1, 9, 7, 6};model = CreateDataSystemModel[data, SamplingPeriod -> 2];sim = SystemModelSimulate[model, 10];SystemModelPlot[sim, "y[1]"]関数について,SamplingPeriodは関数がどの頻度でサンプルされるかを決定する:
model1 = CreateDataSystemModel[Sin, 0, 10, SamplingPeriod -> 0.5, InterpolationOrder -> 0];model2 = CreateDataSystemModel[Sin, 0, 10, SamplingPeriod -> 2, InterpolationOrder -> 0];sim1 = SystemModelSimulate[model1, 10];sim2 = SystemModelSimulate[model2, 10];SystemModelPlot[{sim1, sim2}, "y[1]"]TimeSeriesについて,SamplingPeriodは一様リサンプリングを行う:
data = {{0, 5}, {1, 4}, {2, 2}, {3, 9}, {4, 1}, {5, 9}, {6, 4}, {7, 3}, {8, 9}, {9, 2}, {10, 0}};ts = TimeSeries[data]ListLinePlot[ts]model = CreateDataSystemModel[ts, SamplingPeriod -> 3];sim = SystemModelSimulate[model, 10];SystemModelPlot[sim, "y[1]"]GeneratedAssetLocation (1)
model = CreateDataSystemModel[Range[3]];model["ModelicaDisplay"]GeneratedAssetLocationを使ってデータファイルをモデルによって参照される指定の場所にエキスポートする:
model = CreateDataSystemModel[Range[3], GeneratedAssetLocation -> FileNameJoin[{$TemporaryDirectory, "data.txt"}]];model["ModelicaDisplay"]アプリケーション (1)
noise = CreateDataSystemModel[RandomFunction[WienerProcess[], {0., 5, 5 / 400}]];filteredModel = ConnectSystemModelComponents[{"noise"∈noise, "filter"∈"Modelica.Blocks.Continuous.LowpassButterworth"}, {"noise.y[1]" -> "filter.u"}]sim = SystemModelSimulate[filteredModel, 5]SystemModelPlot[sim, {"filter.u", "filter.y"}]特性と関係 (2)
data = {{0, 6}, {1, 9}, {2, 1}, {3, 9}, {4, 7}, {5, 6}};CreateDataSystemModel["MyPackage.DataModel", data];CreateDataSystemModel["MyPackage.TimeSeriesModel", TimeSeries[data]];SystemModels["MyPackage.*"]"CombiTimeTable"のModelicaコンポーネントで使うファイルとしてエキスポートする:
data = {{0, 6}, {1, 9}, {2, 1}, {3, 9}, {4, 7}, {5, 6}, {6, 1}, {7, 8}, {8, 0}, {9, 2}, {10, 9}};Export[FileNameJoin[{$TemporaryDirectory, "data.txt"}], {"var1", data}, "MCTT"]考えられる問題 (1)
モデル中でより大きいデータ集合を使うとシミュレーションが遅くなる可能性がある:
data = Table[{t, RandomReal[10]}, {t, 0, 1000}];dataModel = CreateDataSystemModel[data];AbsoluteTiming[SystemModelSimulate[dataModel, 1000]]MCTT Exportでエキスポートしたデータを使ったシミュレーションの方が速い:
fileModel = "DocumentationExamples.Simulation.FileInput";AbsoluteTiming[SystemModelSimulate[fileModel, 1000]]GeneratedAssetLocationを使ってデータファイルをモデルが参照している指定の場所にエキスポートする:
assetModel = CreateDataSystemModel[data, GeneratedAssetLocation -> FileNameJoin[{$TemporaryDirectory, "data.txt"}]];AbsoluteTiming[SystemModelSimulate[assetModel, 1000]]関連するガイド
関連リンク
テキスト
Wolfram Research (2018), CreateDataSystemModel, Wolfram言語関数, https://reference.wolfram.com/language/ref/CreateDataSystemModel.html (2020年に更新).
CMS
Wolfram Language. 2018. "CreateDataSystemModel." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2020. https://reference.wolfram.com/language/ref/CreateDataSystemModel.html.
APA
Wolfram Language. (2018). CreateDataSystemModel. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/CreateDataSystemModel.html
BibTeX
@misc{reference.wolfram_2026_createdatasystemmodel, author="Wolfram Research", title="{CreateDataSystemModel}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/CreateDataSystemModel.html}", note=[Accessed: 08-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_createdatasystemmodel, organization={Wolfram Research}, title={CreateDataSystemModel}, year={2020}, url={https://reference.wolfram.com/language/ref/CreateDataSystemModel.html}, note=[Accessed: 08-August-2026]}