【问题标题】:How to Implement Kirchoff Rules如何实施基尔霍夫规则
【发布时间】:2014-04-29 07:05:54
【问题描述】:

1.电路表示用什么数据结构

  • 用于基尔霍夫规则计算目的
  • 如何区分不同类型的电气元件
  • 如何“识别”它们之间的电线互连

2.如何实现基尔霍夫规则

  • 如何获得电流和电压回路
  • 如何存储和计算基尔霍夫方程

[原始问题文本] 具体来说,程序如何识别串联和并联以及如何区分电池、电阻器、电容器、电感器等。

【问题讨论】:

  • 相当广泛的问题......做了一个重新编辑,所以检查一下我是否没有破坏你想要的意思,你也应该在问题中添加你想要使用什么样的电路(AC,直流、模拟、数字、无源、有源、NF、VF、VVN ...)。

标签: java data-structures simulation evaluation


【解决方案1】:

Java 是一种面向对象的语言。开始考虑如何将系统建模为对象。

您已经有一些候选对象:

  • 电池
  • 电阻器
  • 电容器
  • 电感器

这些将具有输入和输出节点。一个的输出是下一个的输入。

晶体管呢?您将有多个输入。然后怎样呢?这些是非线性的。你如何为这些建模?

您将为每个人建立正确的行为并将它们连接在一起。

您将在此处获得某种瞬态强制功能。输入电流或电压波形。输出是每个节点的电流和电压与时间的关系。

这相当于电气工程师的有限元分析。

这些确实是瞬态 ODE,对吗?你打算如何解决它们?数值积分?

【讨论】:

    【解决方案2】:

    同意 duffymo 的回答,只是要补充一些东西(我对 C++ 很友好,所以我坚持下去)

    1. 先用一些数据来表示组件

        struct pin
         {
         char name[];  // name id for pin ("C","B","E"...
    
         int part_ix,pin_ix;  // connected to patrs[part_ix].pins[pin_ix]
    
         double i,u;  // actual: current,voltage
         int direction; // in,out,bidirectional
         };
    
        struct part
         {
         char name[];  // name id for part ("resistor","diode",...
         pin pins[n];  // n pins of the part (resistor has 2 , transistor has 3, ...) 
         // here add all values you need for simulation like:
         double R,H21E,...
         // or even better do a matrix for it so when you multiply it by input currents and voltages
         // of every pin you get the correct currents and voltages
         double m[n][n+n];
         };
    

    您也可以添加引脚连接列表而不是 part_ix,pin_ix 以节省一些处理时间。

    1. 电路

      part parts[];
      

      内部互连的组件的简单动态列表

    2. 循环

      您必须从电流方程的互连中提取闭路回路,并获取连接电压方程的电流回路的节点。这将引导您进入方程组。节点有超过 2 个连接,并且闭合的电流回路只是连接到自身的序列。看这里:

      部分代码找到闭环是我的答案之一

    3. 评估

      可以为此使用高斯消除。有问题的是非线性元件,如二极管、晶体管......所以可能您需要添加更多矩阵(近似于更大次数的多项式),然后您需要乘以由(0,1,2,3,...) 供电的所有电流和电压。我认为 ^3 对于大多数组件来说已经足够了,不要忘记一些非线性组件也需要记住它们的状态(或最后的电流、电压、...)。

      有时使用符号表达式而不是矩阵方法更好,但为此您需要表达式评估引擎。我经常使用这种方法来调整 CAD/CAM 网格中的几何形状。

    【讨论】:

      猜你喜欢
      • 2018-02-13
      • 1970-01-01
      • 1970-01-01
      • 2012-03-24
      • 2014-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多