I have been working on a simulation for the last couple of days. I was able to get it up and running by learning from the Wiki, examples and tutorials in GitHub, but I have problems with lumped components.
To give some context, I'm simulating a simple three resistor splitter/combiner in a 2-layer PCB, for a range frequency from "DC" to 10 GHz. All the resistors are 50 Ohm. My geometry looks like this:
Which is a simplified version of the original design:
I decided to remove the vias and top copper fills to simplify the geometry in order to get a first working approximation. My plan is to add this details back once I have everything figured out. The original design comes from KiCad, where I made the simplifications and the exported an Hyper-lynx file. Many parts of my script are based on the original PCB import tutorial from the wiki: Tutorial: Importing with hyp2mat
In my Octave script, I declare three lumped components R1, R2 and R3 and I assign box primitives to them on the appropriate positions over the PCB. The main problem I'm facing is that adding or removing the resistors seems to have no effect on the simulation results.
For reference, this is are my simulation outputs with AND without the resistors. Pay special attention to the voltage at the output ports in Figure 3 (blue and green signals):
if I replace R1 and R3 by "Metal" through the command AddMetal, then I get the following results, which I think they are closer to a valid result, since at least I can see some voltages on the output ports in figure 3:
I would like to know if I'm correctly using the lumped elements. I have also tried to do the following, without success:
Align the resistors to 90ª angles and change their size so that they perfectly align to the mesh.
Changed the direction of AddLumpedElement to all possible orientations: x, y , z (the last one gives an error)
Other info:
The simulation takes around 3 min to run in my old i7-7700K. I uploaded a .zip file with the Octave script file and the hyperlynx file for simulation, just in case someone want's to try to test my simulation.
I added below an example output from running the above script, just for reference. It also includes my version of OpenEMS and related libraries.
Hello fellow OpenEMS users,
I have been working on a simulation for the last couple of days. I was able to get it up and running by learning from the Wiki, examples and tutorials in GitHub, but I have problems with lumped components.
To give some context, I'm simulating a simple three resistor splitter/combiner in a 2-layer PCB, for a range frequency from "DC" to 10 GHz. All the resistors are 50 Ohm. My geometry looks like this:
Which is a simplified version of the original design:
I decided to remove the vias and top copper fills to simplify the geometry in order to get a first working approximation. My plan is to add this details back once I have everything figured out. The original design comes from KiCad, where I made the simplifications and the exported an Hyper-lynx file. Many parts of my script are based on the original PCB import tutorial from the wiki: Tutorial: Importing with hyp2mat
In my Octave script, I declare three lumped components R1, R2 and R3 and I assign box primitives to them on the appropriate positions over the PCB. The main problem I'm facing is that adding or removing the resistors seems to have no effect on the simulation results.
For reference, this is are my simulation outputs with AND without the resistors. Pay special attention to the voltage at the output ports in Figure 3 (blue and green signals):
if I replace R1 and R3 by "Metal" through the command
AddMetal
, then I get the following results, which I think they are closer to a valid result, since at least I can see some voltages on the output ports in figure 3:Original script, with R1, R2 and R3 is as follows:
Summary:
I would like to know if I'm correctly using the lumped elements. I have also tried to do the following, without success:
AddLumpedElement
to all possible orientations: x, y , z (the last one gives an error)Other info:
The simulation takes around 3 min to run in my old i7-7700K. I uploaded a .zip file with the Octave script file and the hyperlynx file for simulation, just in case someone want's to try to test my simulation.
I added below an example output from running the above script, just for reference. It also includes my version of OpenEMS and related libraries.
Thanks a lot for your time reading my post.
I would gladly contribute this simulation as an example, and also write a tutorial once I have it running.
Greetings, 2nOrderEDO