ppt第十二章用MATLAB解最优控制问题及应用实例
ppt第十二章用MATLAB解最优控制问题及应用实例
Y (t ) U (t ) 为 m 维控制向量, X (t ) 为 n 维状态向量, 其中, l 为维输出向量。
l
寻找最优控制,使下面的性能指标最小
1 T 1 tf T J (u ) e (t f ) Pe (t f ) e (t )Q(t )e(t ) U T (t ) R(t )U (t ) dt 2 2 t0
的调用格式为: [Ac,Bc,Cc,Dc,Tc,Kc]=ctrbf(A,B,C) 在MATLAB的控制系统工具箱中提供了obsvf()函 数。该函数可以求出系统的可观测阶梯变换,该函 数的调用格式为: [Ao,Bo,Co,Do,To,Ko]=obsvf(A,B,C)
5, 系统的时域分析
对于系统的阶跃响应,控制系统工具箱中给出了
第十二章 用MATLAB解最 优控制问题及应用实例
第十二章 用MATLAB解最优 控制问题及应用实例
12.1 12.2 MATLAB工具简介 用MATLAB解线性二次型最优控制问题
12.3
12.4
用MATLAB解最优控制问题应用实例
小结
MATLAB是集数值运算、符号运算及图形处理 等强大功能于一体的科学计算语言。作为强大的 科学计算平台,它几乎能满足所有的计算需求。 MATLAB具有编程方便、操作简单、可视化界面、 优良的仿真图形环境、丰富的多学科工具箱等优 点,尤其是在自动控制领域中MATLAB显示出更为 强大的功能。
采用care函数的优点在于可以设置P的终值 条件,例如我们可以在下面的程序中设置P的终值 条件为[0.2;0.2]。 [P,E,K,RR]=care(A,B,Q,R,[0.2;0.2],eye(size(A))) 采用lqr()函数不能设置代数黎卡提方程的 边界条件。
MATLAB使用详解及典型例题解答
第1章MATLAB概论1.1与其他计算机语言相比较,MATLAB语言突出的特点是什么?MATLAB具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。
1.2MATLAB系统由那些部分组成?MATLAB系统主要由开发环境、MATLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个部分组成。
1.3安装MATLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装?在安装MATLAB时,安装内容由选择组件窗口中个复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MATLAB选项)必须安装。
第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可。
1.4MATLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上?在MATLAB操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close按钮,一个是可以使窗口成为独立窗口的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面成为独立窗口,在独立窗口的view菜单中选择Dock……菜单项就可以将独立的窗口重新防止的桌面上。
1.5如何启动M文件编辑/调试器?在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动。
在命令窗口中键入edit命令时也可以启动M文件编辑/调试器。
1.6存储在工作空间中的数组能编辑吗?如何操作?存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。
1.7命令历史窗口除了可以观察前面键入的命令外,还有什么用途?命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中。
1.8如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么区别?当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file菜单中的Set Path菜单项来完成。
最优化问题的matlab求解
3. 建立主程序.非线性规划求解的函数是fmincon,命令的基本格 式如下:
(1) x=fmincon(‘fun’,X0,A,b) (2) x=fmincon(‘fun’,X0,A,b,Aeq,beq) (3) x=fmincon(‘fun’,X0,A,b, Aeq,beq,VLB,VUB)
x13
x
2 2
x3
80
2个不等式约束,
2个等式约束
3个决策变量x1,x2,x3 如果nonlcon以‘mycon1’作为参数值,则程序 mycon1.m如下
功能:各个参数的解释如前,若各个约束条件不存 在,则用空矩阵来代替。
例:求解 min 2x1 x2 4x3 3x4 x5 2x2 x3 4x4 2x5 54
s.t. 3x1 4x2 5x3 x4 x5 62 x1, x2 0, x3 3.32, x4 0.678, x5 2.57
function y=fun071(x,a,b) y=x(1)^2/a+x(2)^2/b;
x0=[1,1];a=2;b=2;
x=fminunc(@fun071,x0,[],a,b)
X=(0,0)
3、全局最优解和局部最优解
例:已知函数 y(t) e2t cos10t e3t6 sin 2t,t 0, 试观察不同 的初值得出其最小值。
fun.m ~ f(x)的m文件名
x0 ~初始点; x ~最优解
MATLAB应用实例分析例分析
MATLAB应用实例分析例分析Matlab应用例题选讲仅举一些运用MATLAB的例子,这些问题在数学建模中时常遇到,希望能帮助同学们在短时间内方便、快捷的使用MATLAB 解决数学建模中的问题,并善用这一工具。
常用控制命令:clc:%清屏; clear:%清变量; save:%保存变量; load:%导入变量一、利用公式直接进行赋值计算本金P以每年n次,每次i%的增值率(n与i的乘积为每年增值额的百分比)增加,当增加到r×P 时所花费的时间T为:(利用复利计息公式可得到下式) lnrnT() r,P,P(1,0.01i),T,r,2,i,0.5,n,12nln(1,0.01i)MATLAB 的表达形式及结果如下:>> r=2;i=0.5;n=12; %变量赋值>> T=log(r)/(n*log(1+0.01*i)) 计算结果显示为:T = 11.5813即所花费的时间为T=11.5813 年。
分析:上面的问题是一个利用公式直接进行赋值计算问题,实际中若变量在某个范围变化取很多值时,使用MATLAB,将倍感方便,轻松得到结果,其绘图功能还能将结果轻松的显示出来,变量之间的变化规律将一目了然。
若r在[1,9]变化,i在[0.5,3.5]变化;我们将MATLAB的表达式作如下改动,结果如图1。
r=1:0.5:9;i=0.5:0.5:3.5;n=12;p=1./(n*log(1+0.01*i));T=log(r')*p;plot(r,T)xlabel('r') %给x轴加标题ylabel('T') %给y轴加标题q=ones(1,length(i));text(7*q-0.2,[T(14,1:5)+0.5,T(14,6)-0.1,T(14,7)-0.9],num2str(i'))40350.5302520T 1151.510 22.55 33.50123456789r图11从图1中既可以看到T随r的变化规律,而且还能看到i的不同取值对T—r 曲线的影响(图中的六条曲线分别代表i的不同取值)。
matlab教程ppt(完整版)
汇报人:可编辑
2023-12-24
目录
• MATLAB基础 • MATLAB编程 • MATLAB矩阵运算 • MATLAB数值计算 • MATLAB可视化 • MATLAB应用实例
01
CATALOGUE
MATLAB基础
MATLAB简介
MATLAB定义
MATLAB应用领域
菜单栏
包括文件、编辑、查看、主页 、应用程序等菜单项。
命令窗口
用于输入MATLAB命令并显示 结果。
MATLAB主界面
包括命令窗口、当前目录窗口 、工作空间窗口、历史命令窗 口等。
工具栏
包括常用工具栏和自定义工具 栏。
工作空间窗口
显示当前工作区中的变量。
MATLAB基本操作
变量定义
使用变量名和赋值符号(=)定义变 量。
详细描述
直接输入:在 MATLAB中,可以直 接通过输入矩阵的元 素来创建矩阵。例如 ,`A = [1, 2, 3; 4, 5, 6; 7, 8, 9]`。
使用函数创建: MATLAB提供了多种 函数来创建特殊类型 的矩阵,如`eye(n)`创 建n阶单位矩阵, `diag(v)`创建由向量v 的元素构成的对角矩 阵。
使用bar函数绘制柱状图 ,可以自定义柱子的宽
度、颜色和标签。
使用pie函数绘制饼图, 可以自定义饼块的比例
和颜色。
三维绘图
01
02
03
04
三维线图
使用plot3函数绘制三维线图 ,可以展示三维空间中的数据
点。
三维曲面图
使用surf函数绘制三维曲面图 ,可以展示三维空间中的曲面
。
三维等高线图
Matlab在最优化问题中的应用举例
在企业生产和日常生活中,人们总是希望用最少的人力、物力、财力和时间去办更多的事,这就是所谓的最优化问题。
线性规划方法是解决最优化问题的有效方法之一,因此受到人们的普遍关注。
在企业生产过程中,生产计划安排直接影响到企业的经济效益,而生产计划本质就是在目标一定时,对于人力、时间和物质资源的优化配置问题。
1。
综述了最优化方法,归纳了最优化闯题中线性规划和非线性规划模型的解法,并给出了相应的matlab求解代码。
2。
提出了基于信息增益率的用电客户指标选择方法,根据信息增益率的大小选择对分类有贡献的指标。
关键词:Matlab,最优化方法,应用举例In enterprise production and daily life, people always hope with the least amount of human, material and financial resources and time to do more things, this is the so-called optimization problem. Linear programming method is to solve the optimal problem, so one of the effective method by people's attention. In enterprise production process, production plan directly affect the enterprise economic benefit, but in essence is the production plan for the target certain human, time and material resources optimization allocation problem.1·Studying the optimization,summing up the solutions ofoptimization problem for both linear and non-linear programming model and proposing the matlabcode.2·Proposing a new way based on information-gain-ratio to choose the powercustomer indices,selecting the indices which are more contributive to theclassification,in order to avoid over learning。
matlab在控制方面的示例
一、简介MATLAB(Matrix Laboratory)是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。
MATLAB被广泛应用于科学和工程领域,特别是在控制系统设计和模拟方面具有重要的作用。
在控制方面,MATLAB提供了丰富的工具和函数,可用于设计、分析和实现各种类型的控制系统,并且提供了许多示例来帮助用户更好地理解控制系统。
二、控制系统的建模和仿真1. 实例一:DC电机控制假设我们希望设计一个用于控制直流电机的系统。
我们可以使用MATLAB来建立直流电机的数学模型,并使用Simulink进行仿真。
通过编写方程或使用Simulink的模块化建模工具,我们可以描述电机的动态行为和控制器的工作原理,从而获得一个完整的控制系统模型。
我们可以通过仿真来评估不同的控制策略,优化系统性能,并进行实验验证。
2. 实例二:PID控制器设计在控制系统中,PID(Proportional-Integral-Derivative)控制器是一种常用的控制器类型。
使用MATLAB中的Control System Toolbox,我们可以设计和调试PID控制器。
我们可以通过输入系统的传递函数或状态空间模型来创建控制系统对象。
可以利用Control System Toolbox提供的自动调整功能,根据系统的要求和性能指标,自动调整PID控制器的参数来实现系统稳定和性能优化。
三、控制系统分析和优化1. 实例三:系统频域分析在设计控制系统时,频域分析是一种重要的方法。
MATLAB提供了许多函数和工具,可用于进行频域分析。
我们可以使用bode函数来绘制系统的频率响应曲线,了解系统的增益和相位裕度,并进行稳定性分析。
MATLAB还提供了工具来进行奈奎斯特图和极点分析等分析方法,帮助用户更好地理解系统的动态特性。
2. 实例四:多目标优化在实际控制系统设计中,通常需要同时满足多个设计指标,例如稳定性、快速响应和抑制干扰等。
最优控制的MATLAB实现讲解学习
最优控制的M A T L A B实现最优控制的MATLAB实现摘要线性二次型最优控制是一种普遍采用的最优控制系统设计方法。
使用MATLAB软件设计的GUI控制界面实现最优控制,有较好的人机交互界面,便于使用。
线性二次型最优控制又叫做LQ最优控制或者称为无限长时间定常系统的状态调节控制器。
本文分别从连续系统线性二次型最优控制的MATLAB实现,离散系统相形二次型最优控制的MATLAB实现,最优观测器的MATLAB实现,线性二次性Guass最优控制的MATLAB实现四个研究方案。
本论文就是从这四个方面分别以不同的性能指标设计不同的GUI界面以及不同的程序实现其功能并说明其各自的应用范围。
关键词:线性二次型,最优控制, GUI控制界面,最优观测器, Guass最优控制The Linear Quadratic Optimal Control of MATLABAbstractLinear quadratic optimal control is a widely used to optimal control system design method. Use of MATLAB software design GUI interface control to realize the optimal control, Have good man-machine interface, easy to use. The linear quadratic optimal control and called LQ optimal control or an infinite long time of the system state regulation and constant controller.This paper respectively from the continuous system linear quadratic optimal control MATLAB, Discrete system in quadratic optimal control MATLAB, The optimal observer MATLAB, sexual Guass linear quadratic optimal control MATLAB four research plan. This paper is from the four aspects of the performance index respectively in different design different GUI interface and Different programs that realize its function and their application scope.Keywords:Linear quadratic, The optimal control, GUI control interface, The best Guass observer, the optimal control目录1 引言 (1)1.1 概述 (1)1.2课题研究的背景、意义及研究概况 (1)1.3本文研究的主要内容 (2)2 最优控制的基本概念 (3)2.1最优控制基本思想 (3)2.2最优控制的性能指标 (4)2.2.1 积分型性能指标 (4)2.2.2 末值型性能指标 (6)2.3最优控制问题的求解方法 (6)3 最连续系统最优控制的MATLAB实现 (7)3.1连续系统线性二次型最优控制 (7)3.2连续系统线性二次型最优控制的MATLAB实现 (9)3.3连续系统线性二次型最优控制的MATLAB实现示例 (9)4 离散系统线性二次型最优控制的MATLAB实现 (20)4.1离散系统稳态线性二次型最优控制 (20)4.2离散系统线性二次型最优控制的MATLAB实现与示例 (22)5 最优观测器的MATLAB实现 (27)5.1 连续时不变系统的KALMAN滤波 (27)5.2K ALMAN滤波的MATLAB实现 (28)5.3K ALMAN滤波的MATLAB实现示例 (29)6 线性二次型GUASS最优控制的MATLAB实现 (36)6.1LQG最优控制的求解 (36)6.2LQG最优控制的MATLAB实现与示例 (38)7 结论 (43)参考文献: (44)致谢 (46)1 引言1.1 概述随着计算机技术的飞速发展,控制系统的计算机辅助设计与分析得到了广泛的应用,目前已达到了相当高的水平。
用MATLAB解线性二次型最优控制问题答案课件
通过调整控制变量,可以最小化代价函数,从而找到最优轨迹曲 线。
解的物理意义
物理背景
线性二次型最优控制问题的解具有明确的物理意义,它反映了系统状态的最优演化过程 。
控制策略
解中的控制变量表示在给定时间内系统状态的最优调整策略,使得系统状态按照最优轨 迹演化。
应用价值
解的物理意义有助于理解最优控制问题在实际系统中的应用,例如在航天器轨道优化、 经济系统调控等领域具有重要价值。
lqr函数
用于求解线性二次型最优控制问题,返回最优控制策略和最优性能 指标。
fmincon函数
用于求解带约束的最小化问题,可以用于求解具有状态和控制约束 的线性二次型最优控制问题。
quadprog函数
用于求解带约束的二次型优化问题,可以用于求解具有性能指标约 束的线性二次型最优控制问题。
MATLAB求解线性二次型最优控制问题的示例
结果分析 对求解结果进行分析,包括最优 控制策略、最优性能指标等。
编写MATLAB代码 使用MATLAB编程语言,编写求 解线性二次型最优控制问题的代 码,包括定义变量、设置参数、 编写求解函数等。
运行求解 运行MATLAB代码,调用求解函 数,对线性二次型最优控制问题 进行求解。
MATLAB求解线性二次型最优控制问题的函数
航天器轨道优化实例
在航天领域,线性二次型最优控制问题被广泛应用于航天器 轨道优化中。例如,在卫星轨道的设计和优化中,通过线性 二次型最优控制算法,可以优化卫星的轨道参数,提高卫星 的观测精度和运行效率。
在太空探索任务中,线性二次型最优控制问题同样发挥着重 要的作用,例如火星探测器的着陆轨迹规划和姿态控制等。
表达式的形式
通常是一个多项式或分式,其分 母和分子包含了决策变量和控制 变量的幂次。
matlab应用案例分析 ppt课件
%计算射程
grid
ppt课件
29
初始速度50m/s,初速方向为40度,目 标高度为8m时的输入结果
◆建模
无阻力抛射体的飞行是中学物理就解决了的
问题,本题的不同点是目标和射点不在同一
高度上,用MATLAB可使整个计算和绘图过
程自动化。其好处是快速地计算物体在不同
初速和射角下的飞行时间和距离。关键是在
求落点时间 方程。
t
f
时,需要解一个二次线性代速
ppt课件
28
MATLAB程序
clear;y0=0;x0=0;
二.M命令文件的程序设计方式
将有关命令编成程序存储在一个文件(扩展名 为.m)中,matlab自动依次执行,可调试复杂 的程序(调试时只显示第一个错误),是实际应 用中主要的执行方式
ppt课件
10
2.3 帮助的使用
MATLAB中有以下几种方法获得帮助:帮助命令、帮 助窗口、MATLAB帮助台、在线帮助页或用Web菜单 直接链接到MathWorks公司的主页。
ppt课件
6
1.4 解决物理问题常用的软件
Mathmatica 数学计算功能。复杂符号计 算,主要在理论界
MAGIC 电磁粒子仿真软件 仿真软件:HFSS、CST等等
ppt课件
7
二、MATLAB基础使用
2.1 MATLAB操作界面简介 操作桌面的缺省外貌
与先前版本相比,6.x版引入大量的交互工作界 面,如通用操作界面、帮助界面、演示界面等
24
线型和标记
Plot命令中,在每一对数组数据后面,给plot一个 附加参量,就可以指定所要的颜色和线型。
>>plot(x,y,’rd’,x,z,’k--’,x,y,’b-.’,x,z,’co’) b蓝色,c青色,g绿色,k黑色,m紫红色,r红色,w白 色,y黄色
采用MATLAB的最优化技术及其在过程控制中的应用
采用MATLAB的最优化技术及其在过程控制中的应用发表时间:2002-12-13作者:李平康摘要:1 引言连续工业生产过程不仅包括了信息流、物质流和能源流,而且还伴随着物理化学反应、生化反应、相变过程及物质和能量的转换和传递过程,因而是一个十分复杂的工业大系统。
系统本身存在的复杂性、不确定性和非线性等因素决定了对它进行自动控制的困难程度。
而在实现了自动控制的基础上的优化,则更是一件困难的工作。
目前对工业生产过程的优化正在逐步受到重视,因为借助优化可以获得更大的经济效益和社会效益。
此处的过程控制的优化主要是针对与经济指标直接有关的目标函数而言的,如产品的质量和数量的提高、原料和能量消耗的降低等。
尽管工业过程已经在进行生产过程的工艺设计时,就或多或少考虑了获得最佳指标的设备和工艺参数,但在运行时,工艺参数、设备性能、工作环境及原料都不可避免地会发生变化,这些变化的参数将使系统达不到最优。
所以对运行的过程进行优化是十分重要的。
市场竞争的需要给过程控制提出了新的要求,出现了对以模型为基础的先进控制、过程优化、过程参数的软测量方法研究等等优化的新应用。
文[1]提出要象六、七十年代华罗庚宣传“优化法”那样,投以极大热情普及优化技术;建议采用钱学森针对系统科学所提出的“大成智慧工程”方式,集工艺、自控、管理各专业互相学习,密切配合,打破界限,联合攻关,以信息技术为纽带,实现过程工业的技术创新。
当前,过程的优化主要是寻找最佳的工艺参数设定值以获得最大的经济效益,这属于稳态优化。
稳态优化采用静态参数模型。
寻找并维持最佳的过程运行工况则属于动态优化,采用与时间相关的动态(微分方程)参数模型。
优化可以离线进行,也可以在线进行。
离线优化是指利用各种建模、优化方法求解最优的工艺生产参数,提供操作人员实施。
这是目前用得最多的一类优化。
在线优化则是利用计算机自动周期地完成模型计算、模型修正和参数寻优,并将最优参数值直接送到控制器作为设定值,对过程进行控制(约束)。
基于MATLAB的控制工程 PPT
定数线性 采样法
定数对数 采样法
矩阵运算
1、矩阵的要素
整个矩阵必须用方括号“[ ]”括起来; 矩阵A(m,n)表示矩阵变量A是一个m行n列的矩阵。 矩阵行与行之间必须用分号“;”或在输入完一行 之后直接用回车键【Enter】隔离; 矩阵元素之间必须以逗号“,”或空格号分离。 矩阵在MATLAB中是按先列后行的方式储存。
一些常用的特殊矩阵 单位矩阵:eye(m,n);eye(m) 零矩阵:zeros(m,n);zeros(m) 纯1矩阵:ones(m,n);ones(m) 对角矩阵:对角元素向量V=[a1,a2,…,an], A=diag(V) 随机矩阵:rand(m,n)产生一个m×n的均匀 分别的随机矩阵
绘制平面曲线(绘制单条曲线)
plot(x,y):
以x为横坐标、y为纵坐标绘制二维图形 x,y是同维数的向量;
plot(y):
相当于x=[1,2,…,length(y)]时情形。
绘制平面曲线(绘制多条曲线)
1. plot(x,[y1;y2;…]),
x是横坐标向量,[y1;y2;…]是由若干函数的
13 8 12 1
增加行
X = A; X=[A;[1,3,5,7]] This changes X to X = 16 2 2 13 5 11 11 8 9 7 7 12 4 14 4 1 1 3 5 7
A= 16 5 9 4
3 10 6 15
2 11 7 14
13 8 12 1
取子阵
>>A([1,3,4],[1,3]) This changes A to A = 16 2 9 7 4 14
Matlab过控系统中应用
Matlab在过程控制系统中的应用学院班级学号姓名引言:随着科学技术的发展,利用计算机对控制系统进行仿真和分析,是研究控制系统的重要方法。
生产过程也在向规模化、复杂化和大型化的方向日新月异地发展。
过程控制系统是一门与生产过程联系非常密切的课程,过程控制系统的设计涉及生产工艺、测控技术、自动控制理论、智能控制和计算机技术等领域的知识,是一门综合性的学科。
控制系统的计算机仿真是一门涉及到控制理论、计算数学与计算机技术的综合性学科。
控制系统仿真是以控制系统的模型为基础,主要用数学模型代替实际的控制系统,以计算机为工具,对控制系统进行实验和研究的一种方法。
控制系统的MATLAB语言具有功能强大、适用范围广、编程效率高和图形界面友好等优点,在各个领域得到了广泛应用。
MATLAB的Toolbox(工具箱)与Simulink(仿真)工具为过程控制系统设计与参数整定的计算与仿真提供了一个强有力的工具,使过程控制系统的设计与整定发生了革命性的变化。
对控制系统进行仿真,首先应该建立系统模型,然后根据系统模型进行仿真,并充分地利用计算机作为工具进行数值求解,最终将结果显示出来。
但是仿真程序的编制却要耗费大量的时间和精力。
近几年出现了一些功能强大的仿真语言, 它们极大地简化了仿真过程, MA T LA B 是目前应用最普遍的仿真语言之一。
一、过程控制简介过程控制系统是表征生产过程的参量为被控制量使之接近给定值或保持在给定值范围内的自动控制系统。
这里“过程”是指在生产装置或设备中进行的物质或能量的相互作用和转换作用。
表征过程的主要参量有温度、压力、流量、液位、浓度等。
通过对过程参量的控制,可使生产过程中产品的产量增加、质量提高和能耗减少。
二、过程控制的发展在现代工业控制中过程控制系统是一历史较为久远的分支。
在本世纪30年代就已有应用。
工程控制技术发展至今天,在控制方式上经历了从人工控制到自动控制两个发展时期。
三、控制系统仿真控制系统仿真是建立在控制系统模型基础之上的控制系统动态过程实验,目的是经过实验进行系统方案验证,选择系统方案和参数,验证系统的性能指标等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
这个方程称为代数黎卡提方程。代数黎卡提方程 的求解非常简单,并且其求解只涉及到矩阵运算, 所以非常适合使用MATLAB来求解。
方法一:
求解代数黎卡提方程的算法有很多,下面我们介 绍一种简单的迭代算法来解该方程,令 0 0 , 则可以写出下面的迭代公式
iA=inv(I-A);
E=iA*(I+A); G=2*iA^2*B; H=R+B'*iA'*Q*iA*B; W=Q*iA*B; P0=zeros(size(A)); i=0;
while(1),i=i+1; P=E'*P0*E(E'*P0*G+W)*inv(G'*P0*G+H)*(E'*P0*G+W)'+Q; if(norm(P-P0)<eps),break; else,P0=P; end end P=2*iA'*P*iA; 我们把这个文件命名为mylq.m,方便我们以后调用来
运行结果: K = 13.0276 6.7496
P = 67.9406
21.7131 E =-7.2698 -2.4798
21.7131
11.2495
方法三:
A=[0 1;-5,-3];
B=[0;1];
Q=[500 200;200 100]; R=1.6667; [P,E,K,RR]=care(A,B,Q,R,zeros(size(B)),eye(size(A)))
num [b1 , b2 ,, bm , bm1 ]; den [1, a1 , a2 ,, an1 , an ];
G=tf(num,den);
2, 系统模型的转换 把其他形式转换成状态方程模型
G1=ss(G)
把其他形式转换成零极点模型 G1=zpk(G) 把其他形式转换成一般传递函数模型 G1=tf(G)
i 1 E i E E i G W G i G H
T T T 1 T E i G W Q
E I A
1
1
I
1
A
G 2I A B
H R B (I A ) QI A B
T T 1
W QI A B
Y (t ) C (t ) X (t )
Y (t ) U (t ) 为 m 维控制向量, X (t ) 为 n 维状态向量, 其中, l 为维输出向量。
l
寻找最优控制,使下面的性能指标最小
1 T 1 tf T J (u ) e (t f ) Pe (t f ) e (t )Q(t )e(t ) U T (t ) R(t )U (t ) dt 2 2 t0
12.1
MATLAB工具简介
1, 系统模型的建立 系统的状态方程为:
Ax Bu x y Cx Du
在MATLAB中只需要将各个系数按照常规矩阵的 方式输入到工作空间即可
A [a11 , a12 ,, a1n ; a21 , a22 ,, a2n ;; an1 , an 2 ,, ann ] B [b11 , b12 ,, b1 p ; b21 , b22 ,, b2 p ;; bn1 , bn 2 ,, bnp ] C [c11 , c12 ,, c1n ; c21 , c22 ,, c2n ;; cq1 , cq 2 ,, cqn ] D [d11 , d12 ,, d1 p ; d 21 , d 22 ,, d 2 p ;; d q1 , d q 2 ,, d qp ]
Q(t ) 是 l l P 是 l l 对称半正定常数阵, 其中, 对称半正定阵, R(t ) 是 m m 对称正定阵。
我们用最小值原理求解上述问题,可以把上 述问题归结为求解如下黎卡提(Riccati)矩阵微 分方程:
(t ) K (t ) A(t ) AT (t )K (t ) K (t )B(t )R1 (t )BT (t )K (t ) Q(t ) K
这里的求解是建立在MATLAB的控制系统工具 箱中给出的一个基于Schur变换的黎卡提方 程求解函数are()基础上的,该函数的调用 格式为: X=are(M,T,V)
其中, M , T ,V 矩阵满足下列代数黎卡提方程,are 是Algebraic Riccati Equation的缩写。
MX XM T XTX V 0
对于Bode图,MATLAB控制工具箱中提供了 bode()函数来求取、绘制系统的Bode图,该函数 可以由下面的格式来调用
[mag,pha]=bode(G,w)
12.2
用MATLAB解线性二次型最优控制问题
一般情况的线性二次问题可表示如下: 设线性时变系统的方程为 (t ) A(t ) X (t ) B(t )U (t ) X
求解代数黎卡提方程。
方法二: 在MATLAB的控制系统工具箱中提供了求解代数 黎卡提方程的函数lqr(),其调用的格式为: [K,P,E]=lqr(A,B,Q,R) 式中输入矩阵为A,B,Q,R,其中(A,B)为给定的 对象状态方程模型,(Q,R)分别为加权矩阵Q和R; 返回矩阵K为状态反馈矩阵,P为代数黎卡提方程的 解,E为闭环系统的零极点。
对比前面给出的黎卡提方程,可以容易得出
M A
T BR B
V Q
1
T
方法三:
我们也可以采用care()函数对连续时间代数黎卡提 方程求解,其调用方法如下: [P,E,K,RR]=care(A,B,Q,R,zeros(size(B)),eye(size(A))) 式中输入矩阵为A,B,Q,R,其中(A,B)为给定的对象 状态方程模型,(Q,R)分别为加权矩阵Q和R;返回矩阵 P为代数黎卡提方程的解,E为闭环系统的零极点,K为 状态反馈矩阵,RR是相应的留数矩阵Res的Frobenius 范数(其值为:sqrt(sum(diag(Res’*Res))),或者 用Norm(Res’, fro’)计算)。
的调用格式为: [Ac,Bc,Cc,Dc,Tc,Kc]=ctrbf(A,B,C) 在MATLAB的控制系统工具箱中提供了obsvf()函 数。该函数可以求出系统的可观测阶梯变换,该函 数的调用格式为: [Ao,Bo,Co,Do,To,Ko]=obsvf(A,B,C)
5, 系统的时域分析
对于系统的阶跃响应,控制系统工具箱中给出了
E
运行结果:
K = 13.0276 6.7496
P = 67.9406
21.7131 E = -0.1111 -1.1111
21.7131
11.2495 0.2222 -0.7778
方法二:
A=[0 1;-5,-3];
B=[0;1];
Q=[500 200;200 100]; R=1.6667; [K,P,E]=lqr(A,B,Q,R)
3, 系统稳定性判据
求出系统所有的极点,并观察系统是否有实部大 于0的极点。 系统由传递函数 (num,den) 描述 roots(den) 系统由状态方程 (A,B,C,D) 描述 eig(A)
4, 系统的可控性与可观测性分析
在MATLAB的控制系统工具箱中提供了ctrbf()函
数。该函数可以求出系统的可控阶梯变换,该函数
最优控制是在一定的约束条件下,从已给定的 初始状态出发,确定最优控制作用的函数式,使目 标函数为极小或极大。在设计最优控制器的过程中, 运用MATLAB最优控制设计工具,会大大减小设计的 复杂性。 在前面的几章中,我们已经介绍了一些最优控 制方法,在本章中我们将介绍一个最优控制问题的 应用实例,讨论如何使用最优控制方法来设计自寻 的制导导弹的最优导引律,并采用MATLAB工具实现 最优导引律,通过仿真来验证最优导引律的有效性。
运行结果: P = 67.9406 21.7131
21.7131
E = -7.2698 -2.4798 K =13.0276
11.2495
6.7496
RR = 2.8458e-015
采用care函数的优点在于可以设置P的终值 条件,例如我们可以在下面的程序中设置P的终值 条件为[0.2;0.2]。 [P,E,K,RR]=care(A,B,Q,R,[0.2;0.2],eye(size(A))) 采用lqr()函数不能设置代数黎卡提方程的 边界条件。
例12-1
线性系统为:
1 0 0 x x u 5 3 1
个函数rlocus()函数来绘制系统的根轨迹,该函数的
可以由如下格式来调用: R=rlocus(G,k)
对于Nyquist曲线的绘制,控制系统工具箱中 给出了一个函数nyquist()函数,该环数可以用来 直接求解Nyquist阵列,绘制出Nyquist曲线,该 函数的可以由如下格式来调用: [rx,ry]=nyquist(G,w)
zpk(Z,P,KGain)
传递函数模型在更一般的情况下,可以表示为复 数变量s的有理函数形式:
b1 s m b2 s m1 bm s bm1 G( s) n n 1 n2 s a1 s a2 s an1 s an
在MATLAB中可以采用如下语句将以上的传 递函数模型输入到工作空间:
一个函数step()来直接求取系统的阶跃响应,该函数
的可以有如下格式来调用: y=step(G,t) 对于系统的脉冲响应,控制系统工具箱中给出了 一个函数impulse()来直接求取系统的脉冲响应,该 函数的可以有如下格式来调用: y=impulse (G,t)
6, 系统的复域与频域分析
对于根轨迹的绘制,控制系统工具箱中给出了一
1
如果 i 1 收敛于一个常数矩阵,即 i1 i , 则可以得出代数黎卡提方程的解为: