如何缩放SPICE矩阵,以便LU分解不会失败

时间:2014-03-08 14:05:53

标签: boost simulation

我正在实施SPICE求解器。我有以下问题:说我把两个二极管和一个电流源串联(标准二极管)。我使用MNA和Boost LU分解。问题是节点矩阵变得非常快速接近奇异。我想我必须扩展价值观,但我不知道如何在互联网上找不到任何东西。有任何想法如何进行缩放?

2 个答案:

答案 0 :(得分:0)

从数值的角度来看,这种近奇异矩阵有一种尺度技术。基本上,这种技术是将A的每一行除以该行中绝对值的和(或最大值)。您可以找到KLU,它是用于电路仿真的线性求解器,以获取更多详细信息。

从SPICE仿真的角度来看,它使用所谓的Gmin步进技术来迭代计算并接近真正的答案。您可以在SPICE项目QUCS(相当通用电路仿真器)的文档中找到它。

答案 1 :(得分:0)

当矩阵具有非常大和非常小的条目时,缩放无效。

有必要使用为电路求解器应用开发的一些或全部技巧。一个好的开始是将指数和对数函数参数的范围限制在合理的值 - 在大多数电路中,二极管正向电压绝不会超过1V,二极管反向电流不低于1pA。

实际上,查看所有库函数并将它们包装在代码中,使其参数和结果适合于电路求解目的。简单剪裁有时足够好,但确保函数保持(两次)可微分和连续是更好的方法。