[發明專利]一種Simulink的自動布局方法有效
| 申請號: | 201910383814.0 | 申請日: | 2019-05-08 |
| 公開(公告)號: | CN110298062B | 公開(公告)日: | 2022-09-20 |
| 發明(設計)人: | 陳浩;趙瑞永;黃曉;郭悅 | 申請(專利權)人: | 北京靈思創奇科技有限公司 |
| 主分類號: | G06F30/3308 | 分類號: | G06F30/3308;G06F30/392 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 100000 北京市昌平*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 simulink 自動 布局 方法 | ||
1.一種Simulink的自動布局方法,其特征在于,包括以下步驟:
S1:獲取模型所有關于布局的信息,包括模塊的信息和模塊之間的樹形層次關系;
S2:整理子系統模塊下面的標簽類型模塊; 如果有局部標簽模塊,就刪除局部標簽模塊,用連線連接;如果有非局部標簽模塊,就先遍歷整個模型的模塊樹,找到所有相同名字的非局部標簽模塊(Scoped或者Global類型),然后按讀寫類型分兩組;寫類型只有一個,讀類型可以為多個;寫類型模塊命名為A,在讀類型組中遍歷,取當前的讀類型模塊命名為B;另外創建圖的數據結構保存從一個寫類型模塊到若干個讀類型模塊的連接信息;
S3:整理模塊的輸入和輸出數據; 把輸入數據中所有維度為1,且數據類型相同的數據整合成一個多維的輸入數據; 把輸出數據中所有維度為1,且數據類型相同的數據整合成一個多維的輸入數據;
S4:從頂層的根模塊開始遍歷處理所有的模塊和子模塊;
S5:在處理每個模塊的時候,把模塊的信息轉成Graphviz的輸入,然后調用Graphviz的算法得到自動布局的結果,然后設置模塊的布局信息,包括模塊位置、高度、寬度等;
S6:本方法通過MATLAB提供的接口添加到Simulink的模型編輯菜單里,用戶在使用Simulink的時候右鍵彈出菜單,選擇并使用本方法;
S7:本方法在使用的時候,先彈出對話框,或者提供配置文件,讓用戶選擇設置布局的一些基礎信息,比如字體、字體大小、布局間隔等。
2.根據權利要求1所述的一種Simulink的自動布局方法,其特征在于,所述S1中模塊的信息包括位置、高度、寬度、模塊的顯示文本、輸入的數據類型、輸入個數、輸出的數據類型和輸出的個數。
3.根據權利要求1所述的一種Simulink的自動布局方法,其特征在于,所述S2處理標簽模塊連接步驟為:
步驟一:開始連接兩個模塊A和B;
步驟二:如果兩個模塊在同一個子系統模塊里,則刪除標簽模塊,用連線連接,退出循環,取下一個讀類型模塊命名為B,重新開始步驟一,直到遍歷結束;
步驟三:遍歷整個模型的模塊樹,確定兩個模塊的層次; 根模塊的層次為0,根模塊的子模塊的層次為1,依次遞增; 并獲取兩個模塊所有的父模塊隊列; 父模塊隊列的第一個是根模塊;
步驟四:獲取模塊B可達的父模塊C:在B模塊的父模塊隊列中逆序遍歷,如果模塊已經在圖里,則找到合適的父模塊C,退出遍歷;如果模塊在A模塊的父模塊隊列中,則找到合適的父模塊C,退出遍歷; 一直遍歷到根模塊為止; 根模塊是所有模塊的父模塊;
步驟五:從模塊A到模塊C,創建輸入輸出模塊并連接起來;從模塊B到模塊C,創建輸入輸出模塊并連接起來; 最后在模塊C處,把輸入輸出模塊通過連線連接起來,并保存在圖里。
4.根據權利要求1所述的一種Simulink的自動布局方法,其特征在于,所述S5中模塊的信息包括位置、高度、寬度、模塊的顯示文本、輸入的數據類型、輸入個數、輸出的數據類型和輸出的個數。
5.根據權利要求1所述的一種Simulink的自動布局方法,其特征在于,所述S6具體是創建Matlab腳本文件sl_customization.m,把自定義的菜單項添加到Simulink的模型編輯菜單里; 當用戶啟動Simulink時,右鍵顯示自定義的菜單; 當用戶點擊自定義菜單項時,可以執行用戶預定義的操作。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京靈思創奇科技有限公司,未經北京靈思創奇科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910383814.0/1.html,轉載請聲明來源鉆瓜專利網。





