您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 招聘面试 > 计算机仿真总述(MATLAB应用举例)
一仿真技术的概念、分类与应用1概念早期研究和设计一个动态系统时,往往凭借设计者的知识和经验,用真实的元器件构成一个真实的系统。在此系统上进行大量的实验研究,分析系统结构参数对系统动态性能的影响,结构尺寸的改变,实物也需更换。通过反复实验,不断修改,确定应用于生产实际的系统——称为实物实验研究法随着科学技术的发展,自动控制理论的不断完善,人们开始利用这些理论,在建立真实系统之前,先建立描述系统动态过程的数学模型,在此模型的基础上分析所设定控制方案的可行性、结构参数的合理性,并将分析结果作为系统设计的依据——理论分析法与实物分析法相比:大大降低成本节省大量时间缺点:由于理论的局限性,理论分析结果与实际相差较大有时需根据相似理论建立实验模型进行中间实验,以便提供可靠的依据由于科学技术的迅速发展和经济建设的需要,对系统的动态性能要求越来越高,出现了许多新的控制理论,如复合控制、最优控制、鲁棒控制、模糊控制、自适应控制等新的控制方法,这些新的控制方法使系统变得更复杂,如若仍采用人工进行分析和建立数学模型,就更加困难,需花费大量的精力和巨大的代价,甚至不可能实现。随着计算机技术的发展,利用计算机作为研究的工具,进行实际物理系统的动态研究、研究实际系统的各种工作状态、确定最佳控制方案、选择理想的系统参数等研究方法逐渐成熟——称为计算机分析法,通常称为“仿真”2定义利用计算机作为研究工具,将实际系统转化成“模型”,在计算机上运转的过程称为仿真(Simulation)用于对系统进行仿真的一整套软硬件称为仿真系统研究可在计算机上运行的“模型”建立和实验方法称为仿真技术3分类按对象分:已建实际元件或系统的仿真新研制元件或系统的仿真按所用模型的类型(物理模型,数学模型,物理——数学模型)分类:物理仿真计算机仿真(或称数字仿真)半实物仿真按对象的性质分:宇宙飞船仿真化工系统仿真制造系统仿真社会/经济系统仿真武器控制系统仿真……按系统模型分:连续系统仿真:系统模型中的状态变量的连续变化的,一般可表示为微分方程的形式离散系统仿真:系统模型中的状态变量只在模型某些离散时刻由于某种事件而发生变化变化,一般不能表示为方程式的形式,而只能用一组逻辑条件或流程图来表示按仿真时所用计算机种类的不同:模拟仿真数字仿真混合仿真4应用系统仿真是一项应用技术,在科学研究和工程设计中应用领域不同,有各自的特殊问题,但也有许多共性:如何将一个待解决的问题变成一个系统仿真问题如何根据人们对实际系统的了解来建立系统的仿真模型如何验证模型的有效性如何根据研究的需要来设计仿真实验如何将仿真模型变成计算机上可执行的程序如何确认程序的正确性如何利用计算机进行规定的仿真实验(包括采用什么算法,实验结果是否可信等)如何对仿真实验结果进行分析如何根据结果分析来修改模型机械应用领域机械零件设计动力学与振动:轨迹、单自由度系统、多自由度系统、细梁的振动控制系统:传递函数、系统响应流体力学:流体静力学、内部粘性流动、外部流动热传导:导热、对流传热、辐射传热流体传动:液压系统、液力系统、气压系统……A在液压领域中的应用1.对已有的液压元件或液压系统在数学模型建立的基础上,进行仿真研究,目的是将仿真结果与实验结果进行比较,验证理论的准确程度,并不断通过修改数学模型和改变仿真参数,使仿真更接近于实物实验结果,得到的数学模型作为今后改进和设计类似元件或系统的理论依据2.对于已经设计好的系统,通过仿真实验,确定调整参数,仿真结果作为系统调试的理论依据,从而缩短调试周期和避免损坏设备3.对于新设计的元件,可通过仿真研究元件各部分参数对其动态特性的影响,从而确定满足性能要求的结构参数,为设计该元件提供所需的数据4.对于新设计的系统,通过仿真验证系统控制方案的可行性,研究系统结构参数对动态性能的影响,由此获得最佳的控制方案和最优的系统结构参数B在机械零件设计中的应用向量、受力和刚体平衡梁、压杆、轴的应力和偏差齿轮的应力四连杆机构凸轮轮廓滑动轴承应力场分析……5MATLAB在机械工程中的应用举例(一)机械零件设计向量、受力和刚体平衡梁、压杆、轴的应力和偏差齿轮的应力四连杆机构凸轮轮廓滑动轴承应力场分析……(二)动力学与振动:轨迹单自由度系统多自由度系统细梁的振动……(三)机械优化线性优化非线性优化单目标约束优化多目标优化……(四)控制系统传递函数系统响应……(五)流体力学流体静力学内部粘性流动外部流动……(六)热传导导热对流传热辐射传热……(七)流体传动液压系统液力系统气压系统……(八)工程统计概率分布置信区间线性回归实验设计…………6MATLAB应用实例例1:MATLAB图标的绘制程序:%tb.mloadlogosurf(L,R),colormap(M),n=length(L(:,1));axisoff,axis([1n1n-.2.8]),view(-37.5,30)title('MATLAB6.X的图标')例2:矩阵运算程序:a=[12345;23456;34567;45678;56789]b=[11111;22222;33333;44444;55555]c=a*bd=a.*be=b.^2f=a./b结果:c=555555555570707070708585858585100100100100100115115115115115d=12345468101291215182116202428322530354045e=11111444449999916161616162525252525f=1.00002.00003.00004.00005.00001.00001.50002.00002.50003.00001.00001.33331.66672.00002.33331.00001.25001.50001.75002.00001.00001.20001.40001.60001.8000例3:阀特性Q—P特性曲线的仿真pACQAdA2Q—P特性曲线流量系数Cd对P-Q曲线的影响例4:实验数据的处理—曲线拟合与插值样条曲线在工程实践与科学应用中有着广泛的,如试验、统计数据如何用曲线表示,设计、分析、优化的结果如何用曲线表示等。几乎各个领域都要用到样条曲线来对数据进行处理。(样条工具箱)X0123456789Y01.24.35.29.812.416.821.225.528.4曲线拟合%========Programaaa3.m=========%---------Curvefitting-----------disp('InputData--x;OutputData--y:')x=[0,1,2,3,4,5,6,7,8,9]y=[0,1.2,4.3,5.2,9.8,12.4,16.8,21.2,25.5,28.4]pauseplot(x,y,'or')holdongridpausepf1=polyfit(x,y,1)px1=polyval(pf1,x)plot(x,px1,'g')pausepf2=polyfit(x,y,2)px2=polyval(pf2,x)plot(x,px2,'b')曲线插值X012345678Y00.91.61.00.1-0.3-0.7-0.9-0.2%=====数表插值aaa4.m========y=[00.91.610.1-0.3-0.7-0.9-0.2]x=0:length(y)-1;%x等距x1=0:0.1:length(y)-1;%每两相邻点间插入9点y1=interp1(x,y,x1,'spline');plot(x,y,'+r',x1,y1,'b')曲线插值例5:在机构设计中的应用程序%四连杆\FourBarPosition.mwzsdjsd.m四连杆机构的位置四连杆机构的速度四连杆机构的角加速度例6:装载机工作装置运动仿真例7:系统特性液压节流调速系统动态特性仿真例8:方程组求解初始值x0=[-5–5]%程序myfun88.mfunctionf=myfun88(x)f=[2*x(1)-x(2)-exp(x(1));-x(1)+2*x(2)-exp(-x(2))];%程序fxxfc.mx0=[-5;-5];[x,F]=fsolve(@myfun88,x0)例9:数值积分x=0:0.1:10plot(x,x.^2)0123456789100102030405060708090100xx2x2程序:只需一条语句area=quad('x.^2',4,7)结果:area=93验算:例10:微分方程的数值解法例:解经典范得波(VanderPol)微分方程令:ω=2[t,y]=ode23('myfun5',[030],[1;0],[],3);y0=[1;0]y1=y(:,1);y2=y(:,2);plot(t,y1,':b',t,y2,'-r')legend(‘速度’,‘位移’)functionyp=myfun5(t,y);yp=[y(2)2*(1-y(1)^2)*y(2)-y(1)]';偏微分方程数值解法工具箱可应用于弹性力学、静电学、电磁学、热传导和发散等许多领域。例11:优化设计问题1某车间有甲乙两台机床,可用于加工三种工件,这两台机床的可用台时数分别为700和800,三种工件的数量分别为300、500和400,已知机床加工情况如下表:问如何分配机床的加工任务,才能既满足加工工件的要求,又使总加工费用最低?解:设在甲机床上加工工件1、2和3的数量分别是x1、x2和x3,在乙机床上加工工件1、2和3的数量分别是x4、x5和x6,根据条件可建立数学模型:程序:f=[13;9;10;11;12;8];A=[0.41.110000000.51.21.3];b=[700;800];aeq=[100100010010001001];beq=[300500400];lb=zeros(6,1);[x,fval,exitflag,output,lambda]=linprog(f,A,b,aeq,beq,lb)运行结果:x=0.0000500.00000.0000300.00000.0000400.0000fval=1.1000e+004exitflag=1即:在甲机床上加工500个工件2,在乙机床上加工300个工件1,加工400个工件3,可在满足条件情况下使总加工费用最小,为11000元。且收敛正常。问题2求:在区间[25]间的最小值在区间[03]间的最大值程序:%y5.mx=0:0.1:8;y=2*exp(-x).*sin(x);plot(x,y)fn='2*exp(-x)*sin(x)';[xmin,fmin]=fminbnd(fn,2,5)fm='-2*exp(-x)*sin(x)';[xmax,fmax]=fminbnd(fm,0,3)结果:xmin=3.9270fmin=-0.0279xmax=0.7854fmax=-0.6448例12:二维图形处理Demo/Graphics/2-Dplots例13:三维图形Demo/Graphics/3-DplotsDemo/Graphics/3-Dsurfaceplots例14:控制系统传递函数时间域命令频率域命令MATLAB模型空间SIMULINK仿真软件简介一、传递函数常用命令1、传递函数显示命令printsys(num,den)例如程序:ng=[11];dg=[1320];printsys(ng,dg)运行结果:num/den=s+1----------------s^3+3s^2+2s2、求传递函数极点和零点1).用roots命令,分别求分子和分
本文标题:计算机仿真总述(MATLAB应用举例)
链接地址:https://www.777doc.com/doc-5549290 .html