I am trying to write a program that implements the Foster - Cauer conversion algorithm described in summarily in page 19 of System-Level Thermal Simulation - nxp.com and thoroughly in appendix 2 of Aliyu, Attahir Murtala PhD thesis (that also includes an implementation in MATLAB) , but I cannot find how to program the manipulations they describe using MathCAD, especially the "polynomial long division" to obtain "quotient + remainder".
Anyone willing to help?
Note that I am using MathCAD 15
Solved! Go to Solution.
I don't have v15, but I have a reasonable guess. If you look at the beginning of the Z2RCladder area, I define a function Stack, which accepts NaN (not a number). This acts as a NULL number. V11 allows for it; I don't know if v15 does or not. In any case, the object of Stack is to allow use of cases such as Stack(NaN, vec), which simply returns vec, the non-NaN argument. The built-in function stack in v11 gives an error in this case; it requires both arguments to be arrays of appropriate dimensions. I don't know if this hold true in v15.
This behavior is useful when iterating calculations through a number of values, and want to append the result of the most recent cal to the existing array. By setting the initial value to NaN, the the initial calc (with no preceding calc values to append to) does not need to be treated/programmed as a special case.
If you can find an alternate way to implement Stack, then simply replace my original definition. The revised file attached goes another route.I implemented a second version of the Z2RCladder function, in which I initialize the RC array to (0 0) instead of NaN. This results in an extraneous first row in the output array, which is removed before returning the RC values.
the following two photos illustrate the algorithm of the synthetic division and an example (you have only to change z with s):
Thanks for your reply but this is not exactly what I am looking for. It is not as simple as replacing z with s.
To find the Cauer parameters the quotient of each iteration gives the value of one component and the remainder is used for the next iteration.
I attached a MathCAD file that implements the example A2.3 of Aliyu, Attahir Murtala PhD thesis .
This example is for a second order Cauer network with two capacitors and two resistors. It can easily be expanded to higher order but the problem is that I need to do this calculation for several thousands of networks then I need to convert this into a MathCAD program that I can call each time I need to find the Cauer parameters of a network.
So you have this:
Which means that, for a 2 and a 5-stage network you get, respectively:
Then with Mathcad 11 you can:
With this you have to divide the numerator out in every division, to get the numerators to 1.
Unfortunately Mathcad 11 will not give the full symbolic solution for a 5-stage network (it does 3, tries 4 but takes an awefull lot of time), but:
If the numbers are known, a solution is found.
As said, this works in Mathcad 11, I don't think it will work in mathcad 15, nor in any existing version of Prime.
This probably is the way it can be solved:
Wherein the construct:
Means 'the result of the 1st derivative of f to its argument, at the point where the argument is 0'.
I hope this gets you a step further.
P.S. Mathcad 11 actually does the 4-stage fully symbolically, but the result is uncomfortably big.
In Laplace domain, the network looks like this in MathCAD 15:
You can see by looking at the left side, that the technique of "quotient + remainder" is probably the easiest way to retrieve the values of the Cauer network.
But doing the symbolic manipulation in a MathCAd routine, that I didn't find how to do it.
I'm getting close, but not completely there:
For the example of the Thesis this gives:
Which is correct (please check!).
There's an 8-section example in the NXP presentation that goes completely off.
There's one remark to make already: since I'm using multiple symbolic assignments in one program, chances are that this will not work in any other than Mathcad 11.
But it may be possible to find a similar approach that does work in Mathcad 15.
It looks like this is why I cannot do it.
I need to male multiple symbolic assignments in my program and it is not possible in MathCAD 15!
I just called PTC support and they said that it is not possible to download MathCAD 11.
Is there an other way to get it?
I will try to call PTC support to see if they can find a way to do that in version 15.
Thank you very much anyway, I would not have found why I can not do it without your help.