控制理论与Matlab数学模型
现代控制理论实验matlab 报告

实验一系统的传递函数阵和状态空间表达式的转换实验目的:1、学习多变量系统状态空间表达式的建立方法、了解系统状态空间表达式与传递函数相互转换的方法;2、通过编程、上机调试,掌握多变量系统状态空间表达式与传递函数相互转换的方法。
实验内容及结果:>>num=[0 0 1 2;0 1 5 3];den=[1 2 3 4];[A,B,C,D]=tf2ss(num,den)实验二状态空间控制模型系统仿真及状态方程求解实验目的:1、熟悉线性连续系统的状态空间控制模型的各种表示方法;2、熟悉系统模型之间的转换功能;3、利用MATLAB对线性定常系统进行动态分析。
实验内容及结果(1)>>num=[1 2 1 3]; den=[1 0.5 2 1];sys=tf(num,den);sys1=tf2zp(num,den); sys2=tf2ss(num,den); impulse(sys);step(num,den,t);>>A=[0 1;-10 -5];B=[0;0];D=B;C=[1 0;0 1];x0=[2;1];[y,x,t]=initial(A,B,C,D,x0);plot(t,x(:,1),t,x(:,2))gridtitle('Response to initial condition') xlabel('Time(sec)')ylabel('x1,x2')text(0.55,1.15,'x1')text(0.4,-2.9,'x2')>>A=[-1 -1;6.5 0]; B=[1 1;1 0];C=[1 0;0 1];D=[0 0;0 0];step(A,B,C,D)(4)思考>>A=[0 -2;1 -3];B=[2;0];C=[1 0];x0=[1;1];U=1;[t,x]=ode45(@solve_state_fun,[0 10],x0,[],A,B,U); plot(t,x(:,1),t,x(:,2));gridtitle('Response to initial condition')xlabel('Time(sec)')ylabel('x1,x2')text(0.55,1.15,'x1')text(0.4,-2.9,'x2')实验三系统能控性、能观性的判别实验目的:1、系统的能控性和能观测性的判别方法、系统的能控性和能观测性的分解;2、了解MATLAB中的相应的函数。
控制理论实验报告MATLAB仿真实验.doc

控制理论实验报告MATLAB仿真实验实验报告课程名称:控制理论(二)讲师:林峰结果:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _实验名称:MATLAB仿真实验类型:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _同一组学生的姓名:________一、实验的目的和要求(要求)二.实验内容和原则(要求)三.主要仪器和设备(必需)四.操作方法和实验步骤五、实验数据的记录和处理六.实验结果和分析(必需)7.控制系统时域分析实验9的探讨与体会首先,实验的目的:1.利用计算机辅助分析,掌握系统的时域分析方法。
2.熟悉Simulink仿真环境。
二、实验原理和方法:系统仿真本质上是系统模型的求解。
对于控制系统,一般模型可以转化为微分方程或差分方程。
因此,在仿真过程中,通过一些数值算法从初始状态开始逐步计算系统响应。
最后,画出系统的响应曲线,分析系统性能。
控制系统最常用的时域分析方法是当输入信号为单位阶跃和单位脉冲函数时,获得系统的输出响应,分别称为单位阶跃响应和单位脉冲响应。
在MATLAB中,提供了单位阶跃响应函数step、单位冲激响应函数impulse、零输入响应函数initial等来获得连续系统。
二、实验内容:二阶系统的状态方程模型是——控制理论(二)指导者:林峰结果:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _实验名称:MATLAB仿真实验类型:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _同一组学生的姓名:________一、实验的目的和要求(要求)二.实验内容和原则(要求)三.主要仪器和设备(必需)四.操作方法和实验步骤五、实验数据的记录和处理六.实验结果和分析(必需)7.控制系统时域分析实验9的探讨与体会首先,实验的目的:1.利用计算机辅助分析,掌握系统的时域分析方法。
2.熟悉Simulink仿真环境。
现代控制理论-基于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实现

U [u(k ), u(k 1),, u(k m 1)]T
Y0 [ y0 (k 1), y0 (k 2),, y0 (k n)]T
10
a1 a A 2 a n
a1 a n 1
0 a n m 1
j 1 j 1
J [ y (k j ) w(k j )] ( j )u(k j 1)
2
n
m
2
12
W [w(k 1), w(k 2),, w(k n)]T 若令 则式(7-9)可表示为
(7-10) 式中 w(k+j)称为期望输出序列值 ,在预测控制这类算 法中 , 要求闭环响应沿着一条指定的、平滑的曲线到 达新的稳定值,以提高系统的鲁棒性. 一般取 j j
6
7.1.1 预测模型
从被控对象的阶跃响应出发,对象动态特性用一系 列动态系数 a1 , a2 ,, a p 即单位阶跃响应在采样时刻的值 来描述,p称为模型时域长度,ap是足够接近稳态值的 系数。
图7-1 单位阶跃响应曲线
7
根据线性系统的比例和叠加性质(系数不变原理),若 在某个时刻k-i(k>=i)输入u(k-i),则 u(k i) 对输出y(k)的 1 i p a u (k i) 贡献为: y (k ) i p a u (k i) (7-1) 若在所有 k i(i 1,2,, k ) 时刻同时有输入,则跟据叠加原 p 1 理有 y(k ) ai u(k i) a p u(k p) i 1 (7-2) 利用上式容易得到y(k+j的 n步预估(n<p) 为: (7-3) ˆ (k j ) a u(k j i) a u(k j p) ( j 1,2,, n) y
在MATLAB中数学模型的表示

➢ 2.6.1传递函数
注意尽管s2项系数为0,但输入P(s)时不可缺省0。
MATLAB下多项式乘法处理函数调用格式为:
>>C=conv(A,B)
例如给定两个多项式A(s)=s+3和B(s)=10s2+20s+3,求 C(s)=A(s)B(s),则应先构造多项式A(s)和B(s),然后 再调用conv( )函数来求C(s)
sign为反馈极性,若为正反馈其为1,若为负反馈其为-1或缺省。
反馈
例如
负反馈连接
>>numg=[1,1];deng=[1,2]; >>numh=[1];denh=[1,0];
>>[num,den]=feedback(numg,deng,numh,denh,-1); >>printsys(num,den)
>>p=-0.9567+1.2272i >>-0.9567-1.2272i >>-0.0433+0.6412i >>-0.0433-0.6412i >>k=6
用MATLAB语句表示:
可以验证MATLAB的转换函数,调用zp2tf()函数将得到原传递函 数模型。
>>[num,den]=zp2tf(z,p,k) >>num = 0 6.0000 12.0000 6.0000 10
现代控制理论的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`命令绘制系统的频率响应曲线。
PID控制和其MATLAB仿真

序号,k=1,2,……,e (k-1)和e (k)分别为第(k-
1)和第k时刻所得旳偏差信号。
1.3.1 位置式PID控制算法
• 位置式PID控制系统
1.3.1 位置式PID控制算法
根据位置式PID控制算法得 到其程序框图。
在仿真过程中,可根据实 际情况,对控制器旳输出 进行限幅:[-10,10]。
• 变速积分旳基本思想是,设法变化积分项旳累加 速度,使其与偏差大小相相应:偏差越大,积分 越慢;反之则越快,有利于提升系统品质。
• 设置系数f(e(k)),它是e(k)旳函数。当 ∣e(k)∣增大时,f减小,反之增大。变速积分 旳PID积分项体现式为:
ui (k )
ki
k
1
e(i)
f
e(k )e(k )T
i0
1.3.8 变速积分算法及仿真
• 系数f与偏差目前值∣e(k)∣旳关系能够是线性 旳或是非线性旳,例如,可设为
1
f
e(k
)
A
e(k A
)
B
0
e(k) B B e(k) A B e(k) A B
1.3.8 变速积分算法及仿真
• 变速积分PID算法为:
u(k)
k
p e(k )
ki
1.3.4 增量式PID控制算法及仿真
• 增量式PID阶跃跟踪成果
1.3.5 积分分离PID控制算法及仿真
• 在一般PID控制中,引入积分环节旳目旳主要是为了 消除静差,提升控制精度。但在过程旳开启、结束或 大幅度增减设定时,短时间内系统输出有很大旳偏差 ,会造成PID运算旳积分积累,致使控制量超出执行机 构可能允许旳最大动作范围相应旳极限控制量,引起 系统较大旳振荡,这在生产中是绝对不允许旳。
控制工程实训课程学习总结基于MATLAB的系统建模与仿真实验报告

控制工程实训课程学习总结基于MATLAB 的系统建模与仿真实验报告摘要:本报告以控制工程实训课程学习为背景,基于MATLAB软件进行系统建模与仿真实验。
通过对实验过程的总结,详细阐述了系统建模与仿真的步骤及关键技巧,并结合实际案例进行了实验验证。
本次实训课程的学习使我深入理解了控制工程的基础理论,并掌握了利用MATLAB进行系统建模与仿真的方法。
1. 引言控制工程是一门应用广泛的学科,具有重要的理论和实践意义。
在控制工程实训课程中,学生通过实验来加深对控制系统的理解,并运用所学知识进行系统建模与仿真。
本次实训课程主要基于MATLAB软件进行,本文将对实验过程进行总结与报告。
2. 系统建模与仿真步骤2.1 确定系统模型在进行系统建模与仿真实验之前,首先需要确定系统的数学模型。
根据实际问题,可以选择线性或非线性模型,并利用控制理论进行建模。
在这个步骤中,需要深入理解系统的特性与工作原理,并将其用数学方程表示出来。
2.2 参数识别与估计参数识别与估计是系统建模的关键,它的准确性直接影响到后续仿真结果的可靠性。
通过实际实验数据,利用系统辨识方法对系统的未知参数进行估计。
在MATLAB中,可以使用系统辨识工具包来进行参数辨识。
2.3 选择仿真方法系统建模与仿真中,需要选择合适的仿真方法。
在部分情况下,可以使用传统的数值积分方法进行仿真;而在其他复杂的系统中,可以采用基于物理原理的仿真方法,如基于有限元法或多体动力学仿真等。
2.4 仿真结果分析仿真结果的分析能够直观地反映系统的动态响应特性。
在仿真过程中,需对系统的稳态误差、动态响应、鲁棒性等进行综合分析与评价。
通过与理论期望值的比较,可以对系统的性能进行评估,并进行进一步的优化设计。
3. 实验案例及仿真验证以PID控制器为例,说明系统建模与仿真的步骤。
首先,根据PID控制器的原理以及被控对象的特性,建立数学模型。
然后,通过实际实验数据对PID参数进行辨识和估计。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2020/11/23
1
MATLAB具有以下主要特点:
1)超强的数值运算功能。在MATLAB里,有超过500种的数学、统计、科 学及工程方面的函数可供使用,而且使用简单快捷。由于库函数都由本领域 的专家编写,用户不必担心函数的可靠性。
2)语法限制不严格,程序设计自由度大。例如,在MATLAB里,用户无需 对矩阵预定义就可使用。
2020/11/23
2
二. MATLAB的工作环境
2020/11/23
3
2020/11/23
4
2020/11/23
5
窗口中的符号“》”,表示MATIAB已准备好,正等待用户输入命 令。用户可以在“》”提示符后面输入命令,实现计算或绘图功能。
在命令窗口中,可使用方向键对已输入的命令行进行编辑, 如用“↑”键或“↓”键回到上一句指令或显示下一句命令。
MATLAB 是国际控制界目前使用最广的工具软件,几乎所有的控制理论与应用分 支中都有 MATLAB 工具箱。本节结合前面所学自控理论的基本内容,采用控制系统工 具箱(Control Systems Toolbox)和仿真环境(Simulink),学习 MATLAB 的应用。
(1) 用 MATLAB 建立传递函数模型
num [b1, b2 , , bm , bm1 ] ;
(2)
den [1, a1, a2 , , an1,MATLAB 控制系统工具箱中,定义了 tf() 函数,它可由传递函数分子分母给
出的变量构造出单个的传递函数对象。从而使得系统模型的输入和处理更加方便。
2020/11/23
12
运行结果: Zero/pole/gain: 6 (s+1.929) (s^2 + 0.0706s + 0.8637) ---------------------------------------------(s^2 - 0.0866s + 0.413) (s^2 + 1.913s + 2.421)
(3)工作空间窗口“Work-space” 工作空间指运行MATLMB程序或 命令所生成的所有变量构成的空间。每打开一次MATLAB, MATIAB会自动建立一个工作空间。
2020/11/23
6
(4) 命令历史窗口“Command History”
2020/11/23
7
3 MATLAB 在控制系统中的应用
构造出零极点对象,用于简单地表述零极点模型。该函数的调用格式为:
G=zpk(Z,P,KGain)
(9)
2020/11/23
11
例 4 某系统的零极点模型为:
G(s) 6
(s 1.9294 )(s 0.0353 0.9287 j)
(s 0.9567 1.2272 j)(s 0.0433 0.6412 j)
1.有理函数模型 线性系统的传递函数模型可一般地表示为:
G(s) b1s m b2s m1 bm s bm1 s n a1s n1 an1s an
nm
(1) 将系统的分子和分母多项式的系数按降幂的方式以向量的形式输入给两个变量
num 和 den ,就可以轻易地将传递函数模型输入到 MATLAB 环境中。命令格式为:
该函数的调用格式为:
G=tf(num,den);
(4)
例 2 一个简单的传递函数模型:
G(s)
s4
2s3
s5 3s 2
4s
5
可以由下面的命令输入到 MATLAB 工作空间中去。
>> num=[1,5];
den=[1,2,3,4,5];
G=tf(num,den)
Transfer function:
s+5
3)程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操 作系统上运行。
4)强大的数据可视化功能。在FORTRAN和C语言里,绘图都很不容易,但 在MATMB里,数据的可视化非常简单。MATIAB还具有较强的编辑图形界 面的能力。 5)丰富的工具箱;由各学科领域内学术水平很高的专家编写的功能强劲的工 具箱,使用户无需编写自己学科范围内的基础程序,而直接进行高、精、尖 的研究。
该传递函数模型可以通过下面的语句输入到 MATLAB 工作空间。 >> num=6*[1,5];
den=conv(conv([1,3,1],[1,3,1]),[1,6]); tf(num,den)
运行结果 Transfer function: 6 s + 30 ----------------------------------------s^5 + 12 s^4 + 47 s^3 + 72 s^2 + 37 s + 6
其中 conv()函数(标准的 MATLAB 函数)用来计算两个向量的卷积,多项式乘法 当然也可以用这个函数来计算。该函数允许任意地多层嵌套,从而表示复杂的计算。
2020/11/23
10
2.零极点模型 线性系统的传递函数还可以写成极点的形式:
G(s) K (s z1 )(s z2 ) (s zm ) (s p1 )(s p2 ) (s pn )
(5)将系统增益、零点和极点以向量的形式输入给三个变量 KGain、Z 和 P,就可
以将系统的零极点模型输入到 MATLAB 工作空间中,命令格式为:
KGain K;
(6)
Z [z1; z2; ; zm ];
(7)
P [ p1; p2; ; pn ];
(8)
在 MATLAB 控制工具箱中,定义了 zpk()函数,由它可通过以上三个 MATLAB 变量
-----------------------------
s^4 + 2s^3 + 3s^2 + 4s + 5
2020/11/23
9
这时对象 G 可以用来描述给定的传递函数模型,作为其它函数调用的变量。 例 3 一个稍微复杂一些的传递函数模型:
G(s)
6(s 5)
(s 2 3s 1)2 (s 6)
该模型可以由下面的语句输入到 MATLAB 工作空间中。 >> KGain=6; z=[-1.9294;-0.0353+0.9287j;-0.0353-0.9287j]; p=[-0.9567+1.2272j ; -0.9567-1.2272j ; 0.0433+0.6412j ;
0.0433-0.6412j]; G=zpk(Z,P,KGain)