EMIT: antenna#

This example shows how you can use PyAEDT to create a project in EMIT for the simulation of an antenna.

Perform required inputs#

Perform required imports.

sphinx_gallery_thumbnail_path = “Resources/emit_simple_cosite.png”

import pyaedt
import pyaedt.emit_core.EmitConstants as econsts

Set non-graphical mode#

Set non-graphical mode. "PYAEDT_NON_GRAPHICAL" is needed to generate documentation only. You can set non_graphical either to True or False. The NewThread Boolean variable defines whether to create a new instance of AEDT or try to connect to existing instance of it if one is available.

non_graphical = False
NewThread = True
desktop_version = "2023.1"

Launch AEDT with EMIT#

Launch AEDT with EMIT. The Desktop class initializes AEDT and starts it on the specified version and in the specified graphical mode.

d = pyaedt.launch_desktop(desktop_version, non_graphical, NewThread)
aedtapp = pyaedt.Emit(pyaedt.generate_unique_project_name())

Create and connect EMIT components#

Create three radios and connect an antenna to each one.

rad1 = aedtapp.modeler.components.create_component("New Radio")
ant1 = aedtapp.modeler.components.create_component("Antenna")
if rad1 and ant1:

# Convenience method to create a radio and antenna connected together
rad2, ant2 = aedtapp.modeler.components.create_radio_antenna("GPS Receiver")
rad3, ant3 = aedtapp.modeler.components.create_radio_antenna("Bluetooth Low Energy (LE)", "Bluetooth")

Define coupling among RF systems#

Define the coupling among the RF systems. This portion of the EMIT API is not yet implemented.

Run EMIT simulation#

Run the EMIT simulation.

This part of the example requires Ansys AEDT 2023 R2.

if desktop_version > "2023.1":
    rev = aedtapp.results.analyze()
    modeRx = econsts.tx_rx_mode().rx
    modeTx = econsts.tx_rx_mode().tx
    modeEmi = econsts.result_type().emi
    rx_bands = rev.get_band_names(rad2.name, modeRx)
    tx_bands = rev.get_band_names(rad3.name, modeTx)
    domain = aedtapp.results.interaction_domain()
    domain.set_receiver(rad2.name, rx_bands[0], -1)
    interaction = rev.run(domain)
    worst = interaction.get_worst_instance(modeEmi)
    if worst.has_valid_values():
        emi = worst.get_value(modeEmi)
        print("Worst case interference is: {} dB".format(emi))

Save project and close AEDT#

After the simulation completes, you can close AEDT or release it using the pyaedt.Desktop.force_close_desktop() method. All methods provide for saving the project before closing.

aedtapp.release_desktop(close_projects=True, close_desktop=True)

Total running time of the script: ( 0 minutes 41.465 seconds)

Gallery generated by Sphinx-Gallery