日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

字典添加数据_MATLAB自动化——EXCEL与数据字典管理(一)

發布時間:2025/3/12 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 字典添加数据_MATLAB自动化——EXCEL与数据字典管理(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

以下平臺同步更新,歡迎喜歡的朋友收藏、分享

知乎專欄:汽車電控雜談微信公眾號:AutoGeeker

在從EXCEL自動生成Signal和Parameter到Workspace中一文中,我們將所有設計數據都定義在基礎工作區。

將設計數據存儲位置設置在基礎工作區,可以方便對參數數值進行修改,特別適合在開發初期仿真或快速原型階段,臨時存儲設計數據。

而開發過程中需要長久性的存儲設計數據時一般會使用數據字典的形式來進行存儲,使用數據字典代替基礎工作區來分區數據、跟蹤更改、控制訪問和共享數據。

當然,如果從模型最終的產物代碼來說,不管是用基礎工作區還是用數據字典,生成的代碼都是一樣的。

什么是數據字典?

在Simulink中,數據字典用于存儲定義參數和信號的設計數據,也包括模型設置相關的數據。

以MATLAB2016b中的數據字典為例,數據字典使用sldd文件格式,可在Model Explorer中打開,數據字典中包括三個部分:

  • Design Data:包含定義參數、信號以及決定模型行為的設計數據的變量和數據類型。在字典中創建或導入的設計數據存儲在此分區中。
  • Configurations:包含決定如何在仿真過程中配置模型的配置集,如采樣時間和仿真開始時間。
  • Other Data:包含與模型有關但在仿真過程中模型不使用的信息,例如描述模型所表示的物理設備和過程的數據。

在較新版本的MATLAB中另外還有Embedded Coder Dictionary:包含用于 Embedded Coder 的代碼生成定義。

使用EXCEL管理數據

我們在對模型設計數據的管理時,可以直接使用數據字典進行管理,包括編輯、添加、刪除參數或信號等操作。而實際項目共享設計數據時,對方可能未使用或者安裝有MATLAB,此時使用EXCEL來進行設計數據管理,并共享是一種比較方便可行的方式。

例如我們可以設計一個設計數據EXCEL模板,模板中盡可能多的涵蓋參數或信號的相關信息

信號數據:

參數數據:

EXCEL導入數據字典

實現思路:

  • 讀取EXCEL生成m文件
  • 新建數據字典sldd文件
  • 數據字典導入m文件
  • Step1.讀取EXCEL生成m文件

    這里偷個懶,代碼可參見從EXCEL自動生成Signal和Parameter到Workspace中一文。可以根據實際需要,修改或添加代碼,對EXCEL中的信息是否完全提取或者選擇部分進行提取。

    生成m文件格式大致如下,主要包含有參數、信號的定義。

    信號、參數使用Signal和Parameter進行定義,向剛接觸Simulink的同學推薦一本教程

    京東鏈接如下:


    Step2.新建數據字典sldd文件

    見Step3代碼


    Step3.數據字典導入m文件

    主要涉及以下幾個功能函數:

    • Simulink.data.dictionary.create 新建數據字典
    • Simulink.data.dictionary.open 打開數據字典
    • getSection 獲取數據字典分區,設計數據需要導入到Design Data分區
    • importFromFile 從文件導入數據
    • saveChanges 保存數據字典修改
    clear;clc;% save data dictionary file name [DataDictName,~,~] = uiputfile('*.sldd','Save as a data dictionary file');if DataDictName ~= 0exist_flag = exist(DataDictName,'file');if exist_flag == 0% creat new sldd file in current working folder.NewDictObj = Simulink.data.dictionary.create(DataDictName); else% open existing sldd file .NewDictObj= Simulink.data.dictionary.open(DataDictName);end% import matlab file to data dictionary [FileName,~,~] = uigetfile('*.m','Import from Matlab file'); if FileName ~= 0DataSectObj = getSection(NewDictObj,'Design Data');% import matlab fileImportedVars = importFromFile(DataSectObj,FileName,'existingVarsAction','overwrite');% save changes saveChanges(NewDictObj);% msgbox msgbox('New sldd file has been created.');end end

    實現效果

    運行代碼,彈窗設置保存sldd文件名

    彈窗選擇需要導入的m文件

    導入成功

    可用ModelExplorer打開生成的sldd文件

    總結

    以上是生活随笔為你收集整理的字典添加数据_MATLAB自动化——EXCEL与数据字典管理(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。