1、本门课程的目标本门课程的目标n熟悉一个概念n掌握一种方法n精通一项技术n会用一款软件结课方式结课方式n考试+作业+上机n考试:开卷(60%)n作业+上机(40%)参考文献参考文献n1.计算机仿真技术基础,刘瑞叶等编,电子工业出版社n2.系统仿真概论,肖田元等编,清华大学出版社n3.现代仿真技术与应用,康风举编,国防工业出版社n4.先进仿真技术与仿真环境,熊光楞编,国防工业出版社n5.系统仿真与虚拟现实,吴启迪主编,化学工业出版社n6.MATLAB 7.0从入门到精通,刘保柱等编,人民邮电出版社第1章 概述Three topics to be discussedThree topics to b
2、e discussedWWHWhy to learnWhat to learnHow to learn理解并掌握仿真的概念、分类、作用;了解计算机仿真的发展历程、应用领域及目前研究、应用现状;熟悉掌握计算机数字仿真的基本过程。本章学习要求本章学习要求1.1 仿真的基本概念及其分类1.1.1 系统仿真的定义、分类及作用1.1.2 计算机仿真的定义及其分类1.2 计算机仿真的发展及其应用领域1.3 计算机数字仿真的基本过程1.4 先进仿真技术1.1 仿真(simulation)的基本概念及其分类n1.1.1 系统仿真的定义、分类及其作用n1)系统仿真的定义n系统仿真是通过对系统模型的某种操作,研究
3、一个存在的或设计中的系统。简言之,系统仿真是对系统模型的试验,即在仿真中,系统的模型在一定的试验条件下被行为产生器驱动,产生模型行为。2)系统仿真的分类-系统模型分类方式物理仿真系统模型为物理模型:实物模型(PM)。数字仿真系统模型为数字模型:数学模型和几何模型(MM&GM)。半物理仿真既有物理模型也有数字模型。3)系统仿真的作用优化系统设计。在复杂的系统建立以前,能够通过改变仿真模型结构和调整参数来优化系统设计(MM)。对系统或系统的某一部分进行性能评价(MM)。节省费用。重现系统故障,以便判断故障产生的原因(GM)。可以避免试验的危险性。进行系统抗干扰性能的分析研究(MM)。训练系统操作人
4、员(GM)。系统仿真能为管理决策和技术决策提供依据。正因为仿真技术对国防建设、工农业生产及科学研究均具有极大的应用价值,所以,仿真技术被美国国家关键技术委员会于1991年确定为影响美国国家安全及繁荣的22项关键技术之一。本章目录1.1.2 计算机仿真(Computer Simulation)的定义及其分类n1)计算机仿真的定义n计算机仿真是指应用几何和性能相似原理,构成数字模型,在计算机上对系统数字模型进行某种操作。计算机仿真又称为数字仿真。根据计算机分类 模拟计算机仿真、数字计算机仿真、模拟数字混合仿真 根据仿真时钟与实际时钟的比例关系 实时仿真、欠实时仿真、超实时仿真 根据系统模型的特性
5、连续系统仿真、离散事件系统仿真本章目录计算机仿真的分类1.2 计算机仿真的发展计算机仿真的发展 及其应用领域及其应用领域1)计算机仿真的发展第一阶段:模拟仿真技术发展阶段,1950年以前。动因:火炮与飞行控制动力学系统的研究。第二阶段:混合仿真技术发展阶段,5060年代。动因:洲际导弹和宇宙飞船飞行姿态及轨道控制动力学的研究。第三阶段:数字仿真技术发展阶段,70年代以后。模拟机混合机数字机计算机仿真的应用类型:系统设计器 对尚未有的系统进行设计时采用仿真技术;系统分析器 对已有系统进行分析时采用仿真技术;系统预测器 在系统运行前,利用仿真模型作为预测器,向用户提供系统运行起来后,可能产生什么现
6、象,以便用户修订计划或决策;系统观测器 在系统运行时,利用仿真模型作为观测器,给用户提供过去、现在甚至未来的信息,以便用户实时作出正确的决策,比如利用仿真技术进行故障分析和故障处理;系统训练器 利用仿真模型作为训练器,训练系统操作人员或管理人员2)计算机仿真的应用领域 从历史上看,仿真技术首先被应用于那些在实际系统进行试验有危险、花费巨大的领域,比如:航空、航天、武器系统等,以后逐渐扩大到虽然可在实际系统上进行试验,但花费较大、耗时较长、不大方便的一些领域,比如:冶金、化工、电力等;近十几年来,则进一步扩大到制造、交通、环境、生态、生物、石油等领域。综观仿真技术应用领域逐渐扩大的历史,可以得到
7、以下几个有意义的结论:仿真技术在应用上的安全性一直是被采用的最主要原因;仿真技术在应用上的经济性也是被采用的十分重要的原因;仿真技术一般是从学院式的局部应用逐步走向全面应用,其标志是对某领域的仿真应用而设立的仿真中心;仿真技术在每一阶段都有一个比较成熟的应用领域;根据仿真的应用范围,研制和开发了一大批仿真产品,如各种仿真语言及仿真软件包,各种训练仿真器等等。为了推广仿真技术的应用,几乎所有的仿真语言都推出了PC版。计算机仿真应用视频1.3 计算机数字仿真的基本过程n为了使大家对计算机数字仿真有一个全面的了解,让我们用一个简单的例子来予以说明。卓越的操控性、稳定性和舒适性汽车悬挂系统n问题:n如
8、何分析研究并保证设计出或设计中的悬架系统具有这种卓越性能?研究方法:1 理论方法2 实验方法3 仿真方法仿真技术与物理实验、理论研究的对比仿真技术物理实验理论研究可能性只要能建立系统模型,就能进行系统尚未建立,则不可能;有的自然系统实验周期太长,也不可能有的系统无法建立解析模型,因此,不可能利用解析方法安全性无危险有危险(人身、设备)无危险经济性花费不多费用很大花费少耗时性中等长短准确性可以做到很准确十分准确要做较多假设,有较大误差方便性可以做到十分方便受现场限制,不方便方便质量弹簧阻尼系统其中:X 状态向量 A 系统矩阵 B 输入矩阵 f(t)输入变量 C 输出矩阵 D 直接转移矩阵输出方程
9、状态方程DfCBfAtfkyByMyXYXX)(001101021DCMBMBMkAxxX21212101f1010 xxYMxxMBMkxxn根据研究的目的编制试验方案:n1.改变M、B、K,保持f(t)不变,研究系统结构参数对悬挂系统动态行为的影响;n2.改变f(t),系统结构参数保持不变,研究系统所受激振力对悬挂系统动态行为的影响;n最后根据仿真试验结果,给出相关结论。建立仿真模型n应用编程语言n应用仿真语言或环境n应用欧拉法、梯形法或RK法等仿真算法,将上述数学模型转化为便于编程的仿真模型:2,1)(,(),(11ittxtgxxxtgdtdxnninnininii应用编程语言应用编程
10、语言应用仿真语言或环境n应用ADAMSn应用MATLAB计算机仿真的一般步骤1、确定系统分析目标,进行系统分析,建立系统数学模型2、在系统数学模型的基础上,建立系统的仿真模型3、编程或选用仿真语言4、制定仿真实验方案,进行仿真实验5、分析仿真实验结果,修改模型本章目录给点小提示n一、拉普拉斯变换n1.拉氏变换的定义ja:sdtetftfLsFst其中0)()()(n2.拉氏变换的几个定理n线性定理n衰减定理n延时定理n相似定理n微分定理n积分定理n终值定理n初值定理n卷积定理连续系统仿真)()(,),()(skFtkfLksFtfL则为常数若)()()()()(),()(),()()(sGsH
11、tfLsGtgLsHthLtgthtf则且若)()(sFeatfLas)()(asFtfeLat衰减定理 相似定理)()(asaFfLat微分定理)1()0()2()0()1()0(22)0()()(,)0()()(,)0()()(,nnnndtddtddtdfsffssFstfLnfsfsFstfLfssFtfLnn有阶导数对于有对于二阶导数有对于一阶导数积分定理tssFdfL0)()(终值定理)(lim)(lim,)(lim,)(0)(ssFtftfftfsttt则存在且都符合拉氏变换和若初值定理)(lim)(lim,)(lim,700ssFtftfstt则存在且条件同卷积定理todtgf
12、tgtfsGsFtgtfL)()()(*)()()()(*)(其中n二、拉氏逆变换n直接求解法、查表法(系数比较法、留数法)0,)(21)()(1tja:sdsesFjtfsFLjajast其中n三、应用拉氏变换求解微分方程n例:用拉氏变换解微分方程n初始条件:teyyy32 1,0)0()0(yyn四、控制系统的传递函数n1.定义n2.典型环节的传递函数n比例环节n微分环节n积分环节n惯性环节n二阶环节n延时环节1.定义)()()(sXsXsGio系统输入的拉氏变换系统输出的拉氏变换)()(0sXsXi比例环节微分环节积分环节KsGtKxtxio)()()(TssGTtxdttdxoi)()
13、()(sTsGdxTtxtio)()()(0惯性环节二阶环节延时环节1)(TsKsGKxxTiodtdxo1)(02022sTTsKsGKxxTTiodtdxdtxdoosioesGtxtx)()()(第第2章章 连续系统的数字仿真连续系统的数字仿真对于一个集中参数的连续动态系统,利用我们学过的基础理论知识和专业知识所能直接建立的数学模型形式有哪些呢?ubdtudbdtudbyadtdyadtydadtydammmmmnnnnnn 111011110高阶微分方程高阶微分方程传递函数传递函数nnnnmmmmaSaSaSabSbSbSbSUSY 11101110)()(上述模型不能在数字机上直接求
14、解!那么能够在数字计算机上直接求解的数学模型形式又是什么样的呢?)(,(11nnnnnnttytfyy差分方程差分方程上述方程形式由何而来的?一阶微分方程一阶微分方程),(ytfdtdy仿真模型数值积分算法怎么来?动态方程BuAXXCXy 高阶微分方程传递函数模型变换高阶微分方程高阶微分方程传递函数传递函数两次模型变换等价等价变换变换近似近似变换变换2 21 1 连续系统的数学模型连续系统的数学模型ubdtudbdtudbyadtdyadtydadtydammmmmnnnnnn 111011110njmjjjmjjnupbypa00njjjnmjjjmpapbuy00引进算子dtdp 1高阶微
15、分方程2传递函数)()()()()()()()()(111012211SUbSSUbSUSbSUSbSYaSSYaSYSaSYSaSYSmmmmnnnnn )()()(11101110SGaSaSaSabSbSbSbSUSYnnnnmmmm 3状态空间描述1由微分方程导出状态空间表达式)(01111tubyadtdyadtydadtydnnnnnn 引进如下状态变量:假定一个连续系统可用下式来描述 )(0112111122123121tubxaxaxadtydxdtydxxdtydxxxdtdyyxxyxnnnnnnnnnnubxxxaaaaxxxXnnnnn02112121000100001
16、0Xy001nxxxX21令 Aaaaannn12101000010Bb000C001则有BuAXXCXy 例 系统的微分方程式 uyyyy67416 设状态变量为321,xxx uxxxxxxX60064171000103213212由传递函数导出状态空间表达式 1)并联程序法nnnnmmmasasasbsbsbsUsYsG111110)()()((mn)若G(s)有n个单极点 n,21nniisKsKsKsKsUsYsG2211)()()(nissGKisii,2,1,)()(引进n个状态变量 nxxx,21)()(sXssUii令)()()(sUsXsSXiiiuxxiii)()()()
17、(2211sXKsXKsXKsYnnnnxKxKxKy2211uxxxxxxXnnn111000000212121nnxxxKKKy2121例)()(611632)(23sUsYsssssG3,2,1321321)(321sKsKsKsG21)1()3)(2)(1(3211ssssssK1)2()3)(2)(1(3222ssssssK23)3()3)(2)(1(3233ssssssKuxxxxxxX11130002000132132132123121xxxy2)串联程序法nmmmssbszsszsszssUsYsG1)()()(102211n,21为G(s)的单极点 mzzz,21为G(s)的
18、零点 nmmmssbszsszssUszssY1)()(102211YYsYYsbYYszsYYszsYYszsUYnnnnmmmmmmm,1,1101122121111分子、分母均为一阶 设第i个子系统的表达式为 mi 1111iiiiiiiiiYYszYYszs11iiiiiiYszYY 1,iiiiiiiYszXXxL令1iiiiiYzXs1iiiiiiyzxx1iiiiiiyzxxiiiXYY1iiixyy12分子为常数 第j个子系统,njm10jjjYYsb10jjjYsbYjjjXYsb10令10)(jjjYbsX10jjjjybxxjjXY 例)()(611632)(23sUsY
19、sssssG31221611632)(2323sssssssssG子系统1 uxx2111uxy11子系统2 uxxxuxyxx222)(2222211212222xy 子系统3 3223333xxyxx3xy uxxxxxx0231002200121321321321100 xxxy差分方程n,1,ihxxiji1jif22 在数字机上进行仿真的仿真模型在数字机上进行仿真的仿真模型 23 数值积分法数值积分法设 f(t,x)dtdx初始条件 00 x)x(tf(t,x)dtdxf(t,x)dtdx ttxxf(t,x)dtdx00ttf(t,x)dtxx001001ttf(t,x)dtx)x
20、(t1tt 100010tt)(t)t)(t,xf(tf(t,x)t)(t,x(tf(txx)x(t0100011?f(t,x)dttt0欧拉公式 231 欧拉法(折线法))(tnnnnnnnx)t)(t,xf(txx111n几何意义(折线)注:将图中的y换成xt)f(ff(t,x)dttt101021),x(tf(t),f,x(tf(t,fttt11100001一般),xf(t),x(f(thxxnnnnnnn11121,xf(t),xhf(txx,xf(t),xhf(txx),xhf(txx(k)nnnnn)(kn)(nnnnn)(nnnn)(n111101111012121232 梯形法
21、),xf(t),xhf(txx),xhf(txx)(nnnnnnnnn)(n01110121梯形公式 233 龙格库塔法(Runge-Kutta)00 x)x(tf(t,x)dtdxx=x(t)设000011100110102001221101xxttxxtthKbxfhbtf),xf(th)Kbh,xbf(tK),xf(tK)hKaK(axx泰勒级数展开000000022xxttxxttttttttxfftfdtdxxftfdtxd002000121xxtt)hxfftf()h,xf(txx222010021hdtxdhdtdxxxtttt在 0t处展开成泰勒级数,只保留至 2h222010
22、021hdtxdhdtdxxxtttt)x,(tfdtdxx=x(t)2122120021011100200101hxffbahtfba)h,x)f(ta(axhKbxfhbtf),xhf(ta),xhf(taxx2111221baaah)Kh,xf(tK),xf(tK)hK(Kxx1002001210121二阶龙格库塔法,即为梯形公式 002000121xxtt)hxfftf()h,xf(txxh)Kh,xf(tK)K,xf(tK)K,xf(tK),xf(tK)KKK(Khxxhhhh3004220203120202001432101226四阶龙格库塔公式:一阶微分方程四阶龙格库塔法的c语言
23、实现(宏定义)#include#include#define F(t,x)$void main(void)float t0,x0,k1,k2,k3,k4,t1,x1,h;int n,i;printf(“Input t0 x0 h n=n”);scanf(“%f%f%f%d”,&t0,&x0,&h,&n);printf(“%15s%15s%15sn”,“n ”,“t ”,“x ”);printf(“%15s%15.6f%15.6fn”,“0 ”,t0,x0);for(i=1;i=n;i+)t1=t0+h;k1=F(t0,x0);k2=F(t0+h/2,x0+h*k1/2);k3=F(t0+h/2
24、,x0+h*k2/2);k4=F(t0+h,x0+h*k3);y1=x0+h*(k1+2*k2+2*k3+k4)/6;printf(“%15d%15.6f%15.6fn”,i,t1,x1);t0=t1;x0=x1;一阶微分方程四阶龙格库塔法的c语言实现(函数)#include#include float f(float,float);void main(void)float t0,x0,k1,k2,k3,k4,t1,x1,h;int n,i;printf(“Input x0 x0 h n=n”);scanf(“%f%f%f%d”,&t0,&x0,&h,&n);printf(“%15s%15s%
25、15sn”,“n ”,“t ”,“x ”);printf(“%15s%15.6f%15.6fn”,“0 ”,t0,x0);for(i=1;i=n;i+)t1=t0+h;k1=f(t0,x0);k2=f(t0+h/2,x0+h*k1/2);k3=f(t0+h/2,x0+h*k2/2);k4=f(t0+h,x0+h*k3);y1=x0+h*(k1+2*k2+2*k3+k4)/6;printf(“%15d%15.6f%15.6fn”,i,t1,x1);t0=t1;x0=x1;float f(float t,float x)float x1;x1=$;return x1;24 四阶龙格库塔法算法通式u
26、bbbxxxaaaaaaaaaaaaxxxXnnnnnnnnnnn11213212232221113121121ubxaxaxafininiii2211(i=1,2,n)22(6432101iiiiiiKKKKhxx)()(,(0002201100020101tubxaxaxatuxxxtfKininiinii)(,(201202120211201202hnhnhhhiituKxKxKxtfK)(,(202202220212201203hnhnhhhiituKxKxKxtfK)()()()()(,(03023022130110302302130104htubhKxahKxahKxahtuhKx
27、hKxhKxhtfKinniniinnii令),0(22hhhhj),2,1(00niKi)()()()()(,(01012j02211011010120211010jinjjninjijjijnjjnjjjjjiijhtubKhxaKhxaKhxahtuKhxKhxKhxhtfK(i=1,2,n;j=1,2,3,4)2.5 仿真举例-机械谐振系统计算机仿真)(tfkyByMy21212101f1010 xxYMxxMBMkxxMfMBMkxxxxx21221MfMBMkxxfxf2122112j0212j0221202011)(),(jjijjjjKhxKhxaKhxhtfKMfjMBjjM
28、kjijijjijjjjjjjKhxKhxhtubKhxaKhxahtuKhxKhxhtfK)()()()()()(,(12j021101012j02211011012021101022MfMBMkxxKxK0201210211MfhMBhMkh)K(x)K(xKKxK2120211201222120212MfhMBhMkh)K(x)K(xKKxK2220212201232220213MfMBMk)hK(x)hK(xKhKxK2302130124230214)22(6)22(6423222120212413121110111KKKKhxxKKKKhxxn根据研究的目的编制试验方案:n1.改变M
29、、B、K,保持f(t)不变,研究系统结构参数对谐振系统动态行为的影响;n2.改变f(t),系统结构参数保持不变,研究系统所受激振力对谐振系统动态行为的影响;选择编程语言,编制仿真程序;仿真程序调试;仿真试验运行;仿真结果分析(正确性分析、精度分析、可靠性分析、稳定性分析等)仿真系统VV&A。作业1(15%)用c语言编制欧拉法、梯形法和四阶RK法算法程序,求解下面方程并将计算结果与解析解比较之。1)0()10(2yxyxyy解析解:xy21第3章 连续系统离散相似法数字仿真 BUAXX连续系统的离散化)()()0()(sBUsAXXssX)()0()()(sBUXsAXssX)()0()()(s
30、BUXsXAsI)()()0()()(11sBUAsIXAsIsX令)()(11tAsIL系统的状态转移矩阵)()()0()()(sBUtLXtLsX)(*)()0()()(tBUtXttX注:)()()(*)(sBUtLtBUtLtdBUttBUtsBUtLL01)()()(*)()()(tdBUtXttX0)()()0()()(BUAXXAteAsIL11)(ttAAtdBUeXetX0)()()0()(系统离散化后,对于k及k+1两个依此相连的采样瞬时,有 kTkTAAkTdBUeXekTX0)()()0()(TkTkATkAdBUeXeTkX)1(0)1()1()()0()1()()1
31、(kTXeTkXATateasL11TkkTTkAkTkTAATTkTkAAkTATTkAATdBUedBUeedBUeXeeXekTXeTkX)1()1(0)()1(0)1()1()()()()0()0()()1(TkkTTkAATdBUekTXeTkX)1()1()()()1(由于上式右端与积分k无关,则令k=0,而k与k+1之间)()(kUU)T()(0)(0)(kUBdedBUeTTATTA)(TeAT)()(00)(TBdTBdemTTTA)()()()1(kTUTkTXeTkXmAT即)()()()()1(nUTnXTnXm这就是一个连续系统离散化的状态方程的解,其中)()(11A
32、sILeTATTmBdTT0)()(例 已知线性系统的状态方程为:CXYBuAXX其中:1100A0KB10C解:)(11AsILT11011001001sssAsI)1(ssAsI s101)1(11sssAsI)(10111TeeAsILTTTTTTTTTmeTKKTdeKKdKeeBdTT110101)()(0)(0)()(0)()()()()1(nUTnXTnXm)(1)()(101)1()1(2121nueTKKTnxnxeenxnxTTT)(1)()()1()1()()()1(21211nueTKnxenxenxnKTunxnxTTT作业2(25%)应用四阶RK算法,编制机械谐振系统仿真程序,研究在正弦载荷作用下系统弹性系数与阻尼系数对系统运动参数的影响。假定M=200kg,正弦载荷幅值500N,角频率为1,初相位为0。实现方式:c语言版和MATLAB版。