Simple Nano Circuit 开发日记(29)
Day: 24, SLOC: 3500。与其使用完善的、成熟的、现成的仿真软件,不如自己半学半写的实现一个,这样一来可以学习C++编程语言;二来可以把自己荒废了多年的数学重新捡起来看一看、读一读;三来能对电子元件的特性有更全面的了解。这个小软件没有甲方,做起来也就更有乐趣、更从容一些,我考虑就是尽量不引入太多第三方依赖,让它尽可能的小一些。 Day: 29, SLOC: 4263。完成了对 MathMatrixClass 的独立封装,因为增加了对矩阵的分块、奇异性判断,所以可以得到整个系统中的电路彼此不连通的各个局部电路。又通过奇异矩阵判定出电路无解,通过解奇异尝试,若能解除奇异便可再次尝试求解。若无法解除奇异、或者无论如何都无法求解,也不会终止程序,就对那块子矩阵不处理就好了,能求解的部分求解出来。 这样做的好处是更接近物理现实,也许对于成熟的仿真软件,它们还有更复杂的考量,但是以我现在的认知而言,我觉得当前的做法更接近物理现实一些。 因为加入了解奇异尝试,所以已经可以正确的推导出网络节点的正确电压,我并没有在没有“地”的时候默认电源负极为地,而是通过解奇异之后,依然有程序去尝试矩阵求解,这样的出来各个节点电压,看上去效果也是正确的。