控制系统案例

2019-08-31 14:25

作业要求:

被控对象的单位阶跃响应数据在文件matlab_work.mat中(要拷在MATLAB的\\work目录下才能看到),t是采样时间点,y是对应于采样时间点处的单位阶跃响应数据。试辨识被控对象模型并用不同的控制方法设计控制器,使对象的开环增益K>=10,输出响应的超调量δ%<=20%,调节时间ts<=2sec。

报告要求: 1. 2. 3. 4.

问题描述; 方法的原理;

建模验证,结果要求数据配匹率>=90%; 程序及仿真结果。

1 原始数据分析

被控对象的开环单位阶跃响应数据在文件matlab_work.mat中。在MATLAB指令窗中键入:

>> load matlab_work.mat >>plot(t,y) >>xlabel('t') >>ylabel('y')

>> title('原始响应曲线')

在matlab中画出在输入为单位阶跃响应数据时输出随时间的变化曲线如下图所示:

图1 被控对象的单位阶跃响应

1 / 16

2系统模型的辨识

由于被控对象模型结构未知,题中仅给出了被控对象的单位阶跃响应。因此需要根据原始的数据分析得出原系统的基本结构。至于结构以及参数的最终确定,将使用MATLAB的系统辨识工具箱来实现。

2.1系统模型结构的估计

系统辨识工具箱提供的模型结构选择函数有struc、arxstruc和selstruc。 函数struc生成arx结构参数,调用格式为:

nn=struc (Na, Nb, Nk)

其中,Na、Nb分别为arx模型多项式A(q)、B(q) 的阶次范围;Nk为arx模型纯滞后的大小范围;nn为模型结构参数集构成的矩阵。

函数arxstruc用来计算arx模型结构的损失函数,即归一化的输出预测误差平方和,调用格式为:

v=arxstruc (ze, zv, nn)

其中,ze=[y u]为模型辨识的I/O数据向量或矩阵。zv=[yrur]为模型验证的I/O数据向量或矩阵。nn为多个模型结构参数构成的矩阵,nn的每行都具有格式:nn=[nanbnk]。v的第一行为各个模型结构损失函数值,后面的各行为模型结构参数。

函数selstruc 用来在损失函数的基础上进行模型结构选择,调用格式为:

[nn, vmod]=selstruc (v, c)

其中v 由函数arxstruc获得的输出矩阵,为各个模型结构的损失函数。c为可选参数,用于指定模型结构选择的方式。

根据图2所示曲线的形状初步估测被控对象的模型应该为二阶系统或者更高阶系统。并且可以看出,纯滞后为0,故Nk恒为零。

在MATLAB指令窗中键入: >> u=ones(size(y)) >> Z=[y,u]

>> v2=arxstruc(Z,Z,struc(2,0:2,0)) >> nn2=selstruc(v2,0)

>>v3=arxstruc(Z,Z,struc(3,0:3,0))

2 / 16

>> nn3=selstruc(v3,0)

>>v4=arxstruc(Z,Z,struc(4,0:4,0)) >> nn4=selstruc(v4,0)

>> v5=arxstruc(Z,Z,struc(5,0:5,0)) >> nn5=selstruc(v5,0)

>> v6=arxstruc(Z,Z,struc(6,0:6,0)) >> nn6=selstruc(v6,0)

>> v7=arxstruc(Z,Z,struc(7,0:7,0)) >> nn7=selstruc(v7,0)

>> v8=arxstruc(Z,Z,struc(8,0:8,0)) >> nn8=selstruc(v8,0)

得到如下结果: nn2 = 2 2 0 nn3 = 3 1 0

nn4 = 4 1 0 nn5 = 55 0 nn6 = 62 0 nn7 =71 0 nn8 =81 0

于是,去除积分环节后的模型阶数为:二阶系统[2 1 0]、三阶模型[3 2 0]和四阶模型[4 1 0],五阶系统模型为[55 0],六阶系统模型为[62 0],七阶系统模型为[71 0],八阶系统模型为[81 0]。

2.2系统模型结构的确定

为了确定模型结构以及参数,使用MATLAB的系统辨识工具箱中已有的辨识函数arx()。辨识函数arx()的使用方法是:如果输入信号的列向量为u,输出信号的列向量为y,并选定了系统的分子多项式阶次m-1,分母多项式阶次n及系统的纯滞后d,则可以通过下面的指令辨识出系统的数学模型:

T=arx([y,u],[ n,m,d])

该函数将直接显示辨识的结果,且所得的T为一个结构体,其中T.A和T.B分别

3 / 16

表示辨识得到的分子和分母多项式。由给定的观测数据建立系统数学模型后,还需要进行检验,看模型是否适用,如果不适用,则要修改模型结构,重新进行参数估计等。MATLAB的系统辨识工具箱中用于模型验证和仿真的函数主要有compare、resid、pe、predict 和idsim。此次实验主要用的是函数compare对模型进行验证。函数compare可将模型的预测输出与对象实际输出进行比较。验证过程与结果如下所示。 ? 对二阶系统的验证

在MATLAB指令窗中键入: >> Z=iddata(y,u,0.05) >> M=arx(Z,[2,3,0]) >>compare(M,Z) 得到结果如图2所示。

图2 二阶模型的匹配结果

? 对三阶系统的验证 在MATLAB指令窗中键入: >>Z=iddata(y,u,0.05) >> M=arx(Z,[2,4,0]) >>compare(M,Z)

得到结果如图3所示

4 / 16

图3 三阶模型的匹配结果

? 对四阶系统的验证 在MATLAB指令窗中键入: >> Z=iddata(y,u,0.05) >> M=arx(Z,[4,2,0]) >>compare(M,Z)

得到结果如图4所示

图4四阶模型的匹配结果

? 对五阶系统的验证 在MATLAB指令窗中键入: >> Z=iddata(y,u,0.05) >> M=arx(Z,[5,6,0]) >>compare(M,Z)

得到结果如图5所示

5 / 16


控制系统案例.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:计算机组成原理-研究生入学经典试卷(共20套)6

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: