《系统建模与仿真》实验报告.doc
实验1 最小二乘法的实现实验报告哈尔滨工业大学航天学院控制科学与工程系专业: 班级: 姓名: 日期: 年 月 日1实验题目: 最小二乘法的实现 2实验目的熟悉并掌握递推最小二乘法的算法原理掌握进行系统参数辨识的算法原理和编程方法和原则熟悉MATLAB编程方法3递推最小二乘法的公式对于系统方程,普通最小二乘估计的结果为,但这个方法当的维数比较大时运算量非常大,而为了保证精度的维度通常很大,这样就不便于进行在线辨识,于是便有了递推最小二乘法。 其中 经过一系列的推导,最终可求得递推最小二乘法辨识公式: 其中: 4写出给定系统结构、实际参数、噪声源及输入信号给定系统的差分方程形式描述为:具体参数,但是不已知,需要用最小二乘法进行在线辨识。其中的零均值白噪声。由方程的形式知系统的。辨识过程中采用的信号源为5画出程序框图6写出MATLAB的M文件%ϵͳ²ÎÊýA1=2;A2=1.3;B0=0.4;B1=0.88;B2=2.2;C=10000;N=2; for k=1:1:100 u(k)=1.5*sin(0.2*k); %²úÉúÊäÈëÐźÅÐòÁÐend y(1)=0;y(2)=0;for n=1:1:98 %²úÉúÊä³öÐźÅÐòÁÐy(n+2)=-A1*y(n+1)-A2*y(n)+B0*u(n+2)+B1*u(n+1)+B2*u(n)+0.2*rand(1)-0.1;endz=C2;P=z*eye(5,5);para(:,1)=0 0 0 0 0'out=0;for j=2:1:20 %µü´ú20´Î yn=y(N+j+1);fayn=-y(N+j) -y(N+j-1) u(N+j+1) u(N+j) u(j+1)'K=P*fayn*(1+fayn'*P*fayn)-1);para(:,2)=para(:,1)+K*(yn-fayn'*para(:,1)P=P-K*fayn'*P;out=out+1;end7实验结果分析设定的初值为0,迭代20次,结果如下:1.9750 1.3028 0.4766 0.7160 0.7268与原系统的参数有着一定的偏差8结论某些系统的数学模型很难用机理建模法来完成,这是因为这些系统大都是复杂的工业过程系统,其工艺过程、工况等都十分复杂,有些甚至是人们无法洞悉或了解的。 在这种情况下,我们可以用系统的输入输出历史数据来推测系统的数学模型。这种方法就是所谓的系统辨识技术。系统辨识也属于经典建模技术的一种。在研究系统辨识问题时,将把待辨识的系统看作“黑箱”,只考虑系统的输入-输出特性,而不强调系统的内部机理。最小二乘法是为了解决如何从一组测量值中寻求可信赖值的问题。最小二乘法的基本原理是:成对等精度地测得一组数据xi,yi (i=1,2,n),试找出一条最佳的拟合曲线,使得这条拟合曲线上的各点的值与测量值的差的平方和在所有拟合曲线中最小。最小二乘法是一种数学优化技术,它通过最小化误差的平方和找到一组数据的最佳函数匹配。最小二乘法是用最简的方法求得一些绝对不可知的真值,而令误差平方之和为最小。最小二乘法通常用于曲线拟合。很多其他的优化问题也可通过用最小二乘形式表达。最小二乘法的基本思想是使系统实际输出与估计输出(带有估计参数的系统的输出)的偏差(残差)的平方和最小。在这个原则下,通过残差平方和关于估计参数向量的偏导数等于零这一方法来最终求得估计参数向量。最小二乘估计 式中矩阵的阶数越大,所包含的信息量就越多,系统参数估计的精度就越高。为了获得满意的辨识结果,矩阵的阶数常常取得相当大。这样,在用式(2.146)计算系统参数的估计值时,矩阵求逆的计算量很大。最小二乘估计参数最终的收敛相当快,而且估计稳态误差均为零。在反馈控制律使用最小二乘估计参数的情况下,闭环系统还是渐近稳定的。实验2 龙格-库塔法的实现实验报告哈尔滨工业大学航天学院控制科学与工程系专业: 班级: 姓名: 日期: 年 月 日1实验题目: 龙格-库塔法的实现 2实验目的熟悉并掌握龙格-库塔法的数值积分原理熟悉MATLAB编程方法3四阶龙格-库塔法的公式给定常微分方程 (1)及初始条件,要求函数的数值解。四阶龙格库塔法公式: (2)其中:其中为积分步长。4写出微分方程组及其初始条件、积分步长、计算总步数待求的常微分方程组如下: 初值: 积分步长为计算总步数为10005画出程序框图6用MATLAB编制四阶龙格-库塔法的M文件function KK=fn(t,x) f1=x(1)*x(2)2-x(1); f2=-3*x(2)+cos(x(1);KK=f1,f2'h=0.001; x(1,:)=-3 2; for k=1:1:999t(k)=(k-1)*h; xx=x(k,:)' K1=fn(t(k),xx); K2=fn(t(k)+h/2,xx+(h/2)*K1); K3=fn(t(k)+h/2,xx+(h/2)*K2); K4=fn(t(k)+h,xx+h*K3); x(k+1,:)=x(k,:)+(h*(K1+2*K2+2*K3+K4)/6)' end8结论龙格库塔法在后一步的计算中,仅仅利用前一步的计算结果,称为单步法,它不仅能使存储量减小,而且此法可以自启动,即已知初值后,不必用别的方法来帮助,就能由初值逐步计算得到后续各时间点上的仿真值。步长h在整个计算中并不要求固定,可以根据精度要求改变,但是在一步中算若干个系数,则必须用同一个步长。 为达到相同的精度,四阶方法的h可以比二阶方法的h大10倍,而四阶方法的每步计算量仅比二阶方法大1倍,所以总的计算量仍比二阶方法小。正是由于上述原因,一般系统进行数字仿真常用四阶龙格库塔公式。值得指出的是:高于四阶的方法由于每步计算量将增加较多,而精度提高不快,因此使用得也比较少。对于离线仿真,使用文件的读写要比使用数组更为优越。对于时滞系统的仿真,需要对4阶龙格-库塔法进行适当的改进。在本次实际编写龙格库塔的Matlab程序,求解一个二阶非线性系统的状态方程的数值解,从这个过程中,我加深了对于龙格库塔方法的认识,了解了其在数值仿真中的作用,四级龙格库塔方法是求解系统状态响应数值解的有效方法。实验3 随动控制系统仿真实验报告哈尔滨工业大学航天学院控制科学与工程系专业: 班级: 姓名: 日期: 年 月 日1实验题目: 随动控制系统仿真 2实验目的熟悉随动系统的工作原理,掌握Simulink模块化仿真方法。熟悉MATLAB编程方法3给定的被控对象(1)对象的传递函数(2)执行机构的传递函数(3)参考输入信号 4设计控制律的传递函数本系统的校正采用PID控制器,参数的整定采用高桥整定法。,参数如下:=1.5156e-006,=4.2094e-010,=0.0011。5建立Simulink仿真模块6实验结果及分析