中北大学2011届毕业设计说明书
是渐近稳定的,其解为最优轨线x(t)。
3.2 连续系统线性二次型最优控制的MATLAB实现
在MATLAB系统里,有特别提供的函数来求解连续系统线性二次型状态调节器问题。其函数有lqr()、lqr2()与lqry()。函数的调用格式为:
[K,S,E]=lqr(A,B,Q,R,N) [K,S]=lqr2(A,B,Q,R,N) [K,S,E]=lqry(sys,Q,R,N)
其中,输入参量sys为系统的模型;A为系统的状态矩阵;B为系统的输入矩阵;Q为给定的半正定实对称矩阵;R为给定的正定实对称矩阵;N代表更一般化性能指标中交叉乘积项的加权矩阵;输出参量K为最优反馈增益矩阵;S为对应Riccati方程的唯一正定解P(若矩阵A-BK是稳定矩阵,则总有P的正定解存在);E为A-BK的特征值。
函数lqry()用来求解二次型状态调节器的特例,是用输出反馈替代状态反馈,即有:
u(t)??Ky(t) (3-8)
其性能指标则为: J?1?T??(y20Qy?uRu)dt (3-9)
T这种二次型输出反馈控制称为次优(或准最优)控制。 3.3 连续系统线性二次型最优控制的MATLAB实现示例
?1(t)?u(t)?x1(0)?0?x,?,性能指标:【例18-1】已知连续系统状态方程与初始条件为??x(t)?x(t)x(1)?1?21?212??2J=??x2(t)?u(t)?dt,设计要求:设计一GUI界面,界面有五个按钮,分别实现的功能
4?0??是:最优反馈增益矩阵K、最优控制u*(t)、最优性能指标J*、特征方程的特征值和Riccati方程的正定解P。 解:
由系统状态方程直接写出状态矩阵、输入矩阵与初始条件:
?x1(0)??0??00??1? A=??,B???,x(0)?????? 100x(0)?????2??1?选择矩阵
第8页 共39页
中北大学2011届毕业设计说明书
?00?1 Q???,R?2?02?
由题目要求,
第一步:打开MATLAB,输入guide回车后将弹出GUIDE快速启动对话框,如图3.1所示。
图3.1 GUIDE快速启动对话框
从上面的对话框可以看到,MATLAB提供了4种GUIDE模板,其中本次设计需要用到的是第一个,空白GUI模板。单击OK按钮,打开GUI编辑界面,如图3.2所示。
图3.2 新建的GUI界面
第9页 共39页
中北大学2011届毕业设计说明书
如图所示,上面的第一行为菜单栏,第二栏为工具栏,左边的两列为常用控件,关于各个控件的名称与功能见附录1
第二步:针对例子的设计要求,为GUI添加必要的控件。
(1)添加“静态文本”控件。选择Static Text图标,用鼠标将其拖到GUI模板的合适位置,并根据设计,调整其大小。
(2)添加“文本框”控件。用鼠标单击Edit Text图标,然后在界面上建立文本框。 (3)添加“列表框”控件。用鼠标单击Listbox图标,然后在界面上合适的位置建立大小适中的列表框。
(4)添加“按钮组”控件。单击Button Group图标,建立合适的按钮组控件。 (5)在按钮组上添加“按钮”。单击Push Button图标,将按钮建立在按钮组里,需要多少即建立多少。
完成以上操作后得到草图,如图3.3所示。
图3.3 GUI草图
第10页 共39页
中北大学2011届毕业设计说明书
上述界面包含两个静态文本框控件、一个可编辑文本框、一个按钮组控件、五个按钮控件、一个列表框控件。
第三步:修改属性。创建控件以后,要对控件的各种属性进行设置,具体步骤如下:双击各控件,则会弹出左边的属性对话框,按要求分别修改各按钮的属性,如图3.4所示。
图3.4 修改属性窗口
如图所示,右边窗口为修改属性窗口,常用属性有:string属性,用于显示在控件上的字符串,起说明或提示作用;Callback属性,回调函数,与菜单的一样;Tag属性,控件的标记,用于标识控件。更多属性功能见附录1
1)在图形左边上方的静态文本的属性编辑框中,设置如下属性值:
? Fontsize 10 %字体大小
? FontUnits normalized %采用相对度量单位,缩放时保持字体
比例
? String 系统输入 %显示在界面上的字符
第11页 共39页
中北大学2011届毕业设计说明书
? HorizontalAlignment Center %文字中心对齐
? Units normalized %采用相对度量单位,缩放时保持该区
比例
2)在图形左边中间的静态文本的属性编辑框中,设置如下属性值:
? Fontsize 10 %字体大小
? FontUnits normalized %采用相对度量单位,缩放时保持字体
比例
? String 系统输出 %显示在界面上的字符 ? HorizontalAlignment Center %文字中心对齐
? Units normalized %采用相对度量单位,缩放时保持该区比
例
3) 在可编辑文本的属性编辑框中,设置如下属性值:
? FontUnits normalized %采用相对度量单位,缩放时保持字体比
例
? String %清除在界面上的字符 ? HorizontalAlignment Center %文字中心对齐
? Units normalized %采用相对度量单位,缩放时保持该区
比例
4) 在按钮组的属性编辑框中,设置如下属性值:
? Fontsize 12 %字体大小
? FontUnits normalized %采用相对度量单位,缩放时保持字体比例 ? HorizontalAlignment Center %文字中心对齐
? String 连续系统线性二次型最优控制 %在按钮组顶头显示 ? Units normalized %采用相对度量单位,缩放时保持该键比
例
5) 在按钮组的按键上属性编辑框中,设置如下属性值:
? Fontsize 10 %字体大小
? FontUnits normalized %采用相对度量单位,缩放时保持字体比例 ? HorizontalAlignment Center %文字中心对齐
第12页 共39页