MATLAB下的一些高级问题.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MATLAB下的一些 高级问题及讨论 薛定宇 主要内容 MATLAB和C语言的接口 概述和基本思想,侧重于MEX技术 S函数及在Simulink下实现复杂系统仿真 举例 (书上两个例子) 目前此事的工作 * 数字图像处理 * PID控制及工具箱 MATLAB高级应用讨论 QA MATLAB和C的接口 个人观点: * 如果在MATLAB下独自编程能适合需要,不必考虑接口问题。 - 独立可执行文件生成 - 界面设计 接口中的问题 *兼容性 (工具箱定义的类,eval等函数) * Simulink不能用 接口的种类 在MATLAB下调用C程序模块 * 有必要,可以加快速度 * 充分利用现有的资源 * 有一定的保密性 * 采用Mex技术 * 支持的语言有 C,fortran,Ada等 MATLAB程序的自动翻译 * 用mcc命令 (兼容性、效率) 接口种类 (续) 采用ActiveX技术和DDE技术 * 要求MATLAB在运行,不能脱离环境 * 可以继承其他模块的优势 利用类似于MATLAB的语句直接编程 * MatrixVB 独立程序 * MATLAB的C/C++数学库和图形库 * 效率比直接翻译高 Simulink/Stateflow模型的C语言翻译 用C语言编写通用程序的劣势 需要考虑的烦琐事情太多:维数、数据类型算法,…… 例子:两个矩阵的乘法 MATLAB实现A*B,而用C语言 ① 用三重循环来实现 ② A的列数得等于B的行数 ③ 还得考虑其中之一为标量 ④ 其一或二者为复数矩阵 ⑤ 可信度,如在循环中将 i 误写成 j? Mex技术与实现 应用场合(加快循环、利用现有资源) 想法: MeX举例 (大循环) MATLAB在计算和图形显示以外能力有限,能否扩展? ActiveX 是一种很好的解决方案 * 很多软件都生成了ActiveX部件,如MediaPlayer * 可以将其集成到MATLAB程序下 * 如MATLAB没有播放音乐的功能,我们可以通过ActiveX部件实现之。 S 函数及其在系统仿真中的应用 为什么用S函数? * Simulink有大量的库直接可以应用 * 有很多用数学公式描述的不适合用模块搭建 * 控制算法等的测试 使用方便 可以模块化,可以重复利用 S函数的机制(初始化、状态更新、输出计算) S函数应用举例 简单连续系统例子: * 状态方程模型 * 同时输出系统的状态 微分跟踪器的S函数实现 数字图像处理及MATLAB应用 图像表示 uint8型数据 黑白图像:n*m 矩阵,元素为0或1 灰度图像:n*m 矩阵,元素为0-255 整数 * 好处,省空间。普通MATLAB变量为double * uint8为8位(1字节),1/8空间 彩色图像:三维数组 * 相当于3层矩阵叠成,红绿兰三原色 图像的读入、显示 图像处理工具箱可以直接应用: * Imread可以读入图像 * Imshow可以显示图像 * 修改后的图像可以由imwrite存盘 举例:现有图像 PID控制及工具箱编写 现有资源, 推荐: * 刘金琨著,先进PID控制及MATLAB仿真,电子工业出版社,2003 * 各种算法和仿真程序,直接可用 问题: * 程序是针对某一模型的,不通用 * 模块化,形成BlockSet 举例:单神经元PID控制器 模块集模块生成 建立文件 slblocks.m 设置其blkStruct.OpenFcn 在Simulink下建立库模型 将模块移动到库中即可 * * C程序的实体内容 可以调用MATLAB语句 将MATLAB工作空间数据 读入C空间(指针) 将结果写回MATLAB 入口语句 传递指针语句 数据返回 分形树问题 MATLAB6.5版本较好地解决了循环问题,所以应用MeX能支持现有的资源应该是唯一的理由 现有程序: 对之进行S函数改写,形成PID模块 *

文档评论(0)

ea238982 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档