主要内容

基于查找表需求的增益调度优化设计(GUI)

这个例子展示了如何在模型的查找表中调优参数,该模型使用增益调度来调整控制器对变化的设备的响应。模型调优使用响应优化器应用程序。

船舶操舵模型

打开Simulin金宝appk®模型。

open_system (“sdoShipSteering”

该模型实现了船舶操舵常用的野本模型。船舶的动态特性随航速等因素的变化而发生显著变化。因此,舵控制器也应随航速而变化,以满足船舶操舵的要求。

为了保持船舶在航向上,控制回路将船舶的航向角与参考航向角进行比较,PD控制器向方向舵发送指令信号。船舶工厂模块实现了Nomoto模型,这是一个参数随船舶速度变化的二阶系统。船最初以15米/秒的最大速度航行,但当参考轨道指定在水中转弯时,它会减速。这个转向,连同引擎的力量,被力动力学块用来计算船随时间的速度。运动学模块计算船舶的轨迹。

通过双击Controller块打开它。

当航速改变时,船身也会改变。因此PD控制器增益需要改变,以速度作为调度变量。控制器在表单中K (1 + sTd)在哪里K总体增益是和吗道明是与导数项相关的时间常数。增益调度使用查找表实现,表数据由K道明.这些矢量为不同的速度指定了不同的值。不同的速度在查找表断点向量中指定bpKbpTd

设计问题

参考资料指出,在200秒,船应该转向180度和反向航向。其中一个要求是,船舶的航向角需要匹配一个信封内的参考航向角。为了乘客的安全和舒适,第二个要求是船的总加速度需要保持在0.25 g的范围内,其中1g是地球表面的重力加速度,9.8 m/s^2。

控制器参数向量K道明将是设计变量,并将进行调整以尽量满足需求。如果不可能同时满足这两个要求,则查找表断点bpKbpTd也用作设计变量。在这种情况下,我们需要指定一个额外的需求bpKbpTd必须单调地严格递增,因为这是在Simulink查找表中断点向量所必需的。金宝app

打开响应优化器

应用程序选项卡上,单击响应优化器控制系统

指定设计要求

指定必须满足的要求。首先,飞船应该遵循参考轨道。由于基准基本上是从0到180度的阶跃变化,因此您为船舶航向角指定一个阶跃响应包络线。在工具栏中,单击并选择阶跃响应信封.设置初始值为0,最终值为弧度。步骤时间设置为200秒。将上升时间设置为75秒,上升百分比设置为85%。设置沉淀时间为200秒,沉淀百分比为1%。设置百分比超调为5%。要指定此要求适用于船舶的航向,请单击+。

在Simuli金宝appnk模型中,点击船舶的航向信号,这是船舶电站块。在“创建信号集”对话框中选择该信号,然后单击箭头按钮使其成为指定信号,然后单击OK。

第二个要求是为了乘客的安全和舒适,总加速度在任何时候都不能超过0.25 g。总加速度由两个分量组成,沿船舶运动方向的切向分量和法向(水平)分量。总加速度不超过0.25 g的要求,相当于要求在切向加速度和法向加速度相平面内,该船的轨迹保持在半径为0.25*9.8的圆内。

在工具栏中,单击并选择椭圆区域约束.指定名称为SafeAccel,两种信号的半轴长度为0.25*9.8 = 2.45。若要指定该要求适用于船舶的切向加速度,请单击选择按钮。在Simuli金宝appnk模型中单击切向加速度信号,它是从运动学块。在“创建信号集”对话框中选择该信号,然后单击箭头按钮使其成为指定信号,然后单击OK。类似地,要指定要求应用于船舶的正常加速度,在椭圆区域约束对话框中单击另一个选择按钮,并使用创建信号集对话框指定正常加速度信号。

指定设计变量

指定优化要调优的设计变量,以满足需求。在工具条中,单击旁边的选择框设计变量设置然后点击.选择PD控制器的增益,K道明,并单击箭头按钮将它们指定为设计变量。的值中的所有项使用-0.1K的值中的所有项使用50道明矢量,单击“确定”。如果不能满足所有的需求,那么稍后再使用断点向量bpKbpTd也可以尝试作为设计变量。

优化查找表数据

在优化过程中,如果时间步长变得太小,Simulin金宝appk求解器可能会生成一个警告。暂时抑制此警告。

warnState =警告(“查询”“金宝app模型:引擎:SolverMinStepSizeWarn”);警告(“关闭”“金宝app模型:引擎:SolverMinStepSizeWarn”);

响应优化器,点击优化.船舶航向角不满足要求的阶跃响应包络线,从图中阶跃响应图可以看出响应优化器app和Optimization Progress对话框中,其中最后一次迭代的值仍然是正的,这表明违反了需求。安全加速的要求也没有得到满足,正如在优化进程对话框中看到的那样,最后一次迭代的值也是正的。

优化查询表数据和断点

为了尝试满足设计需求,使用上面的优化结果作为起点,并调优其他变量。添加断点bpKbpTd作为设计变量。船的最大速度是15米/秒,并且在转弯时它可能减慢到最大速度的60%,或9米/秒。设置断点初始值的间隔为9 - 15米/秒。限制断点的最小值为9米/秒,限制断点的最大值为15米/秒。

Simulink查找表块中的断点必须严金宝app格地单调递增。将此添加到设计需求中。

响应优化器,点击优化.此时船舶航向角满足所要求的阶跃响应包络线,由中阶跃响应图可见响应优化器app和Optimization Progress对话框中,其中最后一次迭代的值是负的,这表明需求得到了满足。安全加速的要求也得到了满足,正如在优化进程对话框中看到的那样,在最后一次迭代的值也是负值。类似地,查找表断点满足单调要求。

在这个例子中,船舶设备随船舶速度而变化,因此控制器增益也需要变化。利用查找表实现增益调度。通过调整控制器中的增益和断点值,船舶能够跟随参考航向角,同时也约束总加速度,以确保乘客安全舒适的乘坐。

相关的例子

学习如何优化增益调度控制器中的查找表sdo.optimize命令,看到基于查找表要求的增益调度设计优化(代码)

%关闭模型并恢复警告状态。bdclose (“sdoShipSteering”)警告(warnState);%恢复警告状态

相关的话题