网站打包app,网站开发的ppt报告,大连建设学校网站,wordpress付费主题破解版在开发工作过程中#xff0c;用户为想要知道供应商的开发能力#xff0c;想要供应商的模型进行测试。面对如此要求#xff0c;为了能够尽快拿到定点项目#xff0c;供应商会选择一小块算法或是模型以黑盒的形式供客户测试。Simulink的Model模块除了具有模块引用的功能之外用户为想要知道供应商的开发能力想要供应商的模型进行测试。面对如此要求为了能够尽快拿到定点项目供应商会选择一小块算法或是模型以黑盒的形式供客户测试。Simulink的Model模块除了具有模块引用的功能之外还具有模型保护的功能。今天主要是以一个简单的实例讲解使用Model模块实现模型保护的功能。
1.Model模块
元件名称 PortsSubsystems Model
功能引用另一个模型来创建模型层次结构。
Library:
Simulink / Ports Subsystems
HDL Coder / Ports Subsystems 新建mi_add.slx命名的simulink文件添加一个Model模块 建立一个Add5.slx命名的simulink文件包含了一个Add原子系统实现了三个数相加的简单算法。 add原子系统内部的内容 使用Model模块选择引用Add5.slx仿真文件 此时实现了在mi_add.slx文件中引用Add5.slx文件的功能具有三个输入一个输出的仿真。 使用constant常数模块测试功能 1右键选择Model模块点击SubsystemModel Reference-Create Protected for Selected Model Block。 2接着会弹出一个窗口用于配置被保护模型的封装程度
其中可以勾选三种行为并设置密码
Open read-only view of model 表示可以查看模型但是无法修改Simulate 表示可以仿真Use generated code 表示可以生成代码3这里只勾选Simulate并设置密码为 5205211314保持默认路径然后点击Create。 这里我遇到了报错显示没有找到支持操作的编译器MinGW-w64这里需要先安装该编译器。可以注册登录一个mathwork的账号就可以下载安装MinGW-w64下载网址如下
https://ww2.mathworks.cn/matlabcentral/fileexchange/52848-matlab-support-for-mingw-w64-c-c-fortran-compiler 下载之后获得mingw.mlpkginstall文件在MATLAB的环境下打开登录注册的账号开始在附加功能管理器中下载MinGW-w64编译器。 编译 yprime.c 示例
可以通过编译 yprime.c 示例来测试 MinGW编译器将源文件复制到可写文件夹。
copyfile(fullfile(matlabroot,extern,examples,mex,yprime.c),.,f)
如果在系统中仅安装了 MinGW 编译器则 mex 命令会自动选择 MinGW。继续下一步。但如果有多个 C 或 C 编译器请使用 mex -setup 选择 MinGW。
mex -setup
编译该 MEX 文件
mex yprime.c
MATLAB 将显示“编译工具”消息其中显示用于编译 MEX 文件的编译器运行函数
yprime(1,1:4) 安装好编译器之后再次点击Creat即可生成成功。 双击会出现选择一个路径的对话框会在选择的路径下生成一个.mlproj的工程格式文件。 这里在当前的路径下生成了Add5_protected的文件夹其中文件具有Add5_harness.slx、Add5_protected.prj和Add5.slxp文件。 双击模型Add5_harness 运行该模型需要提供密码才能运行。 可以简单将输入改成了constant常量模块输入display模块作为输出可以发现功能算法实现正常。 双击Add5.xlsp模型无法看到内部具体逻辑会弹出一个总结及接口报告对话框并且能够看到该模型被设置的权限。需要密码才能仿真不能够读取内部逻辑不能够生成代码不能进行并发任务支持。 2.自动生成代码
修改模型的配置使模型能够自动生成嵌入式代码 尝试在只选择Simulate时是否能够生成代码按住CtrlB自动生成代码的快捷键发现没有权限不能够生成代码。 保护模型允许仿真、允许读取内部逻辑允许生成代码 content type选为Obfuscated source code就会生成可读性较差的代码。
前提是上述操作的完成需要输入密码。允许读取内部逻辑52052113145允许仿真5205211314允许生成代码52052113146
在这里遇到了错误需求删除之前生成的文件。 点击Add5_harness.slx输入上述密码 双击可以进入受保护的引用仿真文件 按CtrlB自动生成嵌入式代码快捷键会在当前的文件夹下生成如下所示的文件 可以看出生成的代码更加混乱可读性非常差。这样也就从代码的层面上保护了算法。
如果将content type选择成Readable source code就会生成可读性较好的代码生成的代码会比较规范的包含了许多注释以及合理的变量名和缩进。