
接下来就是建立模型的过程,按照自己的设计,在上图的右侧子模块窗口中,单击“Source”子模块库前的“+”(或双击Source),或者直接在左侧模块和工具箱栏单击Simulink下的Source子模块库,便可看到各种输入源模块。搭建模型的过程就不详细介绍。可参考下面的连接
1如何建立一个简单的Simulink模型
下面进入到最重要的环节。模型搭建运行成功时候,点击simulation下的选项configuration parameters,出现参数设置的窗口如下,接下来主要是参数设置的问题,以及代码自动生成的设置。
代码生成的模型配置主要是在Configuration Parameters参数配置集合中进行,嵌入式代码生成用的模型配置相对比较复杂。Configuration Parameters中集中管理着模型的代码生成方法、格式等约束条件。在Simulink窗口的Simulation的下拉菜单中,选择Configuration Parameters,或者按下Ctrl+E就可以打开Configuration Parameters参数配置对话框.
为了生成嵌入式代码,至少需要配置3个部分:模型的解算器solver;模型的系统目标文件(如ert.tlc或其他自定义的嵌入式系统目标文件);硬件的实现规定(Hardware Implementation)。
1.模型的解算器solver的设置,solver页面如下图所示。
在研究代码生成时,solver的步长一定要设置为固定步长,因为RTW只能从固定步长的模型生成代码[21]。固定点solver提供了多种算法,本次的SVPWM模型中由于没有连续状态,可以选择discrete方法。步长默认auto,在简单的通用嵌入式代码生成过程中此参数没有实际作用,可以采用默认或者设置0.01s。而在针对目标芯片定制的代码生成过程中,硬件驱动工具箱往往会将步长step size作为其外设或内核中定时器的中断周期,使得生成的算法代码在硬件芯片中以同样的时间间隔执行。并且由于解算器步长为整个模型提供了一个基础采样频率,故被称为基采样率(base-rate)。
2. Hardware Implementation硬件的实现规定
Hardware Implementation选项是规定目标硬件规格的选项。在这个选项卡里,可以配置芯片的厂商和类型,设置芯片的字长、字节顺序等。在本次基于DSP的SVPWM算法的仿真代码生成中,Hardware Implementation选项设置如下图所示。
3. 模型的系统目标文件
另外一个关键的设置选项是控制整个代码生成过程的系统目标文件System Target File,ert.tlc文件是Embedded Coder提供的能够生成专门用于嵌入式系统C代码的系统目标文件。在Code Generation页面中,单击下图右上角的Browse按钮可以d出对话框以选择系统目标文件。
Report子标签能够打开设置关于生产代码报告的页面,可以选埋败择是否创建HTML格式的代码生成报告,并通过勾选框选择是握兆否在模型编译结束后自动打开。最好勾选Create Code Generation Report及Open Repot automatically两个选项,模型生成代码完毕后段液租会自动d出报告列表,而不需要到文件夹中逐一将源文件手动查找并打开。
Include comments选项的勾选决定是否在生成代码中添加Simulink自带的注释。启动此选项后,Auto Generated comments组及Custom comments组的选项便被使能,可以根据需要选择希望生成的注释内容。最好勾选此选项,注释中将带有可以从代码跳转到对应模型的超链接,方便读者追溯模块与代码的对应关系。
Custom Code子标签页面主要用于添加用户自定义的或者编译模型时必须的源文件、头文件或者库文件等。
Debug子标签页面提供了关于编译过程和TLC过程的选项。Verbose build的勾选可以将编译过程信息显示在Command Window中。Retain.rtw file则能够保留编译模型生成时的rtw文件。TLC process组参数能够启动TLC文件的profile功能和调试功能,使得开发者能够对TLC语言文件进行断点、单步调试等动作。
rtw文件是代码生成过程中从Simulink模型得到的中间文件,它记录了模型相关的所有需要被TLC文件使用的信息。
最后,点击Generate code按钮即可自动生成所需代码。
自动生成的文件在MATLAB左侧的工作空间里,可以打开该文件夹查看自动生成的文件。
如何将MATLAB程序编译成独立可执行的程序?如何将编译好的独立可执行程序发布在没有安装MATLAB的电脑上?下面将一步步实现:一、生成独立可执行的程序(exe文件)步骤
1、安装编译器。可有多种选择,matlab自带了一个LCC,推荐使用VC++6.0,我基于VS 2003实现。
2、设置编译器。在matlab命令行输入mbuild –setup以及mex –setup,选择安装的c编译器。
3、调用编译器。此处使用MATLAB下的一个GUI平台deploytool下完全实现。在命令窗口输入deploytool即可看到。具体使用方法请Help。
当然,也可以输入mcc -m filaname, filaname为要转成exe的m文件;
注:在以前的版本中,用编译命令mcc -B sglcpp filaname;自2006的版本后,替换为mcc -mfilaname;
4、安装<matlab path>\toolbox\compiler\deploy\win32目录下的MCRInstaller。
二、脱离matlab运行可执行程序
MCR是由matlab的运行环境,占用不到300M的对于用不同matlab版本生成的exe文件,MCR版本也会有不同,因此,在程序打包时,最好将相应版本的MCR一起打包。MCR环境的设置文件存放目录如下:
<matlab path>\toolbox\compiler\deploy\win32
文件名为MCRInstaller.exe。可将其拷贝到自己的文迟卖件夹中,(7.0以前的版本是mglinstaller.exe)。
在MATLAB里运行可执行程序的办法是在前面加一个!,比如:!picshow,后缀名可有可无。
在其它没有安装matlab的机器上运行exe文件前:
首先安装matlab的运行环境。在同一机器上可以并存不同版本的matlab环境(换句话说不同版本不兼容)。
其次是要将“MCRinstaller.exe安装目录\runtime\win32”这个路径添加到该计算机的环境变量中,通常是自动加载。
如果没有,也可手动安装,添加的方法是:
右击“我的电脑”“属性”“高级”“环境变枯伏量”“添加”指定一个变量名,然后将上述路径复制到里面就可以了。
注:在安装过程中会d出让安装Microsoft.NETFramework可以不用安装。
最后就是将编译生成的相相关文件拷贝到同一目录下,双击即可运行。
问题:目前此方法可完全运行在没有安装MATLAB以及C/C++的电脑上,但是如果是在AMD的CPU可以运行,但是不会出现任何MATLAB编译的界面。
美中不足就是,运行的时候dos的那个黑色地窗口一直存在。下面将实现去除黑屏的办法:
消除运行MATLAB生成的exe程序的dos黑屏的办法
基于MATLAB生成exe文码败逗件后,每次运行都存在dos黑屏的问题,现在可以通过以下方法解决:
方法一: 在命令窗口输入:
cd(prefdir)
edit compopts.bat
在打开的文件最后添加以下语句:
A.VC环境下:
set LINKFLAGS=%LINKFLAGS%/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup
B.LCC环境下:
set LINKFLAGS=%LINKFLAGS% -subsystemwindows
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)