聪明文档网

聪明文档网

最新最全的文档下载
当前位置: 首页> 控制系统计算机仿真实验报告

控制系统计算机仿真实验报告

时间:2015-06-25 15:44:17    下载该word文档

计算机仿真试验报告

自动化1201 ** 3120502007

[实验目的]

(1).掌握采样控制系统数字仿真的特点。

(2).了解数字控制器对系统动态性能的影响。

(3).学会编制双重循环法的仿真程序。

[实验内容]

某单位反馈控制系统中,被控对象的传递函数为

在单位速度信号输入下,选择零阶保持器在时设计的“最少拍”控制器为

(1). 按实验目的、要求和已知条件,建立系统的Simulink模型,并且编制双重循环法的仿真程序。

(2). 分别运行双重循环法的仿真程序和Simulink模型,观察纪录系统动态性能的变化。

(3).若数字控制器改为“无纹波”控制器

试对两种情况下的输出进行比较。

[预习要求]

(1). 复习采样控制系统的仿真原理及特点。

(2).根据理论分析,初步估计系统在给定条件下可能出现的动态过程。



(1). 按实验目的、要求和已知条件,建立系统的Simulink模型,并且编制双重循环法的仿真程序。

1) Simulink模型建立:

根据题目给出的条件,数字控制系统的结构图如下图所示:

其中的其中数字控制器为:

1

根据上面结构图,所建立Simulink模型如下图所示:

2) 编制双重循环法的仿真程序

根据数字控制系统的结构图与条件(1)式,我们可以得到得到被控对象的状态空间模型:

(2)

按连续系统离散相似算法将(2)式离散化。为了保证精度,其离散化时的步长h(虚拟采样周期)应比数字控制器的实际采样周期T (=1s)小得多。为简化起见,取h=T/N=T/100=0.01T=0.01s

利用MATLAB控制系统工具箱提供的将连续系统转换成离散系统的函数c2d,把连续状态空间模型(2)变换为离散状态空间模型。

离散程序如下(程序1):

clear;

h=0.01;

A=[0 0;1 -1];

B=[10;0];

[G,H]=c2d(A,B,h)

运行后的结果为:

即:

3

4

故连续系统被控对象(2)的等价离散化状态方程为:

5

根据上述条件,采样控制系统数字控制器的差分方程为 (6)

式中: (7)

根据例题3.2中仿真框图分别递推求解 (5)式和 (6)式的MATLAB仿真程序

程序2如下:

clear

G=[1 0;0.01 0.99];

H=[0.1;0.0005];c=[0 1]; % 连续被控对象的离散化状态方程的系数阵

h=0.01;T=1; % 设定内循环步长h=0.01,而外循环则以采样周期T=0.1为步长

N=round(T/h); % 在一采样周期内连续被控对象的离散化状态方程递推N(内循环)

TF=15; % 设定总仿真时间为15s

M=round(TF/T); % 数字控制器的差分方程递推M(外循环)

x=[0;0];

u=zeros(1,M+2);

e=zeros(1,M+2);

u(1)=0;

u(2)=0;

t=0;

xt=x;

for i=1:M % 外循环

y=c*x;

r(i)=i;

e(i+2)=r(i)-y;

u(i+2)=0.282*u(i+1)+0.718*u(i)+0.543*e(i+2)-0.471*e(i+1)+0.0999*e(i); % 外循环中递推求数字控制器在实际采样时刻的输出(步长为T)

for j=1:N % 内循环

x=G*x+h*u(i+2); % 内循环中递推求受控对象状态响应(步长为h)

xt=[xt,x]; % yt为记载各步状态响应的矩阵

t=[t,j*h+(i-1)*T]; % t为记载各采样(kT)时刻的行向量(yt对应)

end

end

x2t=xt(2,:);

plot(t,t,':k',t+T,x2t,'k');

legend('r', 'y');

grid;

xlabel('time(s)');

title('双重循环法仿真程序的运行结果');

(2). 分别运行双重循环法的仿真程序和Simulink模型,观察纪录系统动态性能的变化。

1) 运行双重循环法的仿真程序结果如下所示:



2) 运行Simulink模型结果如下图所示:

进行对比发现,两种方法结果基本相同。双重循环法通用性较强,不仅可得到控制系统的输出值,还可得到被控对象内部状态变量的响应;也可用于被控对象中含有典型非线性环节的非线性系统的仿真。克服了差分方程递推求解法

不能计算被控对象的内部状态变量的响应特性,对被控对象含有非线性环节的情况也不适用的局限性。



(3).若数字控制器改为“无纹波”控制器

试对两种情况下的输出进行比较。

1) 更改只需改Discrete Transfer Fcn 参数即可,Simulink模型为:

输出结果如下:

2)双重循环法:

改变数字控制器后,连续系统离散化模型是不变的,只需将控制系统差分方程改写即可:

7

重新编写双重循环仿真程序如下(程序3)

clear

G=[1 0;0.01 0.99];

H=[0.1;0.0005];c=[0 1]; % 连续被控对象的离散化状态方程的系数阵

h=0.01;T=1; % 设定内循环步长h=0.01,而外循环则以采样周期T=0.1为步长

N=round(T/h); % 在一采样周期内连续被控对象的离散化状态方程递推N(内循环)

TF=15; % 设定总仿真时间为15s

M=round(TF/T); % 数字控制器的差分方程递推M(外循环)

x=[0;0];

u=zeros(1,M+2);

e=zeros(1,M+2);

u(1)=0;

u(2)=0;

t=0;

xt=x;

for i=1:M % 外循环

y=c*x;

r(i)=i;

e(i+2)=r(i)-y; u(i+2)=0.407*u(i+1)+0.593*u(i)+0.383*e(i+2)-0.365*e(i+1)+0.0825*e(i); % 外循环中递推求数字控制器在实际采样时刻的输出(步长为T)

for j=1:N % 内循环

x=G*x+h*u(i+2); % 内循环中递推求受控对象状态响应(步长为h)

xt=[xt,x]; % yt为记载各步状态响应的矩阵

t=[t,j*h+(i-1)*T]; % t为记载各采样(kT)时刻的行向量(yt对应)

end

end

x2t=xt(2,:);

plot(t,t,':k',t+T,x2t,'k'); legend('r', 'y');

grid;

xlabel('time(s)');

title('“无波纹”双重循环法仿真结果');

程序运行结果输出如下所示:

免费下载 Word文档免费下载: 控制系统计算机仿真实验报告

  • 29.8

    ¥45 每天只需1.0元
    1个月 推荐
  • 9.9

    ¥15
    1天
  • 59.8

    ¥90
    3个月

选择支付方式

  • 微信付款
郑重提醒:支付后,系统自动为您完成注册

请使用微信扫码支付(元)

订单号:
支付后,系统自动为您完成注册
遇到问题请联系 在线客服

常用手机号:
用于找回密码
图片验证码:
看不清?点击更换
短信验证码:
新密码:
 
绑定后可用手机号登录
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系 在线客服