控制系统计算机仿真-实验五
实验五采样控制系统的数字仿真实验
一、实验目的
1.掌握采样控制系统数字仿真的特点。
2. 了解数字控制器对系统动态性能的影响。
3.学会编制双重循环法的仿真程序。
二、实验预习
1. 复习采样控制系统的仿真原理及特点。
2.根据理论分析,初步估计系统在给定条件下可能出现的动态过程。
三、实验要求
1. 整理各种实验条件下的数据和曲线。
2.分析两种控制器对系统动态性能的影响,并写出实验报告。
四、实验内容
某单位反馈控制系统中,被控对象的传递函数为
在单位速度信号输入下,选择零阶保持器在时设计的“最少拍”控制器为
1. 按实验目的、要求和已知条件,建立系统的Simulink模型,并且编制双重循环法的仿真程序。
Simulink模型建立:
根据题目给出的条件,数字控制系统的结构图如下图所示:
其中的其中数字控制器为:
(1)
建立Simulink模型如下图所示:
编制双重循环法的仿真程序
根据数字控制系统的结构图与条件(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
x1t=xt(1,:);x2t=xt(2,:);
plot(t,x1t,':k',t,x2t,'k');
legend('x1', 'x2');
grid;
xlabel('time(s)');
2. 分别运行双重循环法的仿真程序和Simulink模型,观察纪录系统动态性能的变化。
运行Simulink模型结果如下图所示:
黄线为x1,紫线为x2
运行双重循环法的仿真程序结果如下所示:
进行对比发现,两种方法结果基本相同。双重循环法通用性较强,不仅可得到控制系统的输出值,还可得到被控对象内部状态变量的响应;也可用于被控对象中含有典型非线性环节的非线性系统的仿真。克服了差分方程递推求解法
不能计算被控对