现代控制理论MATLAB编程
现代控制理论-基于MATLAB的实验指导书课程设计指导书

现代控制理论基于MATLAB的实验指导书第一部分实验要求1.实验前做好预习。
2.严格按照要求操作实验仪器,用毕恢复原状。
3.实验完成后,由指导教师检查实验记录、验收仪器后,方可离开。
4.实验报告应包括以下内容:1)实验目的;2)实验原理图;3)实验内容、步骤;4)仿真实验结果(保留仿真实验波形,读取关键参数);5)仿真实验结果分析。
第二部分MATLAB平台介绍实际生产过程中,大部分的系统是比较复杂的,并且要考虑安全性、经济性以及进行实验研究的可能性等,这在现场实验中往往不易做到,甚至根本不允许这样做。
这时,就需要把实际系统建立成物理模型或数学模型进行研究,然后把对模型实验研究的结果应用到实际系统中去,这种方法就叫做模拟仿真研究,简称仿真。
到目前为止,已形成了许多各具特色的仿真语言。
其中美国Mathworks软件公司的动态仿真集成软件Simulink与该公司著名的MATLAB软件集成在一起,成为当今最具影响力的控制系统应用软件。
国内MA TLAB软件的著名论坛为“MATLAB中文论坛”,网址为:https:///forum.php,建议同学们注册并参与论坛相关内容的讨论。
图1 MA TLAB仿真环境第三部分 实验实验一线性系统的时域分析实验目的熟悉MATLAB 环境,掌握用MATLAB 控制系统工具箱进行线性定常系统的时域分析、能控性与能观性分析、稳定性分析的方法。
实验要求完成指导书规定的实验内容,记录并分析实验结果,写出实验报告。
实验内容1.已知系统的状态模型,求系统在单位阶跃输入下的各状态变量、输出响应曲线。
例:[]⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡⎥⎦⎤⎢⎣⎡--=⎥⎦⎤⎢⎣⎡2121214493.69691.1,0107814.07814.05572.0x x y u x x x x 。
键入:a = [-0.5572, -0.7814; 0.7814,0]; b = [1; 0]; c = [1.9691,6.4493]; d = 0;[y, x, t]=step(a, b, c, d); plot(t, y); grid (回车,显示输出响应曲线。
现代控制理论-MATLAB

建模
0 x1 x 0 2 x3 0 x4 0 1 0 mg 0 M 0 0 ( M m) g 0 Ml 0 0 x1 1 0 x2 M u 1 x3 0 x4 1 0 Ml
if rank(ob)==n
disp('系统可观') elseif rank(ob)<n disp('系统不可观') end
%判断可观性%
现代控制理论
状态反馈控制器设计
HPole = [-10,-10,-2-2*sqrt(3)*j,-2+2*sqrt(3)*j];%期望极点 K = acker(A,B,HPole) A0=A-B*K; %极点配置后的系统矩阵 eig(A0) %显示极点配置后的特征根
现代控制理论
状态观测器的设计
%设计一个状态观测器使其极点为-50 -50 -50 -50 op=[-50 -50 -50 -50]; L=(acker(A',C',op))' A2=[A -B*K; L*C A-L*C-B*K]
现代控制理论
y 1
0
0
x1 x 0 2 x3 x4
M=1;m=0.1;l=1
现代控制理论
建模
A = [0 0 0 1 0 0 0 -m*g/M 0 0; 0; 1;
0
B=[ 0; 1/M; 0;
0
g*(M+m)/(M*l)
二次型最优控制器的设计
Klqr = lqr(A,B,Q,R);
现代控制理论的MATLAB实现

现代控制理论的MATLAB实现现代控制理论是控制工程中一门重要的学科,它研究如何设计和分析控制系统以满足一定的性能指标。
MATLAB是一种功能强大的科学计算和工程仿真软件,广泛应用于控制系统设计与分析。
本文将介绍现代控制理论的一些常见方法在MATLAB中的实现。
1.线性系统的状态空间表示线性系统的状态空间表示是现代控制理论的核心内容之一、在MATLAB中,可以使用`ss`命令创建线性系统的状态空间模型。
例如,假设存在一个二阶线性时不变系统,其传递函数为:可以使用以下代码将其转换为状态空间模型:```matlabnum = [1];den = [1, 1, 1];sys = tf(num, den);ss_sys = ss(sys);```2.线性系统的传递函数表示传递函数是描述线性系统输入输出关系的一种常用表示方法。
在MATLAB中,可以使用`tf`命令创建线性系统的传递函数模型。
例如,假设存在一个二阶线性时不变系统,其状态空间描述为:```matlabA=[0,1;-1,-1];B=[0;1];C=[1,0];D=0;ss_sys = ss(A, B, C, D);```可以使用以下代码将其转换为传递函数模型:```matlabtf_sys = tf(ss_sys);```3.常见控制器的设计与分析现代控制理论中常用的控制器设计方法包括PID控制器、根轨迹法、频率域分析等。
在MATLAB中,可以使用`pid`命令创建PID控制器,并使用`rlocus`命令绘制根轨迹图。
例如,创建一个PID控制器:```matlabKp=1;Kd=0.1;pid_controller = pid(Kp, Ki, Kd);```绘制根轨迹图:```matlabsys = tf([1], [1, 1, 1]);rlocus(sys);```4.系统的频率响应分析频率响应分析是现代控制理论中常用的系统性能评估方法之一、在MATLAB中,可以使用`bode`命令绘制系统的频率响应曲线。
现代控制原理matlab实验报告1

现代控制原理matlab实验报告实验一.利用MATLAB进行线性系统的模型转换及联结一.实验目的1、学习系统状态空间模型的建立方法、了解状态空间模型与传递函数、零极点模型之间相互转换的方法;2、通过编程、上机调试,掌握系统状态空间模型与传递函数相互转换的方法。
3、通过编程、上机调试,掌握系统模型的联结方法。
二.实验步骤1、根据所给系统的已知条件,如传递函数、零极点模型或(A 、B 、C 、D ),实现状态空间模型、传递函数模型、零极点增益模型之间的转换,采用MATLAB 的相关函数编写m -文件。
2、应用系统建模工具,并联、串联、闭环、反馈等函数解决实际问题。
3、在MA TLAB 界面下调试程序。
三.实验要求1.在运行以上例程序的基础上,应用MA TLAB 求下面传递函数阵的状态空间实现232252()234s s s G s s s s +⎡⎤⎢⎥++⎣⎦=+++提示:num =[0 0 1 2;0 1 5 3] 解:num=[0 0 1 2;0 1 5 2]; den=[1 2 3 4];[A,B,C,D]=tf2ss(num,den) A =-2 -3 -4 1 0 0 0 1 0 B =1 0 0 C =0 1 2 1 5 2 D =0 02.一个双输入双输出系统112233412311022711353x x x x u x x -⎡⎤⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=+⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦⎣⎦⎣⎦11223120011x y x y x ⎡⎤⎡⎤⎡⎤⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎣⎦求出此模型的能控标准型和能观标准型。
提示:写出两个子系统的传递函数模型,进而求出这两个传递函数模型的能控标准型实现或能观标准型实现,讨论是否能通过子系统的能控标准型实现或能观标准型实现求出原来系统的能控标准型和能观标准型。
解:A=[4 1 -2;1 0 2;1 -1 3]; B=[3 1;2 7;5 3]; C=[1 2 0;0 1 1]; D=[0];[num1,den1]=ss2tf(A,B1,C1,D) [num2,den2]=ss2tf(A,B2,C2,D)得到: num1 =0 7.0000 -19.0000 -36.0000den1 =1.0000 -7.0000 15.0000 -9.0000num2 =0 10.0000 -60.0000 98.0000den2 =1.0000 -7.0000 15.0000 -9.0000实验二.利用MATLAB 求取线性系统的状态空间模型的解并分析其稳定性一. 实验目的1、根据状态空间模型分析系统由初始状态和外部激励所引起的响应;2、了解系统稳定性的判定方法(直接法和间接法);3、通过编程、上机调试,掌握系统运动的分析方法。
现代控制理论MATLAB算法

现代控制理论MATLAB 实现例6.1.2系统的线性化模型如下[]xCx y ux Bu Ax x 0001101001100100001000010.==⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-+⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-=+=其中x 是系统的状态变量,y 是小车的位移,u 是作用小车的力 1在Ae e =.作用下的误差如下。
M 文件如下得到的如下的结果:设计一个状态观测器,使得观测器极点是10,10,322,3224321-=-=+-=+-=u u j u j u解 观测器模型如下Ly Bu x LC A x++-=~.)(~运行如下m 文件状态估计的误差状态方程为:e LC A e )(.-=以下进一步通过仿真来检验观测器的效果,取初始误差向量为[]Te 1.01.021)0(-=执行如下m 文件状态估计的误差曲线如下降维观测器的题:例6,3,2考虑系统Cxy Bu Ax x =+=.其中,[]001,100,6116100010=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---=C B A 设计一个具有极点u1=-10,u2=-10,的降维的观测器。
因此降阶观测器的增益矩阵是L=[]T514,具有期望极点的降阶观测器为u y w w ⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡--+⎥⎦⎤⎢⎣⎡---=10260191616114~.~跟踪控制器的设计例5.4.1已知被控对象的状态空间模型为[]xy u x x 21104310.=⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡--= 设计状态反馈控制器,使得闭环极点为-4和-5,和跟踪控制器。
并讨论闭环系统的稳态性能。
可以知道能稳定跟踪先判断是否能稳定跟踪可以得到如下的结果00.511.522.530.20.40.60.811.21.4time(sec)O u t p u t最优控制的习题例7.2.2考虑以下状态空间模型的描述的系统:其中⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---=100,92735100010B A系统的性能指标J 定义为 ⎰∞+=)(t T T d Ru u Qx x J其中,[]1,100010001=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=R Q 设计最优状态反馈控制器,并检验最优闭环系统对初始状态[]Tx 001)0(=的响应。
现代控制理论MATLAB编程

现代控制理论实验报告姓名:班级:学号:目录一.实验设备二.实验目的三.实验步骤一、实验设备PC计算机1台,MATLAB软件1套。
二、实验目的1。
学习系统状态空间表达式的建立方法、了解系统状态空间表达式与传递函数相互转换的方法;2。
通过编程、上机调试、掌握系统状态空间表达式与传递函数相互转换方法;3。
学习MATLAB的使用方法。
三、实验步骤1、根据所给系统的结构图写出死循环系统的传递函数,若K=10,T=0。
1时阶跃输出下的系统输出响应,并采用MATLAB编程.2、在MATLAB接口下调试程序,并检查是否运行正确.3、给出定二阶系统结构图:图为二阶系统结构图(1)求二阶系统的闭环循环传递函数ɸ(s )=)(1)(s G s G +=K S TS K++2(2)若K=10,T=0。
1,仿真给出阶跃下的系统输出响应把K T 代入方程得Φ(S)= =1)MATLAB 命令得出的系统响应曲线在MATLAB 上输入下列指令:〉> num=[100];>> den=[1,10,100];>> step (num,den)程序运行后显示的时域动态响应曲线(如图2)图为 时域动态响应曲线2)、用进行Simulink 进行仿真启动Simulink并打开一个空白的模块编辑窗口,画出所需模块,并给出正确参数,将画出的所有模块链接起来(如图1),构成一个原系统的框图描述(如图3).选择仿真控制参数,启动仿真过程。
仿真结果示波器显示如图4。
图3二阶系统的Simulink(仿真)图4仿真结果示波器显示(仿真输出)(3) 调整比例系数K,使之从零开始增加。
同时,观察仿真曲线的变化,并给出过阻尼、临界、欠阻尼的条件。
当K=0时的仿真曲线当K=1时的仿真曲线当K=2.5时的仿真曲线当K=3。
5时的仿真曲线当K=4时的仿真曲线根据调整比例系数K,使之从零开始增加,同时观察仿真曲线的变化,得出以下结论;过阻尼的条件:K>2.5时;临界阻尼条件:K=2.5时;欠阻尼的条件:K<2。
现代控制理论实验matlab 指导书

MATLAB软件简介1.1 MATLAB软件在控制系统中的应用介绍MATLAB的名称源自Matrix Laboratory,1984年由美国Mathworks公司推向市场。
它是一种科学计算软件,专门以矩阵的形式处理数据。
MA TLAB将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛地应用于科学计算、控制系统、信息处理等领域的分析、仿真和设计工作。
1993年MathWorks公司从加拿大滑铁卢大学购得MAPLE软件的使用权,从而以MAPLE为“引擎”开发了符号数学工具箱(Symbolic Math Toolbox)。
MATLAB软件包括五大通用功能:数值计算功能(Nemeric);符号运算功能(Symbolic);数据可视化功能(Graphic);数据图形文字统一处理功能(Notebook)和建模仿真可视化功能(Simulink)。
其中,符号运算功能的实现是通过请求MAPLE内核计算并将结果返回到MA TLAB命令窗口。
该软件有三大特点:一是功能强大;二是界面友善、语言自然;三是开放性强。
目前,Mathworks公司已推出30多个应用工具箱。
MA TLAB在线性代数、矩阵分析、数值及优化、数理统计和随机信号分析、电路与系统、系统动力学、信号和图像处理、控制理论分析和系统设计、过程控制、建模和仿真、通信系统、以及财政金融等众多领域的理论研究和工程设计中得到了广泛应用。
MATLAB在控制系统中的应用主要包括符号运算和数值计算仿真分析。
由于控制系统课程的许多内容都是基于公式演算,而MATLAB借助符号数学工具箱提供的符号运算功能能基本满足控制系统课程的需求。
例如,解微分方程、傅里叶正反变换、拉普拉斯正反变换、z正反变换等。
MA TLAB在控制系统中的另一主要应用是数值计算与仿真分析,主要包括函数波形绘制、函数运算、冲激响应与阶跃响应仿真分析、信号的时域分析、信号的频谱分析、系统的S域分析、零极点图绘制等内容。
现代控制理论MATLAB算法

现代控制理论MATLAB 实现例6.1.2系统的线性化模型如下[]xCx y ux Bu Ax x 0001101001100100001000010.==⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-+⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-=+=其中x 是系统的状态变量,y 是小车的位移,u 是作用小车的力 1在Ae e =.作用下的误差如下。
M 文件如下得到的如下的结果:设计一个状态观测器,使得观测器极点是10,10,322,3224321-=-=+-=+-=u u j u j u解 观测器模型如下Ly Bu x LC A x++-=~.)(~运行如下m 文件状态估计的误差状态方程为:e LC A e )(.-=以下进一步通过仿真来检验观测器的效果,取初始误差向量为[]Te 1.01.021)0(-=执行如下m 文件状态估计的误差曲线如下降维观测器的题:例6,3,2考虑系统Cxy Bu Ax x =+=.其中,[]001,100,6116100010=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---=C B A 设计一个具有极点u1=-10,u2=-10,的降维的观测器。
因此降阶观测器的增益矩阵是L=[]T514,具有期望极点的降阶观测器为u y w w ⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡--+⎥⎦⎤⎢⎣⎡---=10260191616114~.~跟踪控制器的设计例5.4.1已知被控对象的状态空间模型为[]xy u x x 21104310.=⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡--= 设计状态反馈控制器,使得闭环极点为-4和-5,和跟踪控制器。
并讨论闭环系统的稳态性能。
可以知道能稳定跟踪先判断是否能稳定跟踪可以得到如下的结果00.511.522.530.20.40.60.811.21.4time(sec)O u t p u t最优控制的习题例7.2.2考虑以下状态空间模型的描述的系统:其中⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---=100,92735100010B A系统的性能指标J 定义为 ⎰∞+=)(t T T d Ru u Qx x J其中,[]1,100010001=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=R Q 设计最优状态反馈控制器,并检验最优闭环系统对初始状态[]Tx 001)0(=的响应。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
现代控制理论实验报告
姓名:
班级:
学号:
目录一.实验设备
二.实验目的
三.实验步骤
一、实验设备
PC计算机1台,MATLAB软件1套。
二、实验目的
1.学习系统状态空间表达式的建立方法、了解系统状态空间表达式与传递函数相互转换的方法;
2.通过编程、上机调试、掌握系统状态空间表达式与传递函数相互转换方法;
3.学习MATLAB的使用方法。
三、实验步骤
1、根据所给系统的结构图写出死循环系统的传递函数,若K=10,T=0.1时阶跃输出下的系统输出响应,并采用MATLAB编程。
2、在MATLAB接口下调试程序,并检查是否运行正确。
3、给出定二阶系统结构图:
图为二阶系统结构图
(1)求二阶系统的闭环循环传递函数
ɸ(s )=)(1)(s G s G +=K S TS K
++2
(2)若K=10,T=0.1,仿真给出阶跃下的系统输出响应
把K T 代入方程得Φ(S )= =
1)MATLAB 命令得出的系统响应曲线在MATLAB 上输入下列指
令:>> num=[100];>> den=[1,10,100];>> step(num,den)程序运行后显示的时域动态响应曲线(如图2)
图为 时域动态响应曲线
2)、用进行Simulink 进行仿真
启动Simulink并打开一个空白的模块编辑窗口,画出所需模块,并给出正确参数,将画出的所有模块链接起来(如图1),构成一个原系统的框图描述(如图3)。
选择仿真控制参数,启动仿真过程。
仿真结果示波器显示如图4。
图3二阶系统的Simulink(仿真)
图4仿真结果示波器显示(仿真输出)
(3)调整比例系数K,使之从零开始增加。
同时,观察仿真曲线的变化,并给出过阻尼、临界、欠阻尼的条件。
当K=0时的仿真曲线
当K=1时的仿真曲线
当K=2.5时的仿真曲线
当K=3.5时的仿真曲线
当K=4时的仿真曲线
根据调整比例系数K,使之从零开始增加,同时观察仿真曲线的变化,得出以下结论;
过阻尼的条件:K>2.5时;
临界阻尼条件:K=2.5时;
欠阻尼的条件:K<2.5时。
(4)、列写状态方程,计算状态转移矩阵。
1)状态方程
在MATLAB上输入下列指令:
>> num=[100];
>> den=[1,10,100];
>> G=tf(num,den);
>> sys=ss(G)
语句执行结果为:
a =
x1 x2
x1 -10 -12.5
x2 8 0
b =
u1
x1 4
x2 0
c =
x1 x2
y1 0 3.125
d =
u1
y1 0
(2)状态转移矩阵
>> syms s x0 x tao phi phi0;
A=[0 1;-2 -3];I=[1 0;0 1];B=[4;0];
E=s*I-A;C=det(E);D=collect(inv(E));
phi0=ilaplace(D)
phi0 =
[ -exp(-2*t)+2*exp(-t), 2*exp(-3/2*t)*sinh(1/2*t)] [ -4*exp(-3/2*t)*sinh(1/2*t), -exp(-t)+2*exp(-2*t)] >>
(5)、判断系统可控性与客观性。
在MATLAB上输入下列指令:
>> A=[-10 -12.5;8 0];
>> B=[4;0];
>> C=[0 3.125];
>> Qc=ctrb(A,B)
Qc =
4 -40
0 32
>> Qo=obsv(A,C)
Qo =
0 3.1250
25.0000 0
>> Rc=rank(Qc)
Rc =
2
>> Ro=rank(Qo)
Ro =
2
从计算结果可以看出,系统能控性矩阵和能观测性矩阵的秩都是2,为满秩,因此该系统是能控的,也是能观测的。
(6)、配置希望的死循环主导极点。
由(5)可知系统可控,可以应用状态反馈,任意配置极点。
使状态反馈系统极点配置为:S1=-0.2, S2=-0.3
在MATLAB上输入下列指令:
>> A=[-10 -12.5;8 0];
>> B=[4;0];
>> C=[0 3.125];
>> P=[-0.2 -0.3];
>> K=place(A,B,P)
K =
-2.3750 -3.1231
计算结果表明,状态回馈矩阵为K=[-2.3750 -3.1231]
(7)、建立状态观测器,构成状态回馈。
>> A=[-10 -12.5;8 0];
>> B=[4;0];
>> C=[0 3.125];
>> A1=A';C1=C';P=[-2 -3];
>> G1=acker(A1,C1,P);
>> G=G1'
G =
-1.7600
-1.6000
状体观测器矩阵为
状态观测器方程为。