Coder Social home page Coder Social logo

uladkasach / finite-capacitance Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 1.0 42.64 MB

Numerical solution of capacitance for a finite parallel plate capacitor of arbitrary plate specification.

MATLAB 89.57% Python 10.43%
capacitance edge-effects physics

finite-capacitance's Introduction

Finite-Capacitance

Background:

Capacitance of parallel plate capacitors is easily calculable for the domains where the plate seperation is much smaller than the area of the plates, s << sqrt(A). For domains where s is comparable to sqrt(A) edge effects and fringe feilds affect the capacitance in a non negligible way. When the plate area is much larger than seperation distance, the electric field between the two plates is highly uniform resulting in a capacitance very close to the ideal case where edge effects do not exist. In this case, the charge distribution along the plates is very uniform.

For the domain where s is comparable to sqrt(A), the charge distribution is much less uniform due - as is the electric field between the plates. Because of the requirement that both plates are at the same potential, the charge distributions on both plates must move around into a configuration where the resultant electric fields produce the same potential difference between both plates along all paths that the electrons will move through to get from plate to plate.

This Project:

This project consists of two parts:

  1. To numerically calculate the potential and thus capacitance across the two plates with a uniform charge distribution.
    • We can test this by comparing the ideal case domain and the non ideal case domain:
      • In the ideal domain, where s << sqrt(A), we should find that the potential difference across the two plates has a very low variance. In other words, in this configuration assuming a uniform charge distribution should not break our boundary condition of the top plate being at potential V+ and the bottom at V-, resulting in a difference of V between the two plates along all paths through the electric field between the two plates.
      • In the non ideal domain, we should find that the assumption of uniform charge distribution will violate our imposed boundary conditions and result in potential differences which change depending on which part of the plate the charge leaves from and arrives at.
  2. To numerically determine the charge distribution required to satisfy the boundary conditions imposed above.
    • This is fundementally a constraint satisfaction problem.
    • Many current techniques involve using FDM and FEM methods to satisfy Laplace's equation.
    • It may be possible to solve this as an optimization problem utilizing local search methods such as stochastic gradient descent, stocastic beam search, and other numerical solutions to optimization problems.

Plan:

  1. Calculate capacitance along one path between plates [ Completed ]
    • e.g., capacitance at the edge of a capacitor may be different from capacitance at the center of the capacitor
    • i.e., when making an assumption of the charge density, we may be inaccurate resulting in a varying potential difference along a path between the two plates, resulting in a different capacitance.
    • Implementations:
      1. Calculate potential difference by taking line integral of electric field
        • Test:
          • plot field lines to ensure E is being calculated correctly - completed image
        • ensure that capacitance at center of plate is (e_0)*A/d
      2. Calculate potential difference explicitly
    • Summary:
      • Large discretization is required in the XY plane in order to accuratly model the electric field at |r - r'| -> 0.
        • Calculating potential using E dot l requires less discretization; but, takes overall longer due to requiring many calculations along the path l
        • Calculating potential explicitly, relative to infinity, requires less time; but, requires sizably more memory space
          • More memory space is required due to implementation enabling arbitrary XY shapes of conductors - can be reduced if assuming rectangular plates
  2. Average the capacitance along all paths between plates to determine total capacitance [ In Progress ]
    • calculate capacitance everywhere and then average it
    • Test:
      • ensure that capacitance for case d << sqrt(A) is (e_0)*A/d
    • Evaluation:
      • demonstrate that potential is no longer equivilent when d ~ sqrt(A)
      • demonstrate that the variance in potential rises as d approaches sqrt(A)
      • evaluate assumption that the error in capacitance is related to the variance of voltage
        • demonstrate that as the variance of voltage increases the deviation from known finite case solutions increases
  3. Attempt to determine charge density by solving C.S.P
    • Boundary Constraints: V(top) = V+, V(bottom) = V-
    • Idea: minimizing variance of voltage across the top plate by all paths from bottom to top will increase accuracy of model
      • use optimization functions to solve this problem, with variables being charge densities at each position
      • employ huristics / domain knowledge to initialize the state with likely configurations
        • e.g., charges tend to aggregate at sharp points and at edgesf

Implementation:

  1. Calculate Capacitance along one path [ Completed ]
    1. Define Domain
      • Lx, Ly, Lz = length in x, y, & z in meters
      • Nx, Ny, Nz = # discrete elements in x, y, &z
      • Dx, Dy, Dz = Lx/Nx, Ly/Ny, Lz/Nz = length / element in direction
      • Domain Tensor = tensor of latice elements Nx by Ny by Nz in size
    2. Define Conductor Domain
      1. Generate a "plate"
        • rectangular = f(lx, ly, lz) where lx,ly,lz are the dimensions of the plate
        • circular = f(r) where r is radius
      2. Mirror plate, seperate, and center
        • Determine X,Y position of plate elements to center it in x,y plane
        • Determine Z position of plates to center both in z dimension
        • generate a 2d-tensor of size n by 4,
          • n is amount of elements to contain conductor
          • 2nd dimension contains the id of the plate the element refers to as well as at element's x,y,z coordinates
    3. Calculate Potential
      • Using Electric Field
        • Integration by summation : V = -\int_{+}^{-} \overrightarrow{E}*d\overrightarrow{l} = \int d\overrightarrow{l} * \int \rho(\overrightarrow{r}') * \frac{(\overrightarrow{r} - \overrightarrow{r}')}{|(\overrightarrow{r} - \overrightarrow{r}')|^3} * d\tau'  \propto Q
        1. calculate electric field at any point
        2. plot electric fields and capacitor to verify that electric fields are calculated properly
        3. calculate E dot dl along a path between any two points on the edges of each capacitor
      • Explicitly
        • Integration by summation : V = \int  \frac{\rho(\overrightarrow{r}')}{|(\overrightarrow{r} - \overrightarrow{r}')|} * d\tau'  \propto Q
        1. calculate potential at any point
        2. calculate the difference in potential between two points
    4. Relate potential to capacitance by C = Q/V and Q = integral rho * dtau
  2. Statistically analyze Voltage along paths between plates, calculate average capacitance, and calculate confidence in average capacitance [ In Progress ]
    1. Define statistical analysis methods to calculate average and variance of voltage
    2. Analyze potential difference between the two plates
      • picks X different combinations of start and stop coordinates on plate edges, calculates E dot dl, and evaluates average and variance of voltage.
      • picks X different points on plate coordinate edges, and creates a straight line between each plate at that point to calculate E dot dl by, and evaluates average and variance along these paths as well.

finite-capacitance's People

Contributors

uladkasach avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

tomwerk

finite-capacitance's Issues

Calculating potential using electric field at accurate discretization takes too long

As seen in table : https://github.com/uladkasach/Finite-Capacitance/blob/master/z_dev_notes/issue_1/data_table.md

Although this method of calculating potential results in accurate results - these results are only accurate when the discretization is large enough. At that scale, (8k*8k = 64 Million elements per plate thickness per plate), calculating electric field for one position takes a very long time. Calculating the electric field 50 times to integrate over a path makes this method untenable.

It is possible to calculate potential directly right next to each plate and take the difference, since we are guaranteed in our model that the plates are finite. This would only require 2 iterations across all charge carrying elements (once for each position to calculate potential at.). This would be much faster and much more feasible.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.