【文档说明】计算机仿真技术基础计算机仿真技术课件.pptx,共(100)页,1.815 MB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-76466.html
以下为本文档部分文字说明:
计算机仿真技术基础计算机仿真技术课件结课方式•考试+作业+上机•考试:开卷(60%)•作业+上机(40%)参考文献•1.计算机仿真技术基础,刘瑞叶等编,电子工业出版社•2.系统仿真概论,肖田元等编,清华大学出版社•3.现代仿真技术与应用,
康风举编,国防工业出版社•4.先进仿真技术与仿真环境,熊光楞编,国防工业出版社•5.系统仿真与虚拟现实,吴启迪主编,化学工业出版社•6.MATLAB7.0从入门到精通,刘保柱等编,人民邮电出版社第1章
概述ThreetopicstobediscussedWWHWhytolearnWhattolearnHowtolearn理解并掌握仿真的概念、分类、作用;了解计算机仿真的发展历程、应用领域及目前研究、应用现状;熟悉掌握计算机数字仿真的基本过程。本章学习要求•1.1仿真的基本概念及其分类
•1.1.1系统仿真的定义、分类及作用•1.1.2计算机仿真的定义及其分类•1.2计算机仿真的发展及其应用领域•1.3计算机数字仿真的基本过程•1.4先进仿真技术1.1仿真(simulation)的基本概念及其分
类•1.1.1系统仿真的定义、分类及其作用•1)系统仿真的定义•系统仿真是通过对系统模型的某种操作,研究一个存在的或设计中的系统。简言之,系统仿真是对系统模型的试验,即在仿真中,系统的模型在一定的试验条件下被行为产生器驱动,产生模型行为。2)系统仿真的分类--系统模型分
类方式①物理仿真系统模型为物理模型:实物模型(PM)。②数字仿真系统模型为数字模型:数学模型和几何模型(MM&GM)。③半物理仿真既有物理模型也有数字模型。3)系统仿真的作用⑴优化系统设计。在复杂的系统建立以前,能够通过改变仿真模型结构和调整参数来
优化系统设计(MM)。⑵对系统或系统的某一部分进行性能评价(MM)。⑶节省费用。⑷重现系统故障,以便判断故障产生的原因(GM)。⑸可以避免试验的危险性。⑹进行系统抗干扰性能的分析研究(MM)。⑺训练系统操作人员(GM)。⑻系统仿真能为管理决策和技术决策
提供依据。正因为仿真技术对国防建设、工农业生产及科学研究均具有极大的应用价值,所以,仿真技术被美国国家关键技术委员会于1991年确定为影响美国国家安全及繁荣的22项关键技术之一。本章目录1.1.2计算机仿真(ComputerSimulation)的定义及其分类•1)计算机仿真的定义•计
算机仿真是指应用几何和性能相似原理,构成数字模型,在计算机上对系统数字模型进行某种操作。计算机仿真又称为数字仿真。①根据计算机分类模拟计算机仿真、数字计算机仿真、模拟数字混合仿真②根据仿真时钟与实际时钟的比例关系实时仿真、欠实时
仿真、超实时仿真③根据系统模型的特性连续系统仿真、离散事件系统仿真本章目录⒉计算机仿真的分类1.2计算机仿真的发展及其应用领域1)计算机仿真的发展第一阶段:模拟仿真技术发展阶段,1950年以前。动因:火炮与飞行控制动力学系统的研究。第二阶段:混合仿真技术发展阶段,50
~60年代。动因:洲际导弹和宇宙飞船飞行姿态及轨道控制动力学的研究。第三阶段:数字仿真技术发展阶段,70年代以后。模拟机—混合机—数字机计算机仿真的应用类型:①系统设计器对尚未有的系统进行设计时采用仿真技术;②系统
分析器对已有系统进行分析时采用仿真技术;③系统预测器在系统运行前,利用仿真模型作为预测器,向用户提供系统运行起来后,可能产生什么现象,以便用户修订计划或决策;④系统观测器在系统运行时,利用仿真模型作为观测器,给用户提供过去、现在甚至
未来的信息,以便用户实时作出正确的决策,比如利用仿真技术进行故障分析和故障处理;⑤系统训练器利用仿真模型作为训练器,训练系统操作人员或管理人员2)计算机仿真的应用领域从历史上看,仿真技术首先被应用于那些在实际系统进行试验有危险、花费巨大的领
域,比如:航空、航天、武器系统等,以后逐渐扩大到虽然可在实际系统上进行试验,但花费较大、耗时较长、不大方便的一些领域,比如:冶金、化工、电力等;近十几年来,则进一步扩大到制造、交通、环境、生态、生物、石油等领域。综观仿
真技术应用领域逐渐扩大的历史,可以得到以下几个有意义的结论:①仿真技术在应用上的安全性一直是被采用的最主要原因;②仿真技术在应用上的经济性也是被采用的十分重要的原因;③仿真技术一般是从学院式的局部应用逐步走向全面应用,其标志是对某领域的仿真应用而设立的
仿真中心;④仿真技术在每一阶段都有一个比较成熟的应用领域;⑤根据仿真的应用范围,研制和开发了一大批仿真产品,如各种仿真语言及仿真软件包,各种训练仿真器等等。⑥为了推广仿真技术的应用,几乎所有的仿真语言都推出了PC版。计算机仿真应用视频1.3计算机数字仿真的基
本过程•为了使大家对计算机数字仿真有一个全面的了解,让我们用一个简单的例子来予以说明。卓越的操控性、稳定性和舒适性汽车悬挂系统•问题:•如何分析研究并保证设计出或设计中的悬架系统具有这种卓越性能?研究方法:1理论方法2实验方法3
仿真方法仿真技术与物理实验、理论研究的对比仿真技术物理实验理论研究可能性只要能建立系统模型,就能进行系统尚未建立,则不可能;有的自然系统实验周期太长,也不可能有的系统无法建立解析模型,因此,不可能利用解析方法安全性无危险有危险(人身、设备)无危险经济性花费不多费
用很大花费少耗时性中等长短准确性可以做到很准确十分准确要做较多假设,有较大误差方便性可以做到十分方便受现场限制,不方便方便质量弹簧阻尼系统其中:X—状态向量A—系统矩阵B—输入矩阵f(t)—输入变量C—输出矩阵D—直接转移矩阵输出方程状态方程DfCBfAtfkyByMyXYXX
)(''"0011010'2'1'DCMBMBMkAxxX2121'2'101f1010xxYMxxMBMkxx•根据研究的目的编制试验方案:•1.改变M、B、K,保持f(t)不变,研究系统结构参数对悬挂系统动态行为的影响;•2
.改变f(t),系统结构参数保持不变,研究系统所受激振力对悬挂系统动态行为的影响;•最后根据仿真试验结果,给出相关结论。建立仿真模型•应用编程语言•应用仿真语言或环境•应用欧拉法、梯形法或R—K法等仿真算法,将上述数学模型转化为便于编程的仿真模型:2,1))(,(),(11
ittxtgxxxtgdtdxnninnininii应用编程语言应用仿真语言或环境•应用ADAMS•应用MATLAB计算机仿真的一般步骤1、确定系统分析目标,进行系统分析,建立系统数学模型2、在系统数学模型的基础上,建立系统的仿真模型3、
编程或选用仿真语言4、制定仿真实验方案,进行仿真实验5、分析仿真实验结果,修改模型本章目录给点小提示•一、拉普拉斯变换•1.拉氏变换的定义ja:sdtetftfLsFst其中0)()]([)(•2.拉氏变换的几个定理•①线性定理•②衰减定理•③延时定理•
④相似定理•⑤微分定理•⑥积分定理•⑦终值定理•⑧初值定理•⑨卷积定理连续系统仿真)()]([,),()]([skFtkfLksFtfL则为常数若①线性定理)()()]([)()]([),()]([),()()(sGsHtfLsGtgLsHthLtgthtf则且若返
回)()]([sFeatfLas)()]([asFtfeLat②衰减定理③延时定理④相似定理)()]([asaFfLat返回⑤微分定理)1()0()2()0()1(')0(22)0()()]([,)0()()]([,)0()()]([,
nnnndtddtddtdfsffssFstfLnfsfsFstfLfssFtfLnn有阶导数对于有对于二阶导数有对于一阶导数GO⑥积分定理tssFdfL0)(])([⑦终值定理)(lim)(lim,)(lim,)(0')(ssFtftfftfsttt则存在且都符合拉
氏变换和若返回⑧初值定理)(lim)(lim,)(lim,700ssFtftfstt则存在且条件同⑨卷积定理todtgftgtfsGsFtgtfL)()()(*)()()()](*)([其中•
二、拉氏逆变换•直接求解法、查表法(系数比较法、留数法)0,)(21)()]([1tja:sdsesFjtfsFLjajast其中•三、应用拉氏变换求解微分方程•例:用拉氏变换解微分方程•
初始条件:teyyy32'''1,0)0(')0(yy•四、控制系统的传递函数•1.定义•2.典型环节的传递函数•①比例环节•②微分环节•③积分环节•④惯性环节•⑤二阶环节•⑥延时环节1.定义)()()(sXsXsGio返回系统输入的拉氏变换系统输出的拉氏变换)()(
0sXsXi①比例环节②微分环节③积分环节KsGtKxtxio)()()(TssGTtxdttdxoi)()()(sTsGdxTtxtio)()()(0返回④惯性环节⑤二阶环节⑥延时环节1)(TsKsGKxxTiodtdx
o1)(02022sTTsKsGKxxTTiodtdxdtxdoosioesGtxtx)()()(返回第2章连续系统的数字仿真对于一个集中参数的连续动态系统,利用我们学过的基础理论知识和专业知识所能直接建立的数学模型形式有哪些呢?ubdtudbdtu
dbyadtdyadtydadtydammmmmnnnnnn111011110高阶微分方程传递函数nnnnmmmmaSaSaSabSbSbSbSUSY11101110)()(上述模型不能在数字机
上直接求解!那么能够在数字计算机上直接求解的数学模型形式又是什么样的呢?))(,(11nnnnnnttytfyy差分方程上述方程形式由何而来的?一阶微分方程),(ytfdtdy仿真模型数值积分算法怎么来?动态方程BuAXXCXy高
阶微分方程传递函数模型变换高阶微分方程传递函数差分方程两次模型变换动态方程等价变换近似变换2.1连续系统的数学模型ubdtudbdtudbyadtdyadtydadtydammmmmnnnnnn1
11011110njmjjjmjjnupbypa00njjjnmjjjmpapbuy00引进算子dtdp1°高阶微分方程2°传递函数)()()()()()()()()(111012211SUbSSUbSUSbSUSbSYaSSYaSYSaSYSaSYSmmm
mnnnnn)()()(11101110SGaSaSaSabSbSbSbSUSYnnnnmmmm3°状态空间描述1.由微分方程导出状态空间表达式)(01111tubyadtdyadt
ydadtydnnnnnn引进如下状态变量:假定一个连续系统可用下式来描述)(0112111122123121tubxaxaxadtydxdtydxxdtydxxxdtdyyxxyxnnnnnnnnnnu
bxxxaaaaxxxXnnnnn021121210001000010Xy001nxxxX21令Aa
aaannn12101000010Bb000C001则有BuAXXCXy例系统的微分方程式uyyyy67416设状态变量为321,,xx
xuxxxxxxX60064171000103213212.由传递函数导出状态空间表达式1)并联程序法nnnnmmmasasasbsbsbsUsYsG
111110)()()((m<n)若G(s)有n个单极点n,,,21nniisKsKsKsKsUsYsG2211)()()(nissGKisii,,2,1,)()
(引进n个状态变量nxxx,,,21)()(sXssUii令)()()(sUsXsSXiiiuxxiii)()()()(2211sXKsXKsXKsYnnnnxKxKxKy2211uxxxxx
xXnnn111000000212121nnx
xxKKKy2121例)()(611632)(23sUsYsssssG3,2,1321321)(321sKsKsKsG21)1()3)(2)(1(3211ss
ssssK1)2()3)(2)(1(3222ssssssK23)3()3)(2)(1(3233ssssssKuxxxxxxX11130002
000132132132123121xxxy2)串联程序法nmmmssbszsszsszssUsYsG1)()()(102211n
,,,21为G(s)的单极点mzzz,,,21为G(s)的零点nmmmssbszsszssUszssY1)()(102211YYsYYsbYYszsYYszsYYszsUYnnn
nmmmmmmm,1,,,,,,1101122121111°分子、分母均为一阶设第i个子系统的表达式为mi1111iiiiiiiiiYYszYYszs11iiiiiiYszYY1,iiii
iiiYszXXxL令1iiiiiYzXs1iiiiiiyzxx1iiiiiiyzxxiiiXYY1iiixyy12°分子为常数第j个子系统,njm10
jjjYYsb10jjjYsbYjjjXYsb10令10)(jjjYbsX10jjjjybxxjjXY例)()(611632)(23sUsYsssssG
31221611632)(2323sssssssssG子系统1uxx2111uxy11子系统2uxxxuxyxx222)(2222211212222xy子系统33223333xxyxx3xyuxxxxxx
0231002200121321321321100xxxy差分方程n,1,ihxxiji1jif2.2在数字机上进行仿真的仿真
模型2.3数值积分法设f(t,x)dtdx初始条件00x)x(tf(t,x)dtdx→f(t,x)dtdx→ttxxf(t,x)dtdx00→ttf(t,x)dtxx00→1001ttf(t,x)dtx)x(t1tt100010tt)(t)t)(t,xf(tf
(t,x))t))(t,x(tf(txx)x(t0100011?f(t,x)dttt0欧拉公式2.3.1欧拉法(折线法)↓)(tnnnnnnnx)t)(t,xf(txx111•几何意义(折线)注:将图中的y换成xt)f(ff(t,x)d
ttt101021)),x(tf(t)),f,x(tf(t,fttΔt11100001一般)],xf(t),x[(f(thxxnnnnnnn11121],xf(t),xh[f(txx],xf(t),xh[f(txx),xhf(txx(k
)nnnnn)(kn)(nnnnn)(nnnn)(n1111011110121212.3.2梯形法)],xf(t),xh[f(txx),xhf(txx)(nnnnnnnnn)(n01110121梯形公式2.3.3龙格—库塔法(Run
ge-Kutta)00x)x(tf(t,x)dtdxx=x(t)设000011100110102001221101xxttxxtthKbxfhbtf),xf(th)Kbh,xbf(tK),xf(tK)hKaK(axx
泰勒级数展开000000022xxttxxttttttttxfftfdtdxxftfdtxd002000121xxtt)hxfftf()h,xf(txx
222010021hdtxdhdtdxxxtttt在0t处展开成泰勒级数,只保留至2h222010021hdtxdhdtdxxxtttt)x,(tfdtdxx=x(t)212212
0021011100200101hxffbahtfba)h,x)f(ta(axh]Kbxfhbtf),xh[f(ta),xhf(taxx2111221
baaah)Kh,xf(tK),xf(tK)hK(Kxx1002001210121二阶龙格—库塔法,即为梯形公式002000121xxtt)hxfftf()h,xf(txx
h)Kh,xf(tK)K,xf(tK)K,xf(tK),xf(tK)KKK(Khxxhhhh3004220203120202001432101226四阶龙格—库塔公式:一阶微分方程四阶龙格—库塔法的c语言实
现(宏定义)#include<stdio.h>#include<math.h>#defineF(t,x)$$$$$$$$voidmain(void){floatt0,x0,k1,k2,k3,k4,t1,x1,h;intn,i;printf(“Inputt0x0hn=\n”);scanf(“%f
%f%f%d”,&t0,&x0,&h,&n);printf(“%15s%15s%15s\n”,“n”,“t”,“x”);printf(“%15s%15.6f%15.6f\n”,“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.6f\n”,i,t1,x1);t0=t1;x0=x1;}}一阶微分方程四阶龙格—库塔法的c语言实现(函数)#include<stdio.h>#include<math.h>floatf(float,float);
voidmain(void){floatt0,x0,k1,k2,k3,k4,t1,x1,h;intn,i;printf(“Inputx0x0hn=\n”);scanf(“%f%f%f%d”,&t0,&x0,&h,&n);printf(“%15s%15s%15s\n”,“n”,“t”,“x”);p
rintf(“%15s%15.6f%15.6f\n”,“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);k
3=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.6f\n”,i,t1,x1);t0=t1;x0=x1;}}floatf(floatt
,floatx){floatx1;x1=$$$$$$;returnx1;}2.4四阶龙格—库塔法算法通式ubbbxxxaaaaaaaaaaaaxxxXnnnnnnnnnnn1121
3212232221113121121ubxaxaxafininiii2211(i=1,2,…,n))22(6432101iiiiiiKKKKhxx)())(,,,,,(0002201100020101tubxa
xaxatuxxxtfKininiinii))(,,,,,(201202120211201202hnhnhhhiituKxKxKxtfK))(,,,,,(202202220212201203hnhnhhhiituKxKxKxtfK)()()()()
)(,,,,,(03023022130110302302130104htubhKxahKxahKxahtuhKxhKxhKxhtfKinniniinnii令),,,0(22hhh
hj),,2,1(00niKi)()()()())(,,,,,(01012j02211011010120211010jinjjninjijjijnjjnjjjjjiijhtubKhxaKhxaKhxahtuKhxKhxKhxhtfK
(i=1,2,…,n;j=1,2,3,4)2.5仿真举例--机械谐振系统计算机仿真)('"tfkyByMy2121'2'101f1010xxYMxxMBMkxxMfMBMk''xxxxx
21221MfMBMkxxfxf2122112j0212j0221202011)(),(jjijjjjKhxKhxaKhxhtfKMfjMBjjMkjijijjijjjjjjjKhxKhxhtubKhxaKhxahtuKhxKhx
htfK)()()()()())(,,,(12j021101012j02211011012021101022MfMBMkxxKxK0201210211M
fhMBhMkh)K(x)K(xKKxK2120211201222120212MfhMBhMkh)K(x)K(xKKxK2220212201232220213MfMBMk)h
K(x)hK(xKhKxK2302130124230214)22(6)22(6423222120212413121110111KKKKhxxKKKKhxx•根据研究的目的编制试验方
案:•1.改变M、B、K,保持f(t)不变,研究系统结构参数对谐振系统动态行为的影响;•2.改变f(t),系统结构参数保持不变,研究系统所受激振力对谐振系统动态行为的影响;选择编程语言,编制仿真程序;仿真程序调试;仿真试验运行;仿真结果分析(正确性分析、精度分析、可靠性分析、稳定性分析等)仿真系
统VV&A。作业1(15%)用c语言编制欧拉法、梯形法和四阶R—K法算法程序,求解下面方程并将计算结果与解析解比较之。1)0()10(2yxyxyy解析解:xy21第3章连续系统离散相似法数字仿真BUAXX连续系统的离散化)()()0()(sBUsAXX
ssX)()0()()(sBUXsAXssX)()0()()(sBUXsXAsI)()()0()()(11sBUAsIXAsIsX令)(])[(11tAsIL—系统的状态转移矩阵)()]([)0()]([)(sBUtLX
tLsX)(*)()0()()(tBUtXttX注:)()]([)](*)([sBUtLtBUtLtdBUttBUtsBUtLL01)()()(*)()]()]([[
tdBUtXttX0)()()0()()(BUAXXAteAsIL11)(ttAAtdBUeXetX0)()()0()(系统离散化后,对于k及k+1两个依此相连的采样瞬时,有kTkTAAkTdBUeXekTX0
)()()0()(TkTkATkAdBUeXeTkX)1(0))1(()1()()0())1(()(])1[(kTXeTkXATateasL11
TkkTTkAkTkTAATTkTkAAkTATTkAATdBUedBUeedBUeXeeXekTXeTkX)1())1((0)()1(0))1(()1()()()()0()0()(])1[(TkkTTkAATdBUekTXe
TkX)1())1(()()(])1[(由于上式右端与积分k无关,则令k=0,而k与k+1之间)()(kUU)T()(0)(0)(kUBdedBUeTTATTA)(TeAT)()(00)(TBdTBdemTTTA
)()()(])1[(kTUTkTXeTkXmAT即)()()()()1(nUTnXTnXm这就是一个连续系统离散化的状态方程的解,其中])[()(11AsIL
eTATTmBdTT0)()(例已知线性系统的状态方程为:CXYBuAXX其中:1100A0KB10C解:][)(11AsILT11011001001sss
AsI)1(ssAsIs101)1(11sssAsI)(10111TeeAsILTT
TTTTTTTmeTKKTdeKKdKeeBdTT110101)()(0)(0)()(0)()()()()1(nUTnXTnXm)(1)()(101)1()1(2121nueTKKTnxnxeenxnxTTT
)(1)()()1()1()()()1(21211nueTKnxenxenxnKTunxnxTTT作业2(25%)应用四阶R—K算法,编制机械谐振系统仿真程序,研究在正弦载荷作用下系统弹性系数与阻尼系数对系统
运动参数的影响。假定M=200kg,正弦载荷幅值500N,角频率为1,初相位为0。实现方式:c语言版和MATLAB版。