控制系统Matlab仿真 (传递函数)
控制系统MATLAB仿真基础
系统仿真§ 4.1控制系统的数学模型1、传递函数模型(tranfer function)2、零极点增益模型(zero-pole-gain)3、状态空间模型(state-space)4、动态结构图(Simulink结构图)一、传递函数模型(transfer fcn-----tf)1、传递函数模型的形式传函定义:在零初始条件下,系统输出量的拉氏变换C(S)与输入量的拉氏变换R(S)之比。
C(S) b1S m+b2S m-1+…+b mG(S)=----------- =- --------------------------------R(S) a1S n + a2S n-1 +…+ a nnum(S)= ------------den(S)2、在MATLAB命令中的输入形式在MATLAB环境中,可直接用分子分母多项式系数构成的两个向量num、den表示系统: num = [b1, b2, ..., b m];den = [a1, a2, ..., a n];注:1)将系统的分子分母多项式的系数按降幂的方式以向量的形式输入两个变量,中间缺项的用0补齐,不能遗漏。
2)num、den是任意两个变量名,用户可以用其他任意的变量名来输入系数向量。
3)当系统种含有几个传函时,输入MATLAB命令状态下可用n1,d1;n2,d2…….。
4)给变量num,den赋值时用的是方括号;方括号内每个系数分隔开用空格或逗号;num,den方括号间用的是分号。
3、函数命令tf( )在MATLAB中,用函数命令tf( )来建立控制系统的传函模型,或者将零极点增益模型、状态空间模型转换为传函模型。
tf( )函数命令的调用格式为:圆括号中的逗号不能用空格来代替sys = tf ( num, den ) [G= tf ( num, den )]其中,函数的返回变量sys或G 为连续系统的传函模型;函数输入参量num和den分别为系统的分子分母多项式的系数向量。
《自动控制原理》MATLAB中的传递函数模型实验
《自动控制原理》MATLAB中的传递函数模型实验一、实验目的1、熟练运用matlab软件,求解控制系统数学模型2、掌握传递函数在matlab中的表达方法3、掌握matlab求解拉氏变换和反变换4、掌握matlab求系统极值点和零点判断系统稳定性二、实验仪器Matlab2014b版三、实验原理(一)MATLAB中的传递函数模型传递函数在matlab中的表达方法控制系统的传递函数模型为:在MATLAB中,分子/分母多项式通过其系数行向量表示,即:num = [b0 b1 … bm]den = [a0 a1 … an]此时,系统的传递函数模型用tf函数生成,句法为:sys=tf(num, den) 其中,sys为系统传递函数。
如:num = [1 5 0 2]; den = [2 3 15 8];则:sys=tf(num, den)输出为:Transfer function:若控制系统的模型形式为零极点增益形式:此时,系统的传递函数模型用zpk函数生成,句法为:sys=zpk(z, p, k)。
zpk函数也可用于将传递函数模型转换为零极点增益形式,句法为:zpksys=zpk(sys)如:z=[-0.5 -1 -3]; p=[1 -2 -1.5 -5]; k=10;sys=zpk(z, p, k)传递函数的转换[num,den]=zp2tf(z,p,k)[z,p,k]=tf2zp(num,den)实际系统往往由多个环节通过串联、并联及反馈方式互连构成。
MATLAB提供的三个用于计算串联、并联及反馈连接形成的新系统模型的函数。
series函数计算两子系统串联后的新系统模型。
句法:sys = series(sys1, sys2)sys1, sys2分别为两子系统模型parallel函数计算两子系统并联后的新系统模型。
句法: sys = parallel(sys1, sys2)feedback函数计算两子系统反馈互联后的新系统模型。
使用 matlab 语句表达微分环节的传递函数
使用 Matlab 语句表达微分环节的传递函数1. 介绍微分环节的传递函数在控制系统中,微分环节是一种常见的控制元件,其传递函数通常用来描述输入信号经过微分环节后的输出信号与输入信号之间的关系。
微分环节的传递函数通常具有形式为G(s)=Ks的特点,其中K为增益,s为复变量。
微分环节在控制系统中具有重要的作用,常用于提高系统的动态性能和抑制振荡。
2. 使用 Matlab 表达微分环节传递函数的基本语法在Matlab 中,可以使用一些简单的语句来表达微分环节的传递函数。
要表示一个简单的微分环节传递函数G(s)=Ks,可以使用以下语法:```matlabK = 1; 定义增益值s = tf('s'); 定义复变量 sG = K*s; 表示传递函数```在这个语法中,首先定义了微分环节的增益K,然后使用tf函数定义了复变量s,最后将传递函数G(s)表示为K*s。
3. 使用 Matlab 表达一般形式的微分环节传递函数除了简单的Ks形式外,微分环节的传递函数还可以具有一般形式G(s)=K(s-a),其中a为常数。
在 Matlab 中,可以使用以下语句表达微分环节传递函数的一般形式:```matlabK = 2; 定义增益值a = 3; 定义常数as = tf('s'); 定义复变量 sG = K*(s-a); 表示传递函数```在这个语法中,除了定义增益K和常数a外,其余部分与简单形式的传递函数表达相似。
4. 使用 Matlab 表达多个微分环节的传递函数在实际控制系统中,经常会遇到多个微分环节组成的复杂系统。
在Matlab 中,可以使用一些复杂的语句来表达多个微分环节的传递函数。
一个由两个微分环节组成的传递函数G(s)=Ks^2可以使用以下语句表示:```matlabK = 4; 定义增益值s = tf('s'); 定义复变量 sG = K*s^2; 表示传递函数```在这个语法中,使用s^2表示两个微分环节的乘积。
matlab 控制系统仿真
摘要MATLAB语言是一种十分有效的工具,能容易地解决在系统仿真及控制系统计算机辅助设计领域的教学与研究中遇到的问题,它可以将使用者从繁琐的底层编程中解放出来,把有限的宝贵时间更多地花在解决科学问题上。
MATLAB GUI 是MATLAB的人机交互界面。
由于GUI本身提供了windows基本控件的支持,并且具有良好的事件驱动机制,同时提供了MATLAB数学库的接口,所以GUI 对于控制系统仿真的平台设计显得十分合适。
GUI对于每个用户窗口生成.fig和.m 文件。
前者负责界面的设计信息,后者负责后台代码的设计。
本文所做的研究主要是基于MATLAB GUI平台,结合控制系统基础理论和MATLAB控制系统工具箱,实现了用于控制系统计算机辅助分析与设计的软件。
本软件主要功能:实现传递函数模型输入、状态方程模型输入、模型装换、控制系统稳定性分析、系统可观性可控性判断,绘制系统奈奎斯特图、波特图、根轨迹图以及零极点分布图。
在继续完善的基础上能够用于本科自动控制原理教程的教学实验和一般的科学研究。
关键词:控制系统;MATLAB GUI;计算机辅助设计AbstractMATLAB language is a very effective tool,and can be easily resolved in the system simulation and control system of teaching in the field of computer-aided design and research problems,it could be the bottom of the user from tedious programming liberate the limited spend more valuable time to solve scientific problems.The MATLAB GUI is the interactive interface.As the GUI itself provides the basic control windows support,and has a good mechanism for event-driven,while providing the MATLAB Math Library interface,the GUI for control system simulation platform for the design of it is suitable. GUI window generated for each user. Fig and.M file. The former is responsible for the design of the interface information,which is responsible for the design of the background code.Research done in this article is mainly based on MATLAB GUI platform,the basis of combination of control system theory and MATLAB Control System Toolbox,the realization of control systems for computer-aided analysis and design software. The main functions of the software: the realization of transfer function model input,the state equation model input,the model fitted for the control system stability analysis,system observability controllability judgments、rendering the system Nyquist diagram、Bode plots、root locus and Pole-zero distribution. While continuing to improve based on the principle of automatic control can be used for undergraduate teaching course experiments and scientific research in general.Key words:Control System;MATLAB GUI; Computer-assistant design目录第1章概述 (1)1.1 论文选题背景和意义 (1)1.2 计算机辅助分析与设计在控制系统仿真中的发展现状 (1)1.3 本文主要内容 (3)第2章控制系统与MATLAB语言 (4)2.1 控制系统理论基础 (4)2.2 MATLAB语言与控制系统工具箱 (5)第3章 MATLAB GUI简介及应用 (9)3.1 MATLAB GUI (9)3.2 软件设计步骤 (10)第4章仿真系统测试与演示 (16)4.1 控制系统的模型输入 (16)4.2 控制系统的稳定性分析 (19)4.3 控制系统可控可观性分析 (20)4.4 控制系统频率响应 (23)4.5 控制系统时域响应 (27)4.6 控制系统根轨迹绘制 (28)结论 (31)参考文献 (32)致谢 (33)第1章概述1.1 论文选题背景和意义自动控制原理是自动控制专业和自动化专业的主要课程之一,是研究自动控制技术的基础理论课,是必修的专业基础课程。
MATLAB与控制系统仿真
第31页/共52页
传递函数描述
连续系统的传递函数模型
连续系统的传递函数如下:
G(s)
C(s) R(s)
b1s m a1s n
b2 s m1 a2 s n1
... bns ... ans
bm1 an1
(2)“%” 后面所有文字为注释. (3) “...”表示续行.
+ 加法运算,适用于两个数或两个同阶矩阵相加. — 减法运算 * 乘法运算 .* 点乘运算 / 除法运算 ./ 点除运算 ^ 乘幂运算 .^ 点乘幂运算 \ 反斜杠表示左除.
第3页/共52页
3、数学函数
函数 sin(x) cos(x) tan(x) abs(x) min(x) sqrt(x) log(x) sign(x)
end 步长的缺省值是1。步长可以在正实数或负实数范围内任意指定,对 于正数,循环变量的值大于终止值时,循环结束;对于负数,循环变量的 值小于终止值时,循环结束。
第8页/共52页
程序控制语句
while循环的基本格式为: while 表达式 循环体 end
若表达式为真,则执行循环体的内容,执行后再判断表达式是否为真,若 为假则跳出循环体,向下继续执行,否则继续执行循环体。 • break:从循环体中跳出,并使循环结束
• Gzpk=zpk(Gtf) • [zz,pp,kk]=zp kdata(Gzpk ,’v’) • %获得G(s)的零点、极点和增益
• ZPK形式变换为TF形式
• Svv=tf(Sxx) • [nn,dd]=tfdata(Svv,’v’) • %获得分子分母多项式系数
第17页/共52页
基于MATLAB控制系统的仿真与应用
毕业设计(论文)题目基于MATLAB控制系统仿真应用研究系别信息工程系专业名称电子信息工程班级学号088205227学生姓名蔚道祥指导教师罗艳芬二O一二年五月毕业设计(论文)任务书I、毕业设计(论文)题目:基于MATLAB的控制系统仿真应用研究II、毕业设计(论文)使用的原始资料(数据)及设计技术要求:原始资料:(1)MATLAB语言。
(2)控制系统基本理论。
设计技术要求:(1)采用MATLAB仿真软件建立控制系统的仿真模型,进行计算机模拟,分析整个统的构建,比较各种控制算法的性能。
(2)利用MATLAB完善的控制系统工具箱和强大的Simulink动态仿真环境,提供方框图进行建模的图形接口,分别介绍离散和连续系统的MATLAB和Simulink仿真。
I I I、毕业设计(论文)工作内容及完成时间:第01~03周:查找课题相关资料,完成开题报告,英文资料翻译。
第04~11周:掌握MATLAB语言,熟悉控制系统基本理论。
第12~15周:完成对控制系统基本模块MATLAB仿真。
第16~18周:撰写毕业论文,答辩。
Ⅳ、主要参考资料:[1] 《MATLAB在控制系统中的应用》,张静编著,电子工业出版社。
[2]《MATLAB在控制系统应用与实例》,樊京,刘叔军编著,清华大学出版社。
[3]《智能控制》,刘金琨编著,电子工业出版社。
[4]《MATLAB控制系统仿真与设计》,赵景波编著,机械工业出版社。
[5]The Mathworks,Inc.MATLAB-Mathemmatics(Cer.7).2005.信息工程系电子信息工程专业类0882052 班学生(签名):填写日期:年月日指导教师(签名):助理指导教师(并指出所负责的部分):信息工程系(室)主任(签名):学士学位论文原创性声明本人声明,所呈交的论文是本人在导师的指导下独立完成的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含法律意义上已属于他人的任何形式的研究成果,也不包含本人已用于其他学位申请的论文或成果。
基于MATLAB自动控制系统时域频域分析与仿真
基于MATLAB自动控制系统时域频域分析与仿真MATLAB是一款强大的数学软件,也是自动控制系统设计的常用工具。
它不仅可以进行时域分析和频域分析,还可以进行相关仿真实验。
本文将详细介绍MATLAB如何进行自动控制系统的时域和频域分析,以及如何进行仿真实验。
一、时域分析时域分析是指对系统的输入信号和输出信号进行时域上的观察和分析,以了解系统的动态特性和稳定性。
MATLAB提供了一系列的时域分析工具,如时域响应分析、稳态分析和步骤响应分析等。
1.时域响应分析通过时域响应分析,可以观察系统对于不同的输入信号的响应情况。
在MATLAB中,可以使用`lsim`函数进行系统的时域仿真。
具体步骤如下:- 利用`tf`函数或`ss`函数创建系统模型。
-定义输入信号。
- 使用`lsim`函数进行时域仿真,并绘制系统输出信号。
例如,假设我们有一个二阶传递函数模型,并且输入信号为一个单位阶跃函数,可以通过以下代码进行时域仿真:```num = [1];den = [1, 1, 1];sys = tf(num, den);t=0:0.1:10;u = ones(size(t));[y, t, x] = lsim(sys, u, t);plot(t, y)```上述代码中,`num`和`den`分别表示系统的分子和分母多项式系数,`sys`表示系统模型,`t`表示时间序列,`u`表示输入信号,`y`表示输出信号。
通过绘制输出信号与时间的关系,可以观察到系统的响应情况。
2.稳态分析稳态分析用于研究系统在稳态下的性能指标,如稳态误差和稳态标准差。
在MATLAB中,可以使用`step`函数进行稳态分析。
具体步骤如下:- 利用`tf`函数或`ss`函数创建系统模型。
- 使用`step`函数进行稳态分析,并绘制系统的阶跃响应曲线。
例如,假设我们有一个一阶传递函数模型,可以通过以下代码进行稳态分析:```num = [1];den = [1, 1];sys = tf(num, den);step(sys)```通过绘制系统的阶跃响应曲线,我们可以观察到系统的稳态特性。
自动控制原理MATLAB仿真实验报告
实验一 典型环节的MATLAB 仿真 一、实验目的1.熟悉MATLAB 桌面和命令窗口,初步了解SIMULINK 功能模块的使用方法。
2.通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型环节响应曲线的理解。
3.定性了解各参数变化对典型环节动态特性的影响。
二、实验内容① 比例环节1)(1=s G 和2)(1=s G ;Simulink 图形实现:示波器显示结果:② 惯性环节11)(1+=s s G 和15.01)(2+=s s GSimulink 图形实现:示波器显示结果:③ 积分环节s s G 1)(1Simulink 图形实现:示波器显示结果:④ 微分环节s s G )(1Simulink 图形实现:波器显示结果:⑤ 比例+微分环节(PD )2)(1+=s s G 和1)(2+=s s G1)、G1(s )=s+2Simulink 图形实现:示波器显示结果:2)、G2(s)=s+1 Simulink图形实现:示波器显示结果:⑥ 比例+积分环节(PI )s s G 11)(1+=和s s G 211)(2+=1)、G1(1)=1+1/sSimulink 图形实现:示波器显示结果:2)G2(s)=1+1/2s Simulink图形实现:示波器显示结果:三、心得体会通过这次实验我学到了很多,对课本内容加深了理解,熟悉MATLAB桌面和命令窗口,初步了解SIMULINK功能模块的使用方法,加深对各典型环节响应曲线的理解,这为对课程的学习打下了一定基础。
实验二线性系统时域响应分析一、实验目的1.熟练掌握step( )函数和impulse( )函数的使用方法,研究线性系统在单位阶跃、单位脉冲及单位斜坡函数作用下的响应。
2.通过响应曲线观测特征参量ζ和nω对二阶系统性能的影响。
3.熟练掌握系统的稳定性的判断方法。
二、实验内容1.观察函数step( )的调用格式,假设系统的传递函数模型为243237()4641s s G s s s s s ++=++++绘制出系统的阶跃响应曲线?2.对典型二阶系统222()2n n n G s s s ωζωω=++1)分别绘出2(/)n rad s ω=,ζ分别取0,0.25,0.5,1.0和2.0时的单位阶跃响应曲线,分析参数ζ对系统的影响,并计算ζ=0.25时的时域性能指标,,,,p r p s ss t t t e σ。
MATLAB控制系统各种仿真例题(包括simulink解法)
一、 控制系统的模型与转换1. 请将下面的传递函数模型输入到matlab 环境。
]52)1)[(2(24)(32233++++++=s s s s s s s G )99.02.0)(1(568.0)(22+--+=z z z z z H ,T=0.1s >> s=tf('s');G=(s^3+4*s+2)/(s^3*(s^2+2)*((s^2+1)^3+2*s+5)); GTransfer function:s^3 + 4 s + 2 ------------------------------------------------------ s^11 + 5 s^9 + 9 s^7 + 2 s^6 + 12 s^5 + 4 s^4 + 12 s^3>> num=[1 0 0.56];den=conv([1 -1],[1 -0.2 0.99]); H=tf(num,den,'Ts',0.1)Transfer function: z^2 + 0.56 ----------------------------- z^3 - 1.2 z^2 + 1.19 z - 0.992. 请将下面的零极点模型输入到matlab 环境。
请求出上述模型的零极点,并绘制其位置。
)1)(6)(5()1)(1(8)(22+++-+++=s s s s j s j s s G )2.8()6.2)(2.3()(1511-++=----z z z z z H ,T=0.05s>>z=[-1-j -1+j]; p=[0 0 -5 -6 -j j];G=zpk(z,p,8)Zero/pole/gain: 8 (s^2 + 2s + 2) -------------------------- s^2 (s+5) (s+6) (s^2 + 1)>>pzmap(G)>> z=[0 0 0 0 0 -1/3.2 -1/2.6]; p=[1/8.2];H=zpk(z,p,1,'Ts',0.05)Zero/pole/gain:z^5 (z+0.3125) (z+0.3846) ------------------------- (z-0.122)Sampling time: 0.05>>pzmap (H )二、 线性系统分析1. 请分析下面传递函数模型的稳定性。
Matlab下的控制系统描述
》num=[0 0 -2;0 -1 -5;1 2 0];den=[1 6 11 6]; 》[A,B,C,D]=tf2ss(num,den) 》A= -6 -11 -6 B= 1 C= 0 0 -2 D= 0 1 0 0 0 0 -1 -5 0 0 1 0 0 1 2 0 0
3)系统的零极点增益模型:
状态空间实现与相似变换函数 ss 状态空间实现 ssbal (与 balance 有关)用对角相似变换矩阵对状态 空间模型进行平衡化,有利于提高计算精度. balreal :输入/输出平衡实现,可用于模型降阶. minreal :最小实现 或零极相消.对传递函数模型进行 零极相消;对状态空间模型则消去不可控或 不可观状态. ctrbf : 可控阶梯型 obsvf :可观阶梯型 以上函数的详细说明参见pdf帮助文档.
对线性定常系统,式中s的系数均为常数,且a1不等于零, 这时系统在MATLAB中可以方便地由分子和分母系数构成的 两个向量唯一地确定出来,这两个向量分别用num和den 表示. num=[b1,b2,…,bm,bm+1] den=[a1,a2,…,an,an+1] 注意:它们都是按s的降幂进行排列的. 应用 TF 函数可以创建传递函数模型.
模型变换注意事项
用法举例: 1)已知系统状态空间模型为:
》A=[0 1; -1 -2]; B=[0;1]; 》C=[1,3]; D=[1]; 》[num,den]=ss2tf(A,B,C,D,iu) %iu用来指定第n个输入,当只有一个输入时可忽略. 》num=1 5 2; den=1 2 1; 》[z,p,k]=ss2zp(A,B,C,D,iu) 》z= -4.5616 p= -1 k=1 -0.4384 -1
结构体可看作是MATLAB下的小型数据库.有关结构体 的内容可参见 Help 浏览器中的 Matlab/programing and data types/structures and arrays 类和对象的概念是面向对象程序设计的基础.类的 概念是结构体的拓展.对象是指类的一个实例. 在此我们只介绍类和对象的使用,没有涉及内部构造与 编程方法,有关内容可参考Help 浏览器中的 Matlab/programing and data types/Matlab classes and Objects 针对传递函数,状态空间,零极点增益和 FRD 等系 统描述方式,MATLAB 控制系统工具箱提供了四种专门的 数据结构(LTI objects),称作 TF,SS,ZPK,FRD 对象.
自动控制 Matlab仿真实验一
仿真实验○一:控制系统的时域分析一、实验目的:1.观察控制系统的时域响应;2.记录单位阶跃响应曲线;3.掌握时间响应分析的一般方法;4.初步了解控制系统的调节过程。
二、实验步骤:1.开机进入Matlab6.1运行界面。
2.Matlab指令窗:"Command Window". 运行指令:con_sys; 进入本次实验主界面。
3.分别双击上图中的三个按键,依次完成实验内容。
4.本次实验的相关Matlab函数:tf([num],[den])可输入一传递函数。
step(G,t)在时间范围t秒内,画出阶跃响应图。
三、实验内容:1、观察一阶系统G=1/(T+s) 的时域响应:取不同的时间常数T,分别观察该系统的脉冲响应、阶跃响应、斜坡响应以及单位加速度响应。
结论:时间常数越小,响应越迅速。
2、二阶系统的时域性能分析:(1)调节时间滑块,使阶跃响应最终出现稳定值。
(2)结合系统的零极点图,观察自然频率与阻尼比对极点位置的影响。
(3)结合时域响应图,观察自然频率与阻尼比对阶跃响应的影响。
结论:阻尼比越小,极点越靠近虚轴,超调量减小,但响应速度变慢。
自然频率减小,极点靠近虚轴,响应速度减小,超调几乎不变。
(4)调节自然频率与阻尼比,要求:Tr<0.56s ,Tp<1.29s,Ts<5.46,超调不大于5%.记录下满足上述要求的自然频率与阻尼比。
调节完成之后的响应曲线如图。
此时自然频率为14.5872rad/sec,阻尼比为0.77456。
各项参数完全满足要求。
3、结合《自动控制原理》一书,Page 135,题3_10. 分别观察比例_微分与测速反馈对二阶系统性能的改善。
(1).按原始的调节参数输入,调节时间滑块,使阶跃响应最终出现稳定值。
(2)采用不同的G输入,观察各项性能指数。
结论:增大分母中间的参数,相当于增大系统阻尼比,从而减小超调量(3).分别取不同的K3,观察比例_微分控制对系统性能的改善。
MATLAB控制系统的仿真
C R
x1 x2
0 1
L
u
L
y [1
0]
x1 x2
[0]u
•
x Ax bu
y CT x du
• 没有良好的计算工具前:系统建立、变换、分析、设 计、绘图等相当复杂。
• MATLAB控制系统软件包以面向对象的数据结构为基 础,提供了大量的控制工程计算、设计库函数,可以 方便地用于控制系统设计、分析和建模。
Transfer function:
s+1 ------------s^2 + 5 s + 6
Matlab与系统仿真
22
应用——系统稳定性判断
系统稳定性判据: 对于连续时间系统,如果闭环极点全部在S平面左半平面,
则系统是稳定的;
若连续时间系统的全部零/极点都位于S左半平面, 则系统是——最小相位系统。
Matlab与系统仿真
38
4.2 动态特性和时域分析函数
(一)动态特性和时域分析函数表 (二)常用函数说明 (三)例子
Matlab与系统仿真
39
(一)动态特性和时域分析函数表 ——与系统的零极点有关的函数
表8.6前部分p263
Matlab与系统仿真
40
——与系统的时域分析有关的函数
Matlab与系统仿真
Matlab与系统仿真
8
4.1 控制工具箱中的LTI对象
Linear Time Invariable
(一)控制系统模型的建立 (二)模型的简单组合 (三)连续系统和采样系统变换(*略)
Matlab与系统仿真
9
(一)控制系统模型的建立
➢ MATLAB规定3种LTI子对象:
• Tf 对象—— 传递函数模型 • zpk 对象—— 零极增益模型 • ss 对象—— 状态空间模型
温度控制传递函数_增量式PID系数_MATLAB仿真
clear all;close all;ts=0.1;sys=tf([5],[8,1],'inputdelay',10);dsys=c2d(sys,ts,'zoh');[num,den]=tfdata(dsys,'v');u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;y_1=0;y_2=0;y_3=0;error_1=0;error_2=0;x=[0,0,0];for k=1:1:200time(k)=k*ts;yout(k)=-den(2)*y_1+num(2)*u_5;rin(k)=1;error(k)=rin(k)-yout(k);kp=1;ki=0;kd=0;du(k)=kp*x(1)+kd*x(2)+ki*x(3);u(k)=u_1+du(k);u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);y_3=y_2;y_2=y_1;y_1=yout(k);x(1)= error(k)-error_1;x(2)= error(k)-2*error_1+error_2;x(3)= error(k);error_2=error_1;error_1=error(k);endhold onhold onplot(time,rin,'g',time,yout,'r','linewidth',2)xlabel('time(s)')ylabel('rin,yout')ts=0.1;sys=tf([5],[8,1],'inputdelay',10);dsys=c2d(sys,ts,'zoh');[num,den]=tfdata(dsys,'v');u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;y_1=0;y_2=0;y_3=0;error_1=0;error_2=0;x=[0,0,0];for k=1:1:200time(k)=k*ts;yout(k)=-den(2)*y_1+num(2)*u_5;rin(k)=1;error(k)=rin(k)-yout(k);kp=2;ki=0;kd=0;du(k)=kp*x(1)+kd*x(2)+ki*x(3);u(k)=u_1+du(k);u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);y_3=y_2;y_2=y_1;y_1=yout(k);x(1)= error(k)-error_1;x(2)= error(k)-2*error_1+error_2;x(3)= error(k);error_2=error_1;error_1=error(k);endhold onplot(time,yout,'b','linewidth',2)xlabel('time(s)')ylabel('rin,yout')ts=0.1;sys=tf([5],[8,1],'inputdelay',10);dsys=c2d(sys,ts,'zoh');[num,den]=tfdata(dsys,'v');u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;y_1=0;y_2=0;y_3=0;error_1=0;error_2=0;x=[0,0,0];for k=1:1:200time(k)=k*ts;yout(k)=-den(2)*y_1+num(2)*u_5;rin(k)=1;error(k)=rin(k)-yout(k);kp=3;ki=0;kd=0;du(k)=kp*x(1)+kd*x(2)+ki*x(3);u(k)=u_1+du(k);u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);y_3=y_2;y_2=y_1;y_1=yout(k);x(1)= error(k)-error_1;x(2)= error(k)-2*error_1+error_2;x(3)= error(k);error_2=error_1;error_1=error(k);endhold onplot(time,yout,'m','linewidth',2)xlabel('time(s)')ylabel('rin,yout')图像:ki=0,kd=0Kp:红色kp=1,蓝色kp=2,品红kp=3clear all;close all;ts=0.1;sys=tf([5],[8,1],'inputdelay',10);dsys=c2d(sys,ts,'zoh');[num,den]=tfdata(dsys,'v');u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;y_1=0;y_2=0;y_3=0;error_1=0;error_2=0;x=[0,0,0];for k=1:1:200time(k)=k*ts;yout(k)=-den(2)*y_1+num(2)*u_5;rin(k)=1;error(k)=rin(k)-yout(k);kp=2;ki=0.01;kd=0;du(k)=kp*x(1)+kd*x(2)+ki*x(3);u(k)=u_1+du(k);u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);y_3=y_2;y_2=y_1;y_1=yout(k);x(1)= error(k)-error_1;x(2)= error(k)-2*error_1+error_2;x(3)= error(k);error_2=error_1;error_1=error(k);endhold onhold onplot(time,rin,'g',time,yout,'r','linewidth',2)xlabel('time(s)')ylabel('rin,yout')ts=0.1;sys=tf([5],[8,1],'inputdelay',10);dsys=c2d(sys,ts,'zoh');[num,den]=tfdata(dsys,'v');u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;y_1=0;y_2=0;y_3=0;error_1=0;error_2=0;x=[0,0,0];for k=1:1:200time(k)=k*ts;yout(k)=-den(2)*y_1+num(2)*u_5;rin(k)=1;error(k)=rin(k)-yout(k);kp=2;ki=0.02;kd=0;du(k)=kp*x(1)+kd*x(2)+ki*x(3);u(k)=u_1+du(k);u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);y_3=y_2;y_2=y_1;y_1=yout(k);x(1)= error(k)-error_1;x(2)= error(k)-2*error_1+error_2;x(3)= error(k);error_2=error_1;error_1=error(k);endhold onplot(time,yout,'b','linewidth',2)xlabel('time(s)')ylabel('rin,yout')ts=0.1;sys=tf([5],[8,1],'inputdelay',10);dsys=c2d(sys,ts,'zoh');[num,den]=tfdata(dsys,'v');u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;y_1=0;y_2=0;y_3=0;error_1=0;error_2=0;x=[0,0,0];for k=1:1:200time(k)=k*ts;yout(k)=-den(2)*y_1+num(2)*u_5;rin(k)=1;error(k)=rin(k)-yout(k);kp=2;ki=0.05;kd=0;du(k)=kp*x(1)+kd*x(2)+ki*x(3);u(k)=u_1+du(k);u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);y_3=y_2;y_2=y_1;y_1=yout(k);x(1)= error(k)-error_1;x(2)= error(k)-2*error_1+error_2;x(3)= error(k);error_2=error_1;error_1=error(k);endhold onplot(time,yout,'m','linewidth',2)xlabel('time(s)')ylabel('rin,yout')图像:kp=2,kd=0Ki:红色ki =0.01,蓝色ki =0.02,品红ki =0.05clear all;close all;ts=0.1;sys=tf([5],[8,1],'inputdelay',10);dsys=c2d(sys,ts,'zoh');[num,den]=tfdata(dsys,'v');u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;y_1=0;y_2=0;y_3=0;error_1=0;error_2=0;x=[0,0,0];for k=1:1:200time(k)=k*ts;yout(k)=-den(2)*y_1+num(2)*u_5;rin(k)=1;error(k)=rin(k)-yout(k);kp=2;ki=0.02;kd=1;du(k)=kp*x(1)+kd*x(2)+ki*x(3);u(k)=u_1+du(k);u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);y_3=y_2;y_2=y_1;y_1=yout(k);x(1)= error(k)-error_1;x(2)= error(k)-2*error_1+error_2;x(3)= error(k);error_2=error_1;error_1=error(k);endhold onhold onplot(time,rin,'g',time,yout,'r','linewidth',2)xlabel('time(s)')ylabel('rin,yout')ts=0.1;sys=tf([5],[8,1],'inputdelay',10);dsys=c2d(sys,ts,'zoh');[num,den]=tfdata(dsys,'v');u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;y_1=0;y_2=0;y_3=0;error_1=0;error_2=0;x=[0,0,0];for k=1:1:200time(k)=k*ts;yout(k)=-den(2)*y_1+num(2)*u_5;rin(k)=1;error(k)=rin(k)-yout(k);kp=2;ki=0.02;kd=2;du(k)=kp*x(1)+kd*x(2)+ki*x(3);u(k)=u_1+du(k);u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);y_3=y_2;y_2=y_1;y_1=yout(k);x(1)= error(k)-error_1;x(2)= error(k)-2*error_1+error_2;x(3)= error(k);error_2=error_1;error_1=error(k);endhold onplot(time,yout,'b','linewidth',2)xlabel('time(s)')ylabel('rin,yout')ts=0.1;sys=tf([5],[8,1],'inputdelay',10);dsys=c2d(sys,ts,'zoh');[num,den]=tfdata(dsys,'v');u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;y_1=0;y_2=0;y_3=0;error_1=0;error_2=0;x=[0,0,0];for k=1:1:200time(k)=k*ts;yout(k)=-den(2)*y_1+num(2)*u_5;rin(k)=1;error(k)=rin(k)-yout(k);kp=2;ki=0.02;kd=3;du(k)=kp*x(1)+kd*x(2)+ki*x(3);u(k)=u_1+du(k);u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);y_3=y_2;y_2=y_1;y_1=yout(k);x(1)= error(k)-error_1;x(2)= error(k)-2*error_1+error_2;x(3)= error(k);error_2=error_1;error_1=error(k);endhold onplot(time,yout,'m','linewidth',2)xlabel('time(s)')ylabel('rin,yout')图像:kp=2,ki=0.1Kp:红色kp =1,蓝色kp =2,品红kp =3。
控制系统的MATLAB计算及仿真
控制系统的MATLAB计算及仿真控制系统是一种用来实现对物理系统或工程系统进行控制的方法和工具。
MATLAB是一种强大的计算机软件包,能够方便地进行控制系统的计算和仿真。
本文将介绍MATLAB在控制系统中的应用,并以一个简单的例子来说明如何用MATLAB进行控制系统的计算和仿真。
首先,我们需要打开MATLAB软件并创建一个新的脚本文件。
在脚本文件中,我们可以使用MATLAB提供的函数来定义控制系统的传递函数和状态空间模型。
例如,我们可以使用tf函数来定义一个传递函数模型。
传递函数是描述系统输入与输出之间关系的一种数学模型。
以下是一个例子:```MATLABs = tf('s');G=1/(s^2+2*s+1);```这个传递函数模型表示一个具有二阶惯性的系统。
我们可以使用step函数来绘制系统的阶跃响应曲线:```MATLABstep(G);```通过运行脚本文件,我们可以得到系统的阶跃响应曲线。
此外,MATLAB还提供了许多其他的函数和命令来计算和仿真控制系统。
另外,我们还可以使用stateSpace函数来定义一个状态空间模型。
状态空间模型是控制系统中另一种常用的数学模型。
以下是一个例子:```MATLABA=[01;-1-1];B=[0;1];C=[10];D=0;sys = ss(A, B, C, D);```这个状态空间模型描述了一个二阶系统的状态方程和输出方程。
我们可以使用step函数来绘制系统的阶跃响应曲线:```MATLABstep(sys);```通过运行脚本文件,我们可以得到系统的阶跃响应曲线。
除了step函数外,MATLAB还提供了许多其他的函数和命令来计算和仿真状态空间模型。
在控制系统中,还常常需要对系统进行参数调节和性能优化。
MATLAB提供了一系列的控制系统工具箱,用于进行控制系统的分析和设计。
例如,Control System Toolbox提供了用于线性系统分析和设计的工具。
自控实验-自动控制系统的MATLAB仿真分析
实验名称:自动控制系统的MATLAB仿真分析一、实验目的1.熟悉MATLAB在自动控制系统仿真中的应用;2.对自动控制系统进行仿真研究;3.掌握用MATLAB绘制自动控制系统根轨迹及对数频率特性的方法,掌握根据系统根轨迹及对数频率特性分析自动控制系统性能的方法。
二、实验设备1.计算机2.MATLAB软件三、实验内容1.用MATLAB提供的Simulink仿真软件工具对实验一中的各个典型环节及二阶系统进行阶跃响应仿真研究,将仿真获得的阶跃响应结果与模拟电路获得的阶跃响应结果进行比较。
(1)比例环节传递函数为200 ()51 G s=建立仿真模型,得到的输出结果如图所示:(2)积分环节传递函数为9.8 ()G ss=建立仿真模型,得到的输出结果如图所示:(3)一阶惯性环节传递函数为3.9 ()0.21G ss=+建立仿真模型,得到的输出结果如图所示:(4)比例积分环节传递函数为0.39781 ()0.102sG ss+=建立仿真模型,得到的输出结果如图所示:(5)比例微分环节传递函数为10 ()220s G ss=++建立仿真模型,得到的输出结果如图所示:(6)比例微分积分环节传递函数为51050 ()220sG ss s+=+++建立仿真模型,得到的输出结果如图所示:(7) 二阶系统的阶跃响应 ①0.325K ξ==传递函数为2()250()10250C s R s s s =++ 建立的仿真模型与阶跃响应仿真波形如下图所示:②0.510K ξ==传递函数为2()100()10100C s R s s s =++ 建立的仿真模型与阶跃响应仿真波形如下图所示:③0.75K ξ==传递函数为2()50()1050C s R s s s =++ 建立的仿真模型与阶跃响应仿真波形如下图所示:2. 单位负反馈系统的开环传递函数为:(1)()()(21)k s G s H s s s +=+仿真绘制K 从0~∞变化时的根轨迹,分析系统的稳定性。
控制系统的MATLAB计算及仿真
赋值表达式后加分号“;”:命令窗不显示结果,变量保留在 workspace)
函数调用语句:[返回变量列表]=函数名(输入变 量列表)
MATLAB的基本语句结构
循环语句
for语句:for 变量=向量,循环体,end;
s=0; for i=1:2:100 s=s+i; end
while语句:while (条件式),循环体,end;
MATLAB的M-文件
M-脚本文件 M-函数 function [返回变量列表]=函数名 (输入变量列表) function [a]=dbness(n) a=2*n; end
MATLAB的图形可视化
plot函数:
1.1, x 1.1 y x, 1.1 x 1.1 1.1, x 1.1
MATLAB概述
Matlab=Matrix Laboratory:矩阵实验室
Matlab 语言的首创人是 C. Moler 到九十年代初期,在国际上 30 几个数学类科 技应用软件中, Matlab 在数值计算方面独占 鳌头,而 Mathematica 和 Maple 则分居符号 计算软件的前两名。
MATLAB的主要功能
数值计算功能 符号运算功能 绘图功能 编程功能 丰富的工具箱(ToolBox) Simulink动态仿真集成环境
当前工 作目录
命入命令的 历史记录
MATLAB的语言规则
Matlab 区分大小写,它的命令和函数全是小写的 一行可以输入几个命令,用分号“;” 或逗号“,”隔 开 续行符: “…”(三个点),如果语句很长,可用 续行符将一个语句写成多行。续行符的前最好留一个 空格。 注释符: “%”,其后面的内容为注释,对 Matlab 的计算不产生任何影响
实验二用MATLAB建立传递函数模型
《自动控制原理》实验指导书北京科技大学自动化学院控制科学与工程系2013年4月目录实验一典型系统的时域响应和稳定性分析 (1)实验二用MATLAB建立传递函数模型 (5)实验三利用MATLAB进行时域分析 (13)实验四线性定常控制系统的稳定分析 (25)实验五利用MATLAB绘制系统根轨迹 (29)实验六线性系统的频域分析 (37)实验七基于MATLAB控制系统频域法串联校正设计 (51)附录1 MATLAB简介 (58)附录2 SIMULINK简介 (67)实验一典型系统的时域响应和稳定性分析一、实验目的1.研究二阶系统的特征参量(ξ、ωn) 对过渡过程的影响。
2.研究二阶对象的三种阻尼比下的响应曲线及系统的稳定性。
3.熟悉Routh判据,用Routh判据对三阶系统进行稳定性分析。
二、实验设备PC机一台,TD-ACC+教学实验系统一套。
三、实验原理及内容1.典型的二阶系统稳定性分析(1) 结构框图:如图1-1所示。
图1-1(2) 对应的模拟电路图:如图1-2所示。
图1-2(3) 理论分析系统开环传递函数为:G(s)=?开环增益:K=?先算出临界阻尼、欠阻尼、过阻尼时电阻R的理论值,再将理论值应用于模拟电路中,观察二阶系统的动态性能及稳定性,应与理论分析基本吻合。
在此实验中由图1-2,可以确地1-1中的参数。
0?T =, 1?T =,1?K = ?K ⇒=系统闭环传递函数为:()?W s =其中自然振荡角频率:?n ω=;阻尼比:?ζ=。
2.典型的三阶系统稳定性分析(1) 结构框图:如图1-3所示。
图1-3(2) 模拟电路图:如图1-4所示。
图1-4(3) 理论分析系统的开环传函为:()()?G s H s =系统的特征方程为:1()()0G s H s +=。
(4) 实验内容实验前由Routh 判断得Routh 行列式为:S 3 S 2 S 1 S 0为了保证系统稳定,第一列各值应为正数,因此可以确定系统稳定K值的范围系统临界稳定K系统不稳定K值的范围四、实验步骤1)将信号源单元的“ST”端插针与“S”端插针用“短路块”短接。
实验一 基于Matlab的控制系统仿真
实验一 基于Matlab 的控制系统模型姓名 学号 班级一、实验目的1) 熟悉Matlab 的使用环境,学习Matlab 软件的使用方法和简单编程方法。
2) 学习使用Matlab 软件进行拉氏变换和拉式反变换的方法。
3) 学习使用Matlab 软件建立、转换连续系统数学模型的方法。
4) 学习使用Matlab 软件分析控制系统稳定性的方法。
二、实验原理1. 拉氏变换和反拉氏变换(1) 拉氏变换syms a w tf1=exp(-a*t)laplace(f1)f2=2laplace(f2)f3=t*exp(-a*t)laplace(f3)f4=sin(w*t)laplace(f4)f5=exp(-a*t)*cos(w*t)laplace t-t (f5)(2) 拉氏反变换syms s a wf 1=1/silaplace(f 1)f 2=1/(s+a)ilaplace(f 2)f 3=1/s^2ilaplace(f 3)f 4=w/(s^2+w^2)ilaplace(f 4)f 5=1/(s*(s+2)^2*(s+3))ilaplace(f 5)…2. 控制系统模型的建立和转化传递函数模型:112m112+()+m m n n nb s b s b num G s den a s a s b --++==++……零极点增益模型:1212()()()()()()()m ns z s z s z G s k s p s p s p ---=---(1) 建立系统传递函数模型22(1)()(2)(3)56s s s sG s s s s s ++==++++num=[1,1,0]den=[1,5,6]Gs1=tf(num,den)(2) 建立系统的零极点模型z=[0,-1]p=[-2,-3]k=[1]Gs1=zpk(z,p,k)(3) 传递函数模型转化为零极点模型num=[1,1,0]den=[1,5,6]Gs1=tf(num,den)[z,p,k]=tf2zp(num,den)Gs2=zpk(z,p,k)(4) 零极点模型转化为传递函数模型z=[0,-1]p=[-2,-3]k=[1]Gs1=zpk(z,p,k)[num,den]=zp2tf(z',p',k)Gs2=tf(num,den)3. 用Matlab 进行传递函数部分分式展开5434321139+52s+26()1035+50s+241 2.530.5 1s+4s+3s+2s+1num s s s G s den s s s ++==++-=++++num=[1 11 39 52 26]den=[1 10 35 50 24][r,p,k]=residue(num,den)4. 连续系统稳定性分析已知传递函数,试求该系统的闭环极点并判断系统的稳定性。
控制系统建模与仿真方法
控制系统建模与仿真方法控制系统建模与仿真方法是现代控制系统设计和开发的基础。
通过建立准确的控制系统模型,并用仿真方法验证其性能,能够帮助工程师和设计师有效地进行控制系统的设计、调试和优化。
本文将介绍几种常见的控制系统建模与仿真方法,并探讨它们的适用范围和优缺点。
一、传递函数法传递函数法是一种基于线性时不变系统的建模方法。
它通过将控制系统表示为输入输出之间的线性关系来描述系统的动态特性。
传递函数法最适用于单输入单输出系统,并且要求系统是线性时不变的。
传递函数可以通过数学分析或实验测量来确定,其中包括系统的零点、极点和增益。
利用传递函数,可以进行频域和时域分析,评估系统的稳定性和性能,并进行控制器设计和参数调整。
二、状态空间法状态空间法是一种基于系统状态变量的建模方法。
它将系统的状态量表示为时间的函数,通过状态方程和输出方程描述系统的动态行为。
状态空间法适用于多输入多输出系统以及具有非线性和时变特性的系统。
状态空间方法可以更直观地描述系统的动态行为,并方便进行观测器设计和状态反馈控制。
此外,状态空间法还允许将系统的非线性扩展为线性模型,并通过状态反馈控制实现对非线性系统的控制。
三、仿真方法仿真方法是通过计算机模拟来模拟和评估控制系统的性能。
它可以基于建立的模型对系统的行为进行预测,并通过仿真结果来验证系统是否满足设计要求。
常见的仿真工具包括MATLAB/Simulink、LabVIEW、Python等。
这些工具提供了丰富的模型库和仿真环境,支持不同的建模方法和仿真算法。
通过仿真方法,可以进行系统特性分析、参数优化和控制器验证,大大减少了实际系统调试的时间和成本。
四、硬件在环仿真硬件在环仿真是将实际的硬件设备与仿真模型相结合,进行实时的控制系统测试和验证。
它将计算机仿真与实际硬件连接起来,通过数值计算和物理实验相结合的方式,提供了更接近实际运行条件的仿真环境。
硬件在环仿真可以有效地评估控制系统的稳定性、鲁棒性和性能,并进行实际设备的系统集成和调试。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
控制系统仿真[教学目的]掌握数字仿真基本原理控制系统的数学模型建立掌握控制系统分析[教学内容]一、控制系统的数学模型sys=tf(num,den)%多项式模型,num为分子多项式的系数向量,den为分母多项式的系%数向量,函数tf()创建一个TF模型对象。
sys=zpk(z,p,k)%z为系统的零点向量,p为系统的极点向量,k为增益值,函数zpk()创建一个ZPK模型对象。
(一)控制系统的参数模型1、TF模型传递函数num=[b m b m-1b m-2…b1b0]den=[a m a m-1a m-2…a1a0]sys=tf(num,den)【例1】系统的传递函数为。
>>num=[01124448];>>den=[11686176105];>>sys=tf(num,den);>>sysTransfer function:s^3+12s^2+44s+48-------------------------------------s^4+16s^3+86s^2+176s+105>>get(sys)>>set(sys)>>set(sys,'num',[212])>>sysTransfer function:2s^2+s+2-------------------------------------s^4+16s^3+86s^2+176s+105【例2】系统的传递函数为。
>>num=conv([20],[11]);>>numnum=2020>>den=conv([100],conv([12],[1610]));>>sys=tf(num,den)Transfer function:20s+20-------------------------------s^5+8s^4+22s^3+20s^2【例3】系统的开环传递函数为,写出单位负反馈时闭环传递函数的TF模型。
>>numo=conv([5],[11]);>>deno=conv([100],[13]);>>syso=tf(numo,deno);>>sysc=feedback(syso,1)Transfer function:5s+5----------------------s^3+3s^2+5s+5【例4】反馈系统的结构图为:R(s)C(s)-写出闭环传递函数的TF模型。
>>num1=[10];den1=[110];sys1=tf(num1,den1);>>num2=[0.21];den2=[0.011];sys2=tf(num2,den2);>>sysc=feedback(sys1,sys2)Transfer function:0.1s+10-------------------------------0.01s^3+1.01s^2+3s+102、ZPK模型z=[z1z2…z m-1z m];p=[p1p2…p n-1p n];k=k0sys=zpk(z,p,k)【例5】系统的传递函数为,写出其ZPK模型。
>>z=[-4];>>p=[-1-2-3];>>k=5>>sys=zpk(z,p,k)Zero/pole/gain:5(s+4)-----------------------------(s+1)(s+2)(s+3)3、TF模型与ZPK模型之间的转换格式:[z,p,k]=tf2zp(num,den)%TF模型→ZPK模型[num,den]=zp2tf(z,p,k)%ZPK模型→TF模型【例6】已知系统的TF模型,求ZPK模型。
>>num=[01124448];>>den=[11686176105];>>sys=tf(num,den)Transfer function:s^3+12s^2+44s+48-----------------------------------s^4+16s^3+86s^2+176s+105>>[z,p,k]=tf2zp(num,den)z=-6.0000-4.0000-2.0000p=-7.0000-3.0000-1.0000k=1>>sys=zpk(z,p,k)Zero/pole/gain:(s+6)(s+4)(s+2)-----------------------(s+7)(s+5)(s+3)(s+1)(二)系统模型的连接1、输出反馈格式:[numc,denc]=cloop(num,den,sign)%输入开环系统的多项式模型参数向量num,den与%馈极性sign,返回闭环系统多项式模型参数向量%numc,denc。
【例7】单位反馈系统结构图如图所示,求闭环系统的数学模型。
>>num=[10];>>den=[120];>>[nc,dc]=cloop(num,den,-1);>>printsys(nc,dc);num/den=10--------------s^2+2s+102、反馈连接sys=feedback(sys1,sys2,sign)【例8】反馈系统结构图如例4图所示,求闭环系统的数学模型。
>>n1=[10];>>d1=[110];>>n2=[0.21];>>d2=[0.011];>>sys1=tf(n1,d1);>>sys2=tf(n2,d2);>>sys=feedback(sys1,sys2)Transfer function:0.1s+10------------------------------0.01s^3+1.01s^2+3s+103、串联连接格式:sys=series(sys1,sys2,output1,input2)【例9】系统结构图如下图所示,求闭环系统的数学模型。
>>n1=[0.51];>>d1=[0.11];>>n2=[10];>>d2=[120];>>sys1=tf(n1,d1);>>sys2=tf(n2,d2);>>syso=series(sys1,sys2);>>sys=feedback(syso,1)Transfer function:5s+10----------------------------0.1s^3+1.2s^2+7s+104、并联连接格式:sys=parallel(sys1,sys2,in1,in2,out1,out2)【例10】系统结构图如下图所示,求系统的数学模型。
>>n1=[2];>>d1=[12];>>n2=[5];>>d2=[13];>>sys1=tf(n1,d1);>>sys2=tf(n2,d2);>>sys=parallel(sys1,sys2)Transfer function:7s+16-------------s^2+5s+6二、控制系统分析(一)控制系统时间响应分析1、阶跃响应函数格式:step(sys)%给定系统对象sys,求系统的阶跃响应并作图。
%模型对象类型:sys=tf(num,den)TF模型sys=zpk(z,p,k)ZPK模型step(sys,tf)%增加响应终止时间变量tfstep(sys,t)%给定时间向量tstep(sys1,sys2,…,t)%多系统阶跃响应绘图[y,t]=step(sys)%返回响应变量y和时间向量t[y,t,x]=step(sys)%返回响应变量y、时间向量t以及状态变量x【例11】系统传递函数为,求阶跃响应,并作系统性能分析。
>>num=[4];den=[114];>>sys=tf(num,den);step(sys)>>[y,t,x]=step(sys);>>max(y)tp=spline(y,t,max(y))ans=1.4441tp=1.60622、脉冲响应函数格式:impulse(sys)%给定系统对象sys,求系统的单位脉冲响应并作图。
impulse(sys,tf)%增加响应终止时间变量tf。
impulse(sys,t)%给定时间向量t。
impulse(sys1,sys2,…,t)%多系统单位脉冲响应绘图[y,t]=impulse(sys)%返回响应变量y和时间向量t[y,t,x]=impulse(sys)%返回响应变量y、时间向量t以及状态变量x【例12】系统传递函数为,求脉冲响应,并作系统性能分析。
>>num=[4];>>den=[114];>>sys=tf(num,den);>>impulse(sys)>>max(y)ans=1.44413、给定输入的响应函数格式:lsim(sys,u,t)%给定系统对象sys,控制输入向量u和等间隔时间向%量t,求系统的单位脉冲响应并作图。
lsim(sys,u,t,x0)%计算带初始条件x0的时间响应并作图。
lsim(sys1,sys2,…u,t,x0)%多系统任意输入时间响应并绘图。
y=lsim(sys,u,t)%返回娈量格式,不作图。
[y,t,x]=lsim(sys,u,t,x0)【例13】系统传递函数为,输入正弦信号时,观察输出信号的相位差能分析。
>>num=[1];>>den=[11];>>sys=tf(num,den);>>t=0:0.01:10;>>u=sin(2*t);>>lsim(sys,u,t)>>hold on>>plot(t,u,':')(二)控制系统频率响应分析1、Bode图绘图函数格式:bode(sys)%给定开环系统的数学模型对象sys作bode图。
bode(sys,{wmin,wmax})%给定变量w的绘图区间为{wmin,wmax}。
bode(sys,w)%变量w由人工给出。
[m,p,w]=bode(sys)%返回变量格式,不作图。
【例14】系统开环传递函数为,作Bode图,并确定谐振峰值的大小mr与谐振频率wr。