技术文章和通讯

使用统计分析系统模型的不确定性

斯图尔特Kozola MathWorks和丹•多尔蒂MathWorks


工程师和科学家依赖模型来描述系统行为。系统模型通常假设下创建和分析模型的输入,定义参数(常量),已知精确和操作环境。每一个实际的系统运行在不确定性下,然而,未能考虑了不确定性的存在会导致不准确的预测系统行为。

使用一个万博1manbetx直流电机的模型作为一个例子,本文描述了工具和技术MATLAB统计和机器学习工具让您轻松快速地分析您的系统模型的不确定性和理解它如何影响模型的性能。

直流电机模型

直流电机模型(图1)有两个悲愤电源电压(Vs)和惯性载荷(Jd)——六个可调模型参数。这些参数,定义基于制造商的汽车,在我们的模型假定为常数。

uncertainty_fig1_w.jpg
图1所示。万博1manbetxMaxon直流电机的仿真软件模型(左)和一个对话框显示模型的定义参数(右)。点击图片查看放大图。

输出特性感兴趣的上升时间和稳态角速度(图2)。模型的输出接近规格制造的这一操作条件,但是我们怎么知道我们的模型是准确的外单校准点吗?

uncertainty_fig2_w.jpg
图2。模拟直流电机模型的输出操作卸载(J = 0) 32伏输入。比较模拟结果(实际)制造商规范(规范)。

我们必须确保我们的模型是准确的范围输入电动机操作的条件。要做到这一点,我们需要获取实验数据从一个实际的汽车在一组代表性的操作条件,然后比较结果与模拟的结果在相同的输入条件下我们的模型。

获取实验数据

我们使用实验设计(DOE)中测试点的最小集合覆盖全系列的输入条件。选择一个合适的实验设计之前,我们确定的因素,范围,我们想调查水平,如下:

因素 范围 水平
电源电压(Vs) 12 - 36 V 12、24、36 V
惯性载荷(Jd) 0 - 0.005公斤米2 0.001,0.003,0.005公斤米2

统计和机器学习工具箱提供了一些实验设计选项。我们选择一个面心中心合成设计应用程序。命令ccdesign产生一个矩阵的输入组合测试,每一行代表一个单独的测试。

factorNames = {“电压”,惯性载荷的};noFactors =长度(factorNames);设计= ccdesign (noFactors,“类型”,“面对”);

图3显示了测试点在设计空间。中心点(V年代= 24 V, Jd = 3公斤m2)重复8次给我们一种估计实验误差,导致共有16个测试点。

uncertainty_fig3_w.jpg
图3。双重中央综合测试计划显示在图形格式。

这个设计实验假设一个单一的测试操作符和一个直流电机测试。占潜在差异跨运营商和马达,我们重复实验对三种不同的汽车测试三种不同的运营商,结果总共9测试。

我们将我们的测试数据导入MATLAB和它使用数据集的数组存储在统计和机器学习工具。使用grpstats函数,我们计算出平均值和标准偏差为每个测试点(图4)。

检测结果=数据集(“XLSFile”,“testResults.xls”);byPt = grpstats(检测结果,{“DOE_Point”},……{@mean @std},“DataVars”,{的上升时间,“SSVelocity”});
uncertainty_fig4_w.jpg
图4。总结测试结果。

上升时间和稳态平均速度值明显不同的16个测试点,这表明这些值取决于电压和惯性载荷输入。非零标准差表明,跨运营商和汽车存在差异。要测试这些差异是否显著,我们执行一个方差分析(方差分析)跨运营商测试,电机,输入。

组= {ds.DOE_Vemf ds.DOE_J, char (ds.Motor), char (ds.Operator)};varNames = {“电压”,“惯性”,“汽车”,“运营商”};anovan (ds.RiseTime、组,1,3,varNames) anovan (varNames ds.SSVelocity组1、3)

图5显示了方差分析的结果。每个表中的列最右侧显示的假定值(概率> F),测量用于确定是否根据源列列出重要的变量。0.05或以下的假定值有95%的信心,源具有重要意义。方差分析结果表明,电压和惯性上升时间和稳态速度有显著影响,而不同,不同的运营商和汽车并不重要。

uncertainty_fig5_w.jpg
图5。方差分析结果上升时间(左)和稳态速度(右)。点击图片查看放大图。

记住,设计实验的目的是获得测试点,让我们检查我们的直流电机模型是多么准确全面的输入条件。既然我们已经获得了我们的实验数据和显示,它是可靠的(换句话说,不同运营商和汽车不显著),我们将模拟模型和比较我们的测试数据的仿真数据。

测试和仿真数据进行比较

图6显示了平均模拟误差电压和惯性载荷的函数。这些情节显示剩余数据作为响应表面,我们安装使用regstats从统计和机器学习的工具箱函数。

uncertainty_fig6_w.jpg
图6。上升时间的平均模拟误差(左)和稳态角速度(右)。点击图片查看放大图。

如图6所示,我们的模型在输入条件的错误不是常数,和它不平均为零。百分比误差相对较小,然而,从-0.5%到-1.8%不等的上升时间和稳态角速度-0.68%至-0.82%,并为我们的应用程序是可以接受的。我们可以进一步减少模型的误差拟合模型参数数据使用万博1manbetx模型参数估计

基于我们分析到目前为止,我们的模型似乎很准确,但它代表了一个更大的电机样本情况如何?方差分析测试表明,motor-to-motor变化并不显著,但我们只看到了三个样本的马达。在现实中,成千上万的人将生产,由于制造公差和其他因素,会略有不同。我们需要进行更全面的评估,以确定我们的模型是否足够健壮的准确模型的所有汽车设计。

评估模型参数的不确定性的影响

占汽车的不确定性特点,我们定义模型的参数的分布值而不是单一的固定值。然后我们进行蒙特卡罗仿真,运行模型多次与随机参数值的组合。

我们可以运行Monte Carlo法之前,我们必须定义不确定电机参数。我们使用随机数生成器从1000年统计和机器学习的工具箱创建为每个参数随机抽样。公差在电枢参数(电阻、Ra和电感,洛杉矶)大约是10%,和转矩常数(Kt)有大约3%的公差。我们假设这些参数服从正态分布。

mcSamples = 1000;mcRa = normrnd (1.71, 0.17 / 3, [mcSamples 1]);%电枢电阻mcLa = normrnd (0.3,。03/3 mcSamples [1]);%电枢电感mcKt = normrnd (44.5, 1.33 / 3, [mcSamples 1]);%轴惯性mcKemf = 30000 / pi. / mcKt;%反电势mcJ = normrnd (65.2, 0.70 / 3, [mcSamples 1]);%轴惯性mcb = normrnd (7.1213 e - 7 e-8/3 [mcSamples 1]);%粘滞阻尼

输入电压和惯性载荷被定义为均匀分布在适当的范围,以确保我们整个设计空间。

%设置电机输入条件:mcV = unifrnd (12、36 [mcSamples 1]);mcJd = unifrnd (0.001, 0.005, [mcSamples 1]);

图7显示一个矩阵图,总结了蒙特卡罗模拟的结果。

uncertainty_fig7_w.jpg
图7。选择的蒙特卡罗模拟的结果,在MATLAB使用plotmatrix创建。点击图片查看放大图。

的对角线显示直方图模型参数和输出,和情节上下对角是很有用的模型参数和输出之间迅速发现趋势。大部分的情节并不意味着一个强大的趋势异常的输入电压稳态速度和惯性载荷上升时间。这些趋势都是近似线性,展示一些分散,这是由于我们在仿真建模不确定电机参数。

我们要确定我们的模拟散射是一致的与我们在实验中观察到的变化。要做到这一点,我们覆盖之前收集的实验数据在仿真结果(图8)。

uncertainty_fig8_w.jpg
图8。比较实验数据(红色)从蒙特卡罗模拟结果(蓝色)。

散射实验中观察到的似乎与散射观察到在我们的仿真数据一致。这表明,我们的模型可以用来准确预测汽车之间的性能差异。

总结

不确定的模型参数评估模型的准确性和会计是建模过程的一个重要组成部分。它提供了深入了解系统的操作和帮助确保你的模型是准确的。

本文介绍了MATLAB和统计和机器学习工具箱可以用来分析模型中创建一个直流电机模型的不确定性。万博1manbetx我们开始通过量化模型的准确性比较试验和模拟数据范围的输入条件,我们预期马达会遇到。结果表明,我们的模型预测上升时间和稳态速度误差不到2%,这对我们的需求足够准确。

然后我们进行了蒙特卡罗模拟,看看我们的模型可以准确地捕获性能变异性造成汽车之间存在着细微的差别。我们得出结论,模型可靠地预测发动机性能的差异。

2007年出版的

查看相关文章的能力