前言
在仿真過程中,由于仿真模型的不連續(xù)性,或者模型沒有適當?shù)乇碚?參數(shù)化,或者當求解器無法求解控制模型行為的方程時,可能就會出現(xiàn)仿真的收斂問題。
當然,收斂問題沒有唯一的解決方案,因此應(yīng)仔細研究每個設(shè)計行為,并應(yīng)為該設(shè)計確定適當?shù)慕鉀Q方案。
解決仿真的收斂問題,要避免對仿真設(shè)置進行隨機更改,也要注意避免更改原始設(shè)計拓撲。因此可以:
1、使用系統(tǒng)方法。在解決收斂問題時記錄好更改。
2、在開始調(diào)查問題之前,嘗試用最新的Saber 版本中運行設(shè)計。
3、對問題進行初步調(diào)查并確定攻擊點。
4、仔細研讀系統(tǒng)給出的錯誤信息,并參考產(chǎn)品幫助文檔判斷癥結(jié)所在。
5、有效地利用調(diào)試工具。
6、確保校準分析。
初步調(diào)查
可能會出現(xiàn)收斂問題原因很多。因此了解調(diào)試過程的起點很重要。初步調(diào)查有助于啟動調(diào)試。有時通過遵循初步調(diào)查中提到的糾正措施來解決收斂問題。
初步調(diào)查步驟如下。
1、在SaberRD中打開設(shè)計時,您是否看到有關(guān)缺少符號的任何消息?
識別設(shè)計中缺少的符號、連接或節(jié)點。在 SaberRD 中打開設(shè)計時,Netlister 會彈出一條關(guān)于缺少符號的消息(如果有),如下所示:

這可能是由于模型更新、庫重構(gòu)或復(fù)制設(shè)計文件夾時的人為錯誤造成的。在這種情況下,請確保模型模板 ( .sin) 和符號 ( .ai_sym) 在工作目錄或自定義庫或 SaberRD 庫中可用。
2、檢查是否有任何浮動引腳
浮動引腳是未連接到設(shè)計中的任何組件或節(jié)點的節(jié)點。它們在網(wǎng)表中也被稱為“freenet”。此外,某些節(jié)點可能會因人為錯誤而斷開連接。如果存在收斂問題,建議檢查這些浮動引腳并確保它們被故意遺漏。在大型設(shè)計中,很難識別freenet,您可以在Netlist 中搜索關(guān)鍵字“freenet”,并確保有意將它們排除在外,以避免對收斂造成任何影響。
3、檢查任何具有挑戰(zhàn)性的電路
確保設(shè)計不存在如下所示的任何電路條件。設(shè)置電感直流阻抗和電容的絕緣阻抗,使設(shè)計更加真實。避免電容器和電感器的初始條件沖突,如下所示,并為隔離電路提供適當?shù)膮⒖肌O旅娼o出了具有挑戰(zhàn)性的電路的示例。
- 無法解決的配置 違反能量守恒定律的電路條件。

- **人為錯誤 **對于理想的并聯(lián)電容器和串聯(lián)的理想電感器,初始條件應(yīng)該相同。初始條件的錯誤使用會導(dǎo)致數(shù)值振蕩。

- **隔離地 ** 如果有變壓器之類的電氣隔離,則應(yīng)提供適當?shù)慕拥貐⒖肌?/li>

- 同步數(shù)字事件 兩個數(shù)字事件之間應(yīng)該有有限的延遲。

4、刪除臨時文件并創(chuàng)建新的網(wǎng)表文件。
SaberRD 在工作目錄(保存設(shè)計文件的位置)中寫出許多與 Netlister 和 Simulator 相關(guān)的支持文件。這些文件具有*.ai_tdb、 .ai_ns、 .ai_str、 .ai_grm、 .ai_out、 .ai_compiled、work.ai_vfs、 .ai_vhddsn、*.ai_vhdgrm 等擴展名,并包括等網(wǎng)表文件。sin和.vhd。由于不受支持的 GUI 操作、版本更改或數(shù)據(jù)損壞,這些支持文件可能會損壞。建議在清除這些支持文件后重新網(wǎng)表設(shè)計。
注意:不要刪除擴展名為*.ai_sch、 .ai_dsn、 .ai_sym、 .sin(僅適用于模型)的文件和來自模型架構(gòu)工具的文件(如 .ai_dp、 .ai_mosfet、 .ai_mct、 . ai_igbt1、 .ai_ams、 .ai_scan、 .ai_tlu等)。在刪除任何這些文件之前進行備份是個不錯的習(xí)慣。
5、設(shè)計之前是否進行過仿真? 如果是這樣,那么發(fā)生了什么變化并導(dǎo)致了錯誤?
如果收斂問題剛好在一些設(shè)計修改之后發(fā)生,那么這個問題可能是在修改過程中引起的。了解修改的效果以及修改是否是收斂錯誤的原因。如果修改是將設(shè)計的一小部分集成到更大的設(shè)計中,請確保小部分經(jīng)過驗證并且電路行為符合預(yù)期。此外,確保在集成后,設(shè)計行為符合預(yù)期,并且電路遵循基爾霍夫電壓和電流定律。
6、直流工作點或瞬態(tài)分析時是否顯示收斂錯誤?
當出現(xiàn)收斂問題時,仿真器會顯示錯誤消息。錯誤消息包含指向提供有關(guān)錯誤信息的產(chǎn)品幫助文檔的鏈接。錯誤中的消息可能是調(diào)試的起點。有關(guān)產(chǎn)品幫助文檔的更多詳細信息,將在以下部分中詳細說明,遵循錯誤消息。
有關(guān)錯誤及其發(fā)生的知識有助于確定調(diào)試過程的起點。有關(guān)錯誤發(fā)生的信息至關(guān)重要,因為它有助于追蹤設(shè)計中的任何事件或切換,并從那時起繼續(xù)調(diào)查。對于 DC 工作點,可以使用調(diào)試、holdnodes、SDB 命令等仿真器選項進行調(diào)試。對于瞬態(tài)分析,可以利用監(jiān)控進度和 ASP(仿真解決方案點)代碼進行調(diào)試。這也將在本文后面詳細介紹。
按照錯誤信息判斷
當出現(xiàn)收斂問題時,SaberRD 會顯示錯誤消息,幫助調(diào)試問題并解決問題。收斂問題期間的一些常見錯誤消息如下所示:

在 SaberRD 中,當顯示錯誤消息時,該工具會指出問題中最可能的部分。受影響的組件/節(jié)點將以紅色突出顯示。當鼠標懸停在突出顯示的部分時,緊湊的錯誤消息顯示如下。

腳本窗口中的錯誤消息將包含一個鏈接,您可以單擊該鏈接并重定向到產(chǎn)品幫助文檔。SaberRD 產(chǎn)品幫助文檔簡要說明了錯誤以及解決這些錯誤的技巧。可以使用產(chǎn)品幫助文檔中的鏈接訪問每條錯誤消息的詳細信息。產(chǎn)品幫助文檔的快照如下所示。
使用調(diào)試工具
SaberRD 提供調(diào)試工具,用于監(jiān)控仿真器性能和診斷收斂問題的可能原因。可用的不同調(diào)試工具包括調(diào)試選項、Holdnodes、SDB 命令和監(jiān)控進度。
調(diào)試選項
調(diào)試選項僅在直流工作點分析中可用,可以通過高級仿真設(shè)置訪問。調(diào)試選項是一個切換開關(guān),當設(shè)置為“Yes”時,仿真器轉(zhuǎn)錄窗口將顯示仿真器變量,如行列式符號、函數(shù)值、變量的相對變化、牛頓步長限制和超出區(qū)域的變量數(shù),如下所示。

如上圖,當找到解決方案時:
- 雅可比行列式的符號通常保持相同的符號 (+)
- 函數(shù)值(通常)首先增加,然后減少(通常是非單調(diào)的)直到接近零
- 變量的相對變化趨近于小值
- 牛頓步長變量在迭代結(jié)束時為零
- 沒有發(fā)現(xiàn)區(qū)域外的變量,或者只是偶爾發(fā)現(xiàn)一些變量
但是當沒有找到解決方案時,仿真器將顯示如下信息:

觀察到行列式的不同符號。
- 可以看到非常高的功能值
- 變量的相對變化值高
- 可以看到更多的牛頓步長變量
- 發(fā)現(xiàn)某些變量超出區(qū)域
仔細研究仿真器參數(shù)的變化有助于確定收斂問題的原因和解決方案。例如,讓我們看一個隨附的案例研究。
在下面給出的仿真器報告截圖中,可以看出,
- 行列式變化廣泛
- 函數(shù)值和相對變化過,然后急劇增加到NaN,
- 大量變量受牛頓步長限制
- 突然變量超出區(qū)域

這種行為的原因可能是由于牛頓步長限制不足。要了解有關(guān)牛頓步長限制的更多信息,請參閱產(chǎn)品幫助文檔(The Designer’s Guide to Analog & Mixed-Signal Modeling> Simulator Convergence>NumericalOscillation and Divergence)。在這種情況下,推薦的解決方案是增加牛頓階躍密度。將操作點高級仿真設(shè)置中的 Newton Step Density 從 3(默認)增加到 5,可以看到仿真收斂并找到了解決方案。

保持節(jié)點
對于具有多個穩(wěn)定工作點(例如鎖存器、觸發(fā)器和計數(shù)器)的系統(tǒng),無偏直流工作點分析可能會在工作點之間“卡住”,而不是找到一個。另一方面,根據(jù)設(shè)計,DC 分析可能可以輕松找到工作點,但它找到的可能不是您最感興趣的。使用Holdnodes,可以將指定節(jié)點保持在指定值,而運行工作點分析。Holdnodes 可用于將系統(tǒng)偏向特定的解決方案。要將節(jié)點保持在特定值,請輸入節(jié)點名稱及其路徑和值,以空格分隔,如下所示。
語法->::.:
**釋放保持節(jié)點 **
此選項指定是否應(yīng)分兩步找到解決方案,首先保留節(jié)點,然后釋放。設(shè)置為 Yes 時,操作點分析分兩步運行。在第一步中,節(jié)點保持在指定的值,然后在第二步中,節(jié)點被釋放并使用第一步的結(jié)果作為輸入。當設(shè)置為 No 時,不使用 Holdnodes 的操作點分析(第二步)不會在使用 Holdnodes 的分析之后運行。您還可以同時持有多個節(jié)點。每個節(jié)點及其各自的值應(yīng)由空格分隔,如下面的界面所示。

注意:不支持信號名稱中的通配符。您必須指定要保持的信號名稱。
在上面的例子中,模型 boostavg 的頂級節(jié)點“v_battery”和內(nèi)部節(jié)點“il”分別保持在值 1 和 0。當釋放保持節(jié)點處于活動狀態(tài)時,這些節(jié)點保持在指定的值,然后運行操作點分析,然后釋放它們并使用在第一部分中獲得的值作為初始點運行操作點的第二部分。
-
電容器
+關(guān)注
關(guān)注
64文章
6916瀏覽量
106141 -
電感器
+關(guān)注
關(guān)注
20文章
2619瀏覽量
73092 -
仿真器
+關(guān)注
關(guān)注
14文章
1045瀏覽量
86624 -
隔離電路
+關(guān)注
關(guān)注
8文章
67瀏覽量
37714 -
變壓器
+關(guān)注
關(guān)注
0文章
1803瀏覽量
4010
發(fā)布評論請先 登錄
Saber中如何更好地提高仿真的收斂性(二)
無刷雙饋異步電機潮流建模和收斂性研究
FEM電磁仿真的一致性和收斂問題
實現(xiàn)Saber電源仿真的方法
決定仿真精度的主要因素
B值獨立同分布隨機變元序列矩完全收斂性
B值同分布鞅隨機列矩完全收斂性的注記
基于量子粒子群算法的收斂性研究
如何解決Saber中收斂性問題
板級模擬電路仿真收斂性技術(shù)研究
車載逆變電源的Saber與Simulink聯(lián)合仿真
關(guān)系模型的進化算法收斂性對比的詳細資料說明
Saber Pspice simulink電源仿真軟件的區(qū)別
一文解讀PSpice中的收斂性問題及其相關(guān)因素

Saber中如何更好地提高仿真的收斂性(一)
評論