主要内容

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

此示例显示如何在使用增益调度的模型中调整查找表中的参数,以调整控制器对变化的工厂的响应。模型调整使用响应优化器应用程序。

船舶操舵模型

打开Simulin万博1manbetxk®模型。

open_system ('sdosippteering'

该模型实现了常用于船舶转向的Nomoto模型。船舶的动态特性随着船舶速度等因素而变化显着变化。因此,舵控制器也应随速度而变化,以满足转向船的要求。

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

通过双击打开控制器块。

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

设计问题

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

控制器参数向量K.一个将是设计变量,并将被调整以达到要求。如果无法满足两个要求,那么查找表断点bpKbpTd也用作设计变量。在这种情况下,我们需要指定一个额外的需求bpKbpTd必须单调严格增加,因为这是Simulink Lookup表中的断点向量所必需的。万博1manbetx

打开响应优化器

应用选项卡,单击响应优化器在下面控制系统

指定设计要求

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

在Simuli万博1manbetxnk模型中,点击船舶的航向信号,这是船舶电站堵塞。在“创建信号集”对话框中选择此信号,然后单击箭头按钮以使其成为指定的信号,然后单击“确定”。

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

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

指定设计变量

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

优化查找表数据

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

warnState =警告(“查询”“万博1manbetx模型:引擎:SolverMinStepSizeWarn”);警告(“关闭”“万博1manbetx模型:引擎:SolverMinStepSizeWarn”);

响应优化器,点击优化.船头角度不符合所需的步骤响应信封,可以在步骤响应图中看到响应优化器app和Optimization Progress对话框中,其中最后一次迭代的值仍然是正的,这表明违反了需求。安全加速的要求也没有得到满足,正如在优化进程对话框中看到的那样,最后一次迭代的值也是正的。

优化查询表数据和断点

为试图满足设计要求,请使用上面作为起点的优化结果,并调整其他变量。添加断点bpKbpTd作为设计变量。船的最大速度为15米/秒,在转弯期间,可能会慢至最大速度的60%,或9米/秒。将断点初始值设置为9至15米/秒之间的同样间隔。将断点最小值限制为9 m / s,并将断点最大值约束为15 m / s。

Simulink Lookup表块中的万博1manbetx断点必须严格均衡。将其添加到设计要求中。

响应优化器,点击优化.这次船头角度符合所需的步骤响应信封,可以在步骤响应图中看到响应优化器app和Optimization Progress对话框中,其中最后一次迭代的值是负的,这表明需求得到了满足。安全加速的要求也得到了满足,正如在优化进程对话框中看到的那样,在最后一次迭代的值也是负值。类似地,查找表断点满足单调要求。

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

相关例子

要了解如何优化增益计划控制器中的查找表使用sdo.optimize命令,参见使用查找调度的查找表要求设计优化(代码)

%关闭模型并恢复警告状态。bdclose('sdosippteering')警告(警告);%恢复警告状态

相关的话题