已阅读5页,还剩53页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MATLAB编程与系统仿真 重庆交通大学信息科学与工程学院主讲教师 谭晋Email tanjin1122 课程要求 理解Matlab等建模工具在系统设计中的位置掌握Matlab的基本开发技术 包括 Matlab的基本概念Matlab程序设计利用Matlab进行数值运算 符号运算Matlab绘图SIMULINK仿真 课程考核方式 考核方式上机实验 实验报告 30 平时成绩 考勤 作业 10 上机考试60 上机考试时间 上机课中最后一次上机时间 MATLAB概述 历史与特点产品族简介启动与运行命令窗口操作工作区路径设置脚本编写使用帮助 历史与特点 MATLAB的名称源自MatrixLaboratory它的首创者是在数值线性代数领域颇有影响的CleveMoler博士1984年由Little Moler SteveBangert合作成立了的MathWorks公司正式把MATLAB推向市场 到20世纪90年代 MATLAB已成为国际控制界的标准计算软件 历史与特点 丰富的数学功能矩阵的各种运算 如 正交变换 三角分解 特征值 常见的特殊矩阵等 各种特殊函数 如 贝塞尔函数 勒让德函数 伽码函数 贝塔函数 椭圆函数等 包括各种数学运算功能 如 数值微分 数值积分 插值 求极值 方程求根 FFT 常微分方程的数值解等 历史与特点 很好的数据可视化功能可方便地画出二维和三维图形 高级图形处理 如 色彩控制 句柄图形 动画等 图形用户界面GUI制作工具 可以制作用户菜单和控件 使用者可以根据自己的需求编写出满意的图形界面 历史与特点 可以直接处理声言和图形文件声言文件 如 WAV文件 例 wavread sound等 图形文件 如 bmp gif pcx tif jpeg等文件 历史与特点 具有若干功能强大的应用工具箱MATLAB主工具箱符号数学工具箱SIMULINK仿真工具箱控制系统工具箱信号处理工具箱图象处理工具箱通信工具箱系统辨识工具箱神经元网络工具箱金融工具箱 历史与特点 使用方便 具有很好的扩展功能 使用MATLAB语言编写的程序可以直接运行 无需编译 可以M文件转变为独立于平台的EXE可执行文件 MATLAB的应用接口程序API是MATLAB提供的十分重要的组件 由一系列接口指令组成 用户就可在FORTRAN或C中 把MATLAB当作计算引擎使用 历史与特点 具有很好的帮助功能提供十分详细的帮助文件 PDF HTML demo文件 联机查询指令 help指令 例 helpelfun helpexp helpsimulink lookfor关键词 例 lookforfourier 大量的网上资源和用户社区 历史与特点 解释型语言 执行速度一般比编译型语言慢价格 远远高于一般C编译器 MATLAB是一种科学计算软件 专门以矩阵的形式处理数据 MATLAB将高性能的数值计算和可视化集成在一起 并提供了大量的内置函数 从而使其被广泛地应用于科学计算 控制系统 信息处理等领域的分析 仿真和设计工作中 MATLAB产品的开放式结构 易于进行功能扩充 MATLAB产品族简介 MATLAB产品族可以用来进行如下工作 数值分析 数值和符号计算 工程与科学绘图 控制系统的设计与仿真 数字图像处理 数字信号处理 通信系统设计与仿真 财务与金融工程 MATLAB产品族简介 MATLAB产品由若干个模块组成 不同的模块完成不同的功能 其中有 MATLAB MATLABToolboxes MATLABCompiler Simulink SimulinkBlockset Real TimeWorkshop RTW Stateflow StateflowCoder MATLAB的产品体系 图1 1MATLAB的产品体系 MATLAB的产品体系 Simulink简介Simulink是基于MATLAB的框图设计环境 可以用来对各种动态系统进行建模 分析和仿真 它的建模范围广泛 可以针对任何能够用数学来描述的系统进行建模 例如航空航天动力学系统 卫星控制制导系统 通讯系统 船舶及汽车等 其中包括连续 离散 条件执行 事件驱动 单速率 多速率和混杂系统等 Simulink提供了利用鼠标拖放的方法建立系统框图模型的图形界面 而且Simulink还提供了丰富的功能块以及不同的专业模块集合 利用Simulink几乎可以做到不书写一行代码就能完成整个动态系统的建模工作 此外 在Simulink基础上还提供了Stateflow 用来进行事件驱动过程的仿真 Simulink的特点 交互式建模 Simulink本身就提供了大量的功能块方便用户快速建立动态系统的模型 如图1 2所示 建模的时候只需要利用鼠标拖放功能块并将其连接起来即可 交互式仿真 Simulink的框图提供可交互的仿真环境 可以将仿真结果动态显示出来 并且在各种仿真的过程中调节系统的参数 任意扩充和定制功能 Simulink的开放式结构允许用户扩充仿真环境的功能 可以将用户利用C C Fortran语言编写的算法集成到Simulink框图中 图1 2Simulink的库浏览器 与MATLAB工具集成 Simulink的基础是MATLAB 在Simulink框图中可以直接利用MATLAB的数学 图形和编辑功能 完成诸如数据分析 过程自动化分析 优化参数等工作 专业模型库 为了扩展Simulink的功能 Mathworks公司针对不同的专业领域和行业开发了各种专业模型库 将这些模型库同Simulink的基本模块库结合起来 可以完成不同专业领域动态系统的建模工作 Simulink的相关产品以及专业模块如表1 1所示 表1 1MATLAB中的Simulink相关模块 表1 1MATLAB中的Simulink相关模块 图1 3用Simalink进行视频系统仿真的例子 图1 3用Simalink进行视频系统仿真的例子 Stateflow简介Stateflow是一个交互式的设计工具 它基于有限状态机的理论 可以用来对复杂的事件驱动系统进行建模和仿真 Stateflow与Simulink和MATLAB紧密集成 可以将Stateflow创建的复杂控制逻辑有效地结合到Simulink的模型中 有限状态机是具有有限个状态的系统的理论表述 它以某些缺省的状态为起点 根据所定义的事件和转移进行操作 转移表示状态机如何对事件进行响应 控制流程 图1 4有限状态机的一个例子 图1 4就是有限状态机的一个例子 其中 A B C D E分别表示系统的不同状态 而a b表示响应的事件 具有方向的线表示状态与状态之间的逻辑流 逻辑流依赖事件驱动 所以这是一个典型的事件驱动模型 可利用有限状态机理论进行表述 假设用一个状态机表示空调的制冷工作 一般空调工作的时候具有两种状态 即运行 On 和停止 Off 当电源接通之后 空调机一般默认为运行状态 若室内的温度高于设定的温度 则空调机处于运行状态 若室内的温度低于设定的温度 则空调机停止运行 这样系统就从一个状态转换到另一个状态 利用Stateflow可以对该系统进行建模 如图1 5所示 图1 5利用Stateflow建模 Stateflow主要可以用于各种动态逻辑 控制流程系统的建模与仿真 例如在飞行器的导航制导与控制系统中 经常需要根据当前的飞行状态切换不同的系统控制参数 利用Stateflow就可以完成此类系统的建模与仿真 再比如说 在通信系统中 为了仿真网络通信中的物理层 MACLayer 协议 也可以使用Stateflow进行建模与仿真 图1 6展示了用于仿真以太网物理层协议的Stateflow模型 图1 6利用Stateflow完成以太网物理层协议仿真 自动化代码生成工具在MATLAB产品族中 自动化的代码生成工具主要有Real TimeWorkshop RTW 和StateflowCoder 这两种代码生成工具可以直接将Simulink的模型框图和Stateflow的状态图转换成高效 优化的程序代码 利用RTW生成的代码简洁 可靠 易读 目前RTW支持生成标准的C语言代码 并且具备了生成其他语言代码的能力 整个代码的生成 编译以及相应的目标下载过程都是自动完成的 用户需要做的仅仅是使用鼠标点击几个按钮即可 Mathworks公司针对不同的实时或非实时操作系统平台开发了相应的目标选项 以配合不同的软 硬件系统完成快速控制原型 RapidControlPrototype 开发 硬件在回路的实时仿真 Hardware in Loop 产品代码生成等工作 图1 7Real TimeWorkshop的体系结构 MATLAB启动与运行 MATLAB启动与运行 主窗口中包含许多子窗口用户与Matlab的交互在这些窗口中完成主要的交互界面包括 CommandWindow命令行窗口CurrentDirectoryBrowser当前目录浏览器WorkspaceBrowser工作空间浏览器ArrayEditor数组编辑器LauchPad目录分类窗口Editor DebuggerM文件编辑器 调试器HelpNavigator Browser超文本帮助浏览器CommandHistory历史命令窗口 命令窗口操作 MATLAB的命令行窗口不仅可以内嵌在MATLAB的用户界面中 还可以浮动在界面上 单击命令行窗口上的按钮 就可以浮动命令行窗口 如图所示 注意 这里的符号 为MATLAB的命令行提示符 这里的符号 表示键入表达式之后按回车键 MATLAB的数学运算符同其他的计算机高级语言 例如C语言 类似 这里计算得到的结果显示为ans ans是英文单词 answer 的缩写 它是MATLAB默认的系统变量 所有MATLAB的计算结果和数值都默认使用双精度类型显示 例子1 2计算复数的运算 1 2i 1 3i 在MATLAB命令行窗口中键入 1 2i 1 3i 系统直接计算表达式的结果 并给出答案 ans 7 0000 1 0000i 注意 在MATLAB中表示复数 按照例子1 2中所示的样式 即x yi 其中x和y都是双精度的数字 在这里 i作为复数单位存在 同样也可以使用j表示复数单位 上面的两个例子中都是将MATLAB直接作为计算器来使用的 在MATLAB的命令窗口中还可以定义相应的MATLAB数据对象和变量以及调用函数 例子1 3调用函数 cos pi 2 ans 6 1232e 017 exp acos 0 3 ans 3 5470 在例子1 3中调用余弦函数求 2的余弦值 但是一般的数学知识告诉我们 2的余弦应该为0 但是MATLAB求的数值不是0 而是一个近似为0的数值 这都是由MATLAB浮点数的计算精度引起的 在调用函数的时候 需要注意括号的作用 它会造成主计算优先级的变化 例子1 3在计算第二个表达式的时候 首先计算反余弦函数 然后再计算指数函数 命令窗口操作 每行输入完成 回车后执行指令 可以采用续行输入如果语句后面有 则不显示结果数组是Matlab中的基本数据 每个变量都是一个数组可以直接作复数运算Matlab类型的语言是一种弱类型的语言 数组中的元素类型和数组大小可以随时改变 命令窗口操作 数值都是浮点数 用小数或科学记数法表示 例如3 990 0011 3e 34 5E33可以用format命令设置显示格式 复数作为一个整体处理 表示方法 z1 3 4iz2 3 4 iz3 2 exp i pi 6 在命令行窗口中显示数值计算的结果具有一定的格式 例如在上一小节的两个例子中 所有的数值都是按照MATLAB默认的数字显示格式 短 short 格式显示的 在这种表示方法下具有固定的格式 保留小数点后四位有效数字 对于大于1000的数值 使用科学计数法表示 设置数据的显示格式需要使用format指令 具体的使用方法如表1 2所示 在表格中使用的示例数据为自然对数的底数 表1 2MATLAB命令行窗口显示数据的格式 例子1 4使用不同的数据显示格式显示数字 在MATLAB命令行中 键入下面的指令 pians 3 1416 formatlong pians 3 14159265358979 format pians 命令窗口操作 工作区 workspace Matlab保存的一组工作状态每个工作区与一块存储器对应 其中的内容主要包括 当前可以使用的变量当前可以使用的程序 函数等启动Matlab时 自动打开一个工作区 所有在命令窗口中执行的命令和程序共享此工作区 用程序或者命令创建的变量自动加入当前的工作区 工作区 workspace 前面程序创建的变量 可以在后面的程序中直接使用 每个函数有自己独立的工作区whos命令列出当前工作区中的变量clear命令可以清除工作区中的变量clearvar1var2clear可以用GUI工具工作区浏览器 workspacebrowser 修改工作区中的变量 工作区 workspace 工作区中的每个变量 都显示其类型 大小 内存占用 双击某个变量 可以打开相应的编辑器 修改变量内容 工作区 workspace 工作区 workspace 可以将当前工作区中的变量保存到文件中 以后可以从文件中读出利用save load命令完成变量读写savefilenamesavefilenamevar1var2savefilenamevar1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年杭州市萧山区总工会招聘工会社会工作者2人备考题库及答案详解(典优)
- 2025广东梅州市大埔县总工会招聘社会化工会工作者2人备考题库附答案详解(研优卷)
- 2026年陕西省选调生招录备考题库(面向重庆大学)及答案详解(名师系列)
- 2026中国银行北京市分行校园招聘备考题库含答案详解(基础题)
- 2025广东肇庆市怀集县冷坑镇镇派驻村(社区)党群服务中心工作人员招聘1人备考题库附答案详解(预热题)
- 2026中国民生银行博士后科研工作站度博士后研究人员招聘备考题库及答案详解(夺冠系列)
- 定量供应管理操作规程
- 个性化精准健康干预技术方案
- 2026华夏银行秋季校园招聘备考题库含答案详解(预热题)
- 2025广东广州市天河区五山街道综合事务中心招聘环卫工人5人备考题库含答案详解(培优)
- 2025年福建省福州市【辅警协警】笔试真题(含答案)
- 兰州市小区管理办法细则
- 中国经济史考试试题及答案
- 中医护理病后调护课件
- 隧道消防孔位置精度专题
- 大型工厂门禁管理制度
- DB31/T 1341-2021商务办公建筑合理用能指南
- 2024秋新人教版数学一年级上册教学课件 第六单元 复习与关联1. 数与运算
- GB/T 10250-2025船舶电气与电子设备电磁兼容性金属船体船舶
- 肠梗阻病人护理教学查房
- 数据库应用技术-第三次形考作业(第10章~第11章)-国开-参考资料
评论
0/150
提交评论