控制系统计算机仿真-实验二.
实验二面向系统结构图的连续系统数字仿真实验
一、实验目的
1.掌握以系统结构图形式描述的连续系统的数字仿真方法和步骤。
2. 初步了解如何用仿真方法来分析系统的动态性能。
3. 了解不同的数值积分算法与仿真计算精度之间的关系。
4. 学会一种初步寻求合理仿真步长的方法。
5.了解RK4法计算稳定性和步长的关系。
二、实验预习
1.复习数值积分算法及步长寻取方法。
2. 按理论分析初步估计系统可能出现的动态性能。
3. 求或
三、实验要求
1. 整理各种实验条件下的数据和曲线。
2. 将各仿真结果与标准解比较,分析不同数值积分算法及步长对仿真精度的影响,误差评价指标公式为
其中,和分别为系统在时间点处的解析解和仿真解;为总计算时间点数。
3.写出实验报告。
四、实验内容
单位反馈控制系统的结构如附录图1所示,其开环传递函数和闭环传递函数分别为
在零初始条件下闭环系统单位阶跃响应的标准解为
1. 首先我们建立Simulink仿真模型,根据
开环仿真模型
闭环仿真模型
2. 标准解方程
y=1 - 0.0753885711*exp(-5t) - 1exp(-0.742154585*t)*sin(1t+0.755867195);
(为此,需要学习MATLAB中求取开环剪切频率的函数bode或margin的使用方法)。
2.48
2.49:
开环传递函数为:
在matlab控制窗口输入以下命令,求出该模型的:
clear
A=[1];
B=[0.1 0.7 1 0];
pain=tf(A,B);
painbasic=tf(A);
bode(pain,painbasic,{0.1,10})
图=0.863
根据公式(2.49),计算得出。
4.计算误差Script
sim('Exp2_model1');
[lena,lenb]=size(t);
y=zeros(lena,1);
for i=1:lena
tt=t(i);
y(i,1)=1 - 0.0753885711*exp(-5tt) - 1exp(-0.742154585*tt)*sin(1tt+0.755867195);
end
Max_Err = max(abs(y-yout));
Mean_Err = sum(abs(y-yout))/lena;
3. 选择RK4法,运行仿真模型,适当调整步长和仿真起止时间,以得到比较完整的过渡过程,观察纪录过渡过程的数据。
步长0.01:
Max_Err= 3.12437810172372e-09;Mean_Err= 3.082473004012723e-10
步长0.1:
Max_Err= 3.45334904181607e-05;Mean_Err= 2.13778078411538e-06
步长0.2:
MAX_ERR= 0.000876759705695940,MEAN_ERR= 4.73018848001367e-05
4)步长0.5:
MAX_ERR= 0.0698454094884216,MEAN_ERR= 0.0474489734589199
从误差分析中可以看出,步长在,即满足公式时的误差最小,精度最高。无论是步长大于或小于该范围均会造成较大的误差。步长太小,运行速度慢,会造成较大的累积误差。步长太大,则会造成较大的截断误差。
4.改变I环节的放大倍数(将1变为5),不断加大步长观测记录计算稳定性的变化。
将transfer func2 的分子由1改为5在以下步长下仿真计算误差。
步长0.01:
步长0.1:
步长0.3
图形发生明显形变
步长0.5:
结果完全错误了。
5. 在相同的条件下,选择欧拉法和RK2法,再让仿真模型运行,观察记录过渡过程的数据。
A.欧拉法:
步长0.01:
MAX_ERR= 0.0079,MEAN_ERR=0.0016
步长0.05:
MAX_ERR= 0.0407,MEAN_ERR=0.0083
步长0.1:
MAX_ERR= 0.0841,MEAN_ERR=0.0174
步长0.2:
MAX_ERR= 0.1802,MEAN_ERR=0.0394
步长0.5:
MAX_ERR= 3403.55188720568,MEAN_ERR= 394.761121211459
B.:RK2法:
步长0.01:
MAX_ERR= 0.0068,MEAN_ERR=0.0013
步长0.05:
MAX_ERR= 0.0333,MEAN_ERR=0.0063
步长0.1:
MAX_