01--Merge用法
在介绍该主题前,先介绍下merge模块的用法,
在simulink中,merge模块主要用于在不同条件下,激活其中某一路条件的功能,也就是说被merge的信号不能被同时激活。
我们随便搭个模型,如下图:
从MAAB建模规范来说,merge左边的信号非常不利于模型阅读,但是我们可以通过快捷键将模型的输入信号调试成下图的样式:
虽然看上去简洁了很多,但是实际上线还是很杂乱,可以通过在case子系统内添加bus的方式把信号都集中起来,举得例子只有两个信号,有些子系统可能有十几二十个信号,做成bus的新式更有利于模型的阅读及开发维护。
除此以外,从子系统出来的信号在外部进行merge的时候可以引入如图红色三角形的封装模块,功能就是自动化的merge多个信号。如图所示,更加简洁了!
通过进入三角形子系统内部,发现里面没有任何内容,此时还需要点击该三角形并在matlab命令窗口运行该三角形子系统的m脚本。
未运行脚本
该脚本内容就不公开了,如有需要,可私信博主。
运行后的效果:
该三角形内部信号直接自动化排列并进行了Merge,这个脚本对于有多个信号需要merge并需要进行bus时非常高效。但是被merge的信号在case内部子系统的信号线上要加上该信号名称,并且不同子系统的信号线名称被merge时要一致。
02--.p文件
m脚本里面写了一些算法,有时候需要提供给第三方使用,但是又不想被第三方查询到该算法的具体逻辑,可以使用pcode对m脚本进行加密处理。
加密后的文件不改变程序功能,只是将程序设置为可使用但不可查看(包括加密者本人)。
代码一旦加密便不能被反编译。因此用户一定要注意备份源文件。
加密后的文件只能在MATLAB环境下使用。
注:执行中p文件优先于同名的m文件。
运行的指令:
若m文件名为:mergeBus
执行指令 pcode mergeBus
会生成一个.p文件,该文件打开后是乱码,但是可以正常在MATLAB指令窗口使用该功能
当然,这个.p也是能够被破解的,没有什么是不能被破解的,毕竟高手非常多。
03--模型保护
上面的模型可以先把模型创建为子系统,然后对模型进行加密
生成完成后如下图:
点开内部:
基本上等于说被加密了。
尝试一下加密模型的输入1,结果应为2,1
当然,这只是MATLAB提供的其中一种加密保护方法,另外几种,有时间可以再去尝试