-
|
Hi all, |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments 3 replies
-
|
Unfortunately the hyp2mat extension only exists in Octave/Matlab and even this one is abandoned. But lots of add-ons, extensions and tools around openEMS have evolved over time (I have no overview anymore). |
Beta Was this translation helpful? Give feedback.
-
|
First, I believe it should still be (at least theoretically) possible to use hyp2mat. Although it cannot generate Python files, but it can generate a CSXCAD XML file, which is the 3D model used by openEMS. The generated CSXCAD model can then be manually imported to Python via Then your problem would be creating a manual mesh, ports and probes, and then simulation can be started. Meshing is the most difficult part of any openEMS simulation, it can be tricky to get right, especially for beginners (I have worked on its engine code for a potential code contribution, but even I can't say I've mastered meshing). When drawing the PCB model, make sure you use an integer grid so make meshing easier. In addition, I'm aware of three other high-level tools that can interacts with openEMS, all are at rudimentary stages:
The first tool can parse KiCad files and generate CSXCAD models, and even includes an automeshing algorithm. But it doesn't have explicit Python support. Although I guess you can always manually run the program and import the generated CSXCAD XML files into Python (the same can be said for hyp2mat). The next two tools attempt to add high-level object creation based on openEMS, and they can export KiCad models, but unfortunately, not importing them. I have some personal experience on pyEMS, and my impression is that it provides a clean high-level API and has the potential to be a solution in the future (currently features are lacking in all of these tools). So for openEMS, writing some code to programmatically generate the antenna pattern is so far the preferred choice. But some antenna geometry can be quite complicated. So importing CSXCAD models from hyp2mat or pcbmodelgen would be a candidate, good luck. I'd like to add that tools for board-level simulation is, unfortunately, currently lacking in openEMS, so I don't recommend importing the entire PCB into openEMS for simulation from the start. Instead, one should treat openEMS like a virtual research lab. You don't do experiments directly on the whole PCB, but instead, you identify problems of interests and design small and specific "test fixtures" to investigate issues in a piecewise manner. This problem is not too relevant to your planar antenna simulation, but can be very relevant to signal-integrity simulations (another piece of advice for signal-integrity simulation while we're at it: don't waste time on custom signal excitation, in particular, Heaviside or Dirac pulses are far from ideal in FDTD simulations due to numerical problems. If you want to see the time-domain response of a particular signal, use a standard wideband Gassuian excitation for simulation to calculate S-parameters, which can then be analyzed in time domain with RF circuit simulators like Qucs, scikit-rf, or even ADS). |
Beta Was this translation helpful? Give feedback.
-
|
I would like to share my approach here for simulating PCB transmission lines and antennas in openEMS with the help of Blender. For example, I was able to simulate a 60GHz mmWave reference design from Texas Instruments (TIDEP-01001).
This may seem like a long work flow of exports and imports, however once you get going it becomes manageable. And here is an animation of the result https://www.youtube.com/watch?v=wOR2y7VvlSk Alternatively, you can use the FreeCAD-OpenEMS-Export script https://github.com/LubomirJagos/FreeCAD-OpenEMS-Export |
Beta Was this translation helpful? Give feedback.
-
|
It was already mention above, but if your pcb geometry is more complicated than just simple shapes and your design is already done in some PCB editor, you can use this workflow: This workflow has advantages that it's possible to correctly use also vias, and almost whole PCB modeling functions, I recommend use fcad_pcb not StepUp plugin, this import all shapes as solids not shells and they will be then handled by openEMS correctly. |
Beta Was this translation helpful? Give feedback.
First, I believe it should still be (at least theoretically) possible to use hyp2mat. Although it cannot generate Python files, but it can generate a CSXCAD XML file, which is the 3D model used by openEMS. The generated CSXCAD model can then be manually imported to Python via
CSXCAD.ReadFromXML().Then your problem would be creating a manual mesh, ports and probes, and then simulation can be started. Meshing is the most difficult part of any openEMS simulation, it can be tricky to get right, especially for beginners (I have worked on its engine code for a potential code contribution, but even I can't say I've mastered meshing). When drawing the PCB model, make sure you use an integer grid…