利用MATLAB进行离散控制系统模拟

更新时间:2023-10-09 06:02:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验 利用MATLAB进行离散控制系统模拟

本试验的目的主要是让学生初步掌握MATLAB软件在离散控制系统分析和设计中的应用。

1.连续系统的离散化。

在MATLAB软件中,对连续系统的离散化主要是利用函数c2dm( )函数来实现的,c2dm( )函数的一般格式为

C2dm( num, den, T, method),可以通过MATLAB的帮助文件进行查询。其中:

Num:传递函数分子多项式系数; Den:传递函数分母多项式系数; T:采样周期;

Method:转换方法;

允许用户采用的转换方法有:零阶保持器(ZOH)等五种。

2.求离散系统的相应:

在MATLAB中,求采样系统的响应可运用dstep( ),dimpulse( ),dlsim( )来实现的。分别用于求取采样系统的阶跃,脉冲,零输入及任意输入时的响应,其中dstep( )的一般格式如下:

dstep( num, den, n),可以通过MATLAB的帮助文件进行查询。其中: Num:传递函数分子多项式系数; Den:传递函数分母多项式系数; N:采样点数;

3.此外,离散控制系统也可以用simulink工具箱进行仿真,仿真界面如下

图(采样周期可以在对应模块中进行设定)。

1.编制程序实现上面三个仿真程序。

2.把得到的图形和结果拷贝在试验报告上。

3.在第1个例子中,改变采样周期为0.25,重新运行程序,把结果和原来

结果进行比较,并说明为什么?

4.在第2个例子中,改变采样点数为70,重新运行程序,把结果和原来结

果进行比较,并说明为什么?同样,改变采样周期T,观察不同周期下系统阶跃响应的动态性能,分析采样周期对系统动态性能的影响。

1. 1)

num=10; den=[1,7,10]; t=0.1

[numz,denz]=c2dm(num,den,t,'zoh'); printsys(numz,denz,'z') 得出结果: t =

0.1000

num/den =

0.039803 z + 0.031521 ------------------------ z^2 - 1.4253 z + 0.49659

若t改为0.25: num=10; den=[1,7,10]; t=0.25

[numz,denz]=c2dm(num,den,t,'zoh'); printsys(numz,denz,'z')

得出结果为:

t =

0.2500

num/den =

0.18012 z + 0.10062 ------------------------- z^2 - 0.89304 z + 0.17377

2 )

num=10; den=[1,7,10]; t=0.25; i=[0:35]; time=i*t;

[numz,denz]=c2dm(num,den,t,'zoh'); yc=step(num,den,time); y_zoh=dstep(numz,denz,36); [xx,yy]=stairs(time,y_zoh); plot(time,yc,'r'),hold plot(xx,yy,'r'),hold;grid

采样点数改为70:

num=10; den=[1,7,10]; t=0.1; i=[0:70]; time=i*t;

[numz,denz]=c2dm(num,den,t,'zoh'); yc=step(num,den,time); y_zoh=dstep(numz,denz,71); [xx,yy]=stairs(time,y_zoh); plot(time,yc,'r'),hold

周期改为0.25:

本文来源:https://www.bwwdw.com/article/h3cf.html

Top