浮名此生分享 http://blog.sciencenet.cn/u/hailangww 工学博士

博文

[转载]Simulink模型编译加密共享

已有 971 次阅读 2024-8-5 10:20 |系统分类:科研笔记|文章来源:转载

1.前言

为了保护知识产权,有时候需要让用户能使用slx模型运行仿真,但是无法查看和修改模型和子系统的结构,同时对模型生成的源码也进行加密,这时可以用Simulink coder来生成受保护的模型。主要步骤如下:

(1)将slx模型的各个子系统唯一命名

(2)将各个子系统转换成引用模型(Referenced model)

(3)使用Simulink coder将转换得到的引用模型打包为受保护的slxp模型

(4)在原总slx模型中引用子系统的slxp模型

2.实现步骤2.1 将各个子系统转换成引用模型

首先先运行一遍模型,创建所有变量。鼠标右击子系统模块,选择System & Model Reference/Convert to/Referenced Model,如下图所示。

在打开的对话框中依次运行各个步骤

其它类似。直到所有步骤运行成功,此时自动完成转换并打开新创建的引用模型,模型名称和子系统名称一致。如果出现以下错误:

Check failed

Converting subsystem 'xxxxx' to a referenced model is not supported because it is virtual. Subsystem being converted to a referenced model must be atomic.

说明该子系统本身没有实际的运行行为,而是作为模型层次结构的组织结构使用,一般可以不加密,如果必须加密,则要更换为Atomic Subsystem,即在该子系统XXX旁边创建一个空白的Atomic Subsystem,将内部结构复制进去,然后替换原来的子系统,记得保持同样命名。

2.2 使用Simulink coder将转换到的引用模型打包为受保护的slxp模型

在之前打开的引用模型界面中找到并打开Simulink Coder

打开Generate Protect Model: 

在对话框中设置生成的slxp用户模型权限:

一共支持4项权限:

(1)Open read-only view of model: 是否允许打开模型的只读视图查看内部结构。勾选表示允许用户以只读的方式查看内部结构。也可设置密码,让用户输入密码才能查看。

(2)Simulate: 是否允许运行模型仿真。也可设置密码,让用户输入密码才能运行。

(3)Use generated code:是否允许将模型生成为C/C++代码。

(4)Use generated HDL code:是否允许根据模型生成硬件描述语言(Hardware Description Language,缩写为 HDL)。

生成方式有两种,一般选择Protected model (. slxp) only,即只生成slxp模型,不打包依赖文件。点击Create,将在原目录下生成和上述引用模型同名的slxp模型。

2.3 在原总slx模型中引用slxp模型

返回到原总模型查看,可以看到Simulink自动将模型替换为加密后的引用模型:

这是因为当同一个目录下同时包含subsystem.slx和subsystem.slpx两种同名引用模型时,simulink优先加载slxp模型。所以不要将生成的slxp模型重命名。其它子系统按同样方法处理。

注意在运行之前关闭生成的子系统slx引用模型窗口,因为子系统slx和slxp两个模型同名,同时在simulink打开会造成命名冲突。

3.同时加密多个子系统

当一个子系统被加密为slxp后,其它依赖它的子系统将无法转换为引用模型,因此最好将全部要加密的子系统均转换为引用模型后再统一加密。

注意:包含传函等连续系统的模块必须离散化后才能使用这种方法加密。加密完成后需要将生成的子系统slx引用模型删除,只保留加密模型slxp,不然等于没有加密。

————————————————

                            本博客仅供学习和交流使用,不可用于商业目的,否则由此引发的法律纠纷由自身承担,与作者无关。文章中的引用材料均注明出处,如有侵犯您权益的地方,请尽快联系作者修改。

                        

原文链接:https://blog.csdn.net/anbuqi/article/details/133954414



https://blog.sciencenet.cn/blog-54347-1445136.html

上一篇:[转载]Simulink代码生成: Data Type Conversion模块及其代码
下一篇:[转载]表磁、剩磁和磁通量
收藏 IP: 180.154.88.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-12-27 06:29

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部