1.2 计算机仿真研究的步骤
仿真是研究系统的一种先进方法。下面通过一个具体的实例来说明如何利用计算机仿真来研究系统。
【例1.1】 考虑如图1.5所示的质量-弹簧-阻尼器系统。当质量系数m=1,弹簧刚性系数k=4时,为了使系统的单位阶跃响应不发生振荡,阻尼系数f(0≤f≤10)应在什么范围内取值?
【解】 该问题可分为以下几步进行研究。
(1)问题的描述
要求研究的问题是:当m=1,k=4时,分析系统在外力r(t)=1(t)的作用下,要使响应不发生振荡,f应在什么范围内取值,其中f的取值约束为
0≤f≤10
(2)建立系统的数学模型
描述该系统输入-输出关系的数学模型为
这是一个二阶常微分方程。为了后续步骤的需要,将它转换成状态方程及输出方程
(3)数学模型转换成仿真模型
对于式(1.4)和式(1.5),还不能直接编程并用计算机求解,必须把它们转换成适宜于编程并能在计算机上运行的模型——仿真模型。对于连续系统,仿真模型常常采用差分方程(组)表示。对于式(1.4)和式(1.5),直接采用数值积分法中的欧拉公式,可以得到离散状态方程及输出方程为
式中,T为计算步距。
(4)编程和调试
为了使式(1.6)和式(1.7)所表示的仿真模型能够在计算机上运行,必须用算法语言加以描述,即编写计算机程序,并进行调试。采用MATLAB语言进行编程,文件名为exam1_1.m,程序如下:
% 这是例1.1的仿真程序 clear m=1;k=4; % 质量系数m值,弹簧刚性系数k值 f=input(′请输入阻尼系数f:′); % 从键盘输入阻尼系数f值 t=0;T=0.01; % 置时间变量t和仿真步长T的初值 A=[01;-k/m-f/m]; % 计算状态方程矩阵 B=[01/m]′; tmax=10; % 置仿真总时间tmax的初值 x=[00]′; % 置状态变量初值,其中x(1)代表x1(0),x(2)代表x2(0) Y=0; %Y为N维列向量,记录输出y,初始时为1维,N为总步数 H=t; %H为N维列向量,记录时间t,初始时为1维 while(t<tmax) xs=x+(A*x+B)*T; % 计算离散状态方程 y=xs(1); % 计算离散输出方程 t=t+T; Y=[Y;y];H=[H;t]; % 记录y和t的值,这时Y阵和T阵均增加1行 x=xs; end plot(H,Y,′k′); % 绘制输出曲线 grid; % 在“坐标纸”上画小方格
(5)仿真模型的校核和验证
为了使仿真研究更加有效,比较仿真程序运行所获得的数据与实际系统运行所观测到的数据,以确认数学模型的正确性。这里我们假设二者之间是一致的。
(6)在计算机上进行仿真试验,并对仿真结果进行分析
为了确定f在[0,10]内的哪一段使系统响应不发生振荡,首先取f=5进行一次试验,响应曲线如图1.6(a)所示,此时系统响应不发生振荡。又分别取f=7.5及f=2.5进行两次试验,分别得到两条响应曲线,如图1.6(b)、(c)所示。当f=7.5时,系统响应不发生振荡,故可以判断当f在[5,10]区间上取值时,系统响应不会产生振荡;当f=2.5时,系统响应发生振荡,故可以判断当f在[0,2.5]区间上取值时,系统响应会发生振荡。舍去这两段区间,确定新的试验选点区间为(2.5,5),使系统响应发生振荡的f的临界值应该就在该区间内。对于区间(2.5,5),重复进行上述试验步骤。经过若干次试验后,可以确定当f<4时,系统响应发生振荡;当f≥4时,系统响应不发生振荡。f=4为临界值,对应的响应曲线如图1.6(d)所示。通过对以上试验结果的分析得出结论:当f在区间[4,10]上取值时,系统响应不会发生振荡。
通过上面的例子,可以看出在进行计算机仿真研究时,一般需要经过下面几个步骤。
1.确定仿真目的和基本需求
弄清楚通过仿真要解决的问题并明确说明,给出仿真的研究对象(即系统)。
图1.6 质量-弹簧-阻尼器系统的响应曲线
2.建立系统的数学模型
对实际系统进行简化或抽象,用数学的形式对系统的行为、特征等进行描述,保持模型的运动机理及信息传递与实际系统(即原型)的一致性和相似性。该过程称为系统的一次建模,所得到的数学模型是仿真的重要依据。一般而言,这是一项非常重要而又复杂繁重的任务,它直接关系到仿真试验的成败。
3.建立系统的数字仿真模型
将数学模型通过一定的方式转变成能在计算机上实现和运行的数学模型,称之为数字仿真模型或二次化模型。该过程也称为系统的二次建模。
4.编程并调试
编制数字仿真模型的程序,并进行调试。这个任务要结合所用计算机工具的特点和配备的程序设计语言等来进行。
5.仿真模型的校核和验证
仿真模型的校核是指数字仿真模型与数学模型的一致性检验,即检验数字仿真模型是否达到在计算机上实现数学模型的目的。仿真模型的验证是指数字仿真模型与实际系统的一致性检验,检验它是否真实地反映了实际系统运行过程的特性,也就是要检验在计算机上正确实现的数字仿真模型能以何种程度充分接近于被仿真的实际系统。
6.进行仿真试验
这个过程包括试验设计、运行仿真模型,并根据试验结果对实际系统的运行得出结论。
上述计算机仿真的各个步骤如图1.7所示,其中方框2至方框5称为计算机仿真的建模过程。在对实际系统进行仿真研究时,图1.7中各个步骤可能难以严格划分。例如,对试验结果的分析可能会引起数学模型和数字仿真模型的修改。仿真模型的校核和验证也会引起方框2和方框3的重新进行。因此,图1.7中方框2至方框5的各个步骤会反复进行,逐步使仿真模型的运行结果越来越接近被仿真系统的行为特性。
图1.7 计算机仿真的各个步骤