Passive S-parameters from Active for Two-Element Array?

Altair Forum User
Altair Forum User
Altair Employee
edited May 2021 in Community Q&A

I’m trying to model a two-element dipole array that can be steered in azimuth arbitrarily, and I want to compute realized gain.  To do that, I run two FEKO simulations, one with in-phase excitations, [V1 V2] = [1 1], and one with 180-degree out-of-phase excitations, [V1 V2] = [1 -1].  From FEKO I export far fields and S-parameters, then process in Matlab.  I’m assuming that the S-parameters that Feko calculates are active S-parameters since Feko computes only one value for each port.  Is this a correct assumption?  Assuming it is, I calculate the passive S-parameters from the four active S parameters (S1 and S2 for both [1 1] and [1 -1] excitations).  I then use these to calculate active S-parameters for arbitrary element phase, and use the calculated active S-parameters to calculate the reflection loss needed to compute the realized gain for the array.  Unfortunately, my calculated results don’t agree with those from Feko.  That is, if I steer the beam 45 degrees in Feko and in my Matlab code, the active S-parameters don’t agree.  Have I made an incorrect assumption about how Feko operates or is there a flaw in my logic?

Tagged:

Answers

  • JIF
    JIF
    Altair Employee
    edited June 2017

    Hello DaveC,

     

    I’m assuming that the S-parameters that Feko calculates are active S-parameters since Feko computes only one value for each port. 

    If you are looking at the reflection coefficient at each port in a standard configuration, then you will get the active reflection coefficient. I don't want to refer to it as S-parameters even if S11 for a one port system is the same as the reflection coefficient. For multiple ports, the definition of S-parameters is that one port is active and all the others are loaded by the port (or system) impedance. You are thus probably calculating the two active reflection coefficients at each of the ports for the two source configurations.

     

    Unfortunately, my calculated results don’t agree with those from Feko.

    Have your Matlab calculations been verified or is that a potential source of the problem?

     

    What you are trying to do is similar to one of the scripts that we have available (the multiport post-processing script in the Script Exchange on Altair Connect), but the script does not currently allow you to have all ports excited and none loaded. I have been asked to extend it and I probably will do so in the next month or so, but I have not had time to do it. If that feature had been available, you could have used the script to do exactly what you are trying to do.

     

    How does the script work? I create a single model with all the ports loaded exactly the same (system or port impedance). For each configuration there is only one source and the source moves from one port to the next between configurations. For your dipole model, you will have two configurations since you have a two port system. Each configuration also calculates all the requests, such as the far field requests, that needs to be processed. Using the results from the configurations, it is possible to

    a ) Calculate the S-parameters (S11, S21, S21, S22 in your case)

    b ) Calculate the the active port impedances (or reflection coefficients) for an arbitrary excitation / load combination (as I said, the script currently requires each port to be either excited or loaded and at least one port needs to be loaded and that is the restriction that I need to remove).

    c ) Calculate the resulting near or far fields for an arbitrary excitation / load combination.

     

    Have I made an incorrect assumption about how Feko operates or is there a flaw in my logic?

    This is rather difficult for me to answer since I don't know what you did or how you did your calculations. I have explained how it can be done and how I have done it for the script. Note that there is a small section of the script source that is not visible to users since we consider it proprietary, but it is not to difficult to figure out what it does (it is simple matrix manipulation).

     

    My suggestion is that you test your code step by step. Calculate the S-parameters in Matlab and compare the answers to S-parameters (two port S-parameter configuration) calculated in FEKO directly. Then move on to the next step and confirm that it is calculated correctly. As I said, I will probably be extending the script to do exactly what you need in the next few weeks anyway, but you probably won't be able to wait.

     

    Best of luck with your calculations!

     

    You should also consider using Lua directly in POSTFEKO or maybe using Compose instead of Matlab.

  • Marat Taram
    Marat Taram Altair Community Member
    edited April 2021
    JIF said:

    Hello DaveC,

     

    I’m assuming that the S-parameters that Feko calculates are active S-parameters since Feko computes only one value for each port. 

    If you are looking at the reflection coefficient at each port in a standard configuration, then you will get the active reflection coefficient. I don't want to refer to it as S-parameters even if S11 for a one port system is the same as the reflection coefficient. For multiple ports, the definition of S-parameters is that one port is active and all the others are loaded by the port (or system) impedance. You are thus probably calculating the two active reflection coefficients at each of the ports for the two source configurations.

     

    Unfortunately, my calculated results don’t agree with those from Feko.

    Have your Matlab calculations been verified or is that a potential source of the problem?

     

    What you are trying to do is similar to one of the scripts that we have available (the multiport post-processing script in the Script Exchange on Altair Connect), but the script does not currently allow you to have all ports excited and none loaded. I have been asked to extend it and I probably will do so in the next month or so, but I have not had time to do it. If that feature had been available, you could have used the script to do exactly what you are trying to do.

     

    How does the script work? I create a single model with all the ports loaded exactly the same (system or port impedance). For each configuration there is only one source and the source moves from one port to the next between configurations. For your dipole model, you will have two configurations since you have a two port system. Each configuration also calculates all the requests, such as the far field requests, that needs to be processed. Using the results from the configurations, it is possible to

    a ) Calculate the S-parameters (S11, S21, S21, S22 in your case)

    b ) Calculate the the active port impedances (or reflection coefficients) for an arbitrary excitation / load combination (as I said, the script currently requires each port to be either excited or loaded and at least one port needs to be loaded and that is the restriction that I need to remove).

    c ) Calculate the resulting near or far fields for an arbitrary excitation / load combination.

     

    Have I made an incorrect assumption about how Feko operates or is there a flaw in my logic?

    This is rather difficult for me to answer since I don't know what you did or how you did your calculations. I have explained how it can be done and how I have done it for the script. Note that there is a small section of the script source that is not visible to users since we consider it proprietary, but it is not to difficult to figure out what it does (it is simple matrix manipulation).

     

    My suggestion is that you test your code step by step. Calculate the S-parameters in Matlab and compare the answers to S-parameters (two port S-parameter configuration) calculated in FEKO directly. Then move on to the next step and confirm that it is calculated correctly. As I said, I will probably be extending the script to do exactly what you need in the next few weeks anyway, but you probably won't be able to wait.

     

    Best of luck with your calculations!

     

    You should also consider using Lua directly in POSTFEKO or maybe using Compose instead of Matlab.

    __Hello Jif. I decided to check your word's: "If you are looking at the reflection coefficient at each port in a standard configuration, then you will get the active reflection coefficient. ".

    __Let's consider exhample with 2 dipoles:

     image

    __Second dipole has Phase_U voltage phase shift with respect to 1 dipole. We will now compare active reflection coefficient, calculated with 2 methods:

    1) automatically calculated by FEKO in a standard configuration;

    2) calculated using formula Sact=S11+S12*exp(i*Phase_U).

    We will consider 2 cases

    a) Phase_U =0 deg,

    b) Phase_U =90 deg.

    __Every hidden phase curve is mutiplied by pi/180 (to get radian's).

    Case a: 

    image

    as we see results agree.

    Case b: 

    image

    __Result's does not agree here!!! 

    __As you see, i don't get active reflection coefficient using standard configuration. May be i don't understand something and made an error. Waiting for your comment's.  

  • Mel
    Mel Altair Community Member
    edited April 2021

    S-parameters, by their definition, require all ports to be loaded by the characteristic impedance and one port to be active at a time, while all other ports are passive (sink ports).

    Feko will not allow you to set/change the phasing of the ports, provided you have only requested an S-parameterConfiguration in CADFEKO. In the image below, a Touchstone file of the full 2 port S-parameter matrix will be generated. Unchecking e.g. Port2 will generate only S11 and S21.

    Possibly you also had a StandardConfiguration in your CADFEKO model where the voltage sources and their phasing can be adjusted which might be the reason for the discrepancy? Nevertheless, the S-parameters generated by the SparameterConfiguration will be as explained above and far field calculations are not allowed/calculated inside of a SparameterCalculation.

    image

     

  • Marat Taram
    Marat Taram Altair Community Member
    edited April 2021
    mel_21333 said:

    S-parameters, by their definition, require all ports to be loaded by the characteristic impedance and one port to be active at a time, while all other ports are passive (sink ports).

    Feko will not allow you to set/change the phasing of the ports, provided you have only requested an S-parameterConfiguration in CADFEKO. In the image below, a Touchstone file of the full 2 port S-parameter matrix will be generated. Unchecking e.g. Port2 will generate only S11 and S21.

    Possibly you also had a StandardConfiguration in your CADFEKO model where the voltage sources and their phasing can be adjusted which might be the reason for the discrepancy? Nevertheless, the S-parameters generated by the SparameterConfiguration will be as explained above and far field calculations are not allowed/calculated inside of a SparameterCalculation.

    image

     

    "Feko will not allow you to set/change the phasing of the ports, provided you have only requested an S-parameterConfiguration in CADFEKO. In the image below"

    __That's why i calculated active reflection coefficient R_act using formula manually

    __________________Sact=S11+S12*exp(i*Phase_U).!!!!                         (1)

    Feko allows me to do it. You can see all formulas i used on screenshots of my previous reply.

    This is second way to calculate active reflection coefficient.

    "Possibly you also had a StandardConfiguration in your CADFEKO model where the voltage sources and their phasing can be adjusted which might be the reason for the discrepancy?"

    Yes, of course, i have standard configuration too. I want to get active reflection coefficient with another way and to compare result's. I have second generator with phasing Phase_U relative to the first generator. Result's must be the same as for formula (1). Agreement ok for Phase_U=0 (case a), but fail for Phase_U=90 (case b).

    And wanted to compare 2 methods of calculation of R_act.

    That's the point!

    P.S.: interested forum member can also study my attached FEKO files.

     

  • Mel
    Mel Altair Community Member
    edited April 2021

    I somehow did not see JIF's (more comprehensive) reply, apologies for being brief.

    He mentioned the multiport script and extending this. The latest version allows you to have all ports excited and none loaded.

    The script is part of the Feko installation and is described in section 9.4.3, "Multiport Post-processing"

    In CADFEKO run:

    image

    And in POSTFEKO run:

    image

  • Marat Taram
    Marat Taram Altair Community Member
    edited April 2021
    mel_21333 said:

    I somehow did not see JIF's (more comprehensive) reply, apologies for being brief.

    He mentioned the multiport script and extending this. The latest version allows you to have all ports excited and none loaded.

    The script is part of the Feko installation and is described in section 9.4.3, "Multiport Post-processing"

    In CADFEKO run:

    image

    And in POSTFEKO run:

    image

    __But can you tell me (or may be someone else), where is the error in my logical chain and in my comparison of two models. I think i was correct and my results should be the same for both cases (not only for case a).

    Of course , i should study this script too in future. But for simple cases i think we can doo with out it.

    BTW: where is JIF? Is he still here, on this forum?

  • Marat Taram
    Marat Taram Altair Community Member
    edited May 2021
    mel_21333 said:

    I somehow did not see JIF's (more comprehensive) reply, apologies for being brief.

    He mentioned the multiport script and extending this. The latest version allows you to have all ports excited and none loaded.

    The script is part of the Feko installation and is described in section 9.4.3, "Multiport Post-processing"

    In CADFEKO run:

    image

    And in POSTFEKO run:

    image

    __Hi dear FEKO staff. I decided to simulate one more case c

    c) Phase_U =180 deg.

    __In this case i again compare results calculated automaticaly by FEKO in Standard configuration and calculated manually. But i also add here results from model with infinite ground plane and 1 dipole (i can place this plane between 2 identical dipoles with 180 deg phase shift). Results must be the same.

    image

    __As we see, results agree.

    __So the problem only with 90 deg phase shift (case b). To understand where is the problem: in automatically calculation of active S11 in standard configuration, or in my manual calculation, i decided to simulate case b using another software (FEM simulator).

    image

    __As you see for case b  results, obtained using FEM, closer to active S11 calculated manually.

    __I really hope FEKO developers will pay attention to this issue.