自控原理实验.docVIP

  • 3
  • 0
  • 约1.85万字
  • 约 31页
  • 2019-08-26 发布于江苏
  • 举报
PAGE / NUMPAGES 实验一? 面向微分方程的数值积分法仿真 一、实验目的 1、掌握数值积分法的基本概念、原理及应用; 2、用龙格-库塔法解算微分方程,增加编写仿真程序的能力; 3、分析数值积分算法的计算步长与计算精度、速度、稳定性的关系; 4、对数值算法中的“病态问题”进行研究。 二、实验原理 1、数值积分法的基本概念及定义 用被积函数的有限个抽样值的离散和或加权 平均值近似地代替定积分的值。在求函数?(x的定积分时,常常无法用初等函数表示原函数,因此能按牛顿-莱布尼茨公式   计算积分值的定 积分是不多的。另外,当?(x是列表函数时,也不能使用式计算它的积分值。上 述事实说明,必须研究近似估算积分的数值积分方法。 2、龙格-库塔法:龙格-库塔(Runge-Kutta方法是一种在项目上应用广泛的高精度单步算法。因为此算法精度高,采取措施误差进行抑制,所以其实现原理也较复杂。该算法是构建数学支持的基础之上的。对于一阶精度的欧拉公示有:y(i+1=y(i+h*K1 ,K1=f(xi,yi,当用点xi处的斜率近似值K1与右端点xi+1处的斜率K2的算术平均值作为平均斜率K*的近似值,那么就会得到二阶精度的改进欧拉公式y(i+1=(y(i+h*( K1+ K2/2,K1=f(xi,yi,K2=f(x(i+h,y(i+h*K1依次类推,如果在区间[xi,xi+1]内多预估几个点上的斜率值K1、K2、……Km,并用他们的 加权平均数作为 平均斜率K*的近似值,显然能构造出具有很高精度的高阶计算公式。经数学推导、求解,可以得出四阶龙格-库塔公式,也就是在项目中应用广泛的经典龙格-库塔算法: y(i+1=y(i+h*( K1+ 2*K2 +2*K3+ K4/6,K1=f(x(i,y(i,K2=f(x(i+h/2,y(i+h*K1/2 K3=f(x(i+h/2,y(i+h*K2/2K4=f(x(i+h,y(i+h*K3 通常所说的龙格-库塔法是指四阶而言的,我们可以仿二阶、三阶的情形推导出常用的标准四阶龙格-库塔公式。 三、实验内容 1、已知系统微分方程及初值条件取步长h=0.1,试分别用欧拉方程法和RK4法求t=2h时的y值,并将求得的值与解读解比较(将三个解绘于同一坐标中,且用数值进行比较,说明造成差异的原因。①编程完成;②选用MATLAB ode函数完成。) 2、已知系统的传递函数为?? 在单位阶跃输入下,系统响应的解读解为 试分别用欧拉方程法和RK4法对系统进行仿真编程完成): 1)比较两种数值积分解与解读解的逼近程度;绘图) 2)改变步长,分析步长对数值解精度的影响; 3)不断加大步长,分析计算稳定性的变化; 3、求下图所示系统的阶跃响应y(t的数值解。v=1,k=1,开始时间t0=0,结束时间tf=10,h=0.25)分析k、v对系统响应的影响。①编程用RK4求解;②Simulink)修正:G(s表达式的分母中,0.25s+1改为0.25s+1)的二次方 ?? 4、已知系统状态状态方程为 修正:x的系数矩阵中最后一个元素为-40,而非40) 采用RK4法,步长分别取h=0.01、0.04、0.06,求系统的零输入响应,并绘图分析各状态变量的响应状态及产生的原因。提示:病态系统) 四、实验步骤 1、打开电脑选择桌面上matlab。若桌面上没有则单机开始,选择程序,单击matlab程序,打开matlab程序。 2、新建一个M文件,并命名为“微分方程”。 3、按照前面的分析结果,分析系统整体的性能,进行编程,将编程的结果输入用户界面。 4、点击运行。 5、对程序代码中出现的错误进行改正,并重新运行。 6、观察结果,记录数据,进行参数变化,记录变化的结果。 7、将实验结果记录至之前的表格中。 8、截图,按照要求完成实验报告。 实验代码及结果 1. t0=0。tf=2。h=0.1。y1=1。y2=1。y3=1。t1=0。t2=0。t3=0 n=round(tf-t0/h。 for i=1:n y1(i+1=y1(i+h*(2*h+y1(i。 t1=[t1,t1(i+h]。 end for i=1:n k1=y2(i+t2(i。 k2=y2(i+h*k1/2+t2(i+h/2。 k3=y2(i+h*k2/2+t2(i+h/2。 k4=y2(i+h*k3+t2(i+h。 y2(i+1=y2(i+h*(k1+2*k2+2*k3+k4/6。 t2=[t2,t2(

文档评论(0)

1亿VIP精品文档

相关文档