MATLAB Answers

Ano
0

how to export the impedance matrix from Feko into Matlab

Asked by Ano
on 7 Nov 2016
Latest activity Commented on by Ano
on 31 May 2019
Hello, I would like to export the impedance matrix from FEKO into matlab but Matlab says that the .mat file is corrupted, any help in this issue?! Thank you in advance

  5 Comments

Dear experts, I need to plot eigen value graph for characteristic modes with eigen value (339X1) and frequency (22X1) in the range of 1.35ghz to 1.5ghz. I have attached .mat file of eigen value(num.mat) and frequency(frequency.mat). Plz help.
Hello! in order to be able to plot that graph the eigenvalues matrix should be of size (339x22) which means that you get the eigenvalues for each frequency sample.

Sign in to comment.

3 Answers

Answer by Klearchos Samaras on 14 Mar 2017
Edited by Klearchos Samaras on 15 Mar 2017
 Accepted Answer

First of all, this *.mat file is not a typical *.mat file. It has a FORTRAN block structure. You can find some useful information here: http://www.feko.info/support/helpcenter/how-to/how-to-read-the-.mat-.lud-.rhs-files-and-.str-files .
I am a FEKO user too. Well, the mat2ascii.exe utility can be used via Command Prompt and the data can be stored in a *.txt file, however the generated file will only contain the rows, columns, real part and imaginary part of the impedance matrix FOR THE FIRST FREQUENCY OF THE SIMULATION. In other words, if you want to simulate at a frequency range (multiple frequencies) the generated *.mat file contains the data of every impedance matrix, however the mat2ascii.exe utility converts only the data of the first impedance matrix of the simulation to *.txt file. Maybe the *.mat file can be easily read in a FORTRAN environment but I don't know that. I have tried to use the f2matlab routine created by Prof. Ben Barrowes, but it failed. I am no expert in programming, though.
*IMPORTANT: There might be a mistake in the *.txt file generated by mat2ascii.exe. It contains some explanatory text in the beginning and then it contains 4 columns with the data of the first frequency impedance matrix. The first column has the numbers of rows, the second has the numbers of columns, the third has the elements of R matrix (real part) and the fourth has the numbers of X matrix (imaginary part). I believe that the third column should be labeled as imaginary and the fourth as real, because the very first element of the R matrix should always be a positive number (it belongs to the main diagonal and R is positive definite), but in my case it is negative.

  0 Comments

Sign in to comment.


Answer by Ano
on 2 Nov 2018

the process of exporting the impedance matrix from Feko into Matlab will be illustrated. To begin with, the antenna design is build and meshed in CADFEKO without specifying any feeding structure. Then, under the rubric solve/run the EDITFEKO option is activated. EDITFEKO is a script file where the meshed geometry is imported, and the solution configurations are established using the control cards. The foremost cards to be edited are EG card used to set the solution accuracy to double precision, and FR card that serves for setting the simulation frequency (single frequency option is used). After that the PS card is edited, and the option allowing to save the impedance matrix elements to *.mat file is chosen. No further settings are required for FEKO files, and the project is saved. All the remaining manipulations will be managed using Matlab environment. In the other side, in order to generate an impedance matrix for each frequency step, two scripts are used where the same project name is used as in FEKO. The role of each script will be illustrated for a project name ’metalplate’. MultiFrqFeko.m : this script generates the *.pre files for each single frequency step. The content of ’metalplate.pre’ is copied into a temporary file ’metalplate.tmp’, where the line containing ’#this frq =’ , is modified to get the numerical value of the corresponding frequency step. Then, a new file is created having the name of the project followed by the number of the corresponding frequency step (i.e. metalplate1.pre). Finally, the ’dos’ function is called to perform the execution of FEKO files from Matlab.an example of the command execution can be stated as dos(’prefeko metalplate1.pre’) dos(’runfeko metalplate1.pre’) getZFeko.m : this function is used to convert the obtained impedance matrices from mat extension of FEKO into ASCII format using the mat2ascii application, and following command line system(’mat2ascii metalplate1.mat > metalplateASCII1.txt’) application can be Now the resulting impedance matrices can be easily manipulated using Matlab.

  10 Comments

Hello!
Please find below my suggestions
1- you need to add feko to the path see this it may help
2- the structname = 'excitation' only without any extension.
Hope it helped!
Best regards!
Dear Mr.Ano,
Thanks for the suggestion. It worked and the feko file are executing. However there is an error (Error using reshape Size arguments must be real integers). as depicted in the figure. It outputs an ascii file that is empty. What can i do about this. kindly help me.Zmatrix.png
Hello!
Yes, I do remember Having this issue but I believe I solved just by checking all the concerned files. First, check the value of rowsM and start from there it wasn't that hard to solve as far as I remember.
Please post the solution so others and I included could prevent this issue if it happens.
good luck and best regards!

Sign in to comment.


Answer by Ano
on 21 Oct 2017

Thank you very much for your answer! I just wanted to tell that the real part is ill conditioned that is why you get negative values , you might solve this just by make the negative value = 0. Best regards!

  0 Comments

Sign in to comment.