离散系统的MATLAB实现

离散系统的MATLAB实现
离散系统的MATLAB实现

课程设计题目:离散系统的MATLAB实现

一、设计目的

通过该设计,加强学生的实际操作能力,培养学生的创新能力,加深对MATLAB在信号与系统方面的应用的理解,并达到熟练掌握各相关函数的使用方法的目的,更好地理解系统的单位抽样响应,频率响应及零极点增益的概念及意义。并且,进一步了解MATLAB广泛的应用。

二、设计内容及主要MATLAB函数

如图所示的一个离散系统

Z-10.2

x(n)y(n)

Z-10.1

0.4

0.5

该离散系统对应的输入输出差分方程为:

y(n)-0.4y(n-1)-0.5y(n-2)=0.2x(n)+0.1x(n-1)

求该系统的单位抽样响应,频率响应及零极点增益。

1.单位抽样响应

系统的单位抽样响应是当输入信号为单位抽样信号时系统的输出响应。

MATLAB中有两个函数可以计算系统的单位抽样响应:filter函数和impz函数。

1)filter函数

filter函数是利用递归滤波器或非递归滤波器对数据进行滤波。因为一个离散系统可以看做一个滤波器。系统的输出就是输入经过滤波器滤波的结果。filter函数的格式为:

y=filter(b,a,x)

此函数是对由a和b组成的系统对输入进行滤波,如果输入为单位抽样信号δ(n),那么输出就是系统的单位抽样响应。2)impz函数

impz函数的格式为:

impz(b,a)可直接给出系统的单位抽样响应。

2.频率响应H(e jw))

由向量a和b组成的系统的频率响应为:

M

∑b(r)e-jwr

r=0

H(e jw)=———————

N

1+∑a(k)e-jkw

k=1

MATLAB中的freqz函数使用基于FFT的算法来计算由向量a

和b组成的系统的频率响应。其一般用法为:

[h,f]=freqz(b,a,n,Fs)

其中向量a和b由离散系统决定,Fs为采样频率,在[0,Fs]频率范围内选取n个频率点,并记录在f中。由于freqz函数是采用基2的FFT算法,n常取2的幂次方,这样可以提高运算速度。

3.零极点增益

利用MATLAB中roots的函数可求得系统的零、极点,从而得到系统的零极点增益表示。其一般用法为:

zr=roots(b)

zp=roots(a)

三、源程序

b=[0.20.1];

a=[-0.4-0.5];

x=[1,zeros(1,60)];

y=filter(b,a,x)

stem(y)

fs=1000;

[h,f]=freqz(b,a,64,fs)

abs(h)

plot(f,abs(h))

p=angle(h)

ph=p*180/p

plot(f) roots(b) roots(a) zplane(b,a)四、仿真结果

单位抽样响应图:

系统的频率响应图:

零点图:

极点图:

五、设计总结

通过这次课程设计,我感觉受益匪浅。首先,通过自己亲自动手查阅资料、编程、调试,培养了我的实践能力和独立分析问题、解决问题的能力,进一步巩固和加深了对课程内容的理解和综合运用,为后续的专业课的课程设计、生产实践、毕业设计等环节奠定了良好的基础。

同时,也培养了我严谨的科学态度和创新精神。我感觉到了科研人员的不容易。他们必须有一丝不苟的严谨态度和坚持不懈的精神,才能做出成果。因为一个小小的错误就可能导致整个程序错误,一点的疏忽也可能导致失败。所以,在编程调试时一定要小心谨慎。

在编程调试的过程中,我也不可避免地遇到了很多的困难。比如,函数使用方法不正确,数据输入方式不正确等等。但在不断的修改与调试和老师的耐心辅导与帮助下,我成功的编好了程序,并且调试成功,做出了仿真结果。我感到了成功的喜悦与自豪,小小的成就感在心中油然而生。

在具体的上机实践中,我学到了很多基本的MATLAB应用知识,也了解了MATLAB在信号与系统中的一些应用,更好地理解了系统的单位抽样响应,频率响应及零极点增益的概念及意义。同时,我也更加熟练地掌握了各相关函数的使用方法,增强了MATLAB的实际应用知识。

总之,在这次课程设计中,我发现自己的实践能力得到了锻炼,理论与实际相联系的能力得到了提高,知识得到了很大增长,收获颇多。

信号与系统的MATLAB仿真

信号与系统的MATLAB 仿真 一、信号生成与运算的实现 1.1 实现)3(sin )()(π±== =t t t t S t f a )(sin )sin()sin(sin )()(t c t t t t t t t S t f a '=' '== ==πππ π ππ m11.m t=-3*pi:0.01*pi:3*pi; % 定义时间范围向量t f=sinc(t/pi); % 计算Sa(t)函数 plot(t,f); % 绘制Sa(t)的波形 运行结果: 1.2 实现)10() sin()(sin )(±== =t t t t c t f ππ m12.m t=-10:0.01:10; % 定义时间范围向量t f=sinc(t); % 计算sinc(t)函数 plot(t,f); % 绘制sinc(t)的波形 运行结果: 1.3 信号相加:t t t f ππ20cos 18cos )(+= m13.m syms t; % 定义符号变量t f=cos(18*pi*t)+cos(20*pi*t); % 计算符号函数f(t)=cos(18*pi*t)+cos(20*pi*t) ezplot(f,[0 pi]); % 绘制f(t)的波形 运行结果:

1.4 信号的调制:t t t f ππ50cos )4sin 22()(+= m14.m syms t; % 定义符号变量t f=(2+2*sin(4*pi*t))*cos(50*pi*t) % 计算符号函数f(t)=(2+2*sin(4*pi*t))*cos(50*pi*t) ezplot(f,[0 pi]); % 绘制f(t)的波形 运行结果: 1.5 信号相乘:)20cos()(sin )(t t c t f π?= m15.m t=-5:0.01:5; % 定义时间范围向量 f=sinc(t).*cos(20*pi*t); % 计算函数f(t)=sinc(t)*cos(20*pi*t) plot(t,f); % 绘制f(t)的波形 title('sinc(t)*cos(20*pi*t)'); % 加注波形标题 运行结果:

matlab控制系统仿真.

课程设计报告 题目PID控制器应用 课程名称控制系统仿真院部名称龙蟠学院 专业自动化 班级M10自动化 学生姓名 学号 课程设计地点 C208 课程设计学时一周 指导教师应明峰 金陵科技学院教务处制成绩

一、课程设计应达到的目的 应用所学的自动控制基本知识与工程设计方法,结合生产实际,确定系统的性能指标与实现方案,进行控制系统的初步设计。 应用计算机仿真技术,通过在MATLAB软件上建立控制系统的数学模型,对控制系统进行性能仿真研究,掌握系统参数对系统性能的影响。 二、课程设计题目及要求 1.单回路控制系统的设计及仿真。 2.串级控制系统的设计及仿真。 3.反馈前馈控制系统的设计及仿真。 4.采用Smith 补偿器克服纯滞后的控制系统的设计及仿真。 三、课程设计的内容与步骤 (1).单回路控制系统的设计及仿真。 (a)已知被控对象传函W(s) = 1 / (s2 +20s + 1)。 (b)画出单回路控制系统的方框图。 (c)用MatLab的Simulink画出该系统。

(d)选PID调节器的参数使系统的控制性能较好,并画出相应的单位阶约响应曲线。注明所用PID调节器公式。PID调节器公式Wc(s)=50(5s+1)/(3s+1) 给定值为单位阶跃响应幅值为3。 有积分作用单回路控制系统PID控制器取参数分别为:50 2 5 有积分作用单回路控制系统PID控制器取参数分别为:50 0 5

大比例作用单回路控制系统PID控制器取参数分别为:50 0 0 (e)修改调节器的参数,观察系统的稳定性或单位阶约响应曲线,理解控制器参数对系统的稳定性及控制性能的影响? 答:由上图分别可以看出无积分作用和大比例积分作用下的系数响应曲线,这两个PID调节的响应曲线均不如前面的理想。增大比例系数将加快系统的响应,但是过大的比例系数会使系统有比较大的超调,并产生振荡,使稳定性变坏;

连续传递函数离散化的方法与原理

目录

第一章 模拟化设计基础 数字控制系统的设计有两条道路,一是模拟化设计,一是直接数字设计。如果已经有成熟的模拟控制器,可以节省很多时间和部分试验费用,只要将模拟控制器离散化即可投入应用。如果模拟控制器还不存在,可以利用已有的模拟系统的设计经验,先设计出模拟控制器,再进行离散化。 将模拟控制器离散化,如果用手工进行,计算量比较大。借助数学软件MATLAB 控制工具箱,可以轻松地完成所需要的全部计算步骤。如果需要的话,还可以使用MATLAB 的SIMULINK 工具箱,进行模拟仿真。 第一节 步骤 步骤1 模拟控制器的处理 在数字控制系统中,总是有传输特性为零阶保持器的数模转换器(DAC ),因此,如果模拟控制器尚未设计,则应以下 图的方式设计模拟控制器,即在对象前面加上一个零阶保持器,形成一个新对象Ts 1e G s s ()--,然后针对这个新对象求模拟 控制器D(s)。事实上,模拟控制器一般是已经设计好的,无法或不方便更改了,离散化后的系统只好作为近似设计了。 然而,按照上述思路,可否将已有的控制器除以一个零阶保持器再离散化呢?还没有这方面的实际经验。 以下假设选定的G(s),D(s)如下图,而且不对G(s)作添加保持器的预处理。 步骤2 离散化模拟控制器 离散化模拟控制器之前,先要确定离散化算法和采样时间。离散化算法有好几种,第二章中有详细的论述,现假定采用双线性变换法。确定采样时间,需要考虑被控对象的特性,计算机的性能,以及干扰信号的影响等,初步可按采样时间T<,Tp 为被控对象时间常数,或T=~τ,为被控对象的纯滞后,初步确定后再综合平衡其它因素,当然这需要一定的经验,现在假定取秒。 假设模拟控制器为s 2 D s 8s 15 +=?+(),在MATLAB 中,用c2d 函数进行离散化,过程为: 转换结果为: 步骤3 检验数字控制器的性能 数字控制器的性能项目比较多,我们仅以直流增益,频率特性,零极点分布说明。 直流增益 dcgain(dz) 返回直流增益 频率特性 bode(ds,'r',dz,'g') 伯德图,见下页左图 零极点分布 pzmap(dz) 零极点分布图,见下页右图 步骤4 离散化控制对象 为了进行模拟仿真,需要对控制对象进行离散化,由于步骤1所说的原因,应把被控对象视为零阶保持器与原对象的串连,即应对 Ts 1e G s s ()--进行离散化,这时可在c2d 函数中使用零阶保持器(zoh)方法,如果认为不需要添加零阶保持器,即直接对G(s)离散化,则应在c2d 函数中使用冲击响应不变法(imp )。 借用零阶保持器(zoh)方法,将对象20 G s s s 2()() =+带一阶保持器离散化的过程如下: 转换结果为: 步骤5 模拟仿真 求离散系统的闭环传递函数和连续系统的闭环传递函数。 ds=zpk(-2,-15,8) %建立模拟控制器的s 传递函数 dz=c2d(ds,,'tustin') %将模拟控制器按tustin 方法转换为z 传递函数的数字控制器 ...... %模拟控制器D(s)转换为D(z)的过程见前 gs=zpk([ ],[0,-2],20) %建立对象的s 传递函数 g1z=c2d(gs,,'zoh') %借用c2d 函数进行带零阶保持器的对象的离散化

09级系统仿真与MATLAB语言实验

系统仿真与MATLAB语言 实验指导书

对参加实验学生的总要求 1、认真复习有关理论知识,明确每次实验目的,了解实验相关软件操作,熟悉实验内容和方法。 2、实验过程中注意仔细观察,认真记录有关数据和图像,并经由指导教师查验后方可结束实验。 3、应严格遵守实验室规章制度,服从实验室教师的安排和管理。 4、对实验仪器的操作使用严格按照实验室要求进行。

实验总要求 1、封面:注明实验名称、实验人员班级、学号(全号)和姓名等。 2、内容方面:注明实验所用设备、仪器及实验步骤方法;记录清楚实验所得的原始数据和图像,并按实验要求绘制相关图表、曲线或计算相关数据;认真分析所得实验结果,得出明确实验结论。并注明该结论所依据的原理和理论;对实验进行反馈回顾,总结出实验方法要领和注意事项,对实验失败的原因进行分析剖解,总结出实验的经验和教训。 3、文字方面,撰写规范,杜绝错别字。 4、杜绝抄袭,杜绝提供不真实的实验内容。

实验一 MATLAB 语言工作环境和基本操作 1 实验目的 1).熟悉MATLAB 的开发环境; 2).掌握MATLAB 的一些常用命令; 3).掌握矩阵、变量、表达式的输入方法及各种基本运算。 2 实验器材 计算机WinXP 、Matlab7.0软件 3 实验内容 (1). 输入 A=[7 1 5;2 5 6;3 1 5],B=[1 1 1; 2 2 2;3 3 3], 在命令窗口中执行下列表达式,掌握其含义: A(2, 3) A(:,2) A(3,:) A(:,1:2:3) A(:,3).*B(:,2) A(:,3)*B(2,:) A*B A.*B A^2 A.^2 B/A B./A (2).输入 C=1:2:20,则 C (i )表示什么?其中 i=1,2,3,…,10; (3)掌握MA TLAB 常用命令 >> who %列出工作空间中变量 >> whos %列出工作空间中变量,同时包括变量详细信息 >>save test %将工作空间中变量存储到test.mat 文件中 >>load test %从test.mat 文件中读取变量到工作空间中 >>clear %清除工作空间中变量 >>help 函数名 %对所选函数的功能、调用格式及相关函数给出说明 >>lookfor %查找具有某种功能的函数但却不知道该函数的准确名称 如: lookfor Lyapunov 可列出与Lyapunov 有关的所有函数。 (4) 在MATLAB 的命令窗口计算: 1) )2sin(π 2) 5.4)4.05589(÷?+ (5). 试用 help 命令理解下面程序各指令的含义: clear t =0:0.001:2*pi; subplot(2,2,1); polar(t, 1+cos(t)) subplot(2,2,2); plot(cos(t).^3,sin(t).^3) subplot(2,2,3); polar(t,abs(sin(t).*cos(t))) subplot(2,2,4); polar(t,(cos(2*t)).^0.5) (6)(选做)设计M 文件计算: x=0:0.1:10 当sum>1000时停止运算,并显示求和结果及计算次数。 i i i x x sum 2100 2 -= ∑ =

连续系统离散化处理基本方法

在数字计算机上对连续系统进行仿真时,首先遇到的问题是如何解决数字计算机在数值及时间上的离散性与被仿真系统数值及时间上的连续性这一基本问题。 从根本意义上讲,数字计算机所进行的数值计算仅仅是“数字”计算,它表示数值的精度受限于字长,这将引入舍入误差;另一方面,这种计算是按指令一步一步进行的,因而,还必须将时间离散化,这样就只能得到离散时间点上系统性能。用数字仿真的方法对微分方程的数值积分是通过某种数值计算方法来实现的。任何一种计算方法都只能是原积分的一种近似。因此,连续系统仿真,从本质上是对原连续系统从时间、数值两个方面对原系统进行离散化,并选择合适的数值计算方法来近似积分运算,由此得到的离散模型来近似原连续模型。如何保证离散模型的计算结果从原理上确能代表原系统的行为,这是连续系统数字仿真首先必须解决的问题。 设系统模型为:),,(t u y f y =&,其中u (t )为输入变量,y (t )为系统变量;令仿真时间间隔为h ,离散化后的输入变量为)(?k t u ,系统变量为)(?k t y ,其中k t 表示t=kh 。如果)()(?k k t u t u ≈,)()(?k k t y t y ≈,即0)()(?)(≈-=k k k u t u t u t e ,0)()(?)(≈-=k k k y t y t y t e (对所有k=0,1,2,…),则可认为两模型等价,这称为相似 原理(参见图)。 实际上,要完全保证0)(,0)(==k y k u t e t e 是很困难的。进一步分析离散化引的误差,随着计算机技术的发展,由计算机字长引入的舍入误差可以忽略,关键是数值积分算法,也称为仿真建模方法。相似原理用于仿真时,对仿真建模方法有三个基本要求: (1)稳定性:若原连续系统是稳定的,则离散化后得到的仿真模型也应是稳定的。关于稳定性的详细讨论将在节中进行。 (2)准确性:有不同的准确性评价准则,最基本的准则是: 绝对误差准则:δ≤-=)()(?)(k k k y t y t y t e 相对误差准则:δ≤-= )(?)()(?)(k k k k y t y t y t y t e 其中 规定精度的误差量。 原连续模型 仿真模型 )(≈k y t e 图 相

自控-二阶系统Matlab仿真

自动控制原理 二阶系统性能分析Matlab 仿真大作业附题目+ 完整报告内容

设二阶控制系统如图 1所示,其中开环传递函数 ) 1(10 )2()(2+=+=s s s s s G n n ξωω 图1 图2 图3 要求: 1、分别用如图2和图3所示的测速反馈控制和比例微分控制两种方式改善系统的性能,如果要求改善后系统的阻尼比ξ =0.707,则t K 和 d T 分别取多少? 解: 由)1(10 )2()(2 += +=s s s s s G n n ξωω得10 21,10,102===ξωωn 22n n () s s ωξω+R (s )C (s ) -

对于测速反馈控制,其开环传递函数为:) 2()s (2 2n t n n K s s G ωξωω++=; 闭环传递函数为:2 2 2)2 1(2)(n n n t n s K s s ωωωξωφ+++= ; 所以当n t K ωξ2 1+=0.707时,347.02)707.0(t =÷?-=n K ωξ; 对于比例微分控制,其开环传递函数为:)2()1()(2 n n d s s s T s G ξωω++=; 闭环传递函数为:) )2 1(2)1()(2 22 n n n d n d s T s s T s ωωωξωφ++++=; 所以当n d T ωξ2 1 +=0.707时,347.02)707.0(=÷?-=n d T ωξ; 2、请用MATLAB 分别画出第1小题中的3个系统对单位阶跃输入的响应图; 解: ①图一的闭环传递函数为: 2 22 2)(n n n s s s ωξωωφ++=,10 21 ,10n ==ξω Matlab 代码如下: clc clear wn=sqrt(10); zeta=1/(2*sqrt(10)); t=0:0.1:12; Gs=tf(wn^2,[1,2*zeta*wn,wn^2]); step(Gs,t)

基于Matlab的归一化二阶系统课程设计

Matlab 实训设计(一) 二阶系统变阻尼比的动态仿真系统的设计 一.设计一个二阶系统的变阻尼比的动态仿真系统 二.步骤 (1)程序功能描述 1. 典型二阶系统的传递函数为 ω ωωξ22 2 2)(n n n S s ++= Φ 2. 归一化二阶系统的单位阶跃响应 1、ζ=0(无阻尼)时,系统处于等幅振荡,超调量最大,为100%,并且系统发生不衰减的振荡,永远达不到稳态。 2、0<ζ<1(欠阻尼)时,系统为衰减振荡。为了获得满意的二阶系统的瞬态响应特性,通常阻尼比在0.4~0.8的范围内选择。这时系统在响应的快速性、稳定性等方面都较好。 3、在ζ=1(临界阻尼)及ζ>1(过阻尼)时,二阶系统的瞬态过程具有单调上升的特性,以ζ=1时瞬态过程最短。 (2)程序界面设计 图形界面中的grid on 、grid off 分别是网格和绘图框的打开和关闭按钮

(3)程序测试运行 在编辑框中+还可以输入如0:0.1:0.8的阻尼系数数组,这表示把0到0.8之间的长度以0.1为跨距等份,再以每点的数据得到响应曲线,上式就包含了 ze-ta=0、0.1、0.2···、0.8总共8个阻尼比下的响应曲线

三.控件属性设置 (1)String %显示在控件上的字符串 (2)Callback 回调函数 (3)enable 表示控件是否有效 (4)Tag 控件标记,用于标识控件 四.设计:实现如下功能的系统界面 (1)在编辑框中,可以输入表示阻尼比的标量成行数组、数值,并在按了Enter 键后,在轴上画出图形,坐标范围x[1,15],y[0,2]。 (2)在点击grid on或者grid off键时,在轴上显示或删除“网格线”。(3)在菜单[options]下,有两个下拉菜单[Box on]和[Box off],缺省值为off。(4)所设计界面和其上图形,都按比例缩放。 五.各个控件属性设置 (1)在图形窗中设置 Name 我的设计 Rize on %图窗可以缩放 Tag figure1 %生成handles. figure1 (2)在轴框中 Units normalizen Box off坐标轴不封闭 Tag axes1 XLim[0,15]%x范围 YLim[1,2]%y范围 (3)静态文件框1 fontsize 0.696 fritunits normalizen String“归一化二阶阶跃响应” Tag text1 Horizontalignment Center

二阶系统matlab仿真

simulink仿真 -1<ξ<0 >> step(tf(4^2,[1,2*(-0.5)*4,4^2])) ξ<-1 >> step(tf(4^2,[1,2*(-1.5)*4,4^2])) ξ=0 >> step(tf(4^2,[1,2*0*4,4^2])) 0<ξ<1 >> figure >> step(tf(4^2,[1,2*0.1*4,4^2])) >> step(tf(4^2,[1,2*0.2*4,4^2])) >> step(tf(4^2,[1,2*0.3*4,4^2])) >> step(tf(4^2,[1,2*0.4*4,4^2])) >> step(tf(4^2,[1,2*0.5*4,4^2])) >> step(tf(4^2,[1,2*0.6*4,4^2])) >> step(tf(4^2,[1,2*0.7*4,4^2])) >> step(tf(4^2,[1,2*0.8*4,4^2])) >> step(tf(4^2,[1,2*0.9*4,4^2]))

ξ=1 >> figure >> step(tf(4^2,[1,2*1*4,4^2]))

ξ>1 >> hold on >> step(tf(4^2,[1,2*2.0*4,4^2])) >> step(tf(4^2,[1,2*4.0*4,4^2])) >> step(tf(4^2,[1,2*8.0*4,4^2])) ωn不变,ζ减小

ξ=0.5,改变ωn时的情况: >> figure >> step(tf(1^2,[1,2*0.5*1,1^2])) (ωn=1) >> hold on >> step(tf(2^2,[1,2*0.5*2,2^2])) (ωn=2)>> step(tf(4^2,[1,2*0.5*4,4^2])) (ωn=4)>> step(tf(8^2,[1,2*0.5*8,8^2])) (ωn=8)

实验三二阶系统matlab仿真(dg)

利用simulink进行仿真的步骤 1.双击桌面图标打开Matlab软件; 2.在Command Window命令行>>后输入simulink并回车或点击窗口上 部图标直接进入simulink界面; 3.在simulink界面点击File-New-Model就可以在Model上建立系统 的仿真模型了; 4.在左面的器件模型库中找到所需模型,用鼠标将器件模型拖到建立 的Model上,然后用鼠标将它们用连线连起来,系统的仿真模型就建立起来了; 5.点击界面上部的图标‘’进行仿真,双击示波器就可以看到仿真结 果。 实验要用到的元件模型的图标及解释如下: 阶跃信号:在simulink-source中可以找到,双击可以设定阶跃时间。 sum:在simulink-math operations中可以找到,双击可以改变器属性以实现信号相加还是相减; 比例环节:在simulink-math operations中可以找到,双击可以改变器属 性以改变比例系数; 积分环节:在simulink-continues中可以找到; 传函的一般数学模型表达形式:在simulink-continues中可以找到,双击可以对传递函数进行更改(通过设定系数)。 示波器:在simulink-sinks中可以找到。

传递函数的Matlab 定义 传递函数以多项式和的形式(一般形式、标准形式)给出 10111011()m m m m n n n n b s b s b s b G s a s a s a s a ----+++=+++ 用如下语句可以定义传递函数G(s) >> num=[b 0,b 1,b 2…b m ] ;只写各项的系数 >> den=[a 0,a 1,a 2,…a n ] ;只写各项的系数 >> g=tf(num,den) 或 >>g=tf([b0,b1,b2…bm],[a0,a1,a2,…an]) 例:用Matlab 定义二阶系统 2 223()(0.6,3)2*0.6*33n G s s s ζω===++ 并用Matlab 语句绘制此二阶系统在单位阶跃信号输入下的输出曲线c(t)(即单位阶跃响应)。 (1)定义函数: >> num=3^2 >> den=[1,2*0.6*3, 3^2] >> g=tf(num,den) (2)求系统的单位阶跃响应c(t): >> step(g) 可得到系统的单位阶跃响应 上述语句实现的功能也可以以一条语句实现: Time (sec)A m p l i t u d e

实验二 用MATLAB实现线性系统的时域分析(已完成)

实验二用MATLAB实现线性系统的时域分析 [实验目的] 1.研究线性系统在典型输入信号作用下的暂态响应; 2.熟悉线性系统的暂态性能指标; 3.研究二阶系统重要参数阻尼比ξ对系统动态性能的影响; 4.熟悉在MATLAB下判断系统稳定性的方法; 5.熟悉在MATLAB下求取稳态误差的方法。 [实验原理] MATLAB中有两类用于求解系统时域响应的方法。 其一是利用MATLAB中的控制系统工具箱(Control System Toolbox)提供的函数(命令); 其二是Simulink仿真,它主要用于对复杂系统进行建模和仿真。 一、用MATLAB函数(命令)进行暂态响应分析 1求取线性连续系统的单位阶跃响应的函数——step 基本格式为: step(sys) step(num,den) step(A,B,C,D) step(sys,t) step(sys1,sys2,…,t) y=step(sys,t) [y,t]=step(sys) [y,t,x]=step(sys) 其中模型对象的类型如下: sys=tf(num,den)多项式模型 sys=zpk(z,p,k)零点极点模型 sys=ss(a,b,c,d)状态空间模型

参数无t,表示时间向量t的范围自动设定。 参数有t,表示给定时间向量t,应该有初值,时间增量,末值,如t=0:0.01:2。 前5种函数可以绘出阶跃响应曲线;后3种函数不绘阶跃响应曲线,而是返回响应变量y,时间向量t,以及状态变量x。 2求取线性连续系统的单位脉冲响应的函数——impulse 基本格式为: impulse(sys) impulse(num,den) impulse(sys,tf) impulse(sys,t) impulse(sys1,sys2,…,t) y=impulse(sys,t) [y,t]=impulse(sys) [y,t,x]=impulse(sys) 3求取线性连续系统的单位斜坡响应 MATLAB没有直接求系统斜坡响应的功能函数。在求取控制系统的斜坡响应时,通常用阶跃响应函数step()求取传递函数为G(s)/s的系统的阶跃响应,则其结果就是原系统G(s)的斜坡响应。原因是,单位阶跃信号的拉氏变换为1/s,而单位斜坡信号的拉氏变换为1/s2。4.求取线性连续系统对任意输入的响应的函数——lsim 其格式为 y=lsim(sys,u,t) 其中,t为仿真时间,u为控制系统的任意输入信号。 5.暂态响应性能指标 在阶跃响应曲线窗口,使用右键弹出浮动菜单,选择其中的Characteristics子菜单,有4个子项: ①Peak Response峰值响应,点击将出现标峰值记点,单击此标记点可获得峰值幅值,超调量和峰值时间。 ②Settling Time调节时间,点击将出现调节时间标记点,单击此标记点即可获得调节时间。 ③Rise Time上升时间,点击将出现上升时间标记点,单击此标记点即可获得上升时间。

连续系统离散化分析

1 实验一 离散系统的分析 一 实验目的 1.学习利用采样控制理论; 2.使用MATLAB 理论进行分析; 3. 学习利用z 变换与反变换分析离散控制系统; 二、实验步骤 1.开机执行程序 C :\matlab \bin \matlab.exe (或用鼠标双击图标)进人MATLAB 命令窗口; 2.运用所学自动控制理论z 变换与反变换,使用MATLAB 的基本知识分析离散控制系统的基本性质及进行控制系统的设计。 3. MATLAB 离散系统基本命令 模型转换 1)连续系统离散化 sysd=c2d(sys,T) T 为采样时间 sysd=c2d(sys,T,method) method 有四种模式: a. ‘zoh’---采用零阶保持器, b. ‘foh’---采用一阶保持器, c. ‘tustin’---采用双线性逼近(tustin )方法, d. ‘preqarp’---采用改进的(tustin )方法, 2)离散系统连续化 sys=d2c(sysd,T,method) T 为采样时间 例 设) 1(1)(+=s s s g , T=0.1s , 求G(z) 键入命令:sys=tf([1],[1 1 0]); c2d(sys,0.1) %采样时间0.1s 得到离散传递函数: 当采样时间取T=1s 时: 0.004837 z + 0.004679 G (z )= ---------------------------- z^2 - 1.905 z + 0.9048 0.3679 z + 0.2642 G (z )= ---------------------------- z^2 - 1.368 z + 0.3679

连续传递函数离散化的方法与原理

目录 第一章模拟化设计基础1第一节步骤1第二节在MATLAB中离散化3第三节延时e-Ts环节的处理5第四节控制函数分类6第二章离散化算法10摘要10比较11第一节冲击响应不变法(imp,无保持器直接z变换法) 11第二节阶跃响应不变法(zoh,零阶保持器z变换法) 11第三节斜坡响应不变法(foh,一阶保持器z变换法) 11第四节后向差分近似法12第五节前向差分近似法14第六节双线性近似法(tustin) 15第七节预畸双线性法(prevarp) 17第八节零极点匹配法(matched) 18第三章时域化算法19第一节直接算法1—双中间变量向后递推19第二节直接算法2—双中间变量向前递推20第三节直接算法3—单中间变量向后递推21第四节直接算法4—单中间变量向前递推(简约快速算法) 21第五节串联算法22第六节并联算法23第四章数字PID控制算法24第一节微分方程和差分方程25第二节不完全微分25第三节参数选择26第四节 c51框架27第五章保持器33第一节零阶保持器33第二节一阶保持器30附录两种一阶离散化方法的结果的比较31

第一章 模拟化设计基础 数字控制系统的设计有两条道路,一是模拟化设计,一是直接数字设计。如果已经有成熟的模拟控制器,可以节省很多时间和部分试验费用,只要将模拟控制器离散化即可投入应用。如果模拟控制器还不存在,可以利用已有的模拟系统的设计经验,先设计出模拟控制器,再进行离散化。 将模拟控制器离散化,如果用手工进行,计算量比较大。借助数学软件MATLAB 控制工具箱,可以轻松地完成所需要的全部计算步骤。如果需要的话,还可以使用MATLAB 的SIMULINK 工具箱,进行模拟仿真。 第一节 步骤 步骤1 模拟控制器的处理 在数字控制系统中,总是有传输特性为零阶保持器的数模转换器(DAC ),因此,如果模拟控制器尚未设计,则应以下图 的方式设计模拟控制器,即在对象前面加上一个零阶保持器,形成一个新对象Ts 1e G s s ()--,然后针对这个新对象求模拟控 制器D(s)。事实上,模拟控制器一般是已经设计好的,无法或不方便更改了,离散化后的系统只好作为近似设计了。 然而,按照上述思路,可否将已有的控制器除以一个零阶保持器再离散化呢还没有这方面的实际经验。 D(s)x u e -模拟控制器 1-e -Ts s G(s)对象 以下假设选定的G(s),D(s)如下图,而且不对G(s)作添加保持器的预处理。 x u e -D(s)=8s+2 s+15 .G(s)=20 s(s+2) 步骤2 离散化模拟控制器 离散化模拟控制器之前,先要确定离散化算法和采样时间。离散化算法有好几种,第二章中有详细的论述,现假定采用双线性变换法。确定采样时间,需要考虑被控对象的特性,计算机的性能,以及干扰信号的影响等,初步可按采样时间T<,Tp 为被控对象时间常数,或T=~τ,为被控对象的纯滞后,初步确定后再综合平衡其它因素,当然这需要一定的经验,现在假定取秒。 假设模拟控制器为s 2 D s 8s 15 +=?+(),在MATLAB 中,用c2d 函数进行离散化,过程为: 转换结果为: x u e -D(z)= 6.1091(z-0.9048) z-0.4545 D(s)=8s+2 s+15. G(s)= 20s(s+2) 步骤3 检验数字控制器的性能 数字控制器的性能项目比较多,我们仅以直流增益,频率特性,零极点分布说明。 ds=zpk(-2,-15,8) %建立模拟控制器的s 传递函数 dz=c2d(ds,,'tustin') %将模拟控制器按tustin 方法转换为z 传递函数的数字控

基于MATLAB的二阶系统分析

基于MATLAB 的二阶系统分析 凡是以二阶微分方程描述运动方程的控制系统,称为二阶系统。在控制工程中,不仅二阶系统的典型应用极为普遍,而且不少高阶系统的特性在一定条件下可用二阶系统的特性来表征。因此,着重研究二阶系统的分析和计算方法,具有较大的实际意义。 1. 典型二阶系统的暂态分析 典型二阶系统的暂态分析是从时域方面对二阶系统进行分析。时域分析具有非常直观的分析效果,例如:给系统输入端加上阶跃信号观察系统的输出状况即二级系统的单位阶跃响应,能够很直观、很全面的对所研究的二阶系统作出全面了解。但在计算机尚未普及之前,对二阶系统单位阶跃响应曲线的绘制全依赖于人们的手工描绘,所以,对简单的、低阶系统尚能用时域法进行分析,但对于高阶系统的单位阶跃响应曲线就很难依赖手工绘制。因此,这位系统的暂态分析提出了很大挑战。然而,随着计算机技术的发展,用计算机设计的控制系统的计算机辅助设计软件层出不穷,这为控制系统的暂态分析提供了方便。因此,基于MATLAB 的二阶系统分析,就是利用现在在控制系统分析、系统仿真等领域中应用非常广泛的MATLAB 语言作为分析工具。 1.1典型二阶系统的数学模型分析 在研究典型的二阶系统时常用的数学模型有: )()()(2)(2 22 t r t c dt t dc T dt t c d T =++ξ (1)

2 2 2222121 )()()(n n n s s Ts s T s R s C s ωξωωξ++=++==Φ (2) 其中,ξ为系统的阻尼比,n ω为无阻尼自然震荡频率。 公式(1)是对二阶系统的微分方程描述,公式(2)是对二阶系统的传递函数描述。 1.2典型二阶系统的单位阶跃响应 典型二阶系统的特征方程为: 02)(2 2=++=n n s s s D ωξω (3) 特征根为:n n s ωξξω122,1-±-= (4) 由公式(4)可以看出,特征根的分布主要取决于系统的阻尼比ξ。而系统在零初始条件下,典型二阶系统的单位阶跃响应: s s s s s s C n n n 1 21)()(2 2 2 ωξωω++=Φ= (5) 单位阶跃响应的特征主要取决于特征根的分布,当s rad n 1=ω时,取不同的阻尼比ξ时的到得阶跃响应曲线如下所示: 2 4 6 8 10 12

实验二 二阶系统matlab仿真(dg)

利用simulink进行仿真的步骤: 1.打开Matlab软件; 2.在Command Window命令行>>后输入simulink并回车或点击窗口上 部图标直接进入simulink界面; 3.点击File-New-Modle就可以在新的界面上建立系统的仿真模型了; 4.在左面的器件模型库中找到所需模型,用鼠标将器件模型拖到建立 的界面上,然后用鼠标将它们用连线连起来,系统的仿真模型就建立起来了; 5.点击界面上部的图标‘’进行仿真,双击示波器就可以看到仿真结 果。 实验要用到的元件模型的图标及解释如下: 阶跃信号:在simulink-source中可以找到,双击可以设定阶跃时间。 sum:在simulink-math operations中可以找到,双击可以改变器属性以实现信号相加还是相减; 比例环节:在simulink-math operations中可以找到,双击可以改变器属性以改变比例系数; 积分环节:在simulink-continues中可以找到; 传函的一般数学模型表达形式:在simulink-continues中可以找到,双击可以对传递函数进行更改(通过设定系数)。

示波器:在simulink-sinks中可以找到。 实验二二阶系统的Matlab仿真 一、实验目的 1、研究二阶系统的特征参数―阻尼比ζ和无阻尼自然频率ωn对系统动态性能 的影响。 2、利用simulink工具和MATLAB语句实现二阶系统的仿真。 3、熟悉MATLAB语句对二阶系统传函的表达形式以及阶跃响应的表达形式。 二、实验内容 1、simulink仿真(标准二阶系统ωn=1,ζ=0.5) 2、用Matlab语句实现二阶系统仿真 (1)对于标准二阶系统,当ωn=4,改变ζ值对性能的影响 -1<ζ<0(负阻尼) >> step(tf(4^2,[1,2*(-0.5)*4,4^2])) ζ<-1(负阻尼) >> step(tf(4^2,[1,2*(-1.5)*4,4^2])) ζ=0(零阻尼) >> step(tf(4^2,[1,2*0*4,4^2])) 0<ζ<1(欠阻尼) >> figure >> step(tf(4^2,[1,2*0.1*4,4^2])) >>hold on

【精品】经典二阶系统的matlab仿真设计

《二阶系统单位阶跃响应MATLAB 仿真设计》 设计的题目: 控制系统开环传递函数为()() 1100.51K G s s s =+,要求5/v K s = 0.5,ζ=2s t s ≥. 设计目的: 1.学会使用MATLAB 语言及Simulink 动态仿真工具进行系统仿真与调试。学会使用硬件仿真软件对系统进行模拟仿真. 2.掌握自动控制原理的时域分析法,根轨迹法,频域分析法,以及各种补偿(校正)装置的作用及用法,能够利用不同的分析法对给定系统进行性能分析,能根据不同的系统性能指标要求进行合理的系统设计,并调试满足系统的指标。 设计要求: 1、未校正系统的分析,利用MATLAB 绘画未校正系统的开环和闭环零极点图,绘画根轨迹,分析未校正系统随着根轨迹增益变化的性能(稳定性、快速性);编写M 文件作出单位阶跃输入下的系统响应,分析系统单位阶跃响应的性能指标.绘

出系统开环传函的bode图,利用频域分析方法分析系统的频域性能指标(相角裕度和幅值裕度,开环振幅). 2、利用频域分析方法,根据题目要求选择校正方案,要求有理论分析和计算。并与Matlab计算值比较。选定合适的校正方案(串联滞后/串联超前/串联滞后-超前),理论分析并计算校正环节的参数,并确定何种装置实现. 3、绘画已校正系统的bode图,与未校正系统的bode图比较,判断校正装置是否符合性能指标要求,分析出现大误差的原因 4、根据选用的装置,使用multisim电路设计仿真软件(或其他硬件电路仿真软件)绘画模拟电路。求此系统的阶跃响应曲线。分析采用的校正装置的效果。

目录 1。未校正系统分析 (4) 1。1未校正系统的开环和闭环零极点图 (4) 1。1。1校正前开环零极点图 (4) 1。1.2校正前系统的闭环零极点 (5) 1。2未校正系统的根轨迹及性能分析 (5) 1.3单位阶跃输入下的系统响应及系统性能分析 (6) 1.4开环传递函数的bode图及系统的频域性能分析 (7) 2.校正方案的计算与选择 (8) 3.已校正系统Bode图及性能分析 (9) 4.电路设计仿真 (12) 5。总结与心得 (14) 5.1设计总结 (14) 5。2设计心得 (15) 6.参考文献 (16)

连续系统离散化处理基本方法

连续系统离散化处理的基本方法 在数字计算机上对连续系统进行仿真时,首先遇到的问题就是如何解决数字计算机在数值及时间上的离散性与被仿真系统数值及时间上的连续性这一基本问题。 从根本意义上讲,数字计算机所进行的数值计算仅仅就是“数字”计算,它表示数值的精度受限于字长,这将引入舍入误差;另一方面,这种计算就是按指令一步一步进行的,因而,还必须将时间离散化,这样就只能得到离散时间点上系统性能。用数字仿真的方法对微分方程的数值积分就是通过某种数值计算方法来实现的。任何一种计算方法都只能就是原积分的一种近似。因此,连续系统仿真,从本质上就是对原连续系统从时间、数值两个方面对原系统进行离散化,并选择合适的数值计算方法来近似积分运算,由此得到的离散模型来近似原连续模型。如何保证离散模型的计算结果从原理上确能代表原系统的行为,这就是连续系统数字仿真首先必须解决的问题。 设系统模型为:),,(t u y f y =&,其中u (t )为输入变量,y (t )为系统变量;令仿真时间间隔为h ,离散化后的输入变量为)(?k t u ,系统变量为)(?k t y ,其中k t 表示t=kh 。如果)()(?k k t u t u ≈,)()(?k k t y t y ≈,即0)()(?)(≈-=k k k u t u t u t e ,0)()(?)(≈-=k k k y t y t y t e (对所有k=0,1,2,…),则可认为两模型等价,这称为相似原理(参见图2、1)。 ,随着计,也称为仿真建模关于稳定性的详细讨论将在2、4节中进行。 (2)准确性:有不同的准确性评价准则,最基本的准则就是: 绝对误差准则:δ≤-=)()(?)(k k k y t y t y t e 相对误差准则:δ≤-= )(?)()(?)(k k k k y t y t y t y t e 其中δ 规定精度的误差量。 (3)快速性:如前所述,数字仿真就是一步一步推进的,即由某一初始值)(0t y 出发,逐步计算,得到)(,),(),(21k t y t y t y Λ,每一步计算所需时间决定了仿真速度。若第k 步计算对应的系统时间间隔为,1k k k t t h -=+计算机由)(k t y 计算)(1+k t y 需要的时间为T k ,则,若T k =h k 称为实时仿真,T k h k ,对应于离线仿真。 &,已知系统变量y 的初始条件y t y ()00=,现 在要求y 随时间变化的过程y t ()。计算过 程可以这样考虑(参见图2、2):首先求出初始 点y t y ()00=的f t y ()00,,微分方程可以 )(≈k y t e 图2、1

系统辨识及其matlab仿真(一些噪声和辨识算法)

1】随机序列产生程序 2】白噪声产生程序 【3】M序列产生程序 4】二阶系统一次性完成最小二乘辨识程序 5】实际压力系统的最小二乘辨识程序 6】递推的最小二乘辨识程序 7】增广的最小二乘辨识程序 8】梯度校正的最小二乘辨识程序 9】递推的极大似然辨识程序 10 】Bayes 辨识程序 【11】改进的神经网络MBP算法对噪声系统辨识程序 1 2 】多维非线性函数辨识程序的Matlab 程序 13】模糊神经网络解耦Matlab 程序 14】F- 检验法部分程序 【1】随机序列产生程序 A=6; x0=1;M=255; for k=1:100 x2=A*x0; x1=mod (x2,M); v1=x1/256; v(:,k)=v1; x0=x1; v0=v1; end v2=v k1=k; %grapher k=1:k1; plot(k,v,k,v,'r'); xlabel('k'), ylabel('v');title('(0,1) 均匀分布的随机序列 ') 【2】白噪声产生程序 A=6; x0=1; M=255; f=2; N=100; for k=1:N x2=A*x0; x1=mod (x2,M); v1=x1/256; v(:,k)=(v1-0.5)*f; x0=x1; v0=v1; end

v2=v k1=k; %grapher k=1:k1; plot(k,v,k,v,'r'); xlabel('k'), ylabel('v');title('(-1,+1) 均匀分布的白噪声 ') 【3】M序列产生程序 X1=1;X2=0;X3=1;X4=0; %移位寄存器输入Xi初T态(0101), Yi为移位寄存器各级输岀 m=60; %置 M序列总长度 for i=1:m %1# Y4=X4; Y3=X3; Y2=X2; Y1=X1; X4=Y3; X3=Y2; X2=Y1; X1=xor(Y3,Y4); % 异或运算 if Y4==0 U(i)=-1; else U(i)=Y4; end end M=U %绘图 i1=i k=1:1:i1; plot(k,U,k,U,'rx') xlabel('k') ylabel('M 序列 ') ti tle(' 移位寄存器产生的M序列') 【 4】二阶系统一次性完成最小二乘辨识程序 %FLch3LSeg1 u=[-1,1,-1,1,1,1,1,-1,-1,-1,1,-1,-1,1,1]; % 系统辨识的输入信号为一个周期的M序列 z=zeros(1,16); % 定义输岀观测值的长度 for k=3:16 z(k)=1.5*z(k-1)-0.7*z(k-2)+u(k-1)+0.5*u(k-2); % 用理想输岀值作为观测值 end subplot(3,1,1) % 画三行一列图形窗口中的第一个图形 stem(u) % 画岀输入信号 u 的经线图形 subplot(3,1,2) % 画三行一列图形窗口中的第二个图形

相关文档
最新文档