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
Follow OPAL-RT: LinkedIn | Facebook | YouTube | X/Twitter