当前位置:
文档之家› MATLAB仿真实例(计算机仿真研究的步骤)
MATLAB仿真实例(计算机仿真研究的步骤)
图 7
在 MATLAB 的指令窗中运行指令 >> f=5 然后点击模型窗中“仿真启动”图标►,仿真开始。 经过短暂的仿真过程后,双击 Scope 模块,可以看到类似于图 8 的响 应曲线。 (注意符号 的作用! )
图 8 同样取 f=2.5, f=7.5, 和 f=4 进行三次试验, 分别得到三条响应曲线。
fy ky r y 描述该系统输入—输出关系的数学模型为 m
(1.1)
这是一个二阶常微分方程,为了后续步骤的需要,将它转换成状态方 程及输出方程
0 1 x k x 2 m 1 x1 0 f 1 r x m 2 m
% 置状态变量初值,其中 x(i)代表 xi(0) % Y 为 N×1 阵,记录输出 y,初始时为 1×1 阵,
% H 为 N×1 阵,记录时间 t,初始时为 1×1 阵 xs=x+(A*x+B)*T; % 计算离散状态方程
% 计算离散输出方程 Y=[Y;y];H=[H;t]; % 记录 y 和 t 的值,这时 Y 阵
和 T 阵均增加 1 行 x=xs;
end plot(H,Y); grid; ⅴ 仿真模型的校核和验证 为了使仿真研究更加有效,比较仿真程序运行所获得的数据与实 际系统运行所观测到的数据以确认数学模型的正确性。 ⅵ 在计算机上进行仿真试验,并对仿真结果进行分析 选择试验点进行试验。 % 绘制输出曲线 % 在“坐标纸”上画小方格
(1.2)
x y [1 0] 1 x2
(1.3)
ⅲ 数学模型转换成仿真模型 采用数值积分法中的欧拉公式,可以得到离散状态方程及输出方 程
0 x1 ((n 1)T ) x1 (nT ) x (n 1)T ) x (nT ) k 2 2 m y[(n 1)T ] x1[(n 1)T ]
1 模型
不同的物理系统的信息传递关系相似, 就可以用同一个数学模型 描述。即不同的物理系统可能对应于同一个数学模型。
图1
图2 如果只考虑输入量和输出量之间的数学关系, 则两个数学模型都 是二阶常系数微分方程,是同一类数学模型。
仿真的定义:建立实际系统的模型,并在模型上进行试验的过程。 仿真是一种试验——广义试验 。
f=input('请输入阻尼系数 f:'); t=0;T=0.01; A=[0 1;-k/m -f/m]; B=[0 1/m]'; tmax=10; 的初值 x=[0,0]'; Y=0; N 为总步数 H=t; while(t<tmax) y=xs(1); t=t+T; %
ห้องสมุดไป่ตู้
置时间变量 t 和仿真步长 T 的初值 % 计算状态方程矩阵 % 置仿真总时间 tmax
2 计算机仿真研究的步骤
【例 2.1 】 考虑如图 2 所示的质量- 弹簧 -阻尼器系统。当质量系数 m=1, 弹簧刚性系数 k=4 时, 为了使系统的单位阶跃响应不发生振荡, 阻尼系数 f( 0 f 10 )应在什么范围内取值? 【解】 该问题可分为以下几步进行研究。 ⅰ 问题的描述 要求研究的问题是:当 m=1 , k=4 时,分析系统在外力 r(t)=1(t) 的作用下,要使响应不发生振荡, f 应在什么范围内取值,其中,f 的取值约束为 0 f 10 ⅱ 建立系统的数学模型
连接各模块后得到的 Simulink 模型,如图 6 所示。
图 6 设置系统的仿真参数:单击模型编辑窗口的“Simulation”菜单中的 “Configuration Parameters”命令,设置仿真的开始时间和停止时间 分别为 0 和 3。设置算法为固定步长算法“Fixed_step”并在其右端算 法编辑框中选择“ode5”即 5 阶龙格库塔算法。再把“Fixed step size” 设为 0.02 秒。 完 成 存 盘 操 作 后 的 Simulink 模 型 , 如 图 7 所 示 ( 文 件 名 : exam20002.mdl)
【例 2.2】 利用 Simulink 对【例 2.1】中的质量-弹簧-阻尼器系统进 行仿真研究。 【解】 首先将描述该系统输入—输出关系的数学模型改写成传递 函数形式
G (s) Y (s) 1 2 R ( s ) ms fs k
(1.6)
从 Simulink 模块库的信号源子库(Sources)中,选择 Step 模块, 拖 入模型窗口,双击该模块,设置参数 Step time 为:0;从 Simulink 模 块库的连续模块子库(Continuous)中,选择 Tranfer Fcn 模块,拖入 模型窗口, 双击该模块,设置参数 Numerator 为:[1], Denominator [1 f 4] ; 为: 从 Simulink 模块库的接收器子库 (Sinks) 中, 选择 Scope 模块,拖入模型窗口。
1 0 x1 (nT ) 1 r (nT )T f x2 (nT ) m m
(1.4) (1.5)
式中,T 为计算步距 。 ⅳ 编程和调试 采用 MATLAB 语言进行编程, 文件名为 exam20001.m。 程序如下: % 这是例 1.1 的仿真程序 clear; m=1;k=4; % 质量系数 m 值,弹簧刚性系数 k 值 % 从键盘输入阻尼系数 f 值
图3
f=4
图5
f=7.5
经过若干次试验后,可知:当 f<4 时,系统响应发生振荡;当 f4 时,系统响应不发生振荡。f =4 为临界值。 计算机仿真步骤 1.确定仿真目的和基本需求 给出仿真的研究对象(即系统) 。 2.建立系统的数学模型
对实际系统进行简化或抽象,用数学的形式对系统的行为、特征 等进行描述。 3.建立系统的仿真模型 将数学模型通过一定的方式转变成能在计算机上实现和运行的 模型 ,称为系统的二次建模。 4.编程并调试 编制数字仿真模型的程序,并进行调试。 5.仿真模型的校核和验证 仿真模型的校核:数字仿真模型与数学模型的一致性检验。 仿真模型的验证:数字仿真模型与实际系统的一致性检验。