资源描述:
《计算机仿真教案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、研究生课程计算机仿真讲稿计算机仿真教材:《控制系统计算机仿真与CAD—MATLAB语言应用》,天津大学出版社参考书:1.《控制系统计算机辅助设计》,清华大学出版社;2.《掌握和精通MATLAB》,北京航空航天大学出版社课程学习的目的:1.了解和掌握自动控制系统计算机仿真的基本原理、方法;2.采用MATLAB工具对控制系统进行仿真;3.采用MATLAB工具对控制系统进行辅助设计。前期课程基础:自动控制原理、自动控制系统、C语言基础授课学时与分配:总学时30学时1.绪论、控制系统数学模型的建立、转换及其连接(3学
2、时)2.控制系统的数字仿真1(3学时)3.控制系统的数字仿真2(3学时)4.最优化的计算机辅助设计概述、线性规划(3学时)5.单变量寻优(6学时)7.多变量寻优(6学时)8.PID参数寻优(3学时)9.总结(2学时)授课时间、地点:时间为;地点为科技楼3楼多媒体教室。39研究生课程计算机仿真讲稿第1章绪论一、仿真的目的与方法仿真的目的:采用物理模拟和计算(数值计算、模拟计算)等仿真方法,分析系统的动、静态性能。仿真是对于复杂控制系统进行分析的重要手段。仿真的方法采用物理仿真、数学仿真的前题是数学相似——即仿真
3、模型与对象的传递函数相同。二、数字仿真工具MATLAB的发展历史。创始人:CleveMoler教授,MathWorks公司的首席科学家。70年代中CleveMoler教授在美国国家科学基金会的资助下开发了两个FORTRAN子程序库。LINPACK—求解线性方程;EISPACK—解特征值。70年代末CleveMoler教授为了便于学生使用该程序库,设计了调用接口程序。取名为MATLAB(MATrixLABoratory)。84年MathWorks公司将MATLAB正式推向市场。MATLAB版本升级历程日期版本平
4、台1987MATLAB3.0DOS1991MATLAB3.5DOS1993MATLAB3.0kWINDOWS3.01993MATLAB4.0WINDOWS3.x1993MATLAB4.1WINDOWS3.x1994MATLAB4.2WINDOWS3.x1995MATLAB4.2CWINDOWS3.x1997MATLAB5.0WINDOWS95三、MATLAB简介1.变量与表达式;?A=3*16+10-27/3A=49?3*16+10-27/3ans=39研究生课程计算机仿真讲稿491.基本运算符;运算包括算术
5、运算和逻辑运算,参见书上表1-23.M文件例P1_004.M39研究生课程计算机仿真讲稿%2s+4%-------------------------%s^4+5s^3+8s^2+6sclcnum=2*[1,2];den=conv(conv([1,0],[1,3]),[1,2,2]);g1=tf(num,den);g=ss(g1);[a,b,c,d]=ssdata(g);ab=a-b*c;bb=b;cb=c;db=d;step(ab,bb,cb,db);39研究生课程计算机仿真讲稿4.矩阵、数组与数值运算功能
6、;1)矩阵的输入?A=[123;4,5,6;789]A=123456789另外还可以用MATLAB的函数构造一些特殊的矩阵。2)矩阵与数组的运算A+B、A-B、A*B、A.*B、AB、A.B、inv(A)、A^k、矩阵转置、矩阵翻转等。5.多项式运算1)求根r=root(p)已知;p=[1–1141–6130](P1_014)%X^4-11X^3+41X^2-61X+30=0的根clcp=[1-1141-6130]r=roots(p)2)poly函数p=poly(r)39研究生课程计算机仿真讲稿(p1_0
7、15)clcA=[12;34]p=poly(A)r=roots(p)4.MATLAB符号运算功能(P1_FH)f1='(41*x^2+x+1)^2*(2*x-1)';f2='((3*x+5)*(2*x-1))';f=symdiv(f1,f2);solve(f,'x');例如:求f1/f2的表达式f。并求f=0的解。5.MATLAB语句流1)循环语句例如:求的值,可以用以下两种方法实现39研究生课程计算机仿真讲稿(1)sumi=0;fori=1:100:1sumi=sumi+i;endsumi运行结果是sumi
8、=5050(2)sumi=0;i=1while(i<1000)sumi=sumi+i;i=i+1endsumi运行结果是sumi=505039研究生课程计算机仿真讲稿2)条件转移语句例如:当键入Y时给x赋值1,当键入N时给x赋值0,键入其它字符退出程序。ikey=0;while(ikey==0)s1=input(‘请键入字符’,’s’);if(s1==’Y’)x=1elseif(si==’N’)x=