我想知道是否有人可以帮助我。如何创建一个简单的电路模拟器?类似于 Multisim,只是简单多了!
基本上,我只需要电阻、电容、电感和电压源。
有没有我可以遵循的教程,使用 C# 和 Visual Studio 创建它?
我想知道是否有人可以帮助我。如何创建一个简单的电路模拟器?类似于 Multisim,只是简单多了!
基本上,我只需要电阻、电容、电感和电压源。
有没有我可以遵循的教程,使用 C# 和 Visual Studio 创建它?
我从头开始编写了为CircuitLab提供支持的仿真引擎:从稀疏矩阵库到组件模型和仿真模式。我的联合创始人编写了前端。它最终成为一个令人难以置信的巨大编程项目,但我对此感到非常自豪。如果您准备好迎接挑战,那么编写电路模拟器可能是您将解决的最有价值的编程项目之一。
在高层次上,您只需要:
我不知道在线教程,但我在编写“终极电子学”教科书时尝试记录很多,尤其是在第 2 章。还有许多 1990 年代的书籍关于电路模拟,虽然我现在手边没有它们。
我的建议是仅从电压源和电阻器开始,然后从那里继续构建。祝你好运。
我怀疑是否有在线教程,因为它非常具体。
但是,您绝对可以使用的一种信息来源是开源代码。我知道的一个是SpicePy——它是用 Python 编写的,但它的文档非常好,尽管 Python 语言本身就具有很强的描述性。您可以在 Python 代码中或通过Telegram Bot使用此类库。
您需要的是某种描述电路拓扑的方法。一种常见的方法是使用网表,它本质上是描述电路中每个组件以及它如何连接到其他组件的文本(例如通过节点号)。您可以使用此策略或任何您认为更容易采取的策略;解析它并使它成为一个实际的图形(即它有意义吗?)可能需要一些时间。
之后,在模拟器中分析电路的一种常用方法是节点分析;然后求助于一些线性代数库来求解方程组(肯定是线性的),例如Math.Net。
我编写了一个基于 Python 的工具,可以使用 SciPy 提供的稀疏矩阵求解器来模拟交流信号和噪声。它是一个基于引力波社区中名为LISO的闭源工具的开源项目。
我以某种方式构建了代码,您可以构建不同的求解库或创建使用相同电路定义的不同分析。写作时存在的两种分析类型(信号和噪声分析)从电路组件构建矩阵,然后在给定频率范围内针对给定激励(例如输入)求解它。
它类似于 SPICE 和其他节点分析电路仿真器的工作方式。我希望代码相对容易理解。
这里有一些基本文档,但仍在开发中。如果您最终使用它并对它的工作原理有疑问,请告诉我。
这是它支持的 LISO 语法示例(但您也可以纯粹在 Python 中定义电路)。它有点像 SPICE 网表:
r r1 100 nin nsum
r r3 1.075k no nsum
r r4 42.2 nsum nm
r r6 65 nin gnd
c c2 4.7n nsum gnd
c c5 122p no nm
op op1 op27 gnd nm no
freq log 1 1M 101
uinput nin nsum 50
uoutput no nsum
上面的代码产生这样的图: