模型保護(Protected Models for Model Reference)


1.將子系統轉換為模型的引用:

(1)將待轉換的部分使用CTRL + G合成子系統,並為該子系統命名保存。

(2)使用如下的matlab語句進行子系統向模型引用轉換

     Simulink.SubSystem.convertToModelReference(...

     'simulink文件名稱/要保護的子系統名稱', ...

     '新模型引用名稱,與之前的子系統名稱不同', ...

     'AutoFix',true,...

     'ReplaceSubsystem',true,...

     'CheckSimulationResults',true);

(3)將轉換后的模型引用進行保存。

2.模型保護:

(1)對上述保存的模型引用右鍵,選擇Subsystem&Model Reference->Create Protected Model for Selected Model Block.

(2)出現對話框,勾選simulink與use generated code,並填寫密碼(每一行填寫相同的密碼,該密碼至少為4位)。

(3)存儲地址與create hardness model for protected model,可以選擇性勾選。

(4)點擊create,構建受保護模型。

(5)文件夾中出現的后綴為.slxp的即為創建的受保護模型。

3.使用受保護的模型

(1)對模型左下角的盾牌符號右鍵,選擇Authorize,輸入Simulation與Code Generation的密碼,點擊OK,即可對該模型進行仿真與代碼生成。

(2)授權的時間為本次matlab軟件使用時間。

 

上述方法針對於2016b等高版本,該方法在2012b等低版本上會出現不適配的情況,所以做新的方法說明:

1.子系統轉換為模型引用

(1)右鍵子系統->Block Parameters->勾選 Treat as atomic unit -> Sample time = -1->Apply.

(2)右鍵子系統->Subsystem & Model Reference->Convert Subsystem to -> Referenced Model(如果出現提示,選擇continue conversion)。

(3)模型引用生成,保存新的simulink模型引用。

2.模型引用轉換為受保護的模型

(1)右鍵模型引用-> Subsystem & Model Reference->Create Protected Model for Selected Model Block.

(2)出現對話框,如果需要將模型轉換為代碼,則勾選Include generated code(Create harness model for protecred model按需勾選)。

(3)點擊create,完成創建。

3.受保護模型的使用

(1)點擊受保護模型,出現模型說明文檔,點擊代碼生成(勾選include generated code),則直接生成代碼,無需填寫密碼。

 

1.如果在模型保護過程中出現“cannot be used with a variable-step solver”問題,請將原模型引用的解算器更改為離散定步長。

2.受保護模型中不能出現另一個受保護模型。

 

關於Protected Models for Model Reference

1.加密方法采用AES-265

2.要定位受保護的模型,需要查找

(1)MATLAB文件夾瀏覽器中帶有徽章圖標的文件

(2)在左下角帶有徽章圖標的Model模塊

(3)擴展名為.slxp的文件

(p.s.受保護的模型不會出現在Model Explorer的模型層次結構中)

3.引用受保護的模型

(1)檢查受保護模型是否支持所需的功能(受保護模型報告將顯示所支持的功能)

(2)檢查自己的simulink版本是否支持該受保護模型

目的 跨版本支持
只讀視圖 在R2018b或更高版本中保護的模型可以在其原始版本和更高版本中使用
Normal模式下的方針 在R2018b或更高版本中保護的模型可以在其原始版本和更高版本中使用
Accelerator模式下的仿真 不支持跨版本
SIL或PIL模式下的仿真 不支持跨版本
Rapid Accelerator模式下的仿真 不支持跨版本
代碼生成 不支持跨版本

(3)確認可以訪問在受保護模型中使用的許可證。如果可用,受保護模型報告會顯示所需的許可證。

(4)如果計划對受保護模型進行仿真,請使用曾用於創建受保護模型的相同平台。軟件將受保護模型存儲為已編譯的 MEX 二進制文件。

(5)如果接收了一個受保護的模型包,請按照隨附的說明解包文件。

(6)確保受保護模型位於 MATLAB 路徑上。

(7)如果接收了一個框架模型,請將框架模型中的 Model 模塊復制到您的模型中。否則,請在 Model 模塊中引用受保護模型。

(8)當設置 Model 模塊以引用受保護模型時,模塊的 Simulation mode 變為 Accelerator。不能更改此模式或在外部模式下使用此 Model 模塊。

 

在對保護模型進行代碼生成時,需要對受保護模型的基礎模型進行環境設置,如果需要在autobox上運行,需要按照autobox的環境配置進行設置,

如果需要在其他的處理器上運行,則需要按照該處理器對模型環境的要求進行修改。

環境變量設置(autobox):

1.fundamental sample time,需要與調用模型的仿真周期設置一致。

2.Singal Logging:一般設置為最終的輸出值

3.Inline Prameter:針對2012版matlab,不進行選擇

4.其余的設置按照dspace的要求進行

 

==============================================================================================================

Error解釋:

1.Input port 1 of the specified subsystem block has constant sample time. Cannot convert subsystems with constant inputs to model reference.

  該Error的解決方式是斷開所有的輸入,再次進行引用操作

2.The model 'xxxxx' cannot be protected because it or a model that it directly or indirectly references contains a non-inlined S-Function.

  該Error出現在保護模型過程中,目前定位問題為模型中大量使用了屬性為Global的goto/from標簽


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM