Documentation Home Page HYPERSIM Home Page
Pour la documentation en FRANÇAIS, utilisez l'outil de traduction de votre navigateur Chrome, Edge ou Safari. Voir un exemple.

Radiolink bundle

The radiolink bundle emitter and receiver are a pair of components which work in a similar way to the Page Connectors bundles. However, radiolink signals can travel in and out of subsystems. Instead of being connected by name, radiolinks are connected together via a link name. For each link name, there should be only 1 emitter. However the emitter can broadcast to multiple receivers with the same link name.



Notes

    • The emitter exposes a bundle, not output pins. Therefore, if we would like to access the In bundle of the AC1A for example, we connect the ACI1.In to a radiolink bundle emitter, and we feed the signals via the radiolink bundle receiver, as shown in the examples below.
    • Additional radiolink validation is done during the analyze of the model. It is recommended to manually click the Analyze button and then connect the pins inside the radiolink bundles.



Input/output

Initially, radiolink bundle components only contain an empty bundle pin.

Parameters

The parameter name is "linkName" for the Python API.

Examples


In this example, the emitter RLEB_1 broadcasts via the link name myBundleLink. The receiver RLRB_1 listens to myBundleLink. When setting the receiver link name, the emitter is found and pins are updated. The absolute path to the emitter is shown next to the receiver link name for tracability. Finally, The 3 pins of the I Measurement, 3-ph are then directly connected to the 3 pins of the summation component. Therefore, the radiolinks components are not present in the topology and do not affect simulation performances.


In this example, the emitter RLEB_1 broadcasts via the link name ac1a_link. The receiver RLRB_1 listens to ac1a_link. When setting the receiver link name, the emitter is found and pins are updated. The absolute path to the emitter is shown next to the receiver link name for tracability. We then feed the AC1A via the radiolink bundle receiver.


Example with the API

These components' workflow is optimized for manual usage. HYPERSIM will try to keep all related pins up to date during your model edition. Therefore, to allow full control of the configuration via the API, there is a parameter 'managedByAPI' for the emitter, which disables HYPERSIM automated treatments. Please find below a simple example of how to use the radiolink bundles via the API.

# import the Api as HyWorksApi

HyWorksApi.connectToHyWorks()
# Some APIs require a call to HyWorksApi.openModel(), but in this example, we assume an empty design is already open.

# Emission
source = HyWorksApi.addDevice('Network Sources.clf', 'AC V source', -1400, 0)
measurement = HyWorksApi.addDevice('Network Measurements.clf', 'I measurement, 3-ph', 0, 0)
resistance = HyWorksApi.addDevice('Network RLC.clf', 'R grounded', 2100, 350)
pow = HyWorksApi.addDevice('Network Tools.clf', 'Point-on-wave', 2800, 350)
emitter = HyWorksApi.addDevice('Signal Routing.clf', 'Radiolink emitter, bundle', 1400, 140)

# Reception
receiver = HyWorksApi.addDevice('Signal Routing.clf', 'Radiolink receiver, bundle', -1400, 1400)
max = HyWorksApi.addDevice('Control Math Operations.clf', 'Max, 3-input', 0, 1400)

# Connect power section
HyWorksApi.connectDevices(source, 'net_1', measurement, 'net_1', False)
HyWorksApi.connectDevices(measurement, 'net_2', resistance, 'net_1', False)
HyWorksApi.connectDevices(measurement, 'net_2', pow, 'net_1', False)

# Since we have to set component parameters, we need an analyze to let the engine know about the topology
HyWorksApi.analyze()

# Managed by API, this deactivates HYPERSIM auto connections on this radiolink. So we are in full control in the API
HyWorksApi.setComponentParameter(emitter, 'managedByAPI', 'true')
# Add the pins inside the bundle of the radiolink
HyWorksApi.addPinsToDevice(emitter, "W", "I", ['Bundle[rlb_currentA]', 'Bundle[rlb_currentB]', 'Bundle[rlb_currentC]'], False)
# Connect the radiolink to the measurement
HyWorksApi.connectBundleToBundle(measurement, ['a', 'b', 'c'], emitter, ['rlb_currentA', 'rlb_currentB', 'rlb_currentC'])

# Link both radiolinks via the linkname
HyWorksApi.setComponentParameter(emitter, 'linkName', 'myRadiolinkBundle')
HyWorksApi.setComponentParameter(receiver, 'linkName', 'myRadiolinkBundle')
# Note that we do not need to manage the receiver by api, because the pin list should be the same as the emitter
# with opposite directions. So we control the emitter, configure it, and let the receiver match the configuration

# Connect the receiver
HyWorksApi.connectPinToBundle(max, "u1", receiver, 'rlb_currentA')
HyWorksApi.connectPinToBundle(max, "u2", receiver, 'rlb_currentB')
HyWorksApi.connectPinToBundle(max, "u3", receiver, 'rlb_currentC')

HyWorksApi.analyze()

HyWorksApi.selectAllSensors(measurement)
HyWorksApi.selectAllSensors(max)

OPAL-RT TECHNOLOGIES, Inc. | 1751, rue Richardson, bureau 1060 | Montréal, Québec Canada H3K 1G6 | opal-rt.com | +1 514-935-2323