[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Streamer modeling
Original poster: Terry Fritz <teslalist@xxxxxxxxxxxxxxxxxxxxxxx>
Hi Antonio,
At 11:15 AM 7/2/2005, you wrote:
Tesla list wrote:
Original poster: Terry Fritz <teslalist@xxxxxxxxxxxxxxxxxxxxxxx>
Hi Antonio,
At 08:14 PM 6/30/2005, you wrote:
....
It's simple to change the code to allow time-varying elements.
I just "tore the guts" out of scan Tesla to do it ;-)) But the resulting
code is much cleaner now ;-))
http://drsstc.com/~terrell/modeling/ScanTesla740.ZIP
NOT a well tested version!!!
There are two details that change in the simulation of a time-varying
network:
The capacitor charges C(t)v(t) shall be simulated, instead of the capacitor
voltages. Otherwise terms dC/dt appear in the equations.
(For inductors, it's simpler to simulate fluxes L(t)i(t), but in this
case the inductors are fixed.)
The updating equation uses information from the present time interval
(t+dt) and from the past time interval (t). Two sets of state equations
appear:
X(t+dt)=([I]-(dt/2)*[A(t+dt)])^(-1)
(X(t)+(dt/2)*[A(t)]*X(t)+(dt/2)*(B(t)*vin(t)+B(t+dt)*vin(t+dt)))
The code that I am testing is available at:
http://www.coe.ufrj.nr/~acmq/programs/DRSSTCTV.C
Cool!!! I am looking forward to seeing how this works!! I am not taking
charge conservations or any of those "details" into account. I am just try
to get it to sort of "look right" ;-))
If one enters a positive value for Cload increment (C3_inc) it works
normally. But if the value is negative, it simulates a streamer dynamic
load with C3_start as a "seed" value. The code will skip the time
wasting stuff when it can... It just skips redoing the A matrix stuff if
the C3 variable is not changing all the time. So the program works just
like before if C3 is not dynamic with the same fast speed...
My code also avoids recomputing the inverse at every step, just regenerating
it when something changes.
Hmmmm ;-)))
I found that it is hard to get the streamer load "started"!!!! If C3
starts out as zero, the load power is zero and it never starts.... I
fiddled with it and this is the best I could come up with at 12:30 am
tonight ;-))
My code is using a breakout voltage to start the streamer. Maybe some
combination of streamer power and breakout voltage is the correct
mechanism.
Apparently, it start as a corona until some ion jumps and a streamer
starts... In the beginning, it seems like a "corona" thing...
// Dynamic streamer model****************
LeaderLength = 2.4*sqrt(Eload*BPS);
if (C3_inc < 0)
{
if (LeaderLength <= 30.0) {C3 =
0.06666666667*LeaderLength*1e-12;} else {C3 = (0.15*LeaderLength-0.25)*1e-12;}
if (C3 < C3_start) C3 = C3_start;
}
// Dynamic streamer model****************
Note that in order to conserve charge, when a capacitor changes its
voltage must change too, to keep the same charge. The simulation of
charges instead of voltages takes care of this automatically. It seems
possible to simulate the voltages and just adjust the capacitor voltages
too when the capacitors change, keeping C*V constant. But two sets of
state equations must be used in the update relation at each change.
Yep! I probably have that messed all up ;-))
C2 should "really" never change... I try to mess only with C3... Maybe
make an arm waving "corona capacitance" and stuff ;-))
I am considering that the streamer capacitance is equally distributed
between the two halves of the streamer. So, I increase C2 and C3 by equal
amounts. Not exact, but I think that is a reasonable assumption.
Ok! Sounds good ;-))
Cheers,
Terry
Antonio Carlos M. de Queiroz