倒立摆参数估计
本示例展示了如何使用Simulink®Design Optimization™通过迭代估计来估计模型的多个参数。
本例需要Simscape™Multibody™软件。
倒立摆系统的Simscape多体模型
倒立摆的Simulink®模型,spe_mech_invpend
,如下所示。
倒立摆模型说明
摆系统有一个在水平面上摆动的臂,由直流电动机驱动。机械臂的作用是为摆锤提供平衡力矩,使摆锤保持直立状态。监测臂和摆的角度并将其作为反馈来控制系统的运动。对于本例,我们将只集中于估计如下所示的未受控系统的参数。
系统采用Simscape Multibody建模。在这个系统中有两个模型。这台机器由两个主体组成,一个代表转动臂,另一个代表摆。物体之间由转动关节连接,转动关节约束物体之间的相对运动。输入电压传递给直流电机,直流电机为转动臂提供扭矩。
电机被建模为转矩增益Kt
.摆臂有质量妈
,惯性简森-巴顿
和长度r
.钟摆有长度lp
和质量国会议员
.在本例中,阻尼在转动关节中使用增益建模Kda
而且Kdp
.系统的输出是臂和摆的角度。
对于这个例子,我们将运行两个评估,每个评估使用不同的参数集。这允许我们自定义我们的估计,并可以产生一个更有效的解决方案。
估计的数据
双击倒立摆模型左上角的橙色方块,启动参数估计量,其中预装了本项目的数据。这是由测量的实验数据配置的估计
.对于其他用途,您可以从各种来源导入实验数据集,包括MATLAB®变量,MAT文件,Excel®文件或逗号分隔值文件。它还配置了验证数据验证
我们在估算之后会用到。测量数据为估计
如图所示。在本例中,只有一个数据集用于估计。
实验图还用于观察测量数据与当前模型的匹配程度。点击地块模型响应在参数估计选项卡显示实验图上的模拟信号数据。仿真结果与实测数据不符,说明模型参数需要估计。
定义变量
下一步是为估计定义变量。这将确定模拟的哪些参数可以调整,以及控制它们值的任何规则。点击选择参数在参数估计选项卡。对于倒立摆的例子,我们已经选择了扭矩增益参数,Kt
,以作估计。因为我们从物理上知道这个参数不可能是负的,所以我们把它的下限设为零。
第一次评估
在确定了估计参数后,我们选择了用于估计的实验。点击选择实验在参数估计TAB,选择命名的实验估计
估计。
现在我们可以开始估算了。点击估计在参数估计TAB开始评估。估计将不断迭代参数值,直到估计收敛并终止。
下图是实验数据与模拟数据的叠加图。模拟数据来自估计参数的模型Kt
.估计的结果表明,第一个输出(臂的位置)匹配,但是我们可以看到,第二个输出(摆的位置)没有显示出非常令人满意的结果。显然,要获得更好的结果,还需要进行额外的估计。
运行额外的评估
这次我们不考虑转矩增益,Kt
,常数和估计模型的其他参数。点击选择参数在参数估计选项卡。取消Kt
,其他参数如下图所示。
点击估计开始新的估计。第二次估计的结果如下所示。
这显然是一个更好的结果。这表明,为了完成一个估计任务,并不需要同时估计模型中的所有参数。我们可以运行多个估计,保持一些参数不变,同时改变其他参数。
验证
用其他数据集验证结果是很重要的。成功的估计不仅与用于估计的实验数据相匹配,而且与实验中收集的其他数据集相匹配。一项名为验证
已为此项目创建。点击添加图在参数估计选项卡,选择验证
查看数据。
点击地块模型响应查看覆盖在数据上的模拟输出。下图显示了倒立摆系统如何响应验证输入数据。验证结果表明,该模型能较好地处理输入验证数据的低频率,模型参数估计成功。
结论
这个例子展示了参数估计将一个估计任务分割为多个估计的灵活性。这允许在不同的参数集上运行估计,这有助于估计给定模型的速度。
关闭模型。