- Model Advisor
- 檢查項說明
- Code Generation Efficiency
- Data Transfer Efficiency
- Frequency Response Estimation
- Managing Data Store Memory Blocks
- Managing Library Links And Variants
- Migrating to Simplified Initialization mode
- Model Metrics
- Model ReferencingCheck for model reference configuration mismatch(Model reference)
- Modeling Guidelines for MISRA C:2012
- Modeling Physical System
- Modeling Signals and Parameters using Buses
- Modeling Single-Precision Systems
- Modeling Standards for D0-178C/D0-331
- Modeling Standards for EN 50128
- Modeling Standards for IEC 61508
- Modeling Standards for IEC 62304
- Modeling Standards for ISO 26262
- Modeling Standards for MAAB
- Requirements Consistency Checking
- Simulation Accuracy
- Simulation Runtime Accuracy Diagnostics
- Simulink Code Inspector compatibility checks
- Simulink Design Verifier Compatibility checks
- Simulink Design Verfier Design Error Check
- Simulink Model File Integrity
- Units Inconsistencies
- Upgrading to the Current Simulink Version
Model Advisor
運行模型顧問檢查並查看結果
-
打開模型
-
在Simulink Editor中,點擊Modeling 選項卡,選擇Model Advisor ,將打開System Selector - Model Advisor 對話框。然后進行選擇:
- Show by Product Folder:顯示每種產品可用檢查
- Show By Task Folder:顯示與具體任務相關的檢查
-
點擊包含檢查的文件夾,並在模型顧問的右側窗格中進行選擇:
- Show report after run: 用於自動生成報告並以HTML格式顯示
- Run Selected Checks:用於執行分析
-
在模型顧問用戶界面上查看結果,常見的檢查狀態為:
- Pass:檢查未發現問題
- D-Pass:取決於配置參數或另一項檢查的成功執行
- Warn:檢查發現了問題
- Fail:檢查無法執行
-
根據需要修復警告或故障,
-
使用Exclusions選項卡查看標記未從分析中排除的檢查。在模型顧問的右側窗格中顯示Exclusions選項卡,請打開Settings > Preferences之后選擇Show Exclusion tab
-
查看並保存報告。
-
如果需要,可以將檢查狀態重置為Not Run,在左側窗格中,點擊Model Advisor,之后選擇“Reset”,該操作不會從模型顧問中刪除分析結果。
通過運行先前分析中使用的檢查來節省分析時間
可以使用模型顧問控制板對模型始終運行同一組檢查來節省時間。當使用控制板時,模型顧問不用在執行檢查之前重新加載這些檢查,從而節省分析時間。
-
打開模型
-
選擇Model Advisor > Model Advisor DashBoard。將打開System Selector - Model Advisor對話框。選擇要查看的模型或系統,點擊OK。
-
打開Model Advisor Dashboard窗口。通過該控制板,可以選擇:
- 點擊Run checks按鈕,執行與先前分析相同的檢查
- 點擊Switch to standard view按鈕,打開模型顧問並選擇不同檢查
- 點擊Enable Highlighting按鈕,在Simulink Editor中查看突出顯示的結果。 使用該選項,將打開Model Advisor Highlighting信息窗口,其中包含只想模型顧問窗口的鏈接,在模型顧問窗口中,可以找到有關檢查結果以及如何修復警告條件的詳細信息。
-
點擊Run checks按鈕,對模型運行前分析中所用的相同檢查,如果需要,點擊Enable Highlighting按鈕。
檢查項說明
Code Generation Efficiency
- check optimization settings
該項用於檢查是否可能導致非最佳代碼生成和仿真的優化。
常見的warning:
- Inline invariant signals(InlineInvariantSignals)
-
含義:該項含義為是否內聯不變信號來優化生成的代碼。在內聯后生成的代碼使用不變信號的數值而非其符號名稱。
-
優化優勢:
- 減少ROM和RAM的消耗
- 提高執行速度
-
推薦選項:不推薦修復該選項,會直接將類似版本號這類不變信號進行優化。
-
不變信號與不變常數
- 不變信號:simulink中使用常值的模塊,例如gain模塊和constant模塊
- 不變信號:連接不變模塊的線(信號)
-
Identify blocks using one-based indexing
- 該項用來查看所使用的模塊是否是采用one-based index,如果是,需要將相關模塊修改為zero-based index。
- 或者是是否有基於one-based index的非simulink基礎模塊,查看這些模塊是否可以使用simulink基礎模塊進行替換。
-
Identify questionable software environment specifications
該項用來檢查“參數應用程序生命周期”的值,當其為的默認值為“自動”,應明確指定此參數的值以生成生產代碼。若該軟件不用於量產,可以忽略。
-
identify lookup table blocks that generate expensive out-of-range checking code
該項用來判斷輸入值是否在查找表的斷點范圍內。
選項 | 結果 | 使用范圍 |
---|---|---|
off | 生成的代碼包含用來檢查超出范圍的輸入的條件語句。 | 適用於安全性至關重要的應用領域 |
on | 生成的代碼中未包含用來檢查超出范圍的斷點輸入的條件語句。 | 提高代碼效率 |
默認值為off,一般推薦不進行修改
-
check output types of logic blocks
針對於輸出數據類型為布爾值的模塊進行檢查,來識別出其中輸出為非布爾數據類型的邏輯塊,進行修改后可以提高代碼的運行效率
-
Identify bolcks that generate expensive rounding code
該項主要對模塊運算中進行的舍入、取整方式進行檢查。某些舍入方式會產生大量的運算量,需要針對硬件配置進行設置。系統推薦為Zero或simple;某些取整方式會產生大量的運算量,需要針對硬件配置進行設置。系統推薦為Simplest或Floor。
-
Identify questionable fixed-point operations
- 該項針對定點多字操作進行檢查。包括多字運算主要針對大於處理器最大字長的數據類型在具有多字操作的軟件中進行處理,可以參考生成代碼中的定點多字操作進行處理。
- 同時還針對查找表優化進行檢查:如果“斷點”數據不可調整,請將“斷點”數據調整為具有2個間隔的偶數冪,並使用“等距點”索引搜索方法,會更有效的實施查找。
- 要生成更有效的代碼,需要設置整數舍入模式參數更改為最簡單,或將配置參數>所有參數>硬件實現>有符號整數除法舍入更改為設置。
-
Identify blocks that generate expensive fixed-point and saturation code
- 該項會針對輸入輸出不同偏差進行檢查,當輸入值於輸出值的偏差(bias)不同時,會增加額外的計算,降低代碼運行效率。
- 會對計算模塊輸出結果溢出進行檢查。
- 會針對Max/Min模塊的輸出輸出數據類型進行檢查。因為每次都會進行數據轉換操作,會導致程序運行效率低下。或者是在進行數據轉換時會產生數據精度的丟失。
- 會針對數據類型轉換Convert模塊進行檢查:有一些Convert模塊會調用凈斜率計算進行轉換。而凈斜率計算可以通過以下方式實現:乘法和移位或整數乘法和/或除法。將“配置參數”>“優化”>“將除法用於定點凈斜率計算設置”設置為“開”可能會生成更有效的代碼。要使用此選項,請將整數舍入模式參數更改為“最簡單”,或將“配置參數”>“硬件實現”>“生產硬件”>“有符號整數除法舍入”更改為設置。
- “與常數比較模塊”產生數據溢出,需要修改。
- 離散積分器含有復雜的初始化條件模式,需要修改。
Data Transfer Efficiency
-
check Delay, Unit Delay and Zero-Order Hold blocks for rate transition
該項用來識別執行速率轉換模型中的延遲,單位延遲和零階保持模塊。可以將它們替換為Rate Transition模塊。
Frequency Response Estimation
1.Identify time-varying source block interfering with frequency response estimation
查找模塊中的時變模塊,檢查這類模塊是否設置標記的線性化輸出點,進行輸出點設置的模塊在輸出參數中對輸入的選項為指定為保持恆定。該種設置的時變模塊會干擾頻率相應估計過程並導致結果不准確。
Managing Data Store Memory Blocks
-
**Check Data Store Memory blocks for multitasking, strong typing, and shadowing issues **
該項檢查建模問題種有關數據存儲模塊,例如多任務數據完整性,存儲類型以及shadowing of data stores of higher scope.
-
Check Data Store block sample times for modeling errors
檢查數據存儲模塊的采樣時間沒有連續或小固定步長的采樣時間(fixed-in-minor-step)
-
Check for potential ordering issues involing data store access
檢查與數據存儲有關的模塊是否存在寫前讀、讀后寫、寫后寫等場景。(read before write/write after read/write after write)
Managing Library Links And Variants
-
Identify disabled library links
檢查模塊種禁用的庫鏈接,意外禁用的庫鏈接可能會導致意外的仿真結果,通常不應在禁用庫鏈接的情況下保存模型。
請注意,此檢查的結果可能與已知升級問題的檢查結果重疊。 -
Identify parameterized library links
在模型種查找參數化的庫鏈接,意外參數化的庫鏈接可能會導致意外的仿真結果。
-
Identify unresolved library links
在模型種查找未解析的庫鏈接,即找不到庫塊的鏈接。具有未解析的庫鏈接的模型無法仿真。
-
Identify variant block that override variant choice
使用“override option”而非“active variant control”來標識變量模塊。
-
Identify configurable subsystem blocks for converting to variant subsystem blocks
在模型或子系統種識別可以配置的子系統模塊,可以將這些模塊轉變為變體子系統。
Migrating to Simplified Initialization mode
-
check usage of Merge blocks
-
Check usage of output blocks
-
check model settings for migration to simplified initializaCtion mode
Model Metrics
Count Metrics
-
Simlink block metric
顯示模型或子系統種的塊數
-
Subsystem metric
顯示模型或子系統種子系統的數量
-
Library link metric
顯示模型或子系統種的庫鏈接數量
-
Effective lines fo MATLAB code metric
顯示MATLAB代碼有效行數
-
Stateflow chart object metric
顯示每個chart種stateflow對象數量
-
Lines of code for Stateflow blocks metric
顯示stateflow塊的代碼行數
-
Subsystem depth metric
顯示模型或子系統中子系統的深度
Complexity Metrics
-
Cyclomatic complexity metric
顯示Simulink和Stateflow對象的圈復雜度(控制流語句)
Readability Metrics
-
Nondecriptve block name metric
顯示“輸入”“輸出”和“子系統”塊的非描述性名稱
-
Data and structure layer separation metric
顯示數據和數據層分離,由MAAB建模指南db_0143定義
Model ReferencingCheck for model reference configuration mismatch(Model reference)
-
Check for model reference configuration mismatch
識別子模塊中配置設置與頂級模塊不匹配的模型塊。
-
Check diagnositic settings ignored during accelerated model reference simulation
識別加速器仿真不支持的模型診斷設置。
-
Check code generation identifier formats used for model reference
識別代碼生成不支持的模型標識符格式設置
-
Check for parameter tunability information ignored for referenced models
檢查其“模型參數配置”對話框指定參數可調性信息的模型。
-
Check for implicit signal resolution
檢查配置用於隱式信號解析的模型,即嘗試將所有命名的信號和狀態解析為Simulink.Signal對象。
這會導致仿真、代碼效率低下,並且會減慢增量代碼的生成和模型引用的速度。 -
Check bus usage
mux模塊是否被誤用為bus creator
-
Check root model Inport block specifications
檢查根模型未完全定義其屬性的根Inport塊(例如尺寸,采樣時間或數據類型),可能會導致不良結果
Modeling Guidelines for MISRA C:2012
-
Check configuration parameters for MISRA C:2012
檢查有可能影響符合MISRA C:2012的代碼生成的配置參數。
- 模型配置參數中未設置為數據文件總指定的建議值。
-
Check for blocks not recommended for MISRA C:2012
識別不符合MISRA C:2012規范的代碼生成的塊或不建議使用的塊。
-
Check for unsupported block names
確定包含“ /”的塊名稱。
-
Check usage of Assignment blocks
如果Assignment模塊的輸出元素沒有指定Error或Warning選項,需要對該模塊進行仿真運行時間診斷設置。
-
Check for bitwise operations on signed integers
標識有符號整數的按位運算。
-
Check for recursive function calls
確定遞歸函數的調用關系。
-
Check for equality and inequality operations on floating-point values
對浮點值的相等、不相等運算進行檢查
建議使用非浮點值進行相等、不相等運算。
-
Check for switch case expressions without a default case
檢查switch模塊,對於該模塊,推薦使用show default case來顯式指定一個默認case
Modeling Physical System
-
Check consistency of block parameter units
檢查塊參數單位的一致性:檢查用模糊的參數單位設置識別Simscape塊,例如一個以‘Hz'標識的塊參數可以在對話框中以’rads‘為單位指定,這種設置可能導致應用於數值的意外轉換因子。
-
Check for dry hydraulic nodes
檢查液壓節點???
Modeling Signals and Parameters using Buses
-
Check for optimal bus virtuality
檢查可以變為非虛擬的虛擬總線,以提高生成代碼的效率。
-
Check structure parameter usage with bus signals
識別引用結構參數的塊或Simulink.Signal對象,檢查這些參數的數據類型於關聯的總線信號是否一致
-
Check bus usage
檢查並識別Mux或視作矢量的任何總線信號的使用是否正確
Modeling Single-Precision Systems
-
Identifu questionable operations for strict single-precision design
檢查雙精度操作和非最佳模型設置設置是否滿足涉及要求,分為如下幾個方面:
- 檢查模型設置是否嚴格執行的單精度設計
- 檢查設計雙精度運算的模塊,確保其中的端口數據類型及中間量數據類型是一致的。
Modeling Standards for D0-178C/D0-331
-
Check model object names
檢查如下類型的模塊名稱是否符合要求:
- Blocks
- Signals
- Parameters
- Busses
- Stateflow elements
-
Display model version information
在報告中顯示模型版本信息(包括模型配置和校驗和信息,該設置是基於根級別的設置,在子系統上進行執行)
-
Check safety-related optimization settings
檢查模型配置中可能影響安全性的優化設置,該檢查項會對相關的系統設置提供建議選項
-
Check safety-related code generation settings
檢查模型配置中可能會影響安全性的代碼生成設置
-
Check for variant blocks with 'Generate preprocessor conditionals' active
檢查可能導致代碼無法追溯到需求的變體塊設置
-
Check sample times and tasking mode
檢查是否進行了錯誤的仿真時間以及任務模式設置,導致可能出現的代碼執行效率低下情況
-
Check solver for code generation
檢查用於生成代碼的解算器,不正確的解算器設置可能會導致代碼無法生成,同樣的,采樣時間不足也會導致該情況發生
-
Check the hardware implementation
檢查“字節排序”以及“有符號整數除法舍入”、“生產硬件”和“測試硬件”設置是否匹配。不正確的設置會導致生成錯誤代碼或者是運行效率低下的代碼。或者產生於硬件屬性不一致或規格不匹配的代碼。
Requirements Traceability
-
Check for blocks that do not link to requirements
檢查模型中直接接地的信號。
-
Identify requirement links that spcify invalid locations within documents
檢查模型中信號鏈接是否有效
-
Identify requirement links with missing documents
確保需求鏈接到現有文檔。
-
Identify requirement links with path type inconsistnet with prefereences
檢查需求路徑是否是在首選項中選擇的類型(絕對,相對於模型,相對於路徑)
-
Identify selection-based links having description fields that do not match their requirements document text
確保基於選擇的鏈接的描述字段使用在其需求文檔中找到的相同文本(需求文本??)
Model Diagnostic Settings
-
Check safety-related diagnostic settings for solvers
檢查模型配置中適用於求解器的可能影響安全性的診斷設置。
-
Check safety-related diagnostic settings for sample time
檢查模型配置中適用於采樣時間的可能會影響安全性的診斷設置。
-
Check safety-related diagnostic settings for signal data
檢查模型配置中適用於信號數據並可能影響安全性的診斷設置。
-
Check safety-related diagnostic settings for parameters
檢查模型配置中適用於參數並可能影響安全性的診斷設置。
-
Check safety-related diagnostic settings for data used for debugging
檢查模型配置中的診斷設置,這些診斷設置適用於用於調試的數據,並且可能會影響安全性。
-
Check safety-related diagnostic settings for data store memory
檢查模型配置中適用於數據存儲內存並可能影響安全性的診斷設置。
-
Check safety-related diagnostic settings for type conversions
檢查模型配置中適用於類型轉換並可能影響安全性的診斷設置。
-
Check safety-related diagnostic settings for signal connectivity
檢查模型配置中適用於信號連接性並可能影響安全性的診斷設置。
-
Check safety-related diagnostic settings for bus connectivity
檢查模型配置中適用於總線連接並可能影響安全性的診斷設置。
-
Check safety-related diagnostic settings for apply to functioon-call connectivity
檢查模型配置中的診斷設置,這些設置適用於功能調用連接並可能影響安全性
-
Check safety-related diagnostic settings for compatibility
檢查模型配置中影響兼容性並可能影響安全性的診斷設置
-
Check safety-related diagnostic settings for model initialization
檢查模型配置中可能影響模型初始化並可能影響安全性的診斷設置。
-
Check safety-related diagnostic settings for model referencing
檢查模型配置中適用於模型參考的診斷設置,這可能會影響安全性。
-
Check safety-related diagnostic settings for saving
檢查模型配置中適用於保存模型文件的診斷設置。
Simulink
-
Check usage of lookup table blocks
檢查查找表塊,預查找塊和插值塊,它們不會生成超出范圍的檢查代碼。
-
Check for blocks that have constraints on tunable parameters
檢查具有可調參數的查找表是否具有嚴格的約束,該約束主要針對於單調性。若再仿真過程中調整該參數或運行時生成的代碼,每個表的斷點值沒有嚴格執行單調增加,會導致代碼錯誤。
-
Check for Discrete-Time Integrator blocks with initial condition uncertainty
該檢查項主要針對既不由IC也不由常量模塊饋送的帶有狀態端口和初始條件端口的離散時間積分器模塊,可能無法正確初始化。
-
Check for potentially delayed function-call block return values
識別由於Simulin插入隱式信號轉換塊而可能導致延遲的函數調用塊返回值
-
Check model for block upgrade issues
分析模型以解決塊升級問題,該問題主要根據前后simulink版本,對升級后可能產生的前后不匹配問題問題進行先行檢查。
-
Check root model Inport block specifications
根模型未完全定義其屬性的Input塊可能會導致不良結果。
-
Check usage of Merge blocks
檢查Merge模塊的使用情況,Merge模塊的基礎使用要求是驅動同一Merge模塊的塊應該在每個時間步中互斥執行。
具體包含如下幾項檢查:
-
檢查具有未指定“初始輸出”的merge模塊
-
檢查合並塊的運行時診斷設置
在“配置參數”對話框的“所有參數”選項卡上,確保將“合並”塊的“檢測多個同時執行的驅動塊”選項設置為“錯誤”。
-
-
Check for blocks not recommended for C/C++ production code deployment
識別代碼生成中不支持的塊或建議將其用於C/C++生產代碼部署的塊
-
Identify questionable subsystem settings
檢查子系統設置是否會導致非最佳結果。
(將子系統設置為原子模塊將強制生成的代碼使用全局內存來存儲子系統的I/O,所以為了減少生成代碼使用的全局變量,不建議設置原子模塊)
-
Check usage of tunable parameters in blocks
檢查模塊中是否具有用於指定表達式、數據類型轉換或索引操作的模塊使用了可變參數
-
Check usage of Math Operations blocks
確定Simulink中數學運算模塊的使用可能會影響安全性,具體包含如下的具體檢查項:
-
檢查Abs塊的使用情況,確定可能產生無法訪問的代碼或溢出的絕對值塊。當Abs塊對一個無符號值進行操作,這可能會導致無法訪問的代碼:
-
檢查增益塊的使用,識別值等於1的增益塊
-
檢查數學函數的使用-自然對數塊,識別數學功能-可能導致非有限輸出信號的自然對數塊。
-
檢查數學函數的用法-常用(以10為底)對數塊,識別數學函數-通用(以10為底)的對數模塊,可能會導致輸出信號不確定。
-
檢查數學功能的使用-除法運算塊后的余數,識別數學函數-除法除法運算塊之后的余數,可能會導致輸出信號不確定。
-
檢查數學功能的使用-倒數模塊,識別數學功能-可能在輸出端產生非限定信號的倒數塊。
-
檢查分配塊的使用,標識可能具有不完整的數組初始化的分配塊,這些分配塊沒有模擬運行時診斷如果未將任何輸出元素分配給以下對象,則將采取以下措施:
-
警告,如果分配塊在迭代器子系統中
-
錯誤,如果工作分配塊不在迭代器子系統中
-
-
-
Check usage of Signal Routing blocks
確定Simulink中信號路由模塊的使用可能會影響安全性。常見的路由模塊為Switch模塊,該項會對switch進行如下的檢查:檢查開關塊,標識可能在表達式的至少一側為浮點變量或常量的表達式中使用不等號運算符(〜=)生成代碼的Switch塊。Switch塊可能會在生成的代碼中引起浮點不等式比較。
-
Check usage of Logic and Bit Operations blocks
確定Simulink中邏輯和位運算模塊的使用可能會影響安全性。該項主要進行如下檢查:
- 計算關系運算符的塊:標識計算關系運算符的塊,該關系運算符對不同的數據類型進行操作或將浮點類型等同。當關系運算符在兩種不同的數據類型上進行操作,這可能導致所生成的代碼產生不可預測的結果
- 計算關系運算符的塊未輸出布爾數據類型,這可能會導致生成的代碼中出現不可預測的結果。
- 計算關系運算符的塊試圖將兩個浮點數等價,這可能會導致生成的代碼中出現不可預測的結果。
- 檢查邏輯塊,標識具有非布爾輸入或輸出的邏輯運算符塊。這些塊可能會導致生成的代碼中出現浮點相等或不相等比較。
-
Check usage of Ports and Subsystems blocks
確定Simulink中端口和子系統模塊的使用可能會影響安全性。將進行如下的檢查:
- while迭代模塊是否會進無限循環、
- For迭代模塊是否會進行無限循環
- 檢查if模塊:用If表達式或Elseif表達式標識If塊,這些表達式可能會在生成的代碼中引起浮點相等或不相等比較。在沒有Else條件的情況下使用Elseif表達式識別If塊。確定輸出端口未連接到If Action Subsystem塊的If塊。
- 檢查switch塊:識別沒有默認輸出的Switch Case塊。標識帶有未連接到Switch Case Action Subsystem模塊的輸出端口的Switch Case模塊。
- 檢查與時間有關的樣本塊,識別While和For Iterator子系統中與時間有關的樣本塊。
-
Check bus usage
標識用作總線創建器的任何Mux塊以及視為矢量的任何總線信號。
-
Identify unconnected lines, input ports, and output ports
檢查模型中是否存在未鏈接的模塊
-
Check for Strong Data Typing with Simulink I/O
檢查標記的輸入和輸出信號是否為強類型。確定Stateflow圖表是否已清除Simulink I / O的“使用強數據鍵入”。
-
Check for inconsistent vector indexing methods
檢查整個模型或子系統中向量索引方法的一致性用法。
檢查整個模型或子系統中向量索引方法的一致性用法。(索引從0開始與索引從1開始)
-
Check for MATALB Function interfaces with inherited properties
確定具有輸入,輸出或參數的MATLAB函數,這些輸入,輸出或參數具有繼承的復雜性或數據類型屬性。
-
Check MATLAB Function metrics
顯示MATLAB函數的復雜度和代碼指標,並識別違反指標的情況。
對於模型或子系統中包含的MATLAB函數,確定了以下度量標准:
- LoC:總代碼行
- ELoC:有效的代碼行
- CLoC:代碼注釋行
- DC:注釋的密度
- CYC:循環復雜度
-
Check MATLAB Code Analyzer messages
檢查MATLAB函數中的%#codegen指令,MATLAB Code Analyzer消息和對齊消息ID
-
Check MATLAB code for global variables
避免在MATLAB代碼中使用全局變量。
Stateflow
-
Check Stateflow data objects with local scope
檢查stateflow內部信號和局部輔助變量的范圍
-
Check usage of exclusive and default states in state machines
檢查狀態機的狀態,包含如下子檢查項:
- 檢查Stateflow圖表以獲取排他狀態:標識具有奇異(OR)狀態的Stateflow圖表。
- 檢查Stateflow圖表以獲取未定義的默認狀態:識別未定義默認狀態的Stateflow圖表。
- 檢查分配為默認狀態的多個狀態:在Stateflow層次結構的根級別,僅應將一個狀態分配為默認狀態。
- 檢查具有奇異OR狀態的子狀態:配置為OR的狀態應始終是一組狀態的一部分。
- 檢查未定義默認狀態的子狀態:在Stateflow層次結構的每個級別上,都應分配一個默認狀態。
- 檢查定義了多個默認狀態的子狀態:在Stateflow層次結構的每個級別上,只應將一個狀態分配為默認狀態。
-
Check state machine type of Stateflow charts
檢查狀態機的狀態流圖類型,包含如下的檢查項目:
- 對於使用經典流程圖的狀態機,需要將“狀態機類型”指定為Mealy或Moore。
- 使用Mealy狀態機類型識別Stateflow圖。
- 檢查使用Moore狀態機類型識別Stateflow圖。
-
Check Stateflow charts for ordering of states and transitions
標識不使用並行狀態和轉換的顯式排序的Stateflow圖表。確定已清除用戶指定狀態/轉換執行順序的狀態流程圖。在“圖表屬性”對話框中,為指定的圖表選擇“用戶指定的狀態/轉換執行順序”。
-
Check Stateflow debugging options
確定是否清除了以下Stateflow調試選項:檢測溢出包裝,檢測周期和模擬范圍檢查
-
Check Stateflow charts for uniquely defined data objects
查找具有重復標識符的Stateflow本地數據,標識在圖表內的多個作用域中定義的本地數據標識符。
Library Links
-
Identify disabled library links
搜索在模型中搜索禁用的庫鏈接。意外禁用的庫鏈接可能會導致意外的仿真結果,通常不應在禁用庫鏈接的情況下保存模型。
-
Identify parameterized library links
在模型中搜索參數化的庫鏈接。意外地對參數化的庫鏈接進行設置可能會導致意外的仿真結果。
-
Identify unresolved library links
在模型中搜索未解析的庫鏈接:找不到庫塊的鏈接。具有未解析的鏈接的模型無法仿真。
Model Referencing
-
Check safety-related model referencing settings
檢查模型配置中可能影響安全性的模型引用設置。
-
Check for model reference configuration mismatch
識別其配置設置與頂級模型不匹配的模型塊。
-
Check for parameter tunability information ignored for referenced models
檢查其“模型參數配置”對話框指定參數可調性信息的模型。 Simulink忽略以這種方式為參考模型指定的可調性信息。
Bug Reports
-
Display bug reports for DO Qualification Kit顯示DO資格認證工具包(R2016b)的錯誤報告
-
Display bug reports for Embedded Coder
顯示嵌入式編碼器(R2016b)的錯誤報告
-
Display bug reports for Polyspace Code Prover
顯示Polyspace Code Prover(R2016b)的錯誤報告
-
Display bug reports for Polyspace Bug Finder
顯示Polyspace Bug Finder(R2016b)的錯誤報告
-
Display bug reports for Simulink Code inspector
顯示Simulink Code Inspector(R2016b)的錯誤報告
-
Display bug reports for Simulink Report Generator
顯示Simulink報告生成器(R2016b)的錯誤報告
-
Display bug reports for Simulink Vertification and Validation
顯示Simulink Verification and Validation(R2016b)的錯誤報告
-
Display bug reports for Simulink Test
顯示Simulink Test(R2016b)的錯誤報告
Modeling Standards for EN 50128
-
Check model object names
識別無效的模型對象名稱,該檢查包括如下的幾個名稱:
- blocks
- signals
- Parameters
- Busses
- Stateflow elements
-
Display configuration management data
顯示模型配置和校驗信息
-
Display model metrics and complecity report
顯示元素數量以及模型或子系統的子系統名稱、級別和深度。
-
Check for unconnected objects
識別模型中未連接的線路,輸入端口和輸出端口
-
Check for root Inports with missing properties
在模型的頂層中標識缺少或繼承的采樣時間、數據類型或端口尺寸的Inport塊,指定了入口塊的屬性
-
Check for root Inports with missing range definitions
識別具有最小或最大值缺失或錯誤的根級Inport塊。
輸入模塊的最小值和最大值由模塊參數或Simulink信號對象指定,這些參數明確解析為連接的信號線。
-
Check for root Outpots with missing range definitions
標識具有丟失或錯誤的最小值或最大值的根級輸出塊。
輸出模塊的最小值和最大值由模塊參數或Simulink信號對象指定,這些參數明確解析為連接的信號線。
-
Check for blocks not recommended for C/C++ production code deployment
識別代碼生成不支持的塊或不建議將其用於C、C++代碼編譯部署的塊。
-
Check usage of Stateflow constructs
確定使用State flow構造可能會影響安全性的部分。該項主要進行如下幾方面的檢查:
- 使用Simulink I / O檢查強數據鍵入:驗證配置設置以確保在Simulink和Stateflow結構之間的邊界上進行強數據鍵入
- 檢查Stateflow端口命名:識別Stateflow端口名稱和相關信號之間的不匹配
- 檢查Stateflow數據對象作用域:標識未在圖表級別或以下級別范圍內的具有本地范圍的Stateflow數據對象
- 檢查Stateflow狀態操作的格式:確定狀態中進入動作(en),動作(du)和退出動作(ex)條目之間缺少的換行符。確定語句中分號(;)后缺少的換行符。
- 檢查Stateflow圖以了解狀態和轉換的順序:確定已清除用戶指定狀態/轉換執行順序的狀態流程圖。
- 檢查Stateflow調試選項:確定是否清除了以下Stateflow調試選項:檢測溢出,檢測周期和模擬范圍檢查
- 檢查Stateflow圖以獲取唯一定義的數據對象:標識在圖表內的多個作用域中定義的本地數據標識符。
-
Check state machine type of Stateflow charts
檢查狀態機的狀態流圖類型,包含如下檢查項:
-
檢查經典狀態機
-
檢查使用Mealy狀態機類型構造的Stateflow圖。
-
檢查摩爾狀態機:使用Moore狀態機類型構造的Stateflow圖。
-
-
Check usage of Math Operation blocks
確定Simulink中數學運算模塊的使用可能會影響安全性,包含如下檢查項:
- 檢查Abs塊的使用情況:確定可能產生無法訪問的代碼或溢出的絕對值塊
- 檢查增益塊的使用:識別值等於1的增益塊
- 檢查分配塊的使用:標識可能具有不完整的數組初始化的分配塊.
-
Check usage of Signal Routine blocks
確定Simulink中信號路由模塊的使用可能會影響安全性,主要包含如下檢查項:
- 檢查開關塊:標識可能會在表達式的至少一側為浮點變量或常量的表達式中使用不等號運算符(〜=)生成代碼的Switch塊。
-
Check usage of Logic and Bit operations blocks
確定Simulink中邏輯和位運算模塊的使用可能會影響安全性。主要進行如下的檢查:
- 檢查計算關系運算符的塊:識別計算在不同數據類型或浮點類型上進行關系運算符的塊
- 檢查邏輯塊:標識具有非布爾輸入或輸出的邏輯運算符塊。
-
**Check usage of Ports and Subsystems blocks **
確定Simulink中端口和子系統模塊的使用可能會影響安全性。主要包含如下檢查:
-
在While Iterator塊中檢查:確定可能導致無限循環的While Iterator塊
-
檢查迭代器塊:識別導致變量循環的Iterator塊
-
檢查開關盒塊:識別沒有默認大小寫的Switch Case塊,標識帶有未連接到Switch Case Action Subsystem模塊的輸出端口的Switch Case模塊。
-
檢查if塊:
- 用If表達式或Elseif表達式標識If塊,這些表達式可能會在生成的代碼中引起浮點相等或不相等比較。
- 確定輸出端口未連接到If Action Subsystem塊的If塊。
-
-
Check for inconsistent vector indexing methods
檢查整個模型或子系統中向量索引方法的一致性用法。
-
Check for model objects that do not link to requirement
檢查未鏈接到需求文檔的Simulink塊和Stateflow對象
-
Check for MATLAB Function interfaces with inherited properities
確定具有輸入,輸出或參數的MATLAB函數,這些輸入,輸出或參數具有繼承的復雜性或數據類型屬性。
-
Check MATLAB Function metrics
顯示MATLAB函數的復雜度和代碼指標,並識別違反指標的情況,評價方向如下:
- LoC:總代碼行
- ELoC:有效的代碼行
- CLoC:代碼注釋行
- DC:代碼的密度
- CYC:循環復雜度
-
Check MATLAB Code Analyzer messages
檢查MATLAB函數中的%#codegen指令,MATLAB Code Analyzer消息和對齊消息ID
-
Check MATLAB code for golabal variables
檢查在MATLAB代碼中使用全局變量。
-
Display bug reports for Embedded Coder
顯示嵌入式編碼器(R2016b)的錯誤報告
-
Display bug reports for IEC Certification Kit
顯示IEC認證工具包(R2016b)的錯誤報告
-
Display bug reports for Polyspace Code Prover
顯示Polyspace Code Prover(R2016b)的錯誤報告
-
**Display bug report for Polysapce Bug Finder **
顯示Polyspace Bug Finder(R2016b)的錯誤報告
-
Display bug reports for Simulink Design Verifier
顯示Simulink Design Verifier(R2016b)的錯誤報告
-
Display bug reports for Simulink Verification and Validation
顯示Simulink驗證和確認(R2016b)的錯誤報告
-
Display bug reports for Simulink Test
顯示Simulink Test(R2016b)的錯誤報告
Modeling Standards for IEC 61508
-
Check model object names
識別無效的模型對象名稱,該檢查包括如下的幾個名稱:
- blocks
- signals
- Parameters
- Busses
- Stateflow elements
-
Display configuration management data
顯示模型配置和校驗信息
-
Display model metrics and complexity report
顯示元素數量以及模型或子系統的子系統名稱、級別和深度。
-
Check for unconnected objects
識別模型中未連接的線路,輸入端口和輸出端口
-
Check for root Inports with missing properties
在模型的頂層中標識缺少或繼承的采樣時間、數據類型或端口尺寸的Inport塊,指定了入口塊的屬性
-
Check for root Inports with missing range definitions
識別具有最小或最大值缺失或錯誤的根級Inport塊。
輸入模塊的最小值和最大值由模塊參數或Simulink信號對象指定,這些參數明確解析為連接的信號線。
-
Check for root Outputs with missing range definitions
標識具有丟失或錯誤的最小值或最大值的根級輸出塊。
輸出模塊的最小值和最大值由模塊參數或Simulink信號對象指定,這些參數明確解析為連接的信號線。
-
Check for blocks not recommended for C/C++ production code deployment
識別代碼生成不支持的塊或不建議將其用於C、C++代碼編譯部署的塊。
-
Check usage of Stateflow constructs
確定使用State flow構造可能會影響安全性的部分。該項主要進行如下幾方面的檢查:
- 使用Simulink I / O檢查強數據鍵入:驗證配置設置以確保在Simulink和Stateflow結構之間的邊界上進行強數據鍵入
- 檢查Stateflow端口命名:識別Stateflow端口名稱和相關信號之間的不匹配
- 檢查Stateflow數據對象作用域:標識未在圖表級別或以下級別范圍內的具有本地范圍的Stateflow數據對象
- 檢查Stateflow狀態操作的格式:確定狀態中進入動作(en),動作(du)和退出動作(ex)條目之間缺少的換行符。確定語句中分號(;)后缺少的換行符。
- 檢查Stateflow圖以了解狀態和轉換的順序:確定已清除用戶指定狀態/轉換執行順序的狀態流程圖。
- 檢查Stateflow調試選項:確定是否清除了以下Stateflow調試選項:檢測溢出,檢測周期和模擬范圍檢查
- 檢查Stateflow圖以獲取唯一定義的數據對象:標識在圖表內的多個作用域中定義的本地數據標識符。
-
Check state machine type of Stateflow charts
檢查狀態機的狀態流圖類型,包含如下檢查項:
- 檢查經典狀態機
- 檢查使用Mealy狀態機類型構造的Stateflow圖。
- 檢查摩爾狀態機:使用Moore狀態機類型構造的Stateflow圖。
-
Check usage of Math Operations blocks
確定Simulink中數學運算模塊的使用可能會影響安全性,包含如下檢查項:
- 檢查Abs塊的使用情況:確定可能產生無法訪問的代碼或溢出的絕對值塊
- 檢查增益塊的使用:識別值等於1的增益塊
- 檢查分配塊的使用:標識可能具有不完整的數組初始化的分配塊.
-
Check usage of Signal Routing blocks
確定Simulink中信號路由模塊的使用可能會影響安全性,主要包含如下檢查項:
- 檢查開關塊:標識可能會在表達式的至少一側為浮點變量或常量的表達式中使用不等號運算符(〜=)生成代碼的Switch塊。
-
Check usage of Logic and Bit Operations blocks
確定Simulink中邏輯和位運算模塊的使用可能會影響安全性。主要進行如下的檢查:
- 檢查計算關系運算符的塊:識別計算在不同數據類型或浮點類型上進行關系運算符的塊
- 檢查邏輯塊:標識具有非布爾輸入或輸出的邏輯運算符塊。
-
Check usage of Ports and Subsystems blocks
確定Simulink中端口和子系統模塊的使用可能會影響安全性。主要包含如下檢查:
-
在While Iterator塊中檢查:確定可能導致無限循環的While Iterator塊
-
檢查迭代器塊:識別導致變量循環的Iterator塊
-
檢查開關盒塊:識別沒有默認大小寫的Switch Case塊,標識帶有未連接到Switch Case Action Subsystem模塊的輸出端口的Switch Case模塊。
-
檢查if塊:
- 用If表達式或Elseif表達式標識If塊,這些表達式可能會在生成的代碼中引起浮點相等或不相等比較。
- 確定輸出端口未連接到If Action Subsystem塊的If塊。
-
-
Check for inconsisitent vector indexing methods
檢查整個模型或子系統中向量索引方法的一致性用法。
-
Check for model objects that do not link to requirements
檢查未鏈接到需求文檔的Simulink塊和Stateflow對象
-
Check for MATLAB Function interfaces with inherited properties
確定具有輸入,輸出或參數的MATLAB函數,這些輸入,輸出或參數具有繼承的復雜性或數據類型屬性。
-
Check MATLAB Function metrics
顯示MATLAB函數的復雜度和代碼指標,並識別違反指標的情況,評價方向如下:
- LoC:總代碼行
- ELoC:有效的代碼行
- CLoC:代碼注釋行
- DC:代碼的密度
- CYC:循環復雜度
-
Check MATLAB Code Analyzer messages
檢查MATLAB函數中的%#codegen指令,MATLAB Code Analyzer消息和對齊消息ID
-
Check MATLAB code for global variables
檢查在MATLAB代碼中使用全局變量。
-
Display bug reports for Embedded Coder
顯示嵌入式編碼器(R2016b)的錯誤報告
-
Display bug reports for IEC Certification Kit
顯示IEC認證工具包(R2016b)的錯誤報告
-
Display bug reports for Polyspace Code Prover
顯示Polyspace Code Prover(R2016b)的錯誤報告
-
Display bug reports for Polyspace Bug Finder
顯示Polyspace Bug Finder(R2016b)的錯誤報告
-
Display bug reports for Simulink Design Verifier
顯示Simulink Design Verifier(R2016b)的錯誤報告
-
Display bug reports for Simulink PLC Coder
顯示Simulink PLC Coder(R2016b)的錯誤報告
-
Display bug reports for Simulink Verification and Validation
顯示Simulink驗證和確認(R2016b)的錯誤報告
-
Display bug reports for Simulink Test
顯示Simulink Test(R2016b)的錯誤報告
Modeling Standards for IEC 62304
-
Check model object names
識別無效的模型對象名稱,該檢查包括如下的幾個名稱:
- blocks
- signals
- Parameters
- Busses
- Stateflow elements
-
Display configuration management data
顯示模型配置和校驗信息
-
Display model metrics and complexity report
顯示元素數量以及模型或子系統的子系統名稱、級別和深度。
-
Check for unconnected objects
識別模型中未連接的線路,輸入端口和輸出端口
-
Check for root Inports with missing properties
在模型的頂層中標識缺少或繼承的采樣時間、數據類型或端口尺寸的Inport塊,指定了入口塊的屬性
-
Check for root Inports with missing range definitions
識別具有最小或最大值缺失或錯誤的根級Inport塊。
輸入模塊的最小值和最大值由模塊參數或Simulink信號對象指定,這些參數明確解析為連接的信號線。
-
Check for root Outputs with missing range definitions
標識具有丟失或錯誤的最小值或最大值的根級輸出塊。
輸出模塊的最小值和最大值由模塊參數或Simulink信號對象指定,這些參數明確解析為連接的信號線。
-
Check for blocks not recommended for C/C++ production code deployment
識別代碼生成不支持的塊或不建議將其用於C、C++代碼編譯部署的塊。
-
Check usage of Stateflow constructs
確定使用State flow構造可能會影響安全性的部分。該項主要進行如下幾方面的檢查:
- 使用Simulink I / O檢查強數據鍵入:驗證配置設置以確保在Simulink和Stateflow結構之間的邊界上進行強數據鍵入
- 檢查Stateflow端口命名:識別Stateflow端口名稱和相關信號之間的不匹配
- 檢查Stateflow數據對象作用域:標識未在圖表級別或以下級別范圍內的具有本地范圍的Stateflow數據對象
- 檢查Stateflow狀態操作的格式:確定狀態中進入動作(en),動作(du)和退出動作(ex)條目之間缺少的換行符。確定語句中分號(;)后缺少的換行符。
- 檢查Stateflow圖以了解狀態和轉換的順序:確定已清除用戶指定狀態/轉換執行順序的狀態流程圖。
- 檢查Stateflow調試選項:確定是否清除了以下Stateflow調試選項:檢測溢出,檢測周期和模擬范圍檢查
- 檢查Stateflow圖以獲取唯一定義的數據對象:標識在圖表內的多個作用域中定義的本地數據標識符。
-
Check state machine type of Stateflow charts
檢查狀態機的狀態流圖類型,包含如下檢查項:
-
檢查經典狀態機
-
檢查使用Mealy狀態機類型構造的Stateflow圖。
-
檢查摩爾狀態機:使用Moore狀態機類型構造的Stateflow圖。
-
-
Check usage of Math Operations blocks
確定Simulink中數學運算模塊的使用可能會影響安全性,包含如下檢查項:
- 檢查Abs塊的使用情況:確定可能產生無法訪問的代碼或溢出的絕對值塊
- 檢查增益塊的使用:識別值等於1的增益塊
- 檢查分配塊的使用:標識可能具有不完整的數組初始化的分配塊.
-
Check usage of Signal Routing blocks
確定Simulink中信號路由模塊的使用可能會影響安全性,主要包含如下檢查項:
- 檢查開關塊:標識可能會在表達式的至少一側為浮點變量或常量的表達式中使用不等號運算符(〜=)生成代碼的Switch塊。
-
Check usage of Logic and Bit Operations blocks
確定Simulink中邏輯和位運算模塊的使用可能會影響安全性。主要進行如下的檢查:
- 檢查計算關系運算符的塊:識別計算在不同數據類型或浮點類型上進行關系運算符的塊
- 檢查邏輯塊:標識具有非布爾輸入或輸出的邏輯運算符塊。
-
Check usage of Ports and Subsystems blocks
確定Simulink中端口和子系統模塊的使用可能會影響安全性。主要包含如下檢查:
-
在While Iterator塊中檢查:確定可能導致無限循環的While Iterator塊
-
檢查迭代器塊:識別導致變量循環的Iterator塊
-
檢查開關盒塊:識別沒有默認大小寫的Switch Case塊,標識帶有未連接到Switch Case Action Subsystem模塊的輸出端口的Switch Case模塊。
-
檢查if塊:
- 用If表達式或Elseif表達式標識If塊,這些表達式可能會在生成的代碼中引起浮點相等或不相等比較。
- 確定輸出端口未連接到If Action Subsystem塊的If塊。
-
-
Check for inconsistent vector indexing methods
檢查整個模型或子系統中向量索引方法的一致性用法。
-
Check for model objects that do not link to requirements
檢查未鏈接到需求文檔的Simulink塊和Stateflow對象
-
Check for MATLAB Function interfaces with inherited properties
確定具有輸入,輸出或參數的MATLAB函數,這些輸入,輸出或參數具有繼承的復雜性或數據類型屬性。
-
Check MATLAB Function metrics
顯示MATLAB函數的復雜度和代碼指標,並識別違反指標的情況,評價方向如下:
- LoC:總代碼行
- ELoC:有效的代碼行
- CLoC:代碼注釋行
- DC:代碼的密度
- CYC:循環復雜度
-
Check MATLAB Code Analyzer messages
檢查MATLAB函數中的%#codegen指令,MATLAB Code Analyzer消息和對齊消息ID
-
Check MATLAB code for global variables
檢查在MATLAB代碼中使用全局變量。
-
Display bug reports for Embedded Coder
顯示嵌入式編碼器(R2016b)的錯誤報告
-
Display bug reports for IEC Certification Kit
顯示IEC認證工具包(R2016b)的錯誤報告
-
Display bug reports for Polyspace Code Prover
顯示Polyspace Code Prover(R2016b)的錯誤報告
-
Display bug reports for Polyspace Bug Finder
顯示Polyspace Bug Finder(R2016b)的錯誤報告
-
Display bug reports for Simulink Design Verifier
顯示Simulink Design Verifier(R2016b)的錯誤報告
-
Display bug reports for Simulink PLC Coder
顯示Simulink PLC Coder(R2016b)的錯誤報告
-
Display bug reports for Simulink Verfication and Validation
顯示Simulink驗證和確認(R2016b)的錯誤報告
-
Display bug reports for Simulink Test
顯示Simulink Test(R2016b)的錯誤報告
Modeling Standards for ISO 26262
-
Check model object names
識別無效的模型對象名稱,該檢查包括如下的幾個名稱:
- blocks
- signals
- Parameters
- Busses
- Stateflow elements
-
Display configuration management data
顯示模型配置和校驗信息
-
Display model metrics and complexity report
顯示元素數量以及模型或子系統的子系統名稱、級別和深度。
-
Check for unconnected objects
識別模型中未連接的線路,輸入端口和輸出端口
-
Check for root Inports with missing properties
在模型的頂層中標識缺少或繼承的采樣時間、數據類型或端口尺寸的Inport塊,指定了入口塊的屬性
-
Check for root Inports with missing range definitions
識別具有最小或最大值缺失或錯誤的根級Inport塊。
輸入模塊的最小值和最大值由模塊參數或Simulink信號對象指定,這些參數明確解析為連接的信號線。
-
Check for root Outports with missing range definitions
標識具有丟失或錯誤的最小值或最大值的根級輸出塊。
輸出模塊的最小值和最大值由模塊參數或Simulink信號對象指定,這些參數明確解析為連接的信號線。
-
Check for blocks not recommended for C/C++ production code deployment
識別代碼生成不支持的塊或不建議將其用於C、C++代碼編譯部署的塊。
-
Check usage of Stateflow constructs
確定使用State flow構造可能會影響安全性的部分。該項主要進行如下幾方面的檢查:
- 使用Simulink I / O檢查強數據鍵入:驗證配置設置以確保在Simulink和Stateflow結構之間的邊界上進行強數據鍵入
- 檢查Stateflow端口命名:識別Stateflow端口名稱和相關信號之間的不匹配
- 檢查Stateflow數據對象作用域:標識未在圖表級別或以下級別范圍內的具有本地范圍的Stateflow數據對象
- 檢查Stateflow狀態操作的格式:確定狀態中進入動作(en),動作(du)和退出動作(ex)條目之間缺少的換行符。確定語句中分號(;)后缺少的換行符。
- 檢查Stateflow圖以了解狀態和轉換的順序:確定已清除用戶指定狀態/轉換執行順序的狀態流程圖。
- 檢查Stateflow調試選項:確定是否清除了以下Stateflow調試選項:檢測溢出,檢測周期和模擬范圍檢查
- 檢查Stateflow圖以獲取唯一定義的數據對象:標識在圖表內的多個作用域中定義的本地數據標識符。
-
Check state machine type of Stateflow charts
檢查狀態機的狀態流圖類型,包含如下檢查項:
- 檢查經典狀態機
- 檢查使用Mealy狀態機類型構造的Stateflow圖。
- 檢查摩爾狀態機:使用Moore狀態機類型構造的Stateflow圖。
-
Check usage of Math Operations blocks
確定Simulink中數學運算模塊的使用可能會影響安全性,包含如下檢查項:
- 檢查Abs塊的使用情況:確定可能產生無法訪問的代碼或溢出的絕對值塊
- 檢查增益塊的使用:識別值等於1的增益塊
- 檢查分配塊的使用:標識可能具有不完整的數組初始化的分配塊.
-
Check usage of Signal Routing blocks
確定Simulink中信號路由模塊的使用可能會影響安全性,主要包含如下檢查項:
- 檢查開關塊:標識可能會在表達式的至少一側為浮點變量或常量的表達式中使用不等號運算符(〜=)生成代碼的Switch塊。
-
Check usage of Logic and Bit Operations blocks
確定Simulink中邏輯和位運算模塊的使用可能會影響安全性。主要進行如下的檢查:
- 檢查計算關系運算符的塊:識別計算在不同數據類型或浮點類型上進行關系運算符的塊
- 檢查邏輯塊:標識具有非布爾輸入或輸出的邏輯運算符塊。
-
Check usage of Ports and Subsystems blocks
確定Simulink中端口和子系統模塊的使用可能會影響安全性。主要包含如下檢查:
-
在While Iterator塊中檢查:確定可能導致無限循環的While Iterator塊
-
檢查迭代器塊:識別導致變量循環的Iterator塊
-
檢查開關盒塊:識別沒有默認大小寫的Switch Case塊,標識帶有未連接到Switch Case Action Subsystem模塊的輸出端口的Switch Case模塊。
-
檢查if塊:
- 用If表達式或Elseif表達式標識If塊,這些表達式可能會在生成的代碼中引起浮點相等或不相等比較。
- 確定輸出端口未連接到If Action Subsystem塊的If塊。
-
-
Check for inconsistent vector indexing methods
檢查整個模型或子系統中向量索引方法的一致性用法。
-
Check for model objects that do not link to requirements
檢查未鏈接到需求文檔的Simulink塊和Stateflow對象
-
Check for MATLAB Function interfaces with inherited properties
確定具有輸入,輸出或參數的MATLAB函數,這些輸入,輸出或參數具有繼承的復雜性或數據類型屬性。
-
Check for MATLAB Function metrics
顯示MATLAB函數的復雜度和代碼指標,並識別違反指標的情況,評價方向如下:
- LoC:總代碼行
- ELoC:有效的代碼行
- CLoC:代碼注釋行
- DC:代碼的密度
- CYC:循環復雜度
-
Check MATLAB Code Analyzer messages
檢查MATLAB函數中的%#codegen指令,MATLAB Code Analyzer消息和對齊消息ID
-
Check MATLAB code for global variables
檢查在MATLAB代碼中使用全局變量。
-
Display bug reports for Embedded Coder
顯示嵌入式編碼器(R2016b)的錯誤報告
-
Display bug reports for IEC Certification Kit
顯示IEC認證工具包(R2016b)的錯誤報告
-
Display bug reports for Polyspace Code Prover
顯示Polyspace Code Prover(R2016b)的錯誤報告
-
Display bug reports for Polyspace Bug Finder
顯示Polyspace Bug Finder(R2016b)的錯誤報告
-
Display bug reports for Simulink Design Verifier
顯示Simulink Design Verifier(R2016b)的錯誤報告
-
Display bug reports for Simulink Verification and Validation
顯示Simulink驗證和確認(R2016b)的錯誤報告
-
Display bug reports for Simulink Test
顯示Simulink Test(R2016b)的錯誤報告
Modeling Standards for MAAB
Naming Conventions
-
Check file names
檢查是否以不正確的字符或格式標識文件名(正確的字符是a-z,A-Z,0-9和下划線(_))
-
Check folder names
檢查是否使用不正確的字符和格式識別文件夾。
-
Check subsystem names
標識使用在C代碼中不正確的字符的子系統名稱。
-
Check port block names
標識使用在C代碼中不正確的字符的Inport或Outport塊的名稱。
-
Check character usage in signal labels
標識對於C變量名稱不正確的信號標簽。
-
Check character usage in block names
識別使用在C代碼中不正確的字符的塊名稱。
Model Architecture
-
Check for mixing basic blocks and subsystems
確定模型中包括基本塊和子系統的級別。模型的每個級別必須設計為具有相同級別的塊(例如,僅子系統或僅基本塊)。
Model Configuration Options
-
Check Implement logic signals as Boolean data
標識是否選擇將邏輯信號實現為布爾數據(相對於雙精度)。
-
Check model diagnostic parameters
標識是否對診斷結果進行設置
Simulink
-
Check for Simulink diagrams using nonstandard display attributes
識別Simulink圖中的非標准顯示屬性,包含如下檢查項:
- 檢查格式設置,確定不正確的模型級格式選項。
- 檢查模塊顏色:使用非標准顏色識別塊。
- 檢查畫布顏色:識別未使用白色的畫布
- 檢查圖形放大:識別沒有將縮放系數設置未100%的圖表
-
Check font formatting
標識文本格式不一致。
-
Check positioning and configuration of ports
識別輸入和輸出端口的位置和配置不正確。
-
Check visibility of block port names
標識未統一顯示的端口塊名稱。(塊名稱必須全部顯示或不顯示,庫塊是該規則的例外,此檢查將忽略屏蔽塊和子系統塊)
-
Check display for port blocks
標識未顯示端口號的輸入輸出模塊
-
Check whether block names appear blow blocks
識別名稱未顯示在塊下方的塊。
-
Check the display attributes of block names
該項主要用於檢查模塊的名稱是否缺失或者是是否需要隱藏,具體如下:
- 檢查具有隱藏名稱和明顯功能的塊:識別顯示的塊名稱,但由於明顯的行為可以將其隱藏。
- 檢查缺少的塊名稱:識別隱藏的塊名稱,但應顯示這些塊名稱以顯示描述性名稱。
-
Check position of Trigger and Enable blocks
標識不在子系統圖頂部的觸發器和啟用塊。
-
Check for nondefault block attributes
識別使用但無法顯示非默認值的塊。
-
Check for matching port and signal names
識別端口名稱和相應信號之間的不匹配。
-
Check Trigger and Enable block names
將Trigger與Enable塊的名稱與觸發子系統的信號名稱進行匹配,若未命名信號,則為該塊使用任何名稱。
-
Check signal line labels
識別信號線標簽不匹配的模塊
-
Check for propagated signal labels
識別信號線上的傳播標簽。檢查子系統塊輸入標簽,標識子系統塊的輸入以驗證信號是否帶有標簽。
-
Check for unconnected ports and signal lines
識別未連接的塊輸入端口,輸出端口和信號線。
-
Check prohibited blocks in discrete controllers
識別離散控制器中不允許的塊。
(禁止的塊包括所有連續塊以及一些source塊和sink塊) -
Check for blocks not recommended for C/C++ production code deployment
識別代碼生成不支持的塊或不建議將其用於C / C ++生產代碼部署的塊。
-
Check for prohibited sink blocks
確定在生成代碼之前必須刪除的sink塊。
-
Check scope of From and Goto blcok
識別From和Goto塊的錯誤范圍。對於信號流,From和Goto塊必須使用本地范圍。控制流可以使用全局范圍。
-
Check usage of Switch blocks
- 標識不將布爾輸入用於開關條件(2輸入)並且不將u2〜= 0用作傳遞第一個輸入塊參數的條件的開關塊。
- 檢查布爾開關條件:標識不使用布爾信號切換條件的塊(輸入2)。
-
Check usage of Relational Operator blocks
識別關系運算符塊,該塊用第一個(上)輸入值連接到常量。
-
Check for indexing in blocks
標識索引不一致的塊。
要提高代碼效率,請使用基於零的索引。 -
Check usage of buses and Mux blocks
檢查總線和多路復用器塊的使用情況。是否正確使用總線模塊,以及Mux模塊是否按照矢量進行使用。
-
Check usage of tunable parameters in blocks
標識用於指定表達式,數據類型轉換或索引操作的可調參數。
-
Check orientation of Subsystem blocks
檢查方向不正確的子系統。方向正確的塊在左側具有輸入,在右側具有輸出。
Stateflow
-
Check usage of exclusive and default states in state machines
標識不正確使用或定義排他和默認狀態的Stateflow圖表和子狀態。主要包含如下的檢查項:
- 檢查Stateflow圖表以獲取排他狀態:標識具有奇異(OR)狀態的Stateflow圖表。
- 檢查Stateflow圖表以獲取未定義的默認狀態:識別未定義默認狀態的Stateflow圖表。
- 檢查分配為默認狀態的多個狀態:在Stateflow層次結構的根級別,僅應將一個狀態分配為默認狀態。
- 檢查具有奇異OR狀態的子狀態:配置為OR的狀態應始終是一組狀態的一部分。
- 檢查未定義默認狀態的子狀態:在Stateflow層次結構的每個級別上,都應分配一個默認狀態。
- 檢查定義了多個默認狀態的子狀態:在Stateflow層次結構的每個級別上,只應將一個狀態分配為默認狀態。
-
Check transition orientations in flow charts
確定Stateflow流程圖中繪制線條方向不正確的部分,主要包含如下的檢查項:
- 檢查垂直繪制的條件:條件表達式應繪制在流程圖的水平段上。
- 檢查結點是否為默認過渡:流程圖中的所有結點都應具有默認的退出。
- 檢查結合了條件和動作的轉換:流程圖不應在單個轉換中結合條件評估和動作表達式。
-
Check entry formatting in State blocks in Stateflow charts
確定狀態中進入動作(en),動作(du)和退出動作(ex)條目之間缺少的換行符。確定語句中分號(;)后缺少的換行符。
-
Check return value assignments of graphical functions in Stateflow charts
在Stateflow圖表中標識具有多個返回值分配的圖形函數。
-
Check default transition placement in Stateflow charts
該條目包含如下檢查項:
- 標識沒有默認過渡或沒有默認狀態作為最頂層狀態的所有狀態分組,應當將默認過渡添加到狀態分組。將默認轉換連接到該狀態的頂部。
- 標識默認過渡不是最高狀態的狀態,即重新排列狀態,使默認狀態為最上面的狀態。將默認過渡的目標狀態放在狀態層次結構中的所有其他狀態之上。
- 確定未連接到狀態頂部的默認過渡:移動過渡,使其連接到狀態的頂部。
- 識別具有多個默認過渡的狀態
-
Check for Storage Data Typing with Simulink I/O
確定Stateflow圖表是否已清除Simulink I / O的“使用強數據鍵入”。
-
Check Stateflow data objects with local scope
標識未在圖表級別或以下級別范圍內的具有本地范圍的Stateflow數據對象。(數據使用范圍local)
-
Check usage of return values from a graphical function in Stateflow charts
標識對條件表達式中使用的圖形函數的調用。
-
Check for MATLAB expressions in Stateflow charts
識別使用不適合代碼生成的MATLAB表達式的Stateflow對象。
注意:此檢查僅適用於使用C作為操作語言的Stateflow圖表。
-
Check for pointers in Stateflow charts
確定對自定義代碼變量的指針操作。
注意:此檢查僅適用於使用C作為操作語言的Stateflow圖表。
-
Check for events broadcasts in Stateflow charts
識別可能在模擬過程中導致遞歸並生成效率低下的代碼的無向事件廣播。
-
Check transition actions in Stateflow charts
確定過渡動作之間缺少的換行符。
-
Check for bitwise operations in Stateflow charts
確定Stateflow圖表中的按位運算符(&,|和^)。
如果為圖表選擇了“啟用C位運算”,則僅報告包含布爾數據類型的表達式中的按位運算符。
否則,將報告該圖表的所有按位運算符。注意:此檢查僅適用於使用C作為操作語言的Stateflow圖表。
P.S.在C語言中,&&與||表示正常的布爾關系,而&與|表示位操作
-
Check for unary minus operations on unsigned integers in Stateflow charts
標識應用於Stateflow對象中無符號整數的一元減號運算。
不確定的情況:Model Advisor無法確定包含一元運算符的表達式中的數據類型。為了允許Model Advisor確定數據類型,請考慮顯式鍵入表達式。
-
Check for comparison operations in Stateflow charts
在Stateflow對象中標識具有不同數據類型的比較操作。
-
Check for equlity operation between floating-point expressions in Stateflow charts
在表達式的至少一側為浮點變量或常量的表達式中,標識等於運算符(==)。
-
Check for mismatches between names of Stateflow ports and associated signals
識別Stateflow端口名稱與關聯信號之間的不匹配。
MATLAB Function
-
Check input and output settings of MATLAB Functions
確定具有輸入,輸出或參數的MATLAB函數,這些輸入,輸出或參數具有繼承的復雜性,數據類型或大小屬性。
-
Check MATLAB Function metrics
確定違反復雜性限制的MATLAB函數。分別以如下維度進行評價
LoC:總代碼行
ELoC:有效的代碼行
CLoC:代碼注釋行
DC:評論的密度
CYC:循環復雜度
-
Check MATLAB code for global variables
檢查MATLAB代碼中的全局變量,具體包括如下的檢查項:
- 在MATLAB Function模塊中使用的MATLAB代碼中檢查全局變量
- 檢查Stateflow圖中定義的MATLAB函數中的全局變量
- 檢查被調用的MATLAB函數中的全局變量
Requirements Consistency Checking
-
Identify requirement links with missing documents
確保需求鏈接到現有文檔
-
Identify requirement links that specify invalid locations within documents
確保要求鏈接到文檔中的有效位置(例如書簽,行號,錨點)
-
Identify selection-based links having desctiption fields that do not match their requirements document text
確保基於選擇的鏈接的描述字段使用在其需求文檔中找到的相同文本
-
Identify requirement links with path type inconsistent with preferences
檢查需求路徑是否為首選項中選擇的類型(絕對路徑,相對於模型,相對路徑)
Simulation Accuracy
-
Check for non-continuous signals driving derivative ports
將驅動微分端口信號標記為非連續信號會導致大量求解器重置的建模問題
Simulation Runtime Accuracy Diagnostics
-
Runtime diagnositics for S-functions
檢查數組范圍和求解器一致性,是否存在S函數
-
Check if Read/Write diagnostics are enable for Data Store blocks
如果存在數據存儲塊,請驗證是否已執行讀/寫順序診斷檢查。
Simulink Code Inspector compatibility checks
-
Check code generation settings
主要進行代碼生成驗證設置的檢查:
- 檢查“代碼生成”>“接口”>“代碼接口打包”是否設置為“不可重用”功能或“可重用”功能。
- 驗證“將動態內存分配用於模型初始化”設置:檢查是否清除了“所有參數”>“將動態內存分配用於模型初始化”
- 驗證“共享代碼放置”設置:檢查“代碼生成>接口>共享代碼位置”是否設置為“共享位置”
- 驗證“源文件”設置:檢查代碼生成>自定義代碼>源文件是否設置為“”(即未指定)
- 驗證“頭文件”設置:檢查代碼生成>自定義代碼>頭文件是否設置為“”(即未指定)
- 驗證“初始化功能”設置:檢查代碼生成>自定義代碼>初始化功能是否設置為“”(即未指定)
- 驗證“終止功能”設置:檢查代碼生成>自定義代碼>終止功能是否設置為“”(即未指定)
- 驗證“組合信號/狀態結構”設置:檢查是否已清除“所有參數”>“組合信號/狀態結構”
- 驗證“刪除重置功能”設置:檢查是否選擇了“所有參數”>“刪除重置功能”
- 驗證“刪除禁用功能”設置:檢查是否清除了“所有參數”>“刪除禁用”功能
- 驗證“包含評論”設置:檢查是否選擇了“代碼生成”>“注釋”>“包含注釋”
- 驗證“在if語句中保留條件表達式”設置:檢查是否在if語句中選擇了“代碼生成”>“代碼樣式”>“保留條件表達式”
- 驗證“代碼替換庫”設置:檢查“代碼生成>接口>代碼替換庫”是否設置為“無”
- 驗證“標准數學庫”設置:檢查“所有參數”>“標准數學庫”是否設置為C89 / C90(ANSI)或C99(ISO)
- 驗證“Classic call interface”設置:檢查是否清除“All Parameters > Classic call interface”界面
- 驗證“需要終止功能”設置:檢查是否清除了“所有參數>終止功能”
- 驗證“ MAT文件記錄”設置:檢查是否清除了“所有參數”>“ MAT文件記錄”
- 驗證“非限定數字”設置:檢查是否清除“代碼生成>接口>非限定數”
- 驗證“絕對時間”設置:檢查是否清除“代碼生成>接口>絕對時間”
- 驗證“刪除實時模型數據結構中的錯誤狀態字段”設置:檢查是否選擇了實時模型數據結構中的代碼生成>接口>除去錯誤狀態字段
- 驗證“創建圖塊”設置:檢查是否將“所有參數”>“創建塊”設置為“無”
- 驗證“測量功能執行時間”設置:檢查是否清除“代碼生成>驗證>測量功能執行時間”
- 驗證“信號命名”設置:檢查“代碼生成>符號>信號命名”是否設置為“無”
- 驗證“參數命名”設置:檢查“代碼生成>符號>參數命名”是否設置為“無”
- 驗證“ TLC選項”設置:檢查是否將“所有參數”>“ TLC選項”設置為“”(即未指定)
- 驗證“可變大小信號”設置:檢查是否清除“代碼生成>接口>大小可變”信號
- 驗證“單一輸出/更新功能”設置:檢查是否選擇了“所有參數”>“單個輸出/更新功能”
- 驗證“生成示例主程序”設置:檢查是否選擇了代碼生成>模板>生成示例主程序
- 驗證“鑄造模式”設置:檢查“代碼生成”>“代碼樣式”>“強制轉換”模式是否設置為“名義”
- 驗證“如果無法訪問,則禁止生成Stateflow切換語句的默認情況”:檢查是否清除了“代碼生成”>“代碼樣式”>“抑制Stateflow開關語句的默認情況下的生成”
- 驗證“ SharedCodeRepository”設置:檢查SharedCodeRepository是否設置為“”(即未指定)
- 驗證“參數”設置:檢查是否清除“代碼生成>接口>參數”
- 驗證“信號”設置:檢查是否清除“代碼生成>接口>信號”
- 驗證“狀態”設置:檢查是否清除“代碼生成>接口>狀態”
- 驗證“根級別的I / O”設置:檢查是否清除“代碼生成>接口>根級I / O”
- 驗證“外部模式”設置:檢查是否清除“代碼生成>接口>外部模式”
- 驗證“ ASAP2接口”設置:檢查是否清除“代碼生成>接口> ASAP2接口”
-
Check data import and export settings
驗證“初始狀態”設置
檢查是否清除“數據導入/導出>初始狀態”。
-
Check diagnostic settings
進行診斷設置檢查,包含如下選項:
- 驗證“多任務數據存儲”設置:檢查“診斷”>“數據有效性”>“多任務數據存儲”是否設置為錯誤
- 驗證“多任務速率轉換”設置:檢查“診斷”>“采樣時間”>“多任務速率轉換”是否設置為錯誤
- 驗證“多任務有條件執行的子系統”設置:檢查“診斷”>“采樣時間”>“有條件執行的多任務”子系統是否設置為錯誤
- 驗證“寫后檢測寫”設置:檢查“診斷”>“數據有效性”>“寫后檢測寫”是否設置為EnableAllAsError
- 驗證“未指定初始化檢測”設置:檢查是否將“所有參數”>“指定不足的初始化檢測”設置為“簡化”
- 驗證“將非總線信號視為總線信號”設置:檢查是否將“診斷”>“連接性”>“被視為總線信號的非總線信號”設置為錯誤
- 驗證“檢測向下轉換”設置:檢查“診斷”>“數據有效性”>“檢測下行”是否設置為錯誤
- 驗證“檢測溢出”設置:檢查“診斷”>“數據有效性”>“檢測溢出”是否設置為錯誤
- 驗證“溢出包裝”設置:檢查“診斷”>“數據有效性”>“溢出時換行”是否設置為錯誤
- 驗證“溢出時飽和”設置:檢查“診斷”>“數據有效性”>“溢出時飽和”是否設置為錯誤
- 驗證“檢測下溢”設置:檢查“診斷”>“數據有效性”>“檢測下溢”是否設置為錯誤
- 驗證“檢測可調性損失”設置:檢查“診斷”>“數據有效性”>“檢測可調性損失”是否設置為錯誤
- 驗證“允許符號尺寸規格”設置:檢查是否清除了“所有參數”>“允許符號尺寸規格”
- 驗證“意外回溯”設置:檢查“診斷”>“狀態流”>“意外回溯”是否設置為錯誤
- 驗證“圖表初始化中無效的輸入數據訪問”設置:檢查圖表初始化中的“診斷”>“狀態流”>“無效的輸入數據訪問”是否設置為“錯誤”
- 驗證“無條件的默認過渡”設置:檢查是否將“診斷”>“狀態流”>“無條件的默認轉換”設置為“錯誤”
- 驗證“自然父母以外的過渡”設置:檢查“診斷”>“狀態流”>“自然父外部轉換”是否設置為錯誤
- 驗證“無法訪問的執行路徑”設置:檢查“診斷>狀態流>無法訪問的執行路徑”是否設置為“錯誤”
- 驗證“非定向事件廣播”設置:檢查“診斷”>“狀態流”>“非定向事件廣播”是否設置為錯誤
- 驗證“條件操作之前指定的轉換操作”設置:檢查在條件操作設置為錯誤之前是否已指定“診斷”>“狀態流”>“轉換操作”
- 驗證總線信號是否被視為矢量設置:檢查是否將“診斷”>“連接性”>“被視為矢量的總線信號”設置為“錯誤”
-
Check hardware implementation settings
進行硬件設置的檢查,包含如下項:
- 驗證“chart”設置:檢查是否將Hardware Implementation> char設置為8
- 驗證“short”設置:檢查是否將Hardware Implementation> short設置為16
- 驗證“int”設置:檢查是否將Hardware Implementation> int設置為32
- 驗證“long”設置:檢查是否將Hardware Implementation> long設置為32
- 驗證“float”設置:檢查是否將Hardware Implementation> float設置為32
- 驗證“double”設置:檢查是否將Hardware Implementation> doouble設置為64
- 驗證“pointer”設置:檢查是否將Hardware Implementation> pointer設置為32
- 驗證“size_t”設置:檢查是否將Hardware Implementation> size_t設置為32
- 驗證“ptrdiff_t”設置:檢查是否將Hardware Implementation> ptrdiff_t設置為32
- 驗證“native”設置:檢查是否將Hardware Implementation> native設置為32
- 驗證“有符號整數除法舍入為”設置:檢查“硬件實現>有符號整數除法舍入為”是否設置為零
- 驗證“在有符號整數上向右移位作為算術移位”設置:檢查是否已選擇“硬件實現>在有符號整數上右移作為算術移位”
- 驗證“長期支持”設置:檢查是否清除了“硬件實施>支持長久支持”
- 驗證“測試硬件與生產硬件相同”設置:檢查是否已選擇“所有參數”>“測試硬件”與生產硬件相同
- 驗證“設備供應商”設置:確定是否未將“硬件實施>設備供應商”設置為ASIC / FPGA-> ASIC / FPGA
-
Check optimization settings
- 驗證“ AdvancedOptControl”設置:檢查是否將所有參數> AdvancedOptControl設置為-SLCI
- 驗證“將邏輯信號作為布爾數據實現(與雙精度相比)”設置:檢查是否已選中“所有參數”>“將邏輯信號實現為布爾數據(vs. double)”
- 驗證“將代碼從浮點數轉換為整數值范圍內的整數轉換中刪除”設置:檢查是否選擇了“優化”>“將代碼從浮點數轉換為整數,並轉換為超出范圍的值”
- 驗證“將代碼從飽和度轉換為NaN到零的飽和度從浮點轉換為整數轉換”設置:檢查是否已清除“所有參數”>“從飽和度將NaN映射為零的浮點到整數轉換的代碼刪除”
- 驗證“刪除防止除法算術異常的代碼”設置:檢查是否清除了“優化”>“刪除”代碼以防止除法算術異常
- 驗證“最大堆棧大小(字節)”設置:檢查是否將“優化”>“信號和參數”>“最大堆棧大小(字節)”設置為inf
- 驗證“將布爾數據打包到位字段中”設置:檢查是否清除了“優化”>“信號和參數”>“將布爾數據打包到位字段中”
- 驗證“使用位集存儲狀態配置”設置:檢查是否清除了“優化”>“狀態流”>“使用位集存儲狀態配置”
- 驗證“簡化數組索引”設置:檢查是否清除了“所有參數”>“簡化數組索引”
- 驗證“默認參數行為”設置:此檢查僅適用於參考模型。頂級型號與“內聯參數”的所有可能值兼容
- 驗證“使用位集存儲布爾數據”設置檢查是否清除了“優化”>“狀態流”>“使用位集來存儲布爾數據”
-
Check solver settings
主要進行解算器設置,包含如下檢查項:
- 驗證“類型”設置:檢查“求解器>類型”是否設置為“固定步長”。
- 驗證“ Solver”設置:檢查“求解器”>“求解器”是否設置為“ FixedStepDiscrete”
- 驗證“定期采樣時間限制”設置:檢查“求解器”>“定期采樣時間”約束是否設置為“無約束”
- 驗證“自動處理數據傳輸的速率轉換”設置:檢查是否已清除“求解器”>“自動處理數據傳輸的速率轉換”
- 驗證“允許任務在目標上並發執行”設置:如果未擴展配置以進行並發執行,則將忽略“ ConcurrentTasks”
-
Check for unconnected objects in the model
檢查未連接的對象:識別模型或子系統中未連接的線路,輸入端口和輸出端口
-
Check system target file setting
驗證系統目標文件設置:檢查代碼生成>系統目標文件是ert.tlc還是從ERT派生的系統目標文件
-
Check function specificcation setting
檢查模型界面設置檢查“模型接口”對話框中的“功能說明”是否設置為“默認模型初始化和步進功能”
-
Check for usage of fixed-point instrumentation
驗證定點儀器的使用同時使用定點儀器和減少塊可能會導致代碼檢查期間的不兼容性
-
Check for unsupported blocks
檢查Simulink Code Inspector不支持的塊識別Simulink Code Inspector不支持的塊
-
Check storage class for workspace variables
檢查存儲類以查找模型引用的工作空間變量:使用模型中不受支持的存儲類來識別工作空間變量
-
Check GetSet storage class for workspace variable
檢查存儲類以查找模型引用的工作空間變量:識別模型中使用不受支持的規范的GetSet存儲類工作空間變量
-
Check for sample times in the model
檢查采樣時間:識別連續,異步,多個,聯合或可變的采樣時間
-
Check usage of Sources blocks
- 檢查入口塊:識別可能影響與Simulink Code Inspector兼容性的Inport塊
- 檢查Inport Shadow塊:識別可能會影響與Simulink Code Inspector兼容性的Inport Shadow塊
- 檢查常量塊:識別可能影響與Simulink Code Inspector兼容性的常量塊(數據類型、采樣時間)
- 檢查接地塊:識別可能會影響與Simulink Code Inspector兼容性的接地塊
-
Check usage of Signal Rounting blocks
- 檢查Bus Creator塊:識別可能會影響與Simulink Code Inspector兼容性的Bus Creator塊
- 檢查總線選擇器塊:識別可能影響與Simulink Code Inspector兼容性的總線選擇器模塊
- 檢查總線分配塊:識別可能影響與Simulink Code Inspector兼容性的總線分配塊
- 檢查數據存儲內存塊:識別可能影響與Simulink Code Inspector兼容性的數據存儲內存塊
- 檢查數據存儲讀取塊:識別可能影響與Simulink Code Inspector兼容性的數據存儲讀取塊
- 檢查數據存儲寫塊:識別可能會影響與Simulink Code Inspector兼容性的Data Store Write塊
- From塊檢查:確定可能影響與Simulink Code Inspector兼容性的From塊
- 檢查goto塊:確定可能影響與Simulink Code Inspector兼容性的Goto塊
- 檢查合並塊:識別可能影響與Simulink Code Inspector兼容性的合並塊
- 檢查開關塊:識別可能會影響與Simulink Code Inspector兼容性的Switch模塊(非恆定值、數據類型)
- 檢查多端口switch塊識別可能影響與Simulink Code Inspector兼容性的多端口switch模塊(將結果中列出的塊的參數DataPortForDefault設置為Last data port,數據類型)
- 檢查Mux塊:識別可能影響與Simulink Code Inspector兼容性的Mux塊
- 檢查Demux塊:識別可能會影響與Simulink Code Inspector兼容性的Demux塊
- 檢查選擇器塊:確定可能影響與Simulink Code Inspector兼容性的Selector塊
- 檢查向量連接塊:識別可能影響與Simulink Code Inspector兼容性的Vector Concatenate塊
-
Check usage of Math Operations blocks
-
檢查絕對值塊:確定可能影響與Simulink Code Inspector兼容性的絕對值塊(數據類型)
-
檢查Bias塊:識別可能會影響與Simulink Code Inspector兼容性的偏差塊
-
檢查增益塊:確定可能影響與Simulink Code Inspector兼容性的增益塊(數據類型)
-
檢查數學塊:識別可能會影響與Simulink Code Inspector兼容性的Math塊
-
檢查Product塊:確定可能影響與Simulink Code Inspector兼容性的Product塊(數據類型)
-
檢查Sum塊:確定可能影響與Simulink Code Inspector兼容性的Sum塊
-
檢查三角塊:識別可能影響與Simulink Code Inspector兼容性的三角函數塊
-
檢查Minmax塊:確定可能影響與Simulink Code Inspector兼容性的Minmax塊
-
檢查舍入功能塊:確定可能影響與Simulink Code Inspector兼容性的舍入功能塊
-
檢查Reshape塊:識別可能影響Simulink Code Inspector兼容性的Reshape塊
-
檢查Sign塊:識別可能會影響與Simulink Code Inspector兼容性的Sign塊
-
檢查Sqrt塊:確定可能影響與Simulink Code Inspector兼容性的Sqrt塊
-
檢查Assignment塊:識別可能影響與Simulink Code Inspector兼容性的Assignment塊
-
檢查多項式塊:確定可能影響與Simulink Code Inspector兼容性的多項式塊
-
檢查DotProduct塊:確定可能影響與Simulink Code Inspector兼容性的DotProduct塊
-
檢查UnaryMinus塊
識別可能影響與Simulink Code Inspector兼容性的UnaryMinus塊
-
-
Check usage of Signal Attributes blocks
- 檢查數據類型轉換塊:識別可能影響與Simulink Code Inspector兼容性的數據類型轉換塊(采樣時間、屬性設置)
- 檢查Data Type Duplicate塊:識別可能影響與Simulink Code Inspector兼容性的Data Type Duplicate塊
- 檢查Data Type Propagation播塊:識別可能影響與Simulink Code Inspector兼容性的Data Type Propagation塊
- 檢查Signal Specification塊:識別可能影響與Simulink Code Inspector兼容性的Signal Specification模塊
- 檢查Signal Conversion塊:識別可能影響與Simulink Code Inspector兼容性的Signal Conversion模塊
- 檢查Probe塊:識別可能影響與Simulink Code Inspector兼容性的Probe塊
- 檢查RateTransition塊:識別可能影響與Simulink Code Inspector兼容性的RateTransition塊
- 檢查Width塊:確定可能影響與Simulink Code Inspector兼容性的Width塊
-
Check usage of Logical and Bit Operations blocks
- 檢查關系運算符塊:識別可能影響與Simulink Code Inspector兼容性的關系運算符塊(數據類型)
- 檢查邏輯塊:識別可能影響與Simulink Code Inspector兼容性的邏輯塊(數據類型)
- 檢查按位運算符塊:確定可能影響與Simulink Code Inspector兼容性的按位運算符塊
- 檢查ArithShift塊識別可能影響與Simulink Code Inspector兼容性的ArithShift塊
-
Check usage of Lookup Tables blocks
- 檢查查找表(n-D)塊:識別可能影響Simulink Code Inspector兼容性的查找表(n-D)塊(采樣時間、屬性設置)
- 檢查PreLookup塊:識別可能影響與Simulink Code Inspector兼容性的PreLookup塊
-
Check usage of User-Defined Function blocks
- 檢查S功能塊:識別可能影響與Simulink Code Inspector兼容性的S功能塊(編寫工具、
-
Check usage of Ports and Subsystems blocks
- 檢查Enable Port塊:識別可能會影響與Simulink Code Inspector兼容性的Enable Port塊(數據類型)
- 檢查模型參考塊:識別可能會影響與Simulink Code Inspector兼容性的Model Reference模塊
- 檢查子系統塊識別可能影響與Simulink Code Inspector兼容性的子系統塊(屬性設置、數據類型)
- 檢查操作子系統塊:識別可能影響與Simulink Code Inspector兼容性的Action Subsystem模塊(Code Inspector不支持包含模型參考塊或條件子系統的動作子系統。重新配置模型以將其從動作子系統中刪除。)
- 檢查觸發端口塊:識別可能會影響與Simulink Code Inspector兼容性的觸發端口塊
- 檢查操作端口塊:識別可能會影響與Simulink Code Inspector兼容性的操作端口塊
- 檢查if塊:識別是否可能影響Simulink Code Inspector兼容性的if模塊
- 檢查函數調用生成器塊確定可能會影響與Simulink Code Inspector兼容性的Function-Call Generator模塊
- 檢查SwitchCase塊:識別可能影響與Simulink Code Inspector兼容性的SwitchCase塊
- 檢查迭代器塊:確定可能影響與Simulink Code Inspector兼容性的For Iterator塊
- 檢查Each塊:確定可能影響與Simulink Code Inspector兼容性的Each模塊
- 檢查狀態控制塊:識別可能會影響與Simulink Code Inspector兼容性的狀態控制塊
-
Check usage of Discontimuities blocks
- 檢查飽和塊:識別可能影響與Simulink Code Inspector兼容性的飽和塊
- 檢查繼電器塊識別可能影響與Simulink Code Inspector兼容性的中繼塊
-
Check usage of Sinks blocks
-
檢查輸出塊:確定可能影響與Simulink Code Inspector兼容性的輸出塊
-
檢查Terminator塊
識別可能影響與Simulink Code Inspector兼容性的Terminator塊
-
-
Check usage of Discrete blocks
- 檢查單位延遲塊:確定可能影響與Simulink Code Inspector兼容性的Unit Delay模塊(數據類型)
- 檢查離散積分器塊:識別可能影響與Simulink Code Inspector兼容性的離散Integrator模塊
-
Check usage of root Output blocks
-
驗證采樣時間:確定指定恆定采樣時間的根輸出塊。
-
驗證根出將總線作為結構傳遞給父模型
根出模塊必須將總線作為結構傳遞給父模型,這樣Simulink才不會在父模型中引入隱藏的總線轉換模塊。
-
-
Check for unsupport Signal Conversion blocks automatically inserted at signals entering block input ports
- 確認沒有不支持的信號轉換模塊自動插入到輸入模塊入口的信號中:不支持驗證已自動插入的信號轉換模塊
-
Check usage of buses
- 檢查虛擬總線與非虛擬總線之間的自動轉換。驗證沒有從虛擬總線到非虛擬總線的自動轉換。
- 驗證模型中沒有任何塊在總線上執行不受支持的操作,驗證模型中沒有非虛擬塊在虛擬總線上運行
-
Check for usage of synthesized local data stores
驗證綜合本地數據存儲使用情況
標識模型工作空間中的信號對象,這些對象被“數據存儲讀取”或“數據存儲寫入”塊引用為合成本地數據存儲。
如果Simulink軟件找到了這樣的信號對象,它將在模型的根級別創建一個隱藏的數據存儲內存塊。
該模型與Simulink Code Inspector不兼容。 -
Check usage of global data stores
驗證全局數據存儲使用情況
除非內聯參數,並且它們的InitialValue不是可調參數,否則不能使用全局數據存儲內存塊
-
Check global data stores' name shadow
驗證全局數據存儲的名稱shadow(陰影??)
如果全局數據存儲內存塊被本地數據存儲內存塊遮蓋,則可能無法使用
-
Check for root Output blocks being conditionally assigned
驗證沒有有條件分配根輸出端口
由條件執行的子系統為其分配根輸出的子模型不支持代碼驗證。
-
Check conditional input branch execution setting
驗證條件輸入分支執行設置
設置條件輸入分支執行后,檢查是否設置了“信號存儲重用”和“啟用本地塊輸出”
-
Check usage of Stateflow blocks
檢查Stateflow塊
確定可能會影響與Simulink Code Inspector兼容性的Stateflow塊
-
Check for Stateflow machine data
所有Stateflow數據都必須以Stateflow圖表為父項
Simulink Code Inspector不支持機器范圍的Stateflow數據
-
Check for Stateflow machine events
所有Stateflow事件都必須以Stateflow圖表為父
Simulink Code Inspector不支持機器范圍的Stateflow事件
-
Check usage of Stateflow charts
- 檢查控制流沒有周期,不支持循環控制流。
- 檢查Stateflow對象選項板的用法,Stateflow圖表不支持原子子圖,原子盒和MATLAB函數。
- 檢查所有圖表是否都將“ C”指定為其動作語言Simulink Code Inspector不支持將MATLAB指定為其動作語言的圖表
- 檢查所有圖表是否取消選擇“創建用於監視子活動的數據”選項:Simulink Code Inspector不支持指定“創建用於監視子活動的數據”選項的圖表
- 檢查所有圖表是否都將“繼承”指定為其更新方法:Simulink Code Inspector不支持指定“離散”或“連續”更新方法的圖表
- 檢查狀態或子狀態是否具有默認轉換:Simulink Code Inspector不支持沒有默認過渡的狀態或子狀態
- 檢查所有圖表是否取消選擇“啟用超級步語義”選項:Simulink Code Inspector不支持指定“啟用超級步驟語義”選項的圖表
- 檢查初始化時沒有圖表執行:Simulink Code Inspector不支持在初始化時執行的圖表
- 檢查是否沒有圖表導出圖表級別的功能:Simulink Code Inspector不支持導出圖表級功能的圖表
- 檢查所有圖表是否取消選擇“每次圖表喚醒時初始化輸出”選項:Simulink Code Inspector不支持指定“每次圖表喚醒時初始化輸出”選項的圖表
- 檢查是否沒有圖表為整數運算指定溢出時的飽和度:Simulink Code Inspector不支持整數操作溢出時飽和的圖表(計算溢出)
- 檢查Stateflow機器類型的使用:Simulink Code Inspector不支持將“ Stateflow Machine Type”指定為“ Moore”的Stateflow圖表。
- 檢查是否沒有圖表支持可變大小的數組:Simulink Code Inspector不支持支持可變大小數組的圖表
- 檢查控制流的結構,不支持非結構化的控制流。
- 檢查所有控制流是否具有唯一的默認過渡:Simulink Code Inspector不支持非唯一的默認過渡
-
Check usage of Stateflow data
- 檢查圖表是否未使用常量范圍定義Stateflow數據:Simulink Code Inspector不支持使用Constant范圍定義Stateflow數據的圖表
- 檢查Stateflow數據的使用初始化方法:Simulink Code Inspector不支持為本地或輸出范圍Stateflow數據指定“ InitializeMethod”的Stateflow圖表為“ Parameter”。
- 檢查狀態和框是否未定義Stateflow數據:Simulink Code Inspector不支持定義Stateflow數據的狀態和框
- 檢查Stateflow數據是否受支持的數據類型:Simulink Code Inspector僅支持內置的Stateflow數據,從'Simulink.IntEnumType'繼承的枚舉類型(默認值為0)和標量總線數據類型
- 檢查圖表是否未為范圍為Output的圖表數據指定初始值:Simulink Code Inspector不支持Stateflow圖表中具有初始值的輸出數據
- 檢查Stateflow數據的“第一索引”為空還是0。:Simulink Code Inspector不支持指定非空或非零“第一索引”的Stateflow數據
- 檢查Stateflow中的Stateflow參數數據大小與基本工作區是否匹配:Simulink Code Inspector不支持Stateflow和基礎工作區中具有不同大小的Stateflow參數數據
- 檢查圖表僅使用非復雜數據:Simulink Code Inspector不支持Stateflow圖表中的復雜數據
-
Check usage of Stateflow events
- 檢查圖表是否僅使用范圍輸出的事件:Simulink Code Inspector不支持Stateflow圖表中的本地或輸入事件
- 檢查圖表是否僅使用函數調用事件:Simulink Code Inspector不支持Stateflow圖表中的邊沿觸發事件
-
Check usage of Stateflow states
-
檢查控制流沒有周期:不支持循環控制流。
-
檢查操作沒有不支持的操作,支持C動作語言的子集。
-
檢查一維以上數組中的索引:Simulink Code Inspector不支持在一維以上的數組中建立索引
-
檢查所有數組是否都使用“ int32”類型的索引:Simulink Code Inspector不支持索引類型不是'int32'的數組
-
檢查是否沒有操作訪問上下文相關的常量:Simulink Code Inspector不支持訪問上下文相關的常量的操作(即以'c'或'C'作為后綴)
-
檢查是否沒有操作可訪問自定義數據Simulink Code Inspector不支持訪問自定義數據的操作
-
檢查狀態或子狀態是否具有默認轉換:Simulink Code Inspector不支持沒有默認過渡的狀態或子狀態
-
檢查操作是否對枚舉類型操作數沒有不支持的操作:Simulink Code Inspector不支持對枚舉類型操作數進行操作的子集
-
檢查圖形函數參數的數據類型:Simulink Code Inspector不支持使用圖形函數調用使用不同實際和預期參數數據類型的Stateflow圖表。
-
檢查圖形函數參數的尺寸:Simulink Code Inspector不支持具有圖形函數調用的Stateflow圖表,這些函數具有不同的實際和預期參數大小。
-
檢查是否沒有動作包含參數為無效數據類型的函數:Simulink Code Inspector不支持包含其參數為無效數據類型的函數的操作
-
檢查是否沒有動作包含其操作數為混合數據類型的二進制運算符:Simulink Code Inspector不支持包含二進制運算符的操作,該運算符的操作數為混合數據類型
-
檢查沒有Stateflow函數具有超過2個參數:Simulink Code Inspector不支持具有兩個以上參數的Stateflow函數
-
檢查圖表是否沒有並行分解的狀態:Simulink Code Inspector不支持並行分解的狀態
-
檢查Simulink Function參數的數據類型:Simulink Code Inspector不支持具有Simulink函數調用的Stateflow圖表,這些函數具有不同的實際和預期參數數據類型。
-
檢查Simulink Function參數的尺寸:Simulink Code Inspector不支持帶有Simulink函數調用且實際參數大小和預期參數大小不同的Stateflow圖表。
-
檢查Stateflow狀態InlineOption的使用:Simulink Code Inspector不支持將“ InlineOption”指定為“ Auto”或“ Function”的Stateflow狀態。
-
檢查所有狀態是否取消選擇“創建要監視的數據”選項:Simulink Code Inspector不支持指定“創建用於監視的數據”選項的狀態
-
檢查沒有動作的訪問時間(t):Simulink Code Inspector不支持訪問時間(t)的操作
-
檢查真值表參數的數據類型:Simulink Code Inspector不支持Stateflow圖表,這些圖表的真值表具有不同的實際和預期參數數據類型。
-
檢查真值表參數的維:Simulink Code Inspector不支持Stateflow圖表,其中的真值表具有不同的實際和預期參數大小。
-
檢查控制流的結構:不支持非結構化的控制流。
-
檢查所有控制流是否具有唯一的默認過渡:Simulink Code Inspector不支持非唯一的默
-
檢查所有轉換路徑是到子狀態的內部轉換,還是到同級,直接父項或直接子狀態的外部轉換:Simulink Code Inspector不支持任意轉換路徑
-
-
Check usage of Stateflow junctions
- 檢查非終止聯結是否恰好具有一個無條件的退出過渡,Stateflow聯結具有多個傳出的無條件轉換或無無條件轉換,將阻止執行代碼檢查器
- 檢查圖表是否未使用歷史結點:Simulink Code Inspector不支持歷史結點
- 檢查終止Stateflow聯結的用法:Simulink Code Inspector不支持終止追溯到Stateflow狀態的Stateflow結點。
- 檢查無條件轉換是否按執行順序最后執行
-
Check usage of Stateflow transitions
- 檢查操作沒有不支持的操作(支持C動作語言的子集)
- 檢查一維以上數組中的索引:Simulink Code Inspector不支持在一維以上的數組中建立索
- 檢查所有數組是否都使用“ int32”類型的索引:Simulink Code Inspector不支持索引類型不是'int32'的數組
- 檢查所有轉換條件是否均為布爾數據類型:Simulink Code Inspector僅支持布爾數據類型的轉換條件
- 檢查是否沒有操作訪問上下文相關的常量:Simulink Code Inspector不支持訪問上下文相關的常量的操作(即以'c'或'C'作為后綴)
- 檢查是否沒有操作可訪問自定義數據Simulink Code Inspector不支持訪問自定義數據的操作
- 檢查操作是否對枚舉類型操作數沒有不支持的操作Simulink Code Inspector不支持對枚舉類型操作數進行操作的子集
- 檢查是否沒有轉換具有事件觸發器:Simulink Code Inspector不支持轉換事件觸發器
- 檢查圖形函數參數的數據類型Simulink Code Inspector不支持使用圖形函數調用使用不同實際和預期參數數據類型的Stateflow圖表。
- 檢查圖形函數參數的尺寸:Simulink Code Inspector不支持具有圖形函數調用的Stateflow圖表,這些函數具有不同的實際和預期參數大小。
- 檢查Stateflow轉換都與Simulink Code Inspector兼容。
- 檢查是否沒有動作包含參數為無效數據類型的函數Simulink Code Inspector不支持包含其參數為無效數據類型的函數的操作
- 檢查是否沒有動作包含其操作數為混合數據類型的二進制運算符:Simulink Code Inspector不支持包含二進制運算符的操作,該運算符的操作數為混合數據類型
- 檢查沒有Stateflow函數具有超過2個參數:Simulink Code Inspector不支持具有兩個以上參數的Stateflow函數
- 檢查Simulink Function參數的數據類型:Simulink Code Inspector不支持具有Simulink函數調用的Stateflow圖表,這些函數具有不同的實際和預期參數數據類型。
- 檢查Simulink Function參數的尺寸:Simulink Code Inspector不支持帶有Simulink函數調用且實際參數大小和預期參數大小不同的Stateflow圖表。
- 檢查沒有動作的訪問時間(t):Simulink Code Inspector不支持訪問時間(t)的操作
- 檢查真值表參數的數據類型:Simulink Code Inspector不支持Stateflow圖表,這些圖表的真值表具有不同的實際和預期參數數據類型。
- 檢查真值表參數的維:Simulink Code Inspector不支持Stateflow圖表,其中的真值表具有不同的實際和預期參數大小。
-
Check usage of Stateflow gtaphical functions
確定Stateflow圖形功能的使用可能會影響與Simulink Code Inspector的兼容性
-
Check usage of Stateflow truth tables
確定Stateflow真值表的使用可能會影響與Simulink Code Inspector的兼容性
-
Check Loop unrolling threshold setting
驗證循環展開閾值設置:檢查“循環展開閾值”是否設置為一個值,這樣就不會生成部分展開的循環。(將“優化”>“信號和參數”>“循環展開閾值”設置為小於或等於2,以生成所有展開的循環,或將其設置為大於8,以生成所有展開的循環。)
-
Check destinations of If and Switchcase blocks
檢查If和Switchcase塊的目標Action子系統:檢查連接到相同的If或Switch Case塊的Action子系統是否統一組合或分離其輸出和更新代碼
-
Check for root Output blocks that have non-auto storage class
驗證是否支持根輸出的存儲類:如果將參數“將可重用子系統輸出為”設置為“單個參數”,則對於非自動存儲類的根輸出具有子端口的子模型不支持代碼驗證。
-
Check for Terminator blocks connected to Model Reference block outports
檢查模型參考塊的連通性:識別連接到Terminator模塊的模型參考模塊。
-
Check for unsupported propagation of initial condition values
檢查初始條件值的不受支持的傳播:在首次初始化期間檢查是否有任何塊傳播初始條件
-
Check for usage of data dictionary
檢查數據字典的使用不支持在數據字典中定義了數據的模型
-
Check data type replacement names
標識不是Simulink名稱或Simulink.AliasType的替換名稱
-
Check usage of MATLAB Function Blocks
- 檢查包含“ / *”,“ * /”或以字符“ *”開頭或結尾的塊名稱
- 檢查是否不支持使用存儲類:識別具有恆定采樣時間的塊以及非自動存儲類的輸出
- 檢查不支持的測試點識別具有恆定(Inf)采樣時間和測試點輸出的模塊
- 檢查塊出口的存儲類別使用不受支持的自定義存儲類類型,數據初始化或InitialValue識別塊的輸出
- 檢查具有大於二維輸入或輸出的塊:識別輸入或輸出大於二維的塊
- 識別帶有框架輸入或輸出的塊
- 檢查所有MATLAB函數是否將“更新方法”設置為“繼承”:Simulink Code Inspector不支持將'Update method'設置為'Inherited'以外的值的MATLAB函數
- 檢查MATLAB函數不包含輸入觸發信號:Simulink Code Inspector不支持包含輸入觸發信號的MATLAB函數
- 檢查MATLAB函數是否不包含函數調用輸出信號:Simulink Code Inspector不支持包含函數調用輸出信號的MATLAB函數
- 檢查是否使用了固定的或可調整參數的塊,在不使用顯式速率轉換塊的情況下不要驅動兩個或多個多速率塊。標識恆定的塊或可以調整其參數的塊,這些塊正在驅動兩個或多個多速率塊,而無需使用顯式的速率轉換塊。
- 檢查所有MATLAB函數是否將'Saturate on integer溢出'設置為'Off'Simulink Code Inspector不支持將“在整數溢出時飽和”設置為“關”以外的值的MATLAB函數
- 識別具有非內聯配置的不受支持的子系統
- 檢查所有MATLAB函數是否將“將這些繼承的Simulink信號類型視為fi對象”設置為“固定點和整數”以外的值:Simulink Code Inspector不支持將“將這些繼承的Simulink信號類型作為fi對象處理”設置為“ Fixed-point&Integer”的MATLAB函數。
- 檢查所有MATLAB函數是否將“支持可變大小的數組”設置為“關”:Simulink Code Inspector不支持將“支持可變大小的數組”設置為“關”以外的值的MATLAB函數
-
Check usage of Data in MATLAB Function
- 檢查在MATLAB函數中定義的數據是否受支持的數據類型:Simulink Code Inspector僅在MATLAB函數中支持內置和標量總線數據類型的數據
- 檢查在MATLAB函數中定義的數據是否支持維度:檢查在MATLAB函數中定義的僅支持標量,向量或矩陣維的數據
- 檢查MATLAB函數中定義的數據是否為非復雜數據:Simulink Code Inspector不支持MATLAB函數中的復雜數據
-
Check usage of Code in MATLAB Function
- 檢查MATLAB代碼中的冒號運算符是否具有不超過3個操作數:Simulink Code Inspector不支持具有3個以上操作數的冒號運算符。
- 檢查MATLAB代碼中的冒號運算符僅使用整數和雙精度數據:Simulink Code Inspector僅在使用整數或雙精度數據的MATLAB代碼中支持冒號運算符
- 檢查MATLAB函數中使用的數據是否受支持的數據類型Simulink Code Inspector僅在MATLAB函數中支持內置和標量總線數據類型的數據
- 檢查MATLAB函數中的代碼是否受支持:在MATLAB函數中檢查僅支持標量,向量或矩陣維的代碼
- 檢查MATLAB函數中的代碼是否受支持在MATLAB函數中檢查僅支持標量維的代碼
- 檢查MATLAB代碼中的非空括號:Simulink Code Inspector不支持Matlab代碼中沒有操作數的方括號
- 檢查在MATLAB函數中定義的數據是雙數據類型還是單數據類型Simulink Code Inspector在MATLAB函數中僅支持雙重或單一類型的數據
- 檢查MATLAB代碼中的if語句是否使用標量條件如果條件不是標量,則Simulink Code Inspector不支持MATLAB代碼中的if語句
- 用戶定義的MATLAB函數必須將coder.inline指令設置為“始終”如果Simulink Code Inspector未指定coder.inline指令,或者coder.inline指令設置為“ always”以外的值,則它不支持用戶定義的MATLAB函數。
- 檢查MATLAB代碼中的數學函數僅使用整數和浮點數據Simulink Code Inspector僅支持使用整數或浮點數據的MATLAB代碼中的數學函數
- 檢查MATLAB函數中是否沒有代碼缺少數據類型信息:Simulink Code Inspector不支持包含缺少數據類型信息的代碼的MATLAB函數
- 檢查MATLAB函數中是否沒有代碼缺少尺寸信息Simulink Code Inspector不支持包含缺少尺寸信息的代碼的MATLAB函數
- 檢查MATLAB代碼中的所有函數調用都解析為已知的函數定義:Simulink Code Inspector不支持無法解析為已知函數定義的函數調用
- 檢查MATLAB函數中使用的運算符是否沒有混合數據類型的操作數Simulink Code Inspector不支持混合數據類型的運算符的MATLAB函數
- 在MATLAB代碼中使用矩陣運算時,請檢查“循環展開閾值”是否不會在生成的代碼中導致部分展開的循環,如果“循環展開閾值”導致所生成代碼中的部分展開循環,則Simulink Code Inspector不支持MATLAB代碼中的矩陣運算
- 檢查MATLAB代碼中的運算符和函數是否支持操作數維。僅支持標量,檢查運算符和函數的非標量操作數
- 檢查MATLAB函數中不受支持的MATLAB代碼
-
Check MATLAB Code Analyzer messages
檢查MATLAB代碼分析信息:
- 檢查MATLAB功能塊中使用的MATLAB代碼
- 檢查Stateflow圖表中定義的MATLAB函數
- 檢查調用的MATLAB函數
-
Check for multiple sample times in model used as a model reference target
檢查用作模型參考目標的模型中的采樣時間:確定用作具有多個采樣時間的模型參考目標的模型
-
Check Treat each discrete rate as a separate task setting
驗證將每個離散速率視為單獨的任務設置檢查是否為具有多個離散率的模型選擇了“將每個離散率作為一個單獨的任務處理”。
-
Check model for commented-out blocks
檢查模型中注釋掉的塊
-
Check model for instrumented signals
檢查模型中已檢測的正弦信號
Simulink Design Verifier Compatibility checks
-
Check compatibility with Simulink Design Verfier
確定Simulink Design Verifier分析不支持的項目。(Simulink Design Verfier Design Error Check檢查項與本項強相關)
Simulink Design Verfier Design Error Check
-
Detect Dead Logic
確定在執行期間保持不活動狀態的邏輯。(無效邏輯)
('ADU_TC297B_Core2_TJP'與Simulink Design Verifier不兼容。)
-
Detect Integer Overflow
確定整數溢出的運行時實例。
-
Detect Division By Zero
確定運行時實例除以零。
-
Detect Out Of Bound Array Access
標識超出范圍的數組訪問的運行時實例。
-
Detect Violation of Specified Intermediate Minimum and Maximum Values
確定違反指定的中間最小值和最大值的運行時實例。
Simulink Model File Integrity
-
Check model for foreign characters
檢查模型中的字符是否可以用當前編碼表示。
-
Check Model History properties
檢查模型歷史記錄屬性:
檢查模型以獲取已編輯的“模型歷史記錄”屬性值
檢查“模型屬性”對話框的“歷史記錄”窗格中的參數是否使用默認標簽。在MDL文件格式中,配置一些模型屬性以使用源代碼管理工具關鍵字替換。
如果以SLX格式保存模型,則源代碼管理工具無法執行關鍵字替換。
首次將MDL文件保存為SLX時,將緩存來自此類關鍵字替換的模型文件中的所有信息,並且以后將不再對其進行更新。
從那時起,“模型屬性歷史記錄”窗格和模型中的任何“模型信息”塊都會顯示過時的信息。
Units Inconsistencies
-
Identify unit mismatches in the model
識別模型中單位不匹配的模塊。
-
Identify automatic unit conversions in the modele
識別在模型中插入自動單位轉換模塊
-
Identify disallowed unit systems in the model
確定模型中不允許使用的單位系統的用法(???)
-
Identify undefined units in the model
確定未定義單位的用法
Upgrading to the Current Simulink Version
-
Open the Upgrade Advisor
與檢查升級相關,需要運行升級顧問,之后再修改相關問題