CreateDataSystemModel[{v1,v2,…}]
创建一个 SystemModel,生成值为 vi 的信号.
CreateDataSystemModel[{{t1,v1},…}]
为时间-数值对 {ti,vi} 创建模型.
为 TimeSeries 或 InterpolatingFunction obj 创建模型.
CreateDataSystemModel[fun,tmin,tmax]
用函数 fun 在 tmin 和 tmax 之间的采样创建模型.
CreateDataSystemModel[data,"dspec"]
创建数据规范为 "dspec" 的模型.
CreateDataSystemModel
CreateDataSystemModel[{v1,v2,…}]
创建一个 SystemModel,生成值为 vi 的信号.
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]"]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]"]InterpolatingFunction (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]"]model = CreateDataSystemModel[Cos, 0, 10, InterpolationOrder -> 0];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)
data = {#, Cos[#], Sin[#]}& /@ Range[0, 2π, 0.1];Take[data, 5]//MatrixFormmodel = CreateDataSystemModel[data, "Time"];sim = SystemModelSimulate[model, π];SystemModelPlot[sim, {"y[1]", "y[2]"}]data = {#, Cos[#], Sin[#]}& /@ Range[0, 2π, 0.1];Take[data, 5]//MatrixFormmodel = CreateDataSystemModel[data, "1D"];sim = SystemModelSimulate[model, π, <|"Inputs" -> {"u" -> Function[t, 2t]}|>];SystemModelPlot[sim, {"y[1]", "y[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 语言. 2018. "CreateDataSystemModel." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2020. https://reference.wolfram.com/language/ref/CreateDataSystemModel.html.
APA
Wolfram 语言. (2018). CreateDataSystemModel. Wolfram 语言与系统参考资料中心. 追溯自 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: 07-October-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: 07-October-2026]}