已阅读5页,还剩72页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
控制系统仿真技术 王宇红 中国石油大学自动化系 Y.H.W Chapter 0_1 MATLAB程序设计基础 3 ppMATLAB MATLAB 语言的简洁高效性语言的简洁高效性 ppMATLAB MATLAB 语言的科学运算功能语言的科学运算功能 ppMATLAB MATLAB 语言的绘图功能语言的绘图功能 ppMATLAB MATLAB 庞大的工具箱与模块集庞大的工具箱与模块集 ppMATLAB MATLAB 强大的动态系统仿真功能强大的动态系统仿真功能 MATLABMATLAB 语言是当前国际上自动控制领域的首选语言是当前国际上自动控制领域的首选 计算机语言,也是很多理工科专业最适合的计算机数计算机语言,也是很多理工科专业最适合的计算机数 学语言。学语言。 MATLAB 0_1.1 MATLAB工作界面 p标题栏 p菜单栏 p工具栏 p工作空间、命令窗、编辑窗 4 MATLAB工作界面 命令窗口 工作空间间 历历史命令 当前路径 MATLAB快捷键 p 回调上一行命令 p 回调下一行命令 p 左移一个字符 p 右移一个字符 pDelete Backspace 删除字符 pCtrl+C 中断MATLAB任务 MATLAB编辑窗口 设置断 点 取消断 点 单步运 行 进入函 数 跳出函 数 退出调 试 继续运 行 通用命令 phelp pclear clc pWhat pwho, whos pload save MATLAB的帮助系统功能非常完善,有联机帮助系统、命令窗 口查询帮助系统和联机演示系统等。 1. 联机帮助系统 可以采用以下3种方式进入MATLAB的联机帮助系统。 (1)单击MATLAB主窗口工具栏中的Help按钮。 (2)选择Help下拉菜单中的“MATLAB Help”选项。 (3)在命令窗口中执行helpwin、helpdesk或doc命令。 MATLAB帮助系统 图0-1 联机帮助窗口 MATLAB帮助系统 2. 命令窗口查询帮助 要了解MATLAB,最简洁快速的方式就是使用命令窗口查 询帮助,通过帮助命令可以对特定的内容进行快速查询。 (1)help命令:查询函数语法非常方便。 (2)look for命令:查询根据用户提供的关键字搜索到的相 关函数。 (3)模糊查询:用户只要输入命令的前几个字母,然后按 Tab键,系统就会列出所有以这几个字母开头的命令,方便 了用户的使用。 MATLAB帮助系统 要打开该系统可以通过单击MATLAB主窗口菜单的帮助“Help” 来选择演示系统选项“Demos”,或者在命令窗口输入“demo ”,都可以进入到MATLAB的演示界面。 MATLAB演示系统 MATLAB中与控制有关的工具箱 MATLAB中电力电子仿真 SimPowerSytems模块集:用于电力系统及电力电子仿真 MATLAB中电力电子仿真 林飞,杜欣,电力电子应用技术的MATLAB仿真 ,中国电力出版社,2009 MATLAB中电力电子仿真 林飞,杜欣,电力电子应用技术的MATLAB仿真 ,中国电力出版社,2009 MATLAB中电力电子仿真 林飞,杜欣,电力电子应用技术的MATLAB仿真 ,中国电力出版社,2009 王晶,电力系统的MATLAB/SIMULINK仿真与应用 , 西安电子科技大学出版社 ,2008 0_1.2 MATALB语言的数据结构 p变量命名规则 n必须以字母开头; n可以由字母、数字和下划线混合组成; n变量长度应不大于31个; n字母区分大小写。 p变量的定义 p特殊变量 特殊变量 变量名称功能变量名称功能 ans 用于结果的 缺省变量值 pi圆周率 realmax 最大浮点数 值 realmin 最小浮点数 值 i虚数单位j虚数单位 inf正无穷大NaN 不定式 (0/0,inf/inf) eps 机器浮点运 算误差限 nargin 函数的输入 变量数目 基本语句 pMATLAB语言的基本语句结构为: p变量名列表=表达式 n 等号左边的变量名列表为MATLAB语句的返 回值,若一次返回多个结果,则变量列表用 括起来,各变量间用逗号分隔; n等号右边为表达式,可以是矩阵运算或函数 调用,可以由分号(;)、逗号(,)或回车结束。 数据类型 p在MATLAB里共有六种数据类型,每一种类型 可以是一维、二维和多维的。 n双精度型(double) n字符型(char) n稀疏型(sparse) n存储型(storage) n细胞型(cell) n结构型(struct) 字符型 p基本规则: n所有字符串都用单引号括起来; n字符串中的每一个字符都是该字符串变量中的一个元 素; n字符串中的字符以ASC码形式存储,因而区分大小 写。 字符型 p常用操作方法: n建立:常用函数有char、int2str、num2str等。 n连接: p水平连接通过函数strcat或在中括号内用逗号连接; p垂直连接通过函数strvcat或在中括号内用分号连接。 n比较:常用函数strcmp,相同则返回1,否则为0。 n查找:常用函数findstr。 结构型 p结构的建立和访问方法: n直接建立结构和各个域,同时给各域赋值,结构和域 之间用点“”连接。同样,访问结构的各个域时,其 格式为: 结构名域名 p用函数struct建立结构,其用法为: s=struct(field1,values1,field2,values 2,) 例1 ps = struct(type,big, little,color,red, x,3 1) p12 struct pField values1 values2 pType big little pColor red red pX 3 1 ps(1).type; s(2).type ps(1).color; s(2).color ps(1).x; s(2).x 矩阵的MATLAB表示 p直接输入 A=1 2, 3; 4 5 6;7, 8 9 p冒号操作符 a=0:1:10 a=linspace(0,1,10) a=logspace(1,2,10) MATLAB下矩阵的运算 矩阵的代数运算 p转置 B=A p加减乘 A+B A-B A*B p左除 AB 即AX=B的解X=A-1B p右除 A/B 即XB=A的解X=AB-1 p翻转 fliplr flipud rot90 p乘方 AB p点运算 A.*B A./B A.B A.B A. p函数 矩阵的逻辑运算 p运算符 n4 5 6; 7 8 9; B(2,: )= B= 1 2 3 7 8 9 矩阵的尺寸 为了判断矩阵的尺寸,Matlab提供了以下函数: pm,n=size(A)%返回矩阵的行数m和列数n pM=size(A) %在矩阵M中返回矩阵的行数、列数 plen=length(A) %返回矩阵A行数和列数中的 最大值 特殊矩阵 p单位矩阵 neye(n)%生成n维单位阵 neye(m,n) %生成mn的单位阵 neye(m,n) %生成mn的单位阵 neye(size(A)%生成与A矩阵同样大 小的单位矩阵 特殊矩阵 p全1矩阵 n ones(n) ones(m,n) ones(m,n) ones(size(A) p全零矩阵 n zeros(n) zeros(m,n) zeros(m,n) zeros(size(A) p随机矩阵 n rand(n) rand(m,n) rand(m,n) rand(size(A) n生成的随机矩阵的各个元素值在0和1之间。 p对角阵 ndiag(n) 对角阵 p魔术矩阵 nmagic(n) n魔术矩阵的所有行元素和、列元素和、对角线元素和均相等 sin取x的正弦值 cos 取x的余弦值 tan 取x的正切值 sqrt 对x开平方 exp 取x的自然指数 log自然对数ln(x) log10log10(x) x+yi或x+yj 复数 imag 复数的虚部 real 复数的实部 angle复数的相角 conj 共扼复数 min(x) 向量的最小值 max(x) 向量的最大值 mean(x) 向量的平均值 sum(x) 向量的总和 sort(x) 向量的排序 median(x) 每个列向量 的中位数 inv 矩阵的逆 常用函数 函数名功能函数名功能 max最大值cumrod元素的累积 min最小值cumsum元素的累加积 mean均值diff差分函数 std标准方差hist直方图 median中值tabel列表 sort排序分类corr相关矩阵 sum元素的总和cov协方差矩阵 prod元素的乘积find查找逻辑 常用的数值分析函数 0_1.3 程序控制语句 循环语句 MATLAB中的循环语句包括for循环和while循环两种类 型。 for循环 for循环的基本格式为: for 循环变量=起始值:步长:终止值 循环体 end 步长的缺省值是1。步长可以在正实数或负实数 范围内任意指定,对于正数,循环变量的值大于终止值 时,循环结束;对于负数,循环变量的值小于终止值时 ,循环结束。 程序控制语句 while循环 while循环的基本格式为: while 表达式 循环体 end 若表达式为真,则执行循环体的内容,执行后 再判断表达式是否为真,若为假则跳出循环体,向下继 续执行,否则继续执行循环体。 pbreak:从循环体中跳出,并使循环结束 程序控制语句 ifelseelseif语句 if格式: if 逻辑表达式 执行语句 end 当逻辑表达式的值为真,则执行该结构中的 执行语句内容,执行完后向下继续执行,若逻辑 表达式的值为假,跳过结构中的执行语句继续向 下执行。 程序控制语句 if-else格式 if 逻辑表达式 执行语句1 else 执行语句2 end 如果逻辑表达式的值为真,则执行语句1,然后跳 过语句2向下执行;若逻辑表达式的值为假,则跳过执 行语句1而执行语句2,然后向下执行。 程序控制语句 if-elseif格式 if 逻辑表达式1 执行语句1 elseif 逻辑表达式2 执行语句2 elseif 逻辑表达式n 执行语句n else 执行语句el end 如果逻辑表达式的值为真,则执行语句1,若 逻辑表达式的值为假,则判断逻辑表达式2的值,若为真 ,则执行语句2,否则向下执行,若所有表达式均为假, 执行语句el 。 程序控制语句 switch语句 switch语句的格式为: switch 表达式(标量或字符串) case 值1 语句1 case 值2 语句2 case 值n 语句n otherwise 语句ow end 表达式的值和哪种情况(case)的值相同,就执行哪种 情况中的语句,如果都不同,则执行otherwise中的语句。 MATLAB中的M文件与M函数 1M文件 采用MATLAB语言编写的程序称为M文件,存储时以.m 作为文件的扩展名。M文件可以直接执行。M文件是一个文 本文件,可以采用以下3种方法来建立。 (1)菜单操作:在MATLAB主窗口的File文件菜单中选择 New菜单项,然后选择M-File命令,可以启动文本编辑器, 输入M文件的内容后将文件存盘。 (2)命令按钮操作:单击MATLAB主窗口工具栏上的New M-File命令按钮,启动文本编辑器后输入M文件内容并存盘 。 (3)命令操作:在MATLAB命令窗口输入命令edit,启动文 本编辑器后,输入M文件内容并存盘。 0_1.4 MATLAB程序编写及调试 2M函数 M函数是由function语句引导的用户自定义函数。 和M文件不同,M函数必须由其他语句来调用,一般不 能在命令窗口单独键入函数名来运行。 M函数的第一行为关键字function,函数第一次执行 时将生成内存代码,生成的变量放在函数的工作区。在 MATLAB中有大量的内部函数及大量的工具箱函数,使 用它们可以完成大部分的工作。但由于不同的用户有不 同的需要,MATLAB允许用户开发自己的专用或通用函 数,以扩展MATLAB的函数应用。 MATLAB中的M文件与M函数 MATLBA程序设计基本原则: p后面的内容是程序的注解,要善于运用注解 使程序更具可读性。 p养成在主程序开头用clear指令清除变量的习 惯,以消除工作空间中其他变量对程序运行的影 响。但注意在子程序中不要用clear。 p参数值要集中放在程序的开始部分,以便维护 。要充分利用MATLAB工具箱提供的指令来执 行所要进行的运算,在语句行之后输入分号使其 及中间结果不在屏幕上显示,以提高执行速度。 MATLBA程序设计基本原则 p程序尽量模块化,也就是采用主程序调用子程 序的方法,将所有子程序合并在一起来执行全部 的操作。 p充分利用Debugger来进行程序的调试(设 置断点、单步执行、连续执行) p设置好MATLAB的工作路径,以便程序运行 。 MATLAB程序的基本组成结构 p说明 p清除命令:清除workspace中的变量和图形( clear,close) p定义变量:包括全局变量的声明及参数值的设定 p逐行执行命令:指MATLAB提供的运算指令或工具箱 提供的专用命令 p控制循环:包含for,if then,switch,while等语句 p逐行执行命令 p pend p绘图命令:将运算结果绘制出来 M文件的编辑及MATLAB工作路径的设置 p进入MATLAB的Editor/Debugger窗口来 编辑程序 p在运行程序之前,必须设置好MATLAB的工 作路径,使得所要运行的程序及运行程序所需要 的其他文件处在当前目录之下,只有这样,才可 以使程序得以正常运行。否则可能导致无法读取 某些系统文件或数据,从而程序无法执行。 MATLAB程序类型 p脚本文件 p函数文件 function y=mean(x) % MEAN Average or mean Value % For vectors,Mean(x) is the mean value of X % For matrices, Mean(x) is a row vector containing % the mean value of each column m,n=size(x) if m=1 m=n; end y=sum(x)/m; 函数定义行 H1行 函数帮助文件 函数体 0_1.5 图形绘制 p图形绘制 p图形标注 p图形控制 plot(x,y) plot(y) plot(x1,y1,option1,x2,y2,option2,) plot控制 p功能:在调用函数plot时,可以指定线型,颜 色,和数据点的图标。 p格式:plot(x,y, color_linestyle_marker) p说明:参数color_linestyle_marker 为一个 字符串,由颜色、线型、数据点的图标组成。 线性和颜色字符定义表 字符定义线型字符定义线型 -实线(默认)-虚线 :点划线-.点连线 none无线 字符定义 颜色 字符定义 颜色 y yellow(黄) m magenta(洋红) c cyan(青) r red(红) g green(绿) b blue(兰)默认 w white(白) k black(黑) 图形绘制 p图形绘制 p图形标注 p图形控制 text(x,y,字符串) gtext(字符串) title(字符串) xlabel(字符串),ylabel(字符串) 图形绘制 p图形绘制 p图形标注 p图形控制 figure(1);figure(2);figure(n) grid on; grid off hold on; hold off axis(xmin xmax ymin ymax) subplot(mnk) semilogx;semilogy 绘图一般步骤 p准备绘图需要的数据; p指定绘图的窗口或者区域; p调用基本绘图命令; p选择线型、颜色、数据点形状; p坐标轴控制,包括显示范围、刻度线、比例、网 格线; p标注控制,包括坐标轴名称、标题、相应文本等 。 0_1.6 数据处理 矩阵分解 p三角分解 p特征值分解 L,U=lu(A) %求矩阵A的LU分解 Xinv(A) %求矩阵A的逆矩阵 d=det(A) %求矩阵A的行列式 deig(A); V,Deig(A); V,Deig(A,nobalance) 数据处理 p多项式 p多项式创建 p多项式常用函数 直接输入法例如: P=1,2,3,4 poly(A) %创建方阵A的特征多项式 poly(a) %如果a为向量bn bn-1b1 b0,则创建 (x-b0 )( x-b1) (x-bn-1 )(x- bn )生成的多项式的系数向量 roots ( ) %求多项式的根 p=poly(A) %求矩阵的特征多项式 polyval( p,x) %求当多项式p的参数为某个特定值x时的多项式的值 polyvalm(p,A) %和polyval作用相同,输入参数值也可为方阵A 数据处理 p卷积和解卷积 p导数 c=conv(A,B) %卷积函数 ,多项式乘法函数 Q,R=deconv (A,B) %解卷积函数,多项式除法函数 Pdpolyder(P) %求多项式P的导数 Pmpolyder(P1,P2) %求多项式P1和多项式P2乘积的导数 Q,D=polyder(P1,P2) %求多项式P1除以多项式P2商的导数 数据处理 p多项式拟合 从最小二乘的意义上,polyfit函数将拟合出所给 数据的多项式系数,其调用格式为: p=polyfit(x,y,n) 其中,x和y为已知数据的横坐标和纵坐标向量,n 为多项式的次数。 常微分方程数值解 pt, x=ode23(xfun, t0, tf x0, tol, trace) pt, x=ode23(xfun, t0, tf x0, tol, trace) 范得蒙方程求解 pfunction yp=vdp(t,x) yp(1)=x(2); yp(2)=2*(1-x(1)2)*x(2)-x(1); %令u=2 p在命令行求解这个方程: t,x=ode45(vdp,0,20,1 ;1); plot(t,x(:,1),t,x(:,2); %画出x和dx/dt的时域波形 求解M-文件 64 pp其他常用化简函数其他常用化简函数 【例】 0_1.7 符号运算 65 返回化简方法为因式分解方法返回化简方法为因式分解方法 多项式展开方法多项式展开方法 pp变量替换变量替换 符号运算 66 【例】 由表达式 替换 中的 算子。 该语句将得出
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 食品与安全课件
- 浙江网盛生意宝股份有限公司偿债能力和盈利能力分析综合结论及建议
- 安全保密课件
- 家庭教育亲子互动游戏题库及答案解析
- 基于ARM的嵌入式系统编程测试题及解答手册全集
- 就业指导课程知识点总结与练习题集答案
- 懒癌测试题答案详解如何克服懒惰心理
- 2024年国家电工进网作业许可证考试复习题库及答案(共250题)
- 开播前bi备知识模拟题集
- 德勤春招笔试内容分析及备考技巧
- 《第13课 分解问题步骤》教学设计教学反思-2023-2024学年小学信息技术浙教版2023三年级上册
- 《杀死一只知更鸟》课件
- 大型方格沉井施工方案
- 2025年大学《电缆工程-电缆电气性能测试》考试备考题库及答案解析
- GB/T 21782.8-2025粉末涂料第8部分:热固性粉末贮存稳定性的评定
- 山东省青岛市2025-2026学年高三上学期期初调研检测数学试题(含解析)
- 江苏2025年工贸行业企业主要负责人及安全管理人员真题模拟及答案
- 2025年咖啡产业咖啡产业数字化发展研究报告及未来发展趋势预测
- 2025中国留学生回国就业现状及政策支持研究报告
- 2025中国南水北调集团水网智慧科技有限公司秋季招聘14人笔试历年典型考点题库附带答案详解2卷
- 2025年上海市春考语文真题作文7篇范文:我们的劳动使大地改变了模样
评论
0/150
提交评论