SDB 命令
SDB 命令用于監控無法通過任何其他調試工具直接監控的仿真器事件。SDB 命令在 SaberRD 命令行中用于查看仿真器事件,例如牛頓步長限制、閾值和調度事件。下面給出sdb命令的用法。
語法 -> sdb on ns_limit(提供牛頓步長限制的調試信息)。
語法 -> sdb on thresh(提供閾值評估的調試信息)
語法 -> sdb on schedule(提供調度事件或取消調度事件的調試信息,包括閾值、中斷和狀態變化事件)
監控進度
在直流工作點和瞬態分析中都可以使用監視器進度。分配 1 到 1000 之間的任何值將打開監視器進度,仿真器轉錄窗口將顯示仿真進度的百分比以及仿真解決點 (ASP)、截斷誤差、牛頓迭代次數或事件數等詳細信息,如下所示。
在瞬態分析期間以及當 DC 分析使用動態電源斜坡時,監視器顯示區域的左列中有一個額外的單字符字段,稱為仿真解決方案點 (ASP)。ASP 代碼以單字符的形式給出消息是否找到解決方案,執行任何時間步長,無限解決方案和調度事件。下表給出了 ASP 代碼列表。
解釋 ASP 代碼非常重要,因為它可以幫助您了解仿真器進度的方向。如果您在瞬態等名義分析期間在轉錄窗口中頻繁觀察到像 ?、-、d 和 N 這樣的 ASP 代碼,則表明設計中存在收斂問題。建議在初始階段解決這些問題中的任何一個,然后繼續推進仿真,如蒙特卡羅、最壞情況、靈敏度、周期性小信號和故障。
跟蹤顯示的截斷錯誤(terror)也很重要。理想情況下,它應該是接近零的非常小的值。如果它顯示大值,嘗試將terror值從 0.005(默認值)降低到 0.001 或 0.0001 和/或將目標迭代(tniter)從 3(默認值)增加到 5、10 或 20。terror值和 tniter 值應更改并應記錄每次更改的影響。terror值越小,仿真時間越長。重要的是要跟蹤每次terror變化的結果的準確性。下一節將解釋校準分析的重要性。
校準分析
仿真性能和結果的準確性可以通過仿真設置來控制,例如采樣點密度和截斷誤差。采樣點密度越大,一步時間獲取的數據點就越多。因此,密度越高,結果將越準確,但會花費仿真時間。截斷誤差可以建立具有較小值的數值積分算法的高精度,但它也花費了仿真時間。因此,考慮到仿真器的性能和結果的準確性,仿真工程師必須對這些仿真設置進行精細的平衡。
Newton Target Iteration 和Integration Order 等其他仿真設置也會影響仿真器性能和結果的準確性。NewtonTarget Iteration (tniter) 定義了仿真器在瞬態分析期間嘗試不超過的Newton-Raphson 迭代次數。增加此值將導致仿真器傾向于在仿真中花費更多時間。減小該值將導致仿真器趨向于更快地仿真。默認值為3。Integration Order(階次),決定是使用Backward Euler Method(order = 1)還是梯形法(order = 2)來確定下一個外推的時間點。順序僅在積分方法為GEAR時適用。
對于像電力電子轉換器設計這樣的開關電路,解決收斂問題的一個簡單方法是將積分階數設置為 1。積分階數 = 1 將不考慮電路中非線性無源元件的影響。因此,通過減少半導體開關中的振蕩和振鈴,收斂問題被最小化。但失去了結果的準確性。
然后,您需要收緊截斷誤差和/或增加目標迭代以提高結果的準確性。也就是說,如果結果的準確性可能會受到影響,或者設計人員正在使用行為切換模型,那么 order = 1 將是一個很好的解決方法。
驗證結果
結果驗證是任何仿真工作中的重要一步。在處理收斂問題時,您的主要目標不僅是消除錯誤,而且還要關注預期結果。很多時候,錯誤可能會通過調整一些隨機仿真設置來解決,但結果不一定像預期的那樣。只有在獲得預期結果的情況下,才稱收斂問題的解是正確的。
下面舉例說明校準分析和驗證結果的重要性。
示例考慮了設計(該設計可用于 SaberRD 2017.06 及更高版本)。一開始,瞬態分析使用默認仿真設置運行。可以看出,仿真沒有收斂并給出錯誤。作為開關電路,將積分順序更改為 1 將是一個簡單的解決方法。在第二次迭代中,使用積分階數 = 1,可以看出仿真收斂了。但結果并未顯示引線電感等寄生元件的任何影響,并且負載電流尚未達到穩定狀態。
此外,牛頓迭代限制顯示為 46.2%。就收斂問題而言,錯誤信息已經消失,但具體問題的解決方案尚未確定。因此,設置order = 1 不是此收斂問題的正確解決方案。對于許多其他開關電路,設置 order =1 可能是可接受的解決方案。此示例顯示了遵循最佳實踐的優勢。
使用前面解釋的最佳實踐重新啟動調試過程,按照顯示的錯誤消息運行第三次迭代。錯誤消息“ALG_INCR_TNITER”提供了產品幫助文檔中有關 tniter 和terror的信息。可以看出,通過增加目標迭代和減少截斷誤差來消除錯誤。在第三次迭代中,仿真以terror = 1u、tniter = 6 和階數 = 2 運行。階數設置回2以查看無源元件的效果。在第三次迭代中,可以看到仿真收斂并且負載電流處于穩定狀態。但仍有改進的余地,因為迭代被限制在 22% 左右,而且門脈沖不符合預期。從柵極電壓波形可以看出,有些情況下有電壓尖峰,有些情況下沒有。還,在信號“gate_lo”中預期柵極電感的影響。因此,半導體沒有正確切換,設計具有很高的損耗。
因此,應進一步加強仿真設置以獲得一致的波形。稍后在第四次迭代中,采用試錯法來確定可以給出預期仿真結果的適當仿真設置。仿真設置,terror從1u改為100u,tniter增加到20。這兩個設置都是逐漸調整的。
現在,可以看出兩個門脈沖都給出了預期的結果。采用試錯法來確定可以給出預期仿真結果的適當仿真設置。仿真設置,terror從1u改為100u,tniter增加到20。這兩個設置都是逐漸調整的。
現在,可以看出兩個門脈沖都給出了預期的結果。采用試錯法來確定可以給出預期仿真結果的適當仿真設置。仿真設置,terror從1u改為100u,tniter增加到20。這兩個設置都是逐漸調整的。現在,可以看出兩個門脈沖都給出了預期的結果。
1、仿真設置為:截斷誤差 = 0.005(默認)目標迭代 = 3(默認)積分順序 = 2(默認),仿真器輸出信息見下圖:
結果:由于收斂問題導致的錯誤信息
2、仿真設置為:截斷誤差 = 0.005(默認)目標迭代 = 3(默認)積分順序 = 1,仿真器輸出信息見下圖:
仿真結果:
3、仿真設置為:截斷誤差 = 1u,目標迭代 = 6,積分順序 = 2。仿真器輸出信息見下圖:
仿真結果:
4、仿真設置為:截斷誤差 = 100u,目標迭代 = 20,積分順序 = 2。仿真器輸出信息見下圖:
仿真結果:
在所有這些迭代中的另一個密切觀察是,當使用適當的仿真設置時,仿真運行得更快(參見仿真結束時的執行時間)。
-
轉換器
+關注
關注
27文章
8694瀏覽量
147085 -
負載電流
+關注
關注
1文章
250瀏覽量
14324 -
仿真器
+關注
關注
14文章
1017瀏覽量
83721 -
ASP
+關注
關注
0文章
98瀏覽量
34072
發布評論請先 登錄
相關推薦
評論