控制系统MATLAB建模与仿真-上
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Logo
数学模型的种类与转换
2、零极点增益模型
v 零极点模型实际上是传递函数模型的另一种表现形式, 其原理是分别对原系统传递函数的分子、分母进行分解 因式处理,以获得系统的零点和极点的表示形式。
G(s) = K (s - z1)(s - z2)...(s - zm) (s - p1)(s - p2)...(s - pn )
+
2
Logo
MATLAB的M-文件
vM-脚本文件
Logo
vM-函数 function [返回变量列表]=函数名 (输入变量列 表)
function [a]=dbness(n)
a=2*n;
end
MATLAB的图形可视化
Logo
vplot函数:
clc; x=[-5:0.02:5]; [m,n]=size(x); %返回矩阵x的维 数
数学模型的种类与转换
1、传递函数模型
连续系统的传递函数如下:
v对等G线于(s性零) =定,CR常这((系时ss))统M=A,baT1式1LssAmn中B++由sba的分22ss系m子n-数-11和++均分...为...母++常系ab数nn数ss,++构且ba成mna++1的11不
两个向量num和den唯一确定系统。 num=[b1,b2,…,bm,bm+1] den=[a1,a2,…,an,an+1] 注意:它们都是按s的降幂进行排列的,缺项系数 补0。
1
Logo
Logo
数学模型的种类与转换
例4:部分分式展开。
G(s)
=
2s3 + 9s +1 s3 + s2 + 4s + 4
>> num=[2,0,9,1];
>> den=[1,1,4,4];
>> [r,p,k]=residue(num,den)
r=
-0.0000 - 0.2500i
-0.0000 + 0.2500i
Logo
数学模型的种类与转换
3、状态空间模型
MATLAB中用函数命令ss()来建立系统的状态空间模型。 函数命令的调用格式为: sys=ss(a,b,c,d) 其中的a、b、c、d分别代表系统状态矩阵、控制矩阵、 输出矩阵、直接传输矩阵,函数返回连续系统状态空 间模型。 sys=ss(a,b,c,d,Ts) 其中的a、b、c、d分别代表系统状态矩阵、控制矩阵、 输出矩阵、直接传输矩阵,函数返回离散系统状态空 间模型,Ts为采样时间。
K为系统增益,zi为零点,pj为极点 v在MATLAB中零极点增益模型用[z,p,k]矢量组表示。 即: vz=[z1,z2,…,zm] vp=[p1,p2,...,pn] vk=[k]
Logo
数学模型的种类与转换
MATLAB中用函数命令zpk()来建立控制系统的零 极点增益模型。 函数命令的调用格式为: sys=zpk(z,p,k) 其中的z、p、k分别代表系统零点、极点、增益向量, 函数返回连续系统零极点模型。 sys=zpk(z,p,k,Ts) 其中的z、p、k分别代表系统零点、极点、增益向量, 函数返回离散系统零极点模型,Ts为采样时间。
for a=1:1:n if x(a)<-1.1 y(a)=-1.1;
elseif x(a)<=1.1 & x(a)>=-1.1 y(a)=x(a);
else y(a)=1.1;
end end plot(x,y);
二、控制系统的数学描述与建模
Logo
q在线性系统理论中,一般常用的数学模 型形式有:传递函数模型(系统的外部模 型)、状态方程模型(系统的内部模型)、 零极点增益模型和部分分式模型等。这些 模型之间都有着内在的联系,可以相互进 行转换。
Transfer function: 4 s^5 + 56 s^4 + 288 s^3 + 672 s^2 + 720
s + 288 ----------------------------------------------------s^7 + 6 s^6 + 14 s^5 + 21 s^4 + 24 s^3 + 17 s^2 + 5 s
-2.0000
p=
0.0000 + 2.0000i
0.0000 - 2.0000i -1.0000 k=
G(s) = 2 + - 0.25i + 0.25i + - 2 s - 2i s + 2i s +1
2
Logo
数学模型的种类与转换
例5:求 Matlab描述的零极点增益模型。
G(s)
=
s2
+
1 3s
Logo
数学模型的种类与转换
MATLAB中用函数命令tf()来建立控制系统的传 递函数模型。 函数命令的调用格式为: sys=tf(num,den) 函数返回的变量为连续系统的传递函数模型,函数 输入参量num与den分别为系统的分子与分母多项式 系数向量。 sys=tf(num,den,Ts) 函数返回的变量为离散系统的传递函数模型,函数 输入参量num与den分别为系统的分子与分母多项式 系数向量,Ts为采样时间。
Transfer function: 12 s^3 + 24 s^2 + 20
------------------------------2 s^4 + 4 s^3 + 6 s^2 + 2 s + 2
Logo
数学模型的种类与转换
例2:建立系统传递函数模型。
G(s)
=
4(s + 2)(s2 s(s +1)3(s3 +
3、非线性系统:系统中有一个元部件的输入输出 特性为非线性的系统。
Logo
线性定常连续系统的微分方程模型
v微分方程是控制系统模型的基础,一般来 讲,利用机械学、电学、力学等物理规律, 便可以得到控制系统的动态方程,这些方 程对于线性定常连续系统而言是一种常系 数的线性微分方程。
vMATLAB提供了ode23、ode45等微分方 程的数值解法函数,不仅适用于线性定常 系统,也适用于非线性及时变系统。
a=[1 2 ; 3, 4] v冒号 “:” 运算符:初值 : 步长 : 终值
a=[1:5], b=[0:pi/4:pi] v由向量或小矩阵生成:X=[a ; b] v 交互式输入:input
n=input('Please input n: ')
MATLAB的基本语句结构
Logo
v赋值语句
§ 直接赋值语句:赋值变量=赋值表达式 (赋值表达式后无分号“;”: 命令窗直接显示赋值结
+ 6s + 6)2 3s2 + 2s +
5)
>> num=4*conv([1,2],conv([1,6,6],[1,6,6])); >> den=conv([1,0],conv([1,1],conv([1,1],conv([ 1,1],[1,3,2,5])))); >> sys2=tf(num,den)
Logo
系统的分类
v 按系统性能分:线性系统和非线性系统;连续 系统和离散系统;定常系统和时变系统等。
1、线性连续系统:用线性微分方程式来描述,如 果微分方程的系数为常数,则为定常系统;如 果系数随时间而变化,则为时变系统。我们所 讨论的系统主要以线性定常连续系统为主。
2、线性离散系统:离散系统指系统的某处或多处 的信号为脉冲序列或数码形式。这类系统用差 分方程来描述。
二、控制系统的数学描述与建模
Logo
q控制系统的数学模型在控制系统的研究中有 着相当重要的地位,要对系统进行仿真处理, 首先应当知道系统的数学模型,然后才可以 对系统进行模拟。同样,如果知道了系统的 模型,才可以在此基础上设计一个合适的控 制器,使得系统响应达到预期的效果,从而 符合工程实际的需要。
Logo
数学模型的种类与转换
Ø MATLAB中用四种数学模型表示控制系统:
传递函数模型、零极点增益模型、状态空 间模型、动态结构图(SIMULINK中使用)。 Ø 实际应用中,根据要解决问题的需要,往 往要进行不同种类模型之间的转换, MATLAB控制系统工具箱中为此提供了相应 的命令函数。
Logo
s=0;i=1; while(i<=100)
s=s+i; end
MATLAB的基本语句结构
v跳转语句
§ if语句: if (条件1) 语句组1; elseif(条件2) 语句组2; else 语句组2; end
Logo
MATLAB的基本语句结构
v跳转语句
§ switch语句: case (表达式1) 语句组1; case (表达式2) 语句组2; …, … otherwise 语句组n; end
Logo
控制系统MATLAB计算与仿真
CGH
控制系统MATLAB计算与仿真
ØMATLAB基础 Ø控制系统的数学描述与建模
Logo
Logo
一、MATLAB基础 vMatlab=Matrix Laboratory:矩阵实验室
vMatlab 语言的首创人是 C. Moler
v到九十年代初期,在国际上 30 几个数学类 科技应用软件中, Matlab 在数值计算方面 独占鳌头,而 Mathematica 和 Maple 则 分析符号计算软件的前两名。
将状态空间模型转换为传递函数模型
zp2ss
将零极点增益模型转换为状态空间模型
ss2zp
将状态空间模型转换为零极点增益模型
数学模型的种类与转换
例1:建立系统传递函数模型。
G(s)
=
12s3 + 24s2 2s4 + 4s3 + 6s2
+ +
20 2s +
2
>> num=[12,24,0,20];den=[2 4 6 2 2]; >> sys1=tf(num,den)
MATLAB的主要功能
v数值计算功能 v符号运算功能 v绘图功能 v编程功能 v丰富的工具箱(ToolBox) vSimulink动态仿真集成环境
Logo
MATLAB主界面
带状工具栏
Logo
功能区
当前目录 窗口
文件Βιβλιοθήκη Baidu细信 息窗口
当前目录路径
编辑器窗 口
快捷按钮
工作区 窗口
命令提示 符
命令窗口 5
v [b,a]=residue(r,p,k)可以将部分分式转化为多项 式比p(s)/q(s)。
Logo
数学模型的种类与转换
5、模型的转换
函数名 函 数 功 能
tf2zpk
将传递函数模型转换为零极点增益模型
zp2tf
将零极点增益模型转换为传递函数模型
tf2ss
将传递函数模型转换为状态空间模型
ss2tf
Logo
数学模型的种类与转换
4、部分分式展开
v 控制系统常用到并联系统,这时就要对系统函数 进行分解,使其表现为一些基本控制单元的和的 形式。
v 函数[r,p,k]=residue(b,a)对两个多项式的比进行 部分展开,以及把传函分解为微分单元的形式。
v 向量b和a是按s的降幂排列的多项式系数。部分 分式展开后,余数返回到向量r,极点返回到列向 量p,常数项返回到k。
MATLAB的变量
Logo
vMatlab中变量名是以字母开头,可以由字母 、数字或下划线组成
vwho,whos,clc,clear
v系统预定义变量:eps, pi, Inf, NaN, i, j
MATLAB数据的输入
Logo
v 直接输入: 同一行中各元素之间用“空格”或“,” (英文状态下) 分 开; 行与行之间用 “;” 或“回车”分开
Logo
数学模型的种类与转换
例3:建立系统零极点增益模型。
G(s)
=
s4
s3 + 11s2 + 30s + 9s3 + 45s2 + 87s
+ 50
>> num=[1,11,30,0]; >> den=[1,9,45,87,50]; >> [z,p,k]=tf2zp(num,den) z=
0 -6.0000 -5.0000 p= -3.0000 + 4.0000i -3.0000 - 4.0000i -2.0000 -1.0000 k=
Logo
MATLAB的语言规则
vMatlab 区分大小写,它的命令和函数全是 小写的
v一行可以输入几个命令,用分号“;” 或逗号“,” 隔开
v续行符: “…”(三个点),如果语句很长, 可用续行符将一个语句写成多行。续行符的 前最好留一个空格。
v注释符: “%”,其后面的内容为注释,对 Matlab 的计算不产生任何影响
果
赋值表达式后加分号“;”:命令窗不显示结果, 变量保留在workspace)
§ 函数调用语句:[返回变量列表]=函数名(输入变量 列表)
MATLAB的基本语句结构
Logo
v循环语句
§ for语句:for 变量=向量,循环体,end;
s=0; for i=1:2:100
s=s+i; end
§ while语句:while (条件式),循环体,end;