Showing results for 
Search instead for 
Did you mean: 
Showing results for 
Search instead for 
Did you mean: 

Cockcroft-Walton Voltage Multiplier Equations


Cockcroft-Walton Voltage Multiplier Equations

Hello all,

What I am trying to do is evaluate two sets of equations describing the output voltage sag and the output voltage ripple found in the Cockcroft-Walton Voltage Multiplier.

See the table in the figure attached to get an Idea of what equations I am trying to compute.

I am trying to do so for a limited number of combinations between specific parameter values. For example, I want to test every possible combination for 3 values of frequency, 3 capcitance values and 3 stage values. Thus, 3*3*3=27 results for each respective equation.

The problems I am running into at the moment is that MATHCAD is complaining that n must be a scalar value in some of my equations, and how I am going to work with the summations found in the equations.

Also, am I defining the particular values I want to test correctly? (i.e. f = 100, 500, 1000)

How is this going to work for C, since it is also being used in the summation.

Also attached below is my current mathcad file.

Hopefully you guys understand what I am trying to achieve and can help me correct my mistakes.



As you are trying to vary four (not three, as you wrote) parameters you should excpect 81 different results for evrey of the 8 expressions deltaV you are trying to evaluate. So the output of every deltaV should/would be a 4-dimensional 3x3x3x3 array. Mathcad only support two dimensional arrays so you would have to resort to some tricks like putting an array as element in another array.

Which way do you like your results to be presented and stored? What are you expecting to see when you type deltaV14 = ?

In what way you want to use your 648 (better 486, as delta14=delta34 and delta 24=delta44) results?

The assignments you have chosen (x:=2,3,4) are not valid. You may chose to use a range variable (only possible with equally spaced values) or (which seemed to me to be what you need) a vector.

Or would it suffice to define the deltas as a function?


Is the attached worksheet is a step in the right direction?


EDITED: Sorry, I've just edited this post as the pics got replaced by filenames (broken links). Irrelevant anyway, I know, but I couldn't help 😉

I think its an error in this community system that my post shows up as new one blocking Alans recent post which answered the current question.

Does the attached help?


Inspired by Alan - all 81*8 values in a single table with "legend"


Thank you both very much for your help!

I am currently modifing AlanStevens attachment to suit my needs. (I changed which parameters I was going to vary slightly)

I'll return with another post if I run into trouble. If I don't, again, thank you both very much for all your help!


Hello all,

I am back and I am having some issues in trying to correctly further modify my mathcad program to get it to function the way I want.

First, please reference the table posted in the OP of this thread to see what equations I am referring to.

Please open up the attached Mathcad file.

Basically, I want to express the current I as a function of DELTAV. (I am reffering to uppercase DELTA here)

More specifically,

I = (2nVsmax - DELTAV)/RL

This is then subsituted into the respective DELTAV equations and they are solved for DELTAV.

This value of DELTAV is then used to compute I for the deltaV. (I am reffering to lowercase deltaV here)

I want this process to be done for every combination of n, f and Rl I have in the existing for loop, and the results put in a table.

Can someone show/help me modify my existing Mathcad code to incorporate this desired functionality?

Thanks again!

NOTE: In my current Mathcad program I have defined I as simply,

I = 2nVsmax/RL,

which is unacceptable.

See attached for an example (assuming I've interpreted your requirement correctly)


Hello Alan,

Thank you for the very helpful example!

I can follow what you did to solve it for a single case, but I can't seem to get it working within nested for loops so I can evaluate every single combination of parameters.

Could you help me with that?

Thanks again!

See attached. I've modified the DELTAVs, but left the delltaVs alone. If they should also be modified I'm sure you can figure out how.


Hello again Mr. Stevens,

Thank you very much for the desired modification.

I believe there was an algebra mistake in DELTAV33 which I corrected, and I have further modified deltaVs by using their associated DELTAV.

See attached for what I've updated it to.

Christian Jegues wrote:

I believe there was an algebra mistake in DELTAV33 ...

Yes. A case of more haste less speed on my part! Glad you are now sorted.