控制系统Matlab仿真 (传递函数)
- 格式:pdf
- 大小:139.06 KB
- 文档页数:17
系统仿真§ 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中的传递函数模型实验一、实验目的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 语句表达微分环节的传递函数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 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控制系统仿真应用研究系别信息工程系专业名称电子信息工程班级学号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提供了一系列的时域分析工具,如时域响应分析、稳态分析和步骤响应分析等。
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 仿真 一、实验目的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 σ。
一、 控制系统的模型与转换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. 请分析下面传递函数模型的稳定性。
仿真实验○一:控制系统的时域分析一、实验目的: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,观察比例_微分控制对系统性能的改善。
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提供的函数来定义控制系统的传递函数和状态空间模型。
例如,我们可以使用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仿真分析一、实验目的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~∞变化时的根轨迹,分析系统的稳定性。
《自动控制原理》实验指导书北京科技大学自动化学院控制科学与工程系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”端插针用“短路块”短接。
控制系统仿真[教学目的]掌握数字仿真基本原理控制系统的数学模型建立掌握控制系统分析[教学内容]一、控制系统的数学模型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。