Re: a MoM question
Z_A is proportional to frequency, but Z_Phi is inversely proportional to frequency. Not suprisingly, just like the impedance due to an inductor and a capacitor. At a certain frequency is Z_Phi is so much greater than Z_A, that numerically Z_Phi + Z_A = Z_Phi. Z_A is completely lost. Since we are solving a dynamic problem, both inductive and capacitive parts are important. However we have lost the inductive part and our impedance matrix becomes singular.
There are methods around this problem. Sonnet uses quad precision; you still have the fundamental problem, but the breakdown point is lowered by about seven decades. Ansoft Designer uses Loop/Tree, and I believe Momentum RF use Loop/Star.
Another way to look at low frequency breakdown is that MoM as Sonnet uses it places one amp on a patch and calculates the voltage induced on another patch. That value then goes in the matrix. Sonnet starts to experience the low frequency break down at, for example, when the cell size is 1 micron and the frequency is 10 MHz.
To see why this is a problem, imagine a dipole antenna one micron long. Now try to force a peak antenna current of one amp at 10 MHz (wavelength = 30 meters). You need a really really really big voltage to do that. It is that voltage that does into the diagonal of the MoM matrix. This is what causes the problem.
To see if you have the problem, just plot the current distribution. The current distribution is very sensitive to error. You will see the problem in the current distribution long before you see it in the S-parameters. When the low frequency breakdown occurs, the current distribution starts to look splotchy, like it is sick.
We do not have any specialized low frequency code, because the failure in Sonnet is so low in frequency (due to the fact we fill the matrix to full precision), that it is simply not worth the time to do such a code. A low frequency code also has the disadvantage that you have to run the problem twice over a broad band to be sure what is "low frequency" and what is not.
The same explanation is also given in some published papers. Yes, "Z_Phi" could be much bigger than "Z_A". So what? there has to be a breakdown? or the MoM matrix has to become ill-conditioned because some small number has been "rounded off"? Why couldn't it converge to a static solution?
Which static solution? Magnetostatic or electrostatic?
The EFIE is solving for both electric and magnetic domains. The magnetic information, Z_A, is lost, yet we are still trying to solve for it. In matrix speak, the number of unknowns is that of both electric and magnetic problems while the number of independent equations has been reduced to that of the electric problem only. Hence the matrix becomes singular.
well, does the validity of the integral equation for the E-field depend on the frequency? If we are solving an independent set of equations for E-field, why should the degree of freedom (number of unknowns) be "that of both electric and magnetic problems"? EFIE is IE for E-field, what do you mean by solving for both electric and magnetic domains?
Magnetostatic and electrostatic problems are both static problem. A static solution can include both E-field and H-field. Magnetostatic doesn't have to be contradict with electrocstatic. There is no contradiction here preventing the convergence to a static solution--unique solution--as the frequency goes to zero.
Dear MoM professionals,
I'm currently working to have "Theory of Characteristic Modes" running. Few papers on that are attached,
it's also described a little in Harrington's book "Field Computations by MoM".
The theory is based on decomposition of the complex Z=R+jX MoM matrix into it's eigenvalues and eigenvectors - by using the weighted eigenvalue equation:
[X] I_n = Lambda_n [R] I_n
I'm using well known Makarov's RWG MoM code and obtaining Z matrix (at desired frequency f) using the function Z=rwg3(f).
Then in Matlab for every frequency the decomposition is done as follows (hope I'm doing it right):
[eigvectors,eignumbers]=eig(imag(Z),real(Z),'qz');
And here comes the problems, the eigenvalues are often infinite, I think because cond(real(Z)) is of value like 10^15. I'm not able to get results as in the papers.
I read some papers from Mittra on condition number and resonance, that cond has strong peaks there, however, I'm now confused how to make the Theory of Char. modes working (and what's wrong in my approach )....
BTW, it's OK that imag(Z) is predominant, real(Z) components are often much smaller than imag(Z)?
I'd highly appreciate any help on this, I've spent a lot of time on that..
Thanks in advance,
eirp
hi eirp,
Sorry for my late reply. I had to submit a project report. Anyway, I would suggest the following for the calculation of the eigenvalues: First check whether [R] is singular or not. If it is not, then apply the "eig" function to [X]invers([R]). If the components of one of the matrix are much larger than the other than you may multiply that matrix with some number so that the components become comparable. Then after you get the final eigenvalues you may just divide them. Assuming that your Z matrix is correct, would you please provide the .mat file for your matrix, so that we can play on it
Hello, Irfan
Thanks for your interest! :)
I'm quite sure that the matrix is OK. Studying the papers, I've got strong notion that the problem lies in real(Z) which should be positive semidefinite (see 011399990.pdf, pp.630 III. Evaluation of modes).
In fact, it's not, if you perform d=eig(real(Z)), some eigenvalues are <0. R isn't singular, but is close to singular (as Matlab says)
I guess they are doing some tricks in this paper to "cure" the matrix and to transfer the weighted eig. equation to unweighted one.
The second paper tries to use some other alg., which is quite unclear for me, but seems working, see results at the end of paper..
Please correct me, if I'm wrong...
I also attached Z.zip, which contains two complex Z matrices for rectangular plate 1x1m at frequencies 150 and 200MHz
Thanks
eirp
hmmm, Are the correct values for these two matrices provided anywhere, so that we can compare the results?
Hi Eirp,
Is the plate problem considered in one of these papers? If not, I would try out an example from their papers first. I am thinking that the property (eigenvalue etc) of the Z-matrix is problem dependent. I've read some papers on characteristic modes before but failed to understand why it should work. But I feel that the sphere might be "nicer" than the plate in terms of the "existence of characteristic modes", if any.
The separation of real and imaginary part seems strange to me. Do you have any explanation?
I am very interested in the reason you are studying this method.
Hello and thanks for your comments, friends!
1) I can't prove my approach until the matrix [R] will be "healthy" for the theory, i.e. positive semidefinite (with all eigenvalues >=0) - as written in part III of Harrington's paper 011399990.pdf (in previous post), where the eigenvalues <0 are caused by numerical inaccuracies of MoM method :(
Testing with sphere is a very good point, as we know spherical modes analytically!
2) I'm quite sure that my [Z] matrices are O.K, Makarov's code is working well with clasiccal MoM postprocessing step like [Z][J]=[E] (1), where E is driving vector (like voltage gap feeding the dipole).
BTW, by having eq. (1) we are missing information of the modes, because the whole MoM solution is superposition of "the characteristic modes".
I've choosed plate just because it's a simple geometry with considerable numbers of mesh nodes and the process in not so time consuming. I've also tested dipole, but the results were wrong too.
3) The separation of Z into R and X is described in another Harrington's paper attached here (it has the same name as the paper in my previous post, but they're different).
The generalized eigenvalue problem is a very common, for example if you solve structural mechanics problem with FEM (like resonant frequencies of a bridge), you finally get the equation:
[L] U_n = Lambda_n [M] U_n, where they call [L] stiffness matrix and [M] mass matrix; that's basically the same equation like in our theory!
4) Theory of char. modes has been developed in 70's and then forgotten (now being reborned by people from UPV).
My opinion why is because of boom of very sophisticated and powerfull EM packages (like IE3D, Sonnet, FEKO to name a few). This allows almost everybody to simulate a lot of structures with a little of physical knowledge. You can see plenty of papers "I've drawed patch antenna, cutted some slots and it has this and this behavior, bandwith etc.." But why it behaves so?
A lot of natural phenomenons have a resonant background (eigenmodes), but in result we see a behavior with feeding mechanism included (like bridge feeded by wind). People usually do not think of decomposing of the brigde movement to basic vibration states, it just vibrates (in antenna words vibration states are basic current flows like dipole resonances)
Theory of char. modes is something like an extension to well known cavity model, where we solve Helmholtz equation for eigenmodes. But cavity model solves only for one field component and neglects internal coupling (having patch lying in XY plane, we consider only Ez component). Char. modes comes from full-wave MoM, where internal coupling is naturally included. We have also access to eigenvalues behavior with frequency (note that Z=Z(f) and of course Z is problem dependent) which is related to mode bandwith.
You can see a lot of examples in attached presentations from UPV (Part 1 is theory, Part 3 some nice applications - I like the circularly polarized patch at slides 16+).
My interest are compact planar antennas, that's why I'm interested in this theory (Very often cavity model fails there or is highly inacurrate mainly because of ommiting the internal coupling).
I hope that my reasons are sufficient :)
PS: I don't know why this theory isn't included in current MoM packages, I think FEKO, IE3D, Sonnet, Supernec etc. are good candidates :) Main programming effort on MoM is to create the Z matrix so I guess the rest would not be major problem for the developers...
Thanks for your time!
Cheers,
eirp
Hi Eirp,
Thanks for all the info. Did you intend to upload Part_2_UPV in the above post?
With Makarov's code, do you mean the codes in the book "Antenna and EM modeling with Matlab"? Did you check that the matrix is symmetric? I thought (at least some of) the codes in that book might not produce a symmetric matrix.
I saw that the plate was considered in the above UPV slides you post. So the theory of characteristic modes might apply to this problem. However, the only evident is their numerical result. It is interesting to find out if their result can be readily reproduced. I note that in once of the slides, they mentioned the generalized eigenvalue could be zero, positive, negative. So obviously, they didn't think that the real or imaginary part of the matrix has to be semi-positive-definite.
I still don't quite understand the theory. Why the characteristic current is real? It seems to me this is only the effect of the mathematical operation they applied (notably the separation into real and imaginary part). They didn't mention the physical reasoning in doing so. The mathematics itself doesn't imply that there should be a finite number of (important) characteristic modes (that are independent of the excitation). I feel that a radiation should be produced by current with both real and imaginary parts.
This topic that you are studying is very interesting. I appreciate your thoughts.
Hello, Loucy,
Part2 uploaded (sorry, forgot it)..
Yes, I mean "Antenna and EM modeling with Matlab" codes as they are very powerful (importing meshes from FEMLAB) and easy to use in terms that you slightly modify the scripts and obtain Z matrix of meshed structure at desired fq. as Z=rwg3(f).
Your point about matrix symmetry is very helpful, I have tested it and the produced Z matrix isnt absolutely symmetric (Z ≠ Ztransposed) but the difference isnt so big (I dont know how to "evaluate" this difference, Ive tried to calculate the Frobenius norm (Z-Ztranspose), it was around 1.5 for certain matrix). Also when I look at Z and Ztranspose, they "by eye" differ only a little.
I think this could be problem because I have tried very simple MoM applied to wire dipole. Z was symmetric (Frobenius norm = 0) and voila, the theory of char. modes was working like charm!
So... do you please know more about Makarov codes, why they dont produce symmetric matrix (and if some of them does produce symmetric matrix)? That seems to be very important for my further progress and I think it is the key-problem now! I thought that Makarov is using Galerkin method (base functions are the same as testing functions) thus the resulting Z matrix should be symmetric!?!?
But generalized eigenvalues are eigenvalues of generalized eigenequation and not eigenvalues of R... I think the relation between eigenvalues of R and of XR isnt so obvious..
Another observation with the simple-wire-MoM mentioned above: matrix R isnt positive semidefinite as well (lets say half of the eigenvalues were positive, the rest was negative in order e-13).
So to sum up my problems, I guess problem is in Z symmetry...
About the complex/real currents. I think that complex currents appears once the excitation is applied as they are sum of eigencurrents, see eq. (30) in 01139999.pdf from my previous post.
Generally, there is infinite number of modes, total radiation is superposition of farfields of infinite number of modes. But, in practice, summing only few modes (up to 10) is sufficient to describe the behavior with feeder included (Vn in eq. (30) describes excitation).
Mathematically, number of modes is given by the size of Z matrix. If Z matrix is 50x50, there will be 50 eigenevalues and thus 50 modes calculated. Thus, number of modes depends on discretization of the structure - that is obvious, with finer meshing you will see more details in structure and thus you can describe more current shapes (modes).
I am now looking how to obtain Garbacz PhD from 1968 "A generalized expansion for radiated and scattered fields", where this theory was developed...
Kind regards,
eirp
Latest progress:
I'm 99% sure that problem is in [Z] matrix symmetry. I've modified [Z] matrix to be symmetric using a little stupid trick - by mirroring the lower matrix triangle part over the diagonal..
Now the results are much better (few lowest eigenvalues behave quite OK with frequency) but not yet sufficient still - I think it's because mirroring process introducted some more numerical errors.
I'd appreciate any thoughts on forcing the Makarov's code to produce symmetric [Z] matrices...
Thanks in advance,
eirp
One common way to get a symmetric matrix is to use the average value, i.e. Zij_new=(Zij_old+Zji_old)/2. Many codes use 1-point integration rule to compute the testing integral and 7-point rule to compute the source integral. (the matrix element is a 4-dimensional integration over the source and testing triangle.) The matrix is therefore not symmetric.
Hi,
matrix averaging is clever idea. Unfortunately, the results (eigenvalue behavior with frequency) are better for particular cases only and for few first eigenvalues only. In general, this approach is not the right way
The theory seems to be very sensitive to matrix symmetry..
Well, I think all methods related to playing with partially unsymmetric [Z] matrix (averaging and mirroring) were beaten out and the correct solution would be to work with actual MoM code...
Loucy, thanks again for your very valuable comments!
I finally made the theory working! :D
Hi, I realize this post is over 2 years old, but if you are still around do you mind sharing how you solved the problem? I am encountering similar problems and have tried averaging values as you mentioned previously.