{"id":37113,"date":"2026-02-10T10:00:11","date_gmt":"2026-02-10T10:00:11","guid":{"rendered":"https:\/\/imperix.com\/doc\/?p=37113"},"modified":"2026-02-19T15:52:03","modified_gmt":"2026-02-19T15:52:03","slug":"hil-simulation-using-a-b-board-pro","status":"publish","type":"post","link":"https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro","title":{"rendered":"HIL simulation using a B-Board PRO"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 ez-toc-wrap-right-text counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro\/#Introduction-to-HIL-simulation\" >Introduction to HIL simulation<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro\/#Offline-vs-real-time-simulation\" >Offline vs. real-time simulation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro\/#Imperix-interfaces-for-HIL-simulation-hardware\" >Imperix interfaces for HIL simulation hardware<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro\/#Benefits-and-limitations-of-HIL-simulation\" >Benefits and limitations of HIL simulation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro\/#C-HIL-simulation-example\" >C-HIL simulation example<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro\/#Downloads\" >Downloads<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro\/#Experimental-setup\" >Experimental setup<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro\/#Setting-up-HIL-simulation\" >Setting up HIL simulation<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro\/#Model-implementation\" >Model implementation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro\/#Wiring-of-the-B-Board-and-RT-Box\" >Wiring of the B-Board and RT Box<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro\/#Deployment-of-the-plant-model\" >Deployment of the plant model<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro\/#Deployment-of-the-control-implementation\" >Deployment of the control implementation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro\/#Testing-and-validation\" >Testing and validation<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro\/#Getting-started-recommendations\" >Getting-started recommendations<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro\/#Conclusion\" >Conclusion<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro\/#To-go-further-from-here%E2%80%A6\" >To go further from here&#8230;<\/a><\/li><\/ul><\/nav><\/div>\n\n<p>This technical note introduces the basic principles of HIL simulation and provides practical considerations for the implementation of a controller-HIL setup using the <a href=\"https:\/\/imperix.com\/wp-content\/uploads\/document\/B-Board_Datasheet.pdf\">imperix B\u2011Board PRO<\/a>. In the developed example, <a href=\"https:\/\/www.plexim.com\/products\/rt_box\">Plexim\u2019s RT Box<\/a> is used as the simulator executing the plant model in real time.<\/p>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading37113_9ed014-e6, .wp-block-kadence-advancedheading.kt-adv-heading37113_9ed014-e6[data-kb-block=\"kb-adv-heading37113_9ed014-e6\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading37113_9ed014-e6 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading37113_9ed014-e6[data-kb-block=\"kb-adv-heading37113_9ed014-e6\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading37113_9ed014-e6 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading37113_9ed014-e6[data-kb-block=\"kb-adv-heading37113_9ed014-e6\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h2 class=\"kt-adv-heading37113_9ed014-e6 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading37113_9ed014-e6\"><span class=\"ez-toc-section\" id=\"Introduction-to-HIL-simulation\"><\/span>Introduction to HIL simulation<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Hardware-in-the-loop (HIL) simulation is generally defined as a validation technique where a real physical controller interacts with a simulated plant instead of the actual physical plant. The controller is therefore the <em>hardware inside the (control) loop<\/em> involving an emulated system, the latter being often implemented using dedicated real-time simulation equipment. A HIL test bench typically consists of:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Real-time simulator:<\/strong>&nbsp;executes the plant model, often with a fixed time step.<\/li>\n\n\n\n<li><strong>Controller:<\/strong>&nbsp;runs the control algorithm on the real control hardware.<\/li>\n\n\n\n<li><strong>I\/O interface layer:<\/strong>&nbsp;connects the controller with the simulator.<\/li>\n<\/ul>\n\n\n\n<p>This configuration is often referred to as controller-HIL (or C-HIL), because the controller is the device under test (DUT) inside the loop. Other configurations of &#8220;hardware inside the loop&#8221; are also possible, for instance involving an emulated controller connected to a real plant (opposite configuration), although this is usually not designated as a HIL setup. In the same line of ideas, the configurations that involve real power exchanges are rather designated as Power HIL (or PHIL) scenarios, so that they are clearly distinguished from those that only exchange signals or information. In this case, a power amplifier (or equivalent) is required between the simulator and the DUT.<\/p>\n\n\n\n<p>HIL and PHIL simulation are widely used  in domains such as power electronics, automotive, aerospace, microgrids, and power systems. Their typical benefits are to help accelerate development and improve safety, notably by shifting risky or hard-to-reproduce scenarios into a secure, controlled environment. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1007\" height=\"650\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/HIL_illustration_with_interface.png\" alt=\"\" class=\"wp-image-43094\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/HIL_illustration_with_interface.png 1007w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/HIL_illustration_with_interface-300x194.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/HIL_illustration_with_interface-768x496.png 768w\" sizes=\"auto, (max-width: 1007px) 100vw, 1007px\" \/><figcaption class=\"wp-element-caption\">Fig. 1: Block diagram of a HIL setup with possible different controllers and real-time simulators<\/figcaption><\/figure>\n<\/div>\n\n\n<p>In a typical C-HIL configuration, illustrated in Fig. 1, the simulator computes the plant response in real-time and emulates the corresponding physical sensor signals (such as voltages and currents) that the controller would otherwise receive in an actual deployment. These signals are exchanged through a physical I\/O interface, creating a closed loop.&nbsp;On the other side of the interface, the controller sees the simulator through the same analog and digital interfaces, &#8220;believing&#8221; that it is connected to the real system.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Offline-vs-real-time-simulation\"><\/span>Offline vs. real-time simulation<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>In order to compute the plant response in real time, the simulator must be able to solve the corresponding differential equations&nbsp;within a pre-determined latency. For this reason, the model must be&nbsp;compatible and optimized for fixed-step execution. Iterative solvers are typically avoided. Additionally, the model fidelity must be chosen as a trade-off, so that the simulator can reliably finish computation before the next time step. Over-runs are generally considered as a real-time violation.<\/p>\n\n\n\n<p>Due to the above constraints, discrepancies between offline and real-time simulation can often happen. Some typical situations are mentioned below:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Offline simulation might be using a solver type and configuration (i.e., variable-step or fixed-step) that resolves switching and fast dynamics differently than the real-time solver being used by the simulator.<\/li>\n\n\n\n<li>Real-time simulation forces a compromise between time step and model complexity, which can result in changes in high-frequency behavior and transient performance.<\/li>\n\n\n\n<li>The controller generates PWM edges almost continuously in time, but the real-time simulator sees them through a discrete-time capture interface. If edges don\u2019t align exactly with the real-time step, edge timing quantization happens, which significantly distorts the duty-cycle estimation, especially for high switching frequencies. All HIL vendors implement techniques to minimize this effect, with different pros and cons.<\/li>\n<\/ul>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading37113_a57031-ab, .wp-block-kadence-advancedheading.kt-adv-heading37113_a57031-ab[data-kb-block=\"kb-adv-heading37113_a57031-ab\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading37113_a57031-ab mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading37113_a57031-ab[data-kb-block=\"kb-adv-heading37113_a57031-ab\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading37113_a57031-ab img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading37113_a57031-ab[data-kb-block=\"kb-adv-heading37113_a57031-ab\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h3 class=\"kt-adv-heading37113_a57031-ab wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading37113_a57031-ab\"><span class=\"ez-toc-section\" id=\"Imperix-interfaces-for-HIL-simulation-hardware\"><\/span>Imperix interfaces for HIL simulation hardware<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Imperix offers different rapid control prototyping (RCP) controllers, power modules and sensors, enabling users to perform experimental validation of control algorithms. For HIL simulation scenarios, the <a href=\"https:\/\/imperix.com\/products\/control\/inverter-control-board\/\" type=\"link\" id=\"https:\/\/imperix.com\/products\/control\/inverter-control-board\/\">B-Board PRO<\/a> (e.g. mounted on its <a href=\"https:\/\/imperix.com\/products\/control\/inverter-control-board\/#ID_EvaluationKit\">Eval-Board<\/a>) can easily be interfaced with third-party HIL simulators using appropriate cables, such as a DB-37 pigtail cable. Conversely, for the <a href=\"https:\/\/imperix.com\/products\/power-electronic-controllers\/\" type=\"link\" id=\"https:\/\/imperix.com\/products\/power-electronic-controllers\/\">family of B-Box<\/a> controllers, imperix provides dedicated simulator interfaces that serve as a physical bridge between the controller and the simulator. These interfaces ensure electrical and signal-level compatibility for both analog and digital signals:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Analog outputs of the simulator are converted to RJ45 connectivity for the B-Box controllers.<\/li>\n\n\n\n<li>Optical PWM signals from B-Box controllers are converted to electrical signals for the simulator.<\/li>\n<\/ul>\n\n\n\n<p>Imperix currently provides the following simulator interfaces that allow the connection to the respective HIL simulation platforms:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><a href=\"https:\/\/imperix.com\/wp-content\/uploads\/document\/Simulator-Interface_OPAL-RT.pdf\">OPAL-RT Simulator Interface<\/a><\/strong>, refer to <a href=\"https:\/\/imperix.com\/doc\/implementation\/c-hil-simulation-scenario-with-opal-rt-simulators\">TN180<\/a> for further details on simulation with OPAL-RT simulators.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/imperix.com\/wp-content\/uploads\/document\/Simulator-Interface_Typhoon.pdf\">Typhoon HIL Simulator Interface<\/a><\/strong><\/li>\n\n\n\n<li><strong><a href=\"https:\/\/imperix.com\/wp-content\/uploads\/document\/Simulator-Interface_RT-Box.pdf\">Plexim RT Box Simulator Interface<\/a><\/strong><\/li>\n\n\n\n<li><strong><a href=\"https:\/\/imperix.com\/wp-content\/uploads\/document\/Simulator-Interface_Speedgoat.pdf\">Speedgoat Simulator Interface<\/a><\/strong><\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">These hardware interfaces are best used for C-HIL configurations, in which PWM signals have to be transmitted as boolean signals with a high temporal accuracy. Information exchanges between imperix controllers and HIL simulators are also possible numerically using SFP optical fiber communication (Aurora protocol), as documented in <a href=\"https:\/\/imperix.com\/doc\/help\/sfp-communication-with-third-party-device\">PN109<\/a>. This approach is compatible with all imperix controllers, except the B-Box Micro, which does not provide SFP connectivity.<\/div>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading37113_23130f-10, .wp-block-kadence-advancedheading.kt-adv-heading37113_23130f-10[data-kb-block=\"kb-adv-heading37113_23130f-10\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading37113_23130f-10 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading37113_23130f-10[data-kb-block=\"kb-adv-heading37113_23130f-10\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading37113_23130f-10 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading37113_23130f-10[data-kb-block=\"kb-adv-heading37113_23130f-10\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h2 class=\"kt-adv-heading37113_23130f-10 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading37113_23130f-10\"><span class=\"ez-toc-section\" id=\"Benefits-and-limitations-of-HIL-simulation\"><\/span>Benefits and limitations of HIL simulation<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>In a typical development process, HIL simulation can serve as the bridge between simulation and hardware testing, as illustrated in Fig. 2. It is an optional step that can help validate controller algorithms early in the development process, typically when a hardware prototype is not yet available or when offline simulations are inconveniently long to execute.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"457\" height=\"337\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/development_workflow.png\" alt=\"Benefits of the developement process using HIL simulation\" class=\"wp-image-39899\" style=\"aspect-ratio:1.3560887130018964;width:335px;height:auto\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/development_workflow.png 457w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/development_workflow-300x221.png 300w\" sizes=\"auto, (max-width: 457px) 100vw, 457px\" \/><figcaption class=\"wp-element-caption\">Fig. 2: Typical development workflow<\/figcaption><\/figure>\n<\/div>\n\n\n<p>HIL simulation is particularly useful when testing involves difficult or destructive scenarios that are unsafe, costly, or impractical to reproduce on physical prototypes (e.g., fault injection, AC grid disturbances, over-current events, etc). More generally, HIL simulation also brings increased realism compared to offline simulation by:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Forcing the incorporation of real-world challenges such as measurement noise, quantization phenomena, discrete control execution, hardware-specific limitations (e.g. memory usage, stack overflows), etc. inside the simulation.<\/li>\n\n\n\n<li>Offering support for testing random interactions such as perturbations, communication exchanges, etc.<\/li>\n<\/ul>\n\n\n\n<p>On the other hand, HIL simulation also possesses some inherent limitations, such as:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Dynamics close to the discretization step size are difficult to model or cannot be modeled with sufficient accuracy. While this is obvious for very fast phenomena (e.g., semiconductor ringing), this often also applies to medium-frequency dynamics (e.g. DAB or LLC waveforms), at least without highly dedicated FPGA-based solvers (which generally offer only limited user flexibility or observability).<\/li>\n\n\n\n<li>Evaluating system efficiency is generally not feasible, because any efficiency results merely reflect the assumptions of the underlying models (rather than validating actual physical hardware losses).<\/li>\n\n\n\n<li>Phenomena related to the common-mode behavior of the system are generally ignored (due to the associated computational burden, incompatible with real-time execution), imposing limited visibility on the possible issues associated to filters, circulating and leakage currents, etc.<\/li>\n\n\n\n<li>More generally, any aspect that is not anticipated and, therefore, included in the simulation model cannot be faced or tested. This prevents HIL simulation from being able to expose unforeseen challenges or problems.<\/li>\n<\/ul>\n\n\n\n<p>In light of the above, the value of HIL simulation lies not so much in improving the plant model fidelity, but rather in offering what offline simulation lacks, i.e.:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Testing opportunity for the real control hardware along with the embedded software or firmware.<\/li>\n\n\n\n<li>Offering support for faster simulations with faster iteration cycles, as they run in real-time on dedicated hardware.<\/li>\n<\/ul>\n\n\n\n<p>In practice, HIL simulation is generally cost-effective when it prevents expensive prototype iterations by catching integration- and control-related issues early, while prototyping is attractive and necessary when the dominant risks are related to the power stage, or involve efficiency- and EMC-related concerns.<\/p>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">A common misconception is that HIL simulation is inherently more accurate than offline simulation because it operates in real-time and interfaces with real control hardware. Although it is true that real-time simulation forces the consideration of real-world challenges, such as noise, quantization, delays, etc., real-time simulation remains fundamentally a simulation. Consequently, the overall accuracy remains dictated by the validity of the underlying mathematical model (i.e. the modeling assumptions and simplifications), which is generally identical in both contexts. In fact, the stringent constraints of real-time execution often necessitate further model simplifications to ensure timing closure, which can paradoxically reduce simulation fidelity rather than enhance it.<\/div>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading37113_ef00cc-8b, .wp-block-kadence-advancedheading.kt-adv-heading37113_ef00cc-8b[data-kb-block=\"kb-adv-heading37113_ef00cc-8b\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading37113_ef00cc-8b mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading37113_ef00cc-8b[data-kb-block=\"kb-adv-heading37113_ef00cc-8b\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading37113_ef00cc-8b img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading37113_ef00cc-8b[data-kb-block=\"kb-adv-heading37113_ef00cc-8b\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h2 class=\"kt-adv-heading37113_ef00cc-8b wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading37113_ef00cc-8b\"><span class=\"ez-toc-section\" id=\"C-HIL-simulation-example\"><\/span>C-HIL simulation example<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>This example uses the imperix B-Board PRO and Plexim&#8217;s RT Box 2. The real-time simulation of a DC-DC buck converter is used to demonstrate the workflow using PLECS. <a href=\"https:\/\/imperix.com\/doc\/implementation\/step-down-buck-converter?currentThread=current-controlled-buck-converter\">TN100<\/a> outlines the implemented output voltage control and is used as a reference. The simulation model is built using the imperix <a href=\"https:\/\/imperix.com\/doc\/help\/getting-started-with-imperix-power-library\">Power library<\/a>.<\/p>\n\n\n\n<p>In this example, a single PLECS model is used to generate C++ code for both the control side and the plant side, which are subsequently deployed to the&nbsp; <a href=\"https:\/\/imperix.com\/wp-content\/uploads\/document\/B-Board_Datasheet.pdf\">B-Board PRO<\/a> and <a href=\"https:\/\/www.plexim.com\/products\/rt_box\">Plexim RT Box<\/a>, respectively. Specific settings may differ for other real-time simulators, but the underlying concepts remain the same. The following articles address the corresponding steps and are recommended for further reading:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/imperix.com\/doc\/help\/getting-started-with-acg-sdk?currentThread=active-front-end-afe\">PN134<\/a> for getting started with imperix ACG SDK<\/li>\n\n\n\n<li><a href=\"https:\/\/imperix.com\/doc\/help\/simulation-essentials-plecs?currentThread=getting-started-with-plecs\">PN137<\/a> for understanding simulation essentials with PLECS<\/li>\n\n\n\n<li><a href=\"https:\/\/imperix.com\/doc\/help\/basic-examples-using-plecs?currentThread=getting-started-with-plecs\">PN151<\/a> for other PLECS examples with different plants available for download <\/li>\n\n\n\n<li><a href=\"https:\/\/imperix.com\/doc\/example\/three-phase-pv-inverter?currentThread=three-phase-pv-inverter-for-grid-tied-applications\">AN006<\/a> for a similar implementation of HIL simulation using the <a href=\"https:\/\/imperix.com\/products\/control\/rapid-prototyping-controller\/\">B-Box RCP 3.0<\/a> and <a href=\"https:\/\/www.plexim.com\/products\/rt_box\">Plexim&#8217;s RT Box 2<\/a><\/li>\n<\/ul>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading37113_87af2a-76, .wp-block-kadence-advancedheading.kt-adv-heading37113_87af2a-76[data-kb-block=\"kb-adv-heading37113_87af2a-76\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading37113_87af2a-76 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading37113_87af2a-76[data-kb-block=\"kb-adv-heading37113_87af2a-76\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading37113_87af2a-76 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading37113_87af2a-76[data-kb-block=\"kb-adv-heading37113_87af2a-76\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h3 id=\"download\" class=\"kt-adv-heading37113_87af2a-76 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading37113_87af2a-76\"><span class=\"ez-toc-section\" id=\"Downloads\"><\/span>Downloads<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>A PLECS model containing the closed-loop output current control of the DC-DC buck converter is provided. The <a href=\"https:\/\/imperix.com\/doc\/help\/getting-started-with-imperix-power-library?currentThread=getting-started-with-matlab-simulink\">imperix power library<\/a> requires ACG SDK 2024.2 or a later version.<\/p>\n\n\n\n<div class=\"wp-block-file\"><a id=\"wp-block-file--media-97b922dd-f683-46c8-a667-f588e9dc1071\" href=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/TN178_Buck_Converter_Closed_Loop.plecs\">TN178_Buck_Converter_Closed_Loop<\/a><a href=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/TN178_Buck_Converter_Closed_Loop.plecs\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-97b922dd-f683-46c8-a667-f588e9dc1071\">Download<\/a><\/div>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading37113_4ff124-73, .wp-block-kadence-advancedheading.kt-adv-heading37113_4ff124-73[data-kb-block=\"kb-adv-heading37113_4ff124-73\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading37113_4ff124-73 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading37113_4ff124-73[data-kb-block=\"kb-adv-heading37113_4ff124-73\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading37113_4ff124-73 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading37113_4ff124-73[data-kb-block=\"kb-adv-heading37113_4ff124-73\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h3 class=\"kt-adv-heading37113_4ff124-73 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading37113_4ff124-73\"><span class=\"ez-toc-section\" id=\"Experimental-setup\"><\/span>Experimental setup<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The experimental setup is shown in the Fig. 3. An exploded DB-37 cable is used to connect the B-Board PRO development kit with the front side of the RT Box. While in this note, this specific setup is featured, other imperix controllers can also be utilized in conjunction with their corresponding simulator interfaces.<\/p>\n\n\n<style>.kb-image37113_09d336-86.kb-image-is-ratio-size, .kb-image37113_09d336-86 .kb-image-is-ratio-size{max-width:642px;width:100%;}.wp-block-kadence-column > .kt-inside-inner-col > .kb-image37113_09d336-86.kb-image-is-ratio-size, .wp-block-kadence-column > .kt-inside-inner-col > .kb-image37113_09d336-86 .kb-image-is-ratio-size{align-self:unset;}.kb-image37113_09d336-86 figure{max-width:642px;}.kb-image37113_09d336-86 .image-is-svg, .kb-image37113_09d336-86 .image-is-svg img{width:100%;}.kb-image37113_09d336-86 .kb-image-has-overlay:after{opacity:0.3;}<\/style>\n<div class=\"wp-block-kadence-image kb-image37113_09d336-86\" id=\"exp_setup\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"514\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/HIL_setup-1024x514.png\" alt=\"Table-top implementation of HIL simulation using the imperix B-Board PRO.\" class=\"kb-img wp-image-40013\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/HIL_setup-1024x514.png 1024w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/HIL_setup-300x151.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/HIL_setup-768x385.png 768w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/HIL_setup-1536x771.png 1536w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/HIL_setup-2048x1027.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Fig. 3: Experimental setup<\/figcaption><\/figure><\/div>\n\n\n\n<h4 class=\"wp-block-heading has--font-size\">Hardware and software requirements<\/h4>\n\n\n\n<p>The following list includes imperix products, plus additional components required for this example:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Imperix products\n<ul class=\"wp-block-list\">\n<li>1x&nbsp;B-Board PRO&nbsp;development kit<\/li>\n\n\n\n<li>Imperix <a href=\"https:\/\/imperix.com\/software\/acg-sdk\/\">Control development tools for Simulink and PLECS<\/a>&nbsp;(ACG SDK) that includes <a href=\"https:\/\/imperix.com\/software\/cockpit\/\">Cockpit<\/a><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Additional software\n<ul class=\"wp-block-list\">\n<li>PLECS standalone with PLECS coder<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Additional hardware\n<ul class=\"wp-block-list\">\n<li>Plexim RT Box (can be any variant)<\/li>\n\n\n\n<li>2x exploded DB-37 cable<\/li>\n\n\n\n<li>1x DB-37 gender changer<\/li>\n\n\n\n<li>12V DC adapter for powering the B-Board PRO<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading37113_4eedc1-1e, .wp-block-kadence-advancedheading.kt-adv-heading37113_4eedc1-1e[data-kb-block=\"kb-adv-heading37113_4eedc1-1e\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading37113_4eedc1-1e mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading37113_4eedc1-1e[data-kb-block=\"kb-adv-heading37113_4eedc1-1e\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading37113_4eedc1-1e img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading37113_4eedc1-1e[data-kb-block=\"kb-adv-heading37113_4eedc1-1e\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h2 class=\"kt-adv-heading37113_4eedc1-1e wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading37113_4eedc1-1e\"><span class=\"ez-toc-section\" id=\"Setting-up-HIL-simulation\"><\/span>Setting up HIL simulation<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The setup of HIL simulation involves several steps. A similar procedure can be followed for setting up a HIL simulation with any other control implementation or plant model.<\/p>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading37113_581dca-9d, .wp-block-kadence-advancedheading.kt-adv-heading37113_581dca-9d[data-kb-block=\"kb-adv-heading37113_581dca-9d\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading37113_581dca-9d mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading37113_581dca-9d[data-kb-block=\"kb-adv-heading37113_581dca-9d\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading37113_581dca-9d img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading37113_581dca-9d[data-kb-block=\"kb-adv-heading37113_581dca-9d\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h3 class=\"kt-adv-heading37113_581dca-9d wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading37113_581dca-9d\"><span class=\"ez-toc-section\" id=\"Model-implementation\"><\/span>Model implementation<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>A buck converter example is built in PLECS using the default template file provided by imperix. The controller and the plant are modelled in seperate subsystem as shown in Fig. 4.<\/p>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">The default PLECS template &#8220;imperix_template.plecs&#8221; can be found in the default imperix ACG SDK directory: <em>X:\\imperix\\BB3_ACG_SDK\\plecs\\<\/em> where X is the drive containing the installation files.<\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"941\" height=\"628\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/HIL_model_in_PLECS-1.png\" alt=\"PLECS model for HIL simulation.\" class=\"wp-image-40017\" style=\"aspect-ratio:1.6076789543551517;width:760px;height:auto\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/HIL_model_in_PLECS-1.png 941w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/HIL_model_in_PLECS-1-300x200.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/HIL_model_in_PLECS-1-768x513.png 768w\" sizes=\"auto, (max-width: 941px) 100vw, 941px\" \/><figcaption class=\"wp-element-caption\">Fig. 4: Closed- loop controller model (left) that will be deployed on the B-board PRO and the plant model (right) that will be simulated by the RT Box in real-time.<\/figcaption><\/figure>\n<\/div>\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading37113_3457b4-51, .wp-block-kadence-advancedheading.kt-adv-heading37113_3457b4-51[data-kb-block=\"kb-adv-heading37113_3457b4-51\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading37113_3457b4-51 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading37113_3457b4-51[data-kb-block=\"kb-adv-heading37113_3457b4-51\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading37113_3457b4-51 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading37113_3457b4-51[data-kb-block=\"kb-adv-heading37113_3457b4-51\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h4 class=\"kt-adv-heading37113_3457b4-51 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading37113_3457b4-51\">PLECS model preparation and settings<\/h4>\n\n\n\n<p>Effective data exchange between the RT Box and the B-Board PRO relies on several key blocks from the <em>PLECS RT Box library<\/em> (italicized below) and the <strong>imperix library<\/strong> (in bold red below). Below are the critical considerations for their implementation:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em>PWM capture<\/em> blocks must be used for receiving the PWM signals (as opposed to regular digital input blocks) so that <a href=\"https:\/\/www.plexim.com\/sites\/default\/files\/tutorials\/step_size_selection.pdf\" type=\"link\" id=\"https:\/\/www.plexim.com\/sites\/default\/files\/tutorials\/step_size_selection.pdf\">sub-cycle averaging<\/a> is possible. The <em>offline <\/em>behavior in the <em>PWM capture<\/em> block should be selected as sub-cycle average to properly mimic the real-time behavior. Nanostep is only compatible with Nanostep-compatible models from the PLECS library.<\/li>\n\n\n\n<li>As the model will be deployed in the RT Box, the subsystem containing the plant side must be enabled for code generation. For that, right-click on the plant subsystem and select subsystem&#8211;&gt; execution. Then check &#8220;enable code generation&#8221;, as shown in Fig. 9.<\/li>\n\n\n\n<li><em>Analog output<\/em> blocks on the RT Box should be used to provide the plant measurements to the imperix <strong><a href=\"https:\/\/imperix.com\/doc\/software\/analog-data-acquisition\" type=\"post\" id=\"1577\">ADC<\/a><\/strong> blocks. To reflect the physical scaling of the real-world hardware, it is recommended to scale these signals according to the actual sensor sensitivity by probing its &#8220;Sensor output [V]&#8221; signal (see Fig. 5). On the controller side, the ADC must be configured with the corresponding sensor parameters (Fig. 6) to ensure the scaling matches. This configuration can be validated during offline simulation by enabling the &#8220;Simulate sensor sensitivity&#8221; option within the ADC block settings.<\/li>\n\n\n\n<li>The recommended settings for the <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-theme-palette-1-color\"><a href=\"https:\/\/imperix.com\/doc\/software\/carrier-based-pwm\" type=\"post\" id=\"1609\">CB-PWM<\/a><\/mark><\/strong> block are shown in Fig. 7. As both PWM signals are generated and transmitted to the simulator, reverse conduction is implemented in the lower MOSFET.<\/li>\n<\/ul>\n\n\n\n<p>The following are some optional interfaces included for the sake of completeness. They can be used, for example, when control logic or relaying is required:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em>Digital In<\/em> can be used for general-purpose output signals (<strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-theme-palette-1-color\"><a href=\"https:\/\/imperix.com\/doc\/software\/general-purpose-outputs\" type=\"post\" id=\"1590\">GP<strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-theme-palette-1-color\">O<\/mark><\/strong><\/a><\/mark><\/strong>) coming from the B-Board PRO.<\/li>\n\n\n\n<li>General-purpose input signals (<strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-theme-palette-1-color\"><a href=\"https:\/\/imperix.com\/doc\/software\/general-purpose-inputs\" type=\"post\" id=\"1587\">GP<strong>I<\/strong><\/a><\/mark><\/strong>) from the B-Board can be connected to the <em>Digital Out<\/em> of the RT Box.<\/li>\n\n\n\n<li><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-theme-palette-1-color\">DAC<\/mark><\/strong> channels can be used to output analog signals from the B-Board PRO. The imperix <a href=\"https:\/\/imperix.com\/doc\/software\/analog-outputs\"><strong>DAC<\/strong><\/a> block and the corresponding <em>Analog In<\/em> of the RT Box library can be used.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"743\" height=\"427\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/analog-out-and-probe-v2-1.png\" alt=\"\" class=\"wp-image-43138\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/analog-out-and-probe-v2-1.png 743w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/analog-out-and-probe-v2-1-300x172.png 300w\" sizes=\"auto, (max-width: 743px) 100vw, 743px\" \/><figcaption class=\"wp-element-caption\">Fig. 5: Sensor output probing and RT Box Analog Out block settings<\/figcaption><\/figure>\n<\/div>\n\n\n<div class=\"wp-block-columns are-vertically-aligned-bottom is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-bottom is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"398\" height=\"434\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/adc-config-dialog-1.png\" alt=\"\" class=\"wp-image-43113\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/adc-config-dialog-1.png 398w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/adc-config-dialog-1-275x300.png 275w\" sizes=\"auto, (max-width: 398px) 100vw, 398px\" \/><figcaption class=\"wp-element-caption\">Fig. 6: Imperix ADC block settings<\/figcaption><\/figure>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-bottom is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"398\" height=\"362\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/pwm-config-dialog.png\" alt=\"\" class=\"wp-image-43114\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/pwm-config-dialog.png 398w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/pwm-config-dialog-300x273.png 300w\" sizes=\"auto, (max-width: 398px) 100vw, 398px\" \/><figcaption class=\"wp-element-caption\">Fig. 7: Imperix CB-PWM block settings<\/figcaption><\/figure>\n<\/div><\/div>\n<\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"342\" height=\"330\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-88.png\" alt=\"\" class=\"wp-image-37819\" style=\"aspect-ratio:1.0363649054233266;object-fit:cover\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-88.png 342w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-88-300x289.png 300w\" sizes=\"auto, (max-width: 342px) 100vw, 342px\" \/><figcaption class=\"wp-element-caption\">Fig. 8: Execution settings of the control and plant subsystems<\/figcaption><\/figure>\n<\/div>\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading37113_ce0a69-a4, .wp-block-kadence-advancedheading.kt-adv-heading37113_ce0a69-a4[data-kb-block=\"kb-adv-heading37113_ce0a69-a4\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading37113_ce0a69-a4 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading37113_ce0a69-a4[data-kb-block=\"kb-adv-heading37113_ce0a69-a4\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading37113_ce0a69-a4 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading37113_ce0a69-a4[data-kb-block=\"kb-adv-heading37113_ce0a69-a4\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h3 class=\"kt-adv-heading37113_ce0a69-a4 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading37113_ce0a69-a4\"><span class=\"ez-toc-section\" id=\"Wiring-of-the-B-Board-and-RT-Box\"><\/span>Wiring of the B-Board and RT Box<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The system is wired as follows, which is illustrated in Fig. 9:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The PWM outputs&nbsp;of the B-Board PRO are wired to the&nbsp;RT Box digital inputs. An exploded DB-37 cable can be used to wire them together as shown in <a href=\"#exp_setup\">Fig. 3<\/a>.<\/li>\n\n\n\n<li>The analog outputs of the RT Box are wired to the analog inputs of the B-Board PRO.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1056\" height=\"816\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/B_Board_PRO_connection_RTBox2-3.png\" alt=\"\" class=\"wp-image-40023\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/B_Board_PRO_connection_RTBox2-3.png 1056w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/B_Board_PRO_connection_RTBox2-3-300x232.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/B_Board_PRO_connection_RTBox2-3-1024x791.png 1024w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/01\/B_Board_PRO_connection_RTBox2-3-768x593.png 768w\" sizes=\"auto, (max-width: 1056px) 100vw, 1056px\" \/><figcaption class=\"wp-element-caption\">Fig. 9: HIL setup wiring guide between the B-Board PRO development board and the RT Box<\/figcaption><\/figure>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading37113_b50593-58, .wp-block-kadence-advancedheading.kt-adv-heading37113_b50593-58[data-kb-block=\"kb-adv-heading37113_b50593-58\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading37113_b50593-58 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading37113_b50593-58[data-kb-block=\"kb-adv-heading37113_b50593-58\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading37113_b50593-58 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading37113_b50593-58[data-kb-block=\"kb-adv-heading37113_b50593-58\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h3 class=\"kt-adv-heading37113_b50593-58 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading37113_b50593-58\"><span class=\"ez-toc-section\" id=\"Deployment-of-the-plant-model\"><\/span>Deployment of the plant model<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The step-by-step procedure to compile and load the plant model on the RT Box is as follows:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>If not already, code generation must be enabled for the subsystem containing the plant side. Right-click on the plant subsystem and select subsystem&#8211;&gt; execution. Then check &#8220;enable code generation&#8221;, as shown in Fig. 8.<\/li>\n\n\n\n<li>In the PLECS environment, go to Coder\u2192 Coder options. Select &#8220;plant&#8221; in the left area (under the model file name).<\/li>\n\n\n\n<li>The &#8220;General&#8221; tab can keep the default settings.<\/li>\n\n\n\n<li>In the &#8220;Target&#8221; tab:\n<ul class=\"wp-block-list\">\n<li>Select the RT Box variant being used. In this example, PLECS RT Box 2 is selected.<\/li>\n\n\n\n<li>Select the analog output voltage range to &#8220;-5V &#8230; 5V&#8221; as B-Board PRO&#8217;s input voltage range is \u00b15V.<\/li>\n\n\n\n<li>Select HIL for the simulation mode. All the settings for the &#8220;Target&#8221; tab are shown in Fig. 10.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>In the &#8220;External mode&#8221; tab of the coder options menu:\n<ul class=\"wp-block-list\">\n<li>Select the target device by entering the hostname or IP address. Other settings are shown in Fig. 11.<\/li>\n\n\n\n<li><strong>Click &#8220;Build&#8221;<\/strong> to generate and upload the code directly to the RT Box.<\/li>\n\n\n\n<li>When everything is rightly done, a blue LED next to &#8220;Running&#8221; on the front interface of RT Box 1 will light up. For other RT Box variants (e.g., RT Box 2 used here), the LCD will display the name of the subsystem being simulated in addition to the current CPU cores&#8217; processing time.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:50%\">\n<figure class=\"wp-block-image alignfull size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"644\" height=\"542\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-92.png\" alt=\"\" class=\"wp-image-37831\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-92.png 644w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-92-300x252.png 300w\" sizes=\"auto, (max-width: 644px) 100vw, 644px\" \/><figcaption class=\"wp-element-caption\">Fig. 10: Target settings in the coder options menu<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:50%\">\n<figure class=\"wp-block-image alignfull size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"644\" height=\"542\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-93.png\" alt=\"\" class=\"wp-image-37835\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-93.png 644w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-93-300x252.png 300w\" sizes=\"auto, (max-width: 644px) 100vw, 644px\" \/><figcaption class=\"wp-element-caption\">Fig. 11: External Mode settings in the coder options menu<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading37113_5d93d9-30, .wp-block-kadence-advancedheading.kt-adv-heading37113_5d93d9-30[data-kb-block=\"kb-adv-heading37113_5d93d9-30\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading37113_5d93d9-30 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading37113_5d93d9-30[data-kb-block=\"kb-adv-heading37113_5d93d9-30\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading37113_5d93d9-30 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading37113_5d93d9-30[data-kb-block=\"kb-adv-heading37113_5d93d9-30\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h3 class=\"kt-adv-heading37113_5d93d9-30 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading37113_5d93d9-30\"><span class=\"ez-toc-section\" id=\"Deployment-of-the-control-implementation\"><\/span>Deployment of the control implementation<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"has--font-size\">The following steps outline how to compile and load the control algorithms onto the B-Board PRO. More information on how to program and operate imperix controllers is provided in <a href=\"https:\/\/imperix.com\/doc\/help\/programming-imperix-controllers\" type=\"link\" id=\"https:\/\/imperix.com\/doc\/help\/programming-imperix-controllers\">PN138<\/a>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The subsystem containing the control side must also be enabled for code generation. Right-click on the controller subsystem and select subsystem&#8211;&gt; execution. Then check &#8220;enable code generation&#8221;, as shown in Fig. 8.<\/li>\n\n\n\n<li>Open Coder \u2192 Coder Options, then choose \u201cimperix controller\u201d from the panel on the left (under the model name).<\/li>\n\n\n\n<li>The &#8220;General&#8221; tab can keep the default settings.<\/li>\n\n\n\n<li>Go to the &#8220;Target&#8221; tab and select &#8220;Imperix Gen 3 Controller&#8221;. In case  B-Box 4 is used, then &#8220;Imperix Gen 4 Controller&#8221; should be selected.<\/li>\n\n\n\n<li>Go to the &#8221; Scheduling&#8221; tab:\n<ul class=\"wp-block-list\">\n<li>Select &#8220;single-tasking&#8221; under Tasking mode<\/li>\n\n\n\n<li>The discretization step size must be set equal to the control time period, as shown in Fig. 12.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Click &#8220;Build&#8221;<\/strong>. Imperix Cockpit should open up automatically.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"622\" height=\"542\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-97.png\" alt=\"\" class=\"wp-image-37859\" style=\"width:367px;height:auto\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-97.png 622w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-97-300x261.png 300w\" sizes=\"auto, (max-width: 622px) 100vw, 622px\" \/><figcaption class=\"wp-element-caption\">Fig. 12: Scheduling settings in the coder options menu for imperix controllers<\/figcaption><\/figure>\n<\/div>\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading37113_96a48d-33, .wp-block-kadence-advancedheading.kt-adv-heading37113_96a48d-33[data-kb-block=\"kb-adv-heading37113_96a48d-33\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading37113_96a48d-33 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading37113_96a48d-33[data-kb-block=\"kb-adv-heading37113_96a48d-33\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading37113_96a48d-33 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading37113_96a48d-33[data-kb-block=\"kb-adv-heading37113_96a48d-33\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h3 class=\"kt-adv-heading37113_96a48d-33 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading37113_96a48d-33\"><span class=\"ez-toc-section\" id=\"Testing-and-validation\"><\/span>Testing and validation<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The results of <strong>offline simulation <\/strong>in PLECS as well as <strong>HIL simulation<\/strong> are captured and presented in Fig. 13. In this example, the switching frequency of the buck converter is set to 10kHz. With a fixed discrete time step of 2\u00b5s, the RT Box executes the model at 500 kHz (f<sub>s<\/sub>), which is sufficient to resolve dynamics around the buck&#8217;s switching frequency. However, it cannot represent any dynamics above the Nyquist limit of 250 kHz. In practice, the usable frequency range is typically much lower, in the order of 50 kHz (\u2248 f<sub>s<\/sub>\/10). As a result, phenomena faster than this are not captured realistically.<\/p>\n\n\n\n<p>The following can be observed:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>By keeping the electrical and control parameters identical in both offline and HIL simulations, and by accurately modeling delays in the offline model, both results show an essentially identical response to a step change in the output current reference. The offline and real-time HIL waveforms align closely, as also seen in the zoomed settling-time view.<\/li>\n\n\n\n<li>The reference step is applied at 10ms and, as expected, the controller response is visible at the next interrupt execution (i.e., after 100\u00b5s). This behavior is consistent for both offline and HIL simulations, as shown in Fig. 14. Sampling, actuation, and response timing are all observed to be coherent.<\/li>\n<\/ul>\n\n\n<style>.kb-image37113_cb31bf-f4 .kb-image-has-overlay:after{opacity:0.3;}<\/style>\n<div class=\"wp-block-kadence-image kb-image37113_cb31bf-f4\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"400\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/fig_1_v3.png\" alt=\"\" class=\"kb-img wp-image-43010\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/fig_1_v3.png 900w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/fig_1_v3-300x133.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/fig_1_v3-768x341.png 768w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><figcaption>Fig. 13: Step response comparison between offline simulation and HIL simulation<\/figcaption><\/figure><\/div>\n\n\n<style>.kb-image37113_543ed0-bb .kb-image-has-overlay:after{opacity:0.3;}<\/style>\n<div class=\"wp-block-kadence-image kb-image37113_543ed0-bb\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"267\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/fig_2_v3.png\" alt=\"\" class=\"kb-img wp-image-43011\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/fig_2_v3.png 600w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/fig_2_v3-300x134.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><figcaption>Fig. 14: Zoomed view of step transition<\/figcaption><\/figure><\/div>\n\n\n\n<p>If the model is complex and overruns occur during real-time deployment, iterative adjustments to plant fidelity and time steps may be necessary to balance real-time constraints with test objectives.<\/p>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">The success of HIL setup depends less on maximum model detail and more on well-defined interfaces, including clear signal conventions, correct scaling and limits, and a plant time step that meets real-time constraints with a margin.<\/div>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading37113_0f0e76-c4, .wp-block-kadence-advancedheading.kt-adv-heading37113_0f0e76-c4[data-kb-block=\"kb-adv-heading37113_0f0e76-c4\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading37113_0f0e76-c4 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading37113_0f0e76-c4[data-kb-block=\"kb-adv-heading37113_0f0e76-c4\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading37113_0f0e76-c4 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading37113_0f0e76-c4[data-kb-block=\"kb-adv-heading37113_0f0e76-c4\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h2 class=\"kt-adv-heading37113_0f0e76-c4 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading37113_0f0e76-c4\"><span class=\"ez-toc-section\" id=\"Getting-started-recommendations\"><\/span>Getting-started recommendations<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n<style>.wp-block-kadence-iconlist.kt-svg-icon-list-items37113_477ab1-09:not(.this-stops-third-party-issues){margin-top:0px;margin-bottom:0px;}.wp-block-kadence-iconlist.kt-svg-icon-list-items37113_477ab1-09 ul.kt-svg-icon-list:not(.this-prevents-issues):not(.this-stops-third-party-issues):not(.tijsloc){margin-top:0px;margin-right:0px;margin-bottom:var(--global-kb-spacing-sm, 1.5rem);margin-left:0px;}.wp-block-kadence-iconlist.kt-svg-icon-list-items37113_477ab1-09 ul.kt-svg-icon-list{grid-row-gap:5px;}.wp-block-kadence-iconlist.kt-svg-icon-list-items37113_477ab1-09 ul.kt-svg-icon-list .kt-svg-icon-list-item-wrap .kt-svg-icon-list-single{margin-right:10px;}.kt-svg-icon-list-items37113_477ab1-09 ul.kt-svg-icon-list .kt-svg-icon-list-level-0 .kt-svg-icon-list-single svg{font-size:20px;}<\/style>\n<div class=\"wp-block-kadence-iconlist kt-svg-icon-list-items kt-svg-icon-list-items37113_477ab1-09 kt-svg-icon-list-columns-1 alignnone\"><ul class=\"kt-svg-icon-list\"><style>.kt-svg-icon-list-item-37113_49120e-22 .kt-svg-icon-list-text mark.kt-highlight{background-color:unset;font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}<\/style>\n<li class=\"wp-block-kadence-listitem kt-svg-icon-list-item-wrap kt-svg-icon-list-item-37113_49120e-22\"><span class=\"kb-svg-icon-wrap kb-svg-icon-fe_alertCircle kt-svg-icon-list-single\"><svg viewBox=\"0 0 24 24\"  fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"  aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"16\"\/><\/svg><\/span><span class=\"kt-svg-icon-list-text\">Starting with a simplified plant model establishes a known-good baseline where the fundamental closed-loop connection, signal flow, and I\/O configuration can be verified with minimal complexity. Model complexity can then be easily augmented afterward.<\/span><\/li>\n\n\n<style>.kt-svg-icon-list-item-37113_c715d5-ad .kt-svg-icon-list-text mark.kt-highlight{background-color:unset;font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}<\/style>\n<li class=\"wp-block-kadence-listitem kt-svg-icon-list-item-wrap kt-svg-icon-list-item-37113_c715d5-ad\"><span class=\"kb-svg-icon-wrap kb-svg-icon-fe_alertCircle kt-svg-icon-list-single\"><svg viewBox=\"0 0 24 24\"  fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"  aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"16\"\/><\/svg><\/span><span class=\"kt-svg-icon-list-text\">Validating the I\/O scaling with an offline test is recommended, as this is a frequent source of errors. If ADC\/DAC channels don&#8217;t work as expected after wiring, simple test patterns (DC levels, ramps) can be used before using them in the control loop.<\/span><\/li>\n\n\n<style>.kt-svg-icon-list-item-37113_777b9d-09 .kt-svg-icon-list-text mark.kt-highlight{background-color:unset;font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}<\/style>\n<li class=\"wp-block-kadence-listitem kt-svg-icon-list-item-wrap kt-svg-icon-list-item-37113_777b9d-09\"><span class=\"kb-svg-icon-wrap kb-svg-icon-fe_alertCircle kt-svg-icon-list-single\"><svg viewBox=\"0 0 24 24\"  fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"  aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"16\"\/><\/svg><\/span><span class=\"kt-svg-icon-list-text\">Sporadic overruns might look similar to control bugs. Monitoring for overruns in the real-time simulator is recommended. Increasing the time-step may be necessary in extreme cases.<\/span><\/li>\n\n\n<style>.kt-svg-icon-list-item-37113_8f66fc-ed .kt-svg-icon-list-text mark.kt-highlight{background-color:unset;font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}<\/style>\n<li class=\"wp-block-kadence-listitem kt-svg-icon-list-item-wrap kt-svg-icon-list-item-37113_8f66fc-ed\"><span class=\"kb-svg-icon-wrap kb-svg-icon-fe_alertCircle kt-svg-icon-list-single\"><svg viewBox=\"0 0 24 24\"  fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"  aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"16\"\/><\/svg><\/span><span class=\"kt-svg-icon-list-text\">Model fidelity should be balanced with computational feasibility. Maximizing the I\/O update rate often leads to superior results when compared to a &#8220;maximized&#8221; model complexity.<\/span><\/li>\n<\/ul><\/div>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading37113_45741a-56, .wp-block-kadence-advancedheading.kt-adv-heading37113_45741a-56[data-kb-block=\"kb-adv-heading37113_45741a-56\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading37113_45741a-56 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading37113_45741a-56[data-kb-block=\"kb-adv-heading37113_45741a-56\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading37113_45741a-56 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading37113_45741a-56[data-kb-block=\"kb-adv-heading37113_45741a-56\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h2 class=\"kt-adv-heading37113_45741a-56 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading37113_45741a-56\"><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span>Conclusion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The workflow utilizing the imperix B-Board PRO and Plexim\u2019s RT Box demonstrates seamless compatibility between the controller and the real-time simulator. Comparative results reveal equivalent delays and dynamic responses across both offline and HIL simulation environments, confirming the correct interaction between the devices.<br><br>These findings suggest that HIL simulation can be an attractive alternative to offline simulation, offering increased realism, when the perspective is set on the control hardware testing. In such a case, the ability to conduct testing early along the development cycle provides benefits that outweigh the limited accuracy of the model (such as a restricted frequency range or disregarded common-mode behavior). That said, more generally, HIL shall rather be seen as a complement than a replacement to offline simulation. Notably, HIL should not be considered blindly as a method for achieving higher modelling accuracy, which it isn\u2019t.<br><br>When opposed to experimental prototyping, HIL simulation is an excellent framework for executing tests that are either hazardous or difficult to replicate in a laboratory setting. It is also often faster and less cumbersome than physical testing. However, thermal and EMI-related phenomena typically remain outside the scope of current HIL capabilities. Additionally, the cost-effectiveness of HIL versus full-scale prototyping remains a subject for further debate.<\/p>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading37113_925812-ab, .wp-block-kadence-advancedheading.kt-adv-heading37113_925812-ab[data-kb-block=\"kb-adv-heading37113_925812-ab\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading37113_925812-ab mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading37113_925812-ab[data-kb-block=\"kb-adv-heading37113_925812-ab\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading37113_925812-ab img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading37113_925812-ab[data-kb-block=\"kb-adv-heading37113_925812-ab\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h2 class=\"kt-adv-heading37113_925812-ab wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading37113_925812-ab\"><span class=\"ez-toc-section\" id=\"To-go-further-from-here%E2%80%A6\"><\/span>To go further from here&#8230;<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The next step could be to implement the buck converter physically and test the controller&#8217;s performance. Refer to <a href=\"https:\/\/imperix.com\/doc\/help\/how-to-build-a-buck-converter?currentThread=power-electronic-bundle\">PN119<\/a> to understand how to build a buck converter from scratch using imperix <a href=\"https:\/\/imperix.com\/products\/power-inverter-modules\/\">half-bridge modules<\/a> and <a href=\"https:\/\/imperix.com\/products\/power\/voltage-sensors\/\">sensors<\/a>. The following resources can also be helpful:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/imperix.com\/doc\/implementation\/step-down-buck-converter?currentThread=current-controlled-buck-converter\">TN100: Step-down buck converter<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/imperix.com\/doc\/implementation\/c-hil-simulation-scenario-with-opal-rt-simulators\">TN180: C-HIL simulation scenario with OPAL-RT simulators <\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/imperix.com\/doc\/implementation\/interleaved-buck-converter?currentThread=fast-electric-vehicle-charger-with-intermediate-energy-storage\">TN122: Interleaved buck converter current control<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/imperix.com\/doc\/implementation\/buck-boost-converter\">TN102: Buck-boost converter<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/imperix.com\/doc\/help\/basic-examples-using-plecs?currentThread=getting-started-with-plecs\">PN151: Basic examples for ACG SDK on PLECS<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>This technical note introduces the basic principles of HIL simulation and provides practical considerations for the implementation of a controller-HIL setup using the imperix B\u2011Board&#8230;<\/p>\n","protected":false},"author":29,"featured_media":43156,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[4],"tags":[23],"software-environments":[104],"provided-results":[109,107],"related-products":[50,31],"guidedreadings":[],"tutorials":[],"user-manuals":[],"coauthors":[153],"class_list":["post-37113","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-implementation","tag-hil-simulation","software-environments-plecs","provided-results-hil","provided-results-simulation","related-products-acg-sdk","related-products-b-board-pro"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>HIL simulation using a B-Board PRO - imperix<\/title>\n<meta name=\"description\" content=\"The page introduces HIL simulation and provides an implementation example using the imperix B-Board PRO and the Plexim RT-Box.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"HIL simulation using a B-Board PRO - imperix\" \/>\n<meta property=\"og:description\" content=\"The page introduces HIL simulation and provides an implementation example using the imperix B-Board PRO and the Plexim RT-Box.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro\" \/>\n<meta property=\"og:site_name\" content=\"imperix\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-10T10:00:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-19T15:52:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/feature_image_v2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"500\" \/>\n\t<meta property=\"og:image:height\" content=\"334\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Adeel Jamal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Adeel Jamal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"18 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/hil-simulation-using-a-b-board-pro#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/hil-simulation-using-a-b-board-pro\"},\"author\":{\"name\":\"Adeel Jamal\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/person\\\/dadae0452988b0ab55c2f714a93d24b9\"},\"headline\":\"HIL simulation using a B-Board PRO\",\"datePublished\":\"2026-02-10T10:00:11+00:00\",\"dateModified\":\"2026-02-19T15:52:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/hil-simulation-using-a-b-board-pro\"},\"wordCount\":3397,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/hil-simulation-using-a-b-board-pro#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/feature_image_v2.png\",\"keywords\":[\"HIL simulation\"],\"articleSection\":[\"Technical notes\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/hil-simulation-using-a-b-board-pro#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/hil-simulation-using-a-b-board-pro\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/hil-simulation-using-a-b-board-pro\",\"name\":\"HIL simulation using a B-Board PRO - imperix\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/hil-simulation-using-a-b-board-pro#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/hil-simulation-using-a-b-board-pro#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/feature_image_v2.png\",\"datePublished\":\"2026-02-10T10:00:11+00:00\",\"dateModified\":\"2026-02-19T15:52:03+00:00\",\"description\":\"The page introduces HIL simulation and provides an implementation example using the imperix B-Board PRO and the Plexim RT-Box.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/hil-simulation-using-a-b-board-pro#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/hil-simulation-using-a-b-board-pro\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/hil-simulation-using-a-b-board-pro#primaryimage\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/feature_image_v2.png\",\"contentUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/feature_image_v2.png\",\"width\":500,\"height\":334},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/hil-simulation-using-a-b-board-pro#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Knowledge base\",\"item\":\"https:\\\/\\\/imperix.com\\\/doc\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Technical notes\",\"item\":\"https:\\\/\\\/imperix.com\\\/doc\\\/category\\\/implementation\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"HIL simulation using a B-Board PRO\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#website\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/\",\"name\":\"imperix\",\"description\":\"power electronics\",\"publisher\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/imperix.com\\\/doc\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\",\"name\":\"imperix\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/imperix_logo.png\",\"contentUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/imperix_logo.png\",\"width\":350,\"height\":120,\"caption\":\"imperix\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/person\\\/dadae0452988b0ab55c2f714a93d24b9\",\"name\":\"Adeel Jamal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b2123faeff454e8f7d9966142bddb5dc3a29288bfb3571afd8ecf52be937c100?s=96&d=mm&r=ge2117152862b116d8f386a69dbc1b0ff\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b2123faeff454e8f7d9966142bddb5dc3a29288bfb3571afd8ecf52be937c100?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b2123faeff454e8f7d9966142bddb5dc3a29288bfb3571afd8ecf52be937c100?s=96&d=mm&r=g\",\"caption\":\"Adeel Jamal\"},\"description\":\"Adeel Jamal is consultant of power electronics and rapid control prototyping. He worked as a Research Associate in the Institute of Power Electronics and Control of Drives at Technical University of Darmstadt until the end of 2024. He received his B.E. in Electrical Engineering from the National University of Sciences and Technology, Islamabad, in 2014, and his M.Sc. in Power Engineering from the Technical University of Munich in 2018. He completed his Ph.D. research work in 2024. His research focuses on advanced control and modulation techniques for grid-tied and multi-level converters, with an emphasis on minimizing total harmonic distortion.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/adeel-j-siddiqui\\\/\"],\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/author\\\/jamal\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"HIL simulation using a B-Board PRO - imperix","description":"The page introduces HIL simulation and provides an implementation example using the imperix B-Board PRO and the Plexim RT-Box.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro","og_locale":"en_US","og_type":"article","og_title":"HIL simulation using a B-Board PRO - imperix","og_description":"The page introduces HIL simulation and provides an implementation example using the imperix B-Board PRO and the Plexim RT-Box.","og_url":"https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro","og_site_name":"imperix","article_published_time":"2026-02-10T10:00:11+00:00","article_modified_time":"2026-02-19T15:52:03+00:00","og_image":[{"width":500,"height":334,"url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/feature_image_v2.png","type":"image\/png"}],"author":"Adeel Jamal","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Adeel Jamal","Est. reading time":"18 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro#article","isPartOf":{"@id":"https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro"},"author":{"name":"Adeel Jamal","@id":"https:\/\/imperix.com\/doc\/#\/schema\/person\/dadae0452988b0ab55c2f714a93d24b9"},"headline":"HIL simulation using a B-Board PRO","datePublished":"2026-02-10T10:00:11+00:00","dateModified":"2026-02-19T15:52:03+00:00","mainEntityOfPage":{"@id":"https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro"},"wordCount":3397,"commentCount":0,"publisher":{"@id":"https:\/\/imperix.com\/doc\/#organization"},"image":{"@id":"https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro#primaryimage"},"thumbnailUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/feature_image_v2.png","keywords":["HIL simulation"],"articleSection":["Technical notes"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro#respond"]}]},{"@type":"WebPage","@id":"https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro","url":"https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro","name":"HIL simulation using a B-Board PRO - imperix","isPartOf":{"@id":"https:\/\/imperix.com\/doc\/#website"},"primaryImageOfPage":{"@id":"https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro#primaryimage"},"image":{"@id":"https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro#primaryimage"},"thumbnailUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/feature_image_v2.png","datePublished":"2026-02-10T10:00:11+00:00","dateModified":"2026-02-19T15:52:03+00:00","description":"The page introduces HIL simulation and provides an implementation example using the imperix B-Board PRO and the Plexim RT-Box.","breadcrumb":{"@id":"https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro#primaryimage","url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/feature_image_v2.png","contentUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/02\/feature_image_v2.png","width":500,"height":334},{"@type":"BreadcrumbList","@id":"https:\/\/imperix.com\/doc\/implementation\/hil-simulation-using-a-b-board-pro#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Knowledge base","item":"https:\/\/imperix.com\/doc\/"},{"@type":"ListItem","position":2,"name":"Technical notes","item":"https:\/\/imperix.com\/doc\/category\/implementation"},{"@type":"ListItem","position":3,"name":"HIL simulation using a B-Board PRO"}]},{"@type":"WebSite","@id":"https:\/\/imperix.com\/doc\/#website","url":"https:\/\/imperix.com\/doc\/","name":"imperix","description":"power electronics","publisher":{"@id":"https:\/\/imperix.com\/doc\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/imperix.com\/doc\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/imperix.com\/doc\/#organization","name":"imperix","url":"https:\/\/imperix.com\/doc\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/imperix.com\/doc\/#\/schema\/logo\/image\/","url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/imperix_logo.png","contentUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/imperix_logo.png","width":350,"height":120,"caption":"imperix"},"image":{"@id":"https:\/\/imperix.com\/doc\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/imperix.com\/doc\/#\/schema\/person\/dadae0452988b0ab55c2f714a93d24b9","name":"Adeel Jamal","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/b2123faeff454e8f7d9966142bddb5dc3a29288bfb3571afd8ecf52be937c100?s=96&d=mm&r=ge2117152862b116d8f386a69dbc1b0ff","url":"https:\/\/secure.gravatar.com\/avatar\/b2123faeff454e8f7d9966142bddb5dc3a29288bfb3571afd8ecf52be937c100?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b2123faeff454e8f7d9966142bddb5dc3a29288bfb3571afd8ecf52be937c100?s=96&d=mm&r=g","caption":"Adeel Jamal"},"description":"Adeel Jamal is consultant of power electronics and rapid control prototyping. He worked as a Research Associate in the Institute of Power Electronics and Control of Drives at Technical University of Darmstadt until the end of 2024. He received his B.E. in Electrical Engineering from the National University of Sciences and Technology, Islamabad, in 2014, and his M.Sc. in Power Engineering from the Technical University of Munich in 2018. He completed his Ph.D. research work in 2024. His research focuses on advanced control and modulation techniques for grid-tied and multi-level converters, with an emphasis on minimizing total harmonic distortion.","sameAs":["https:\/\/www.linkedin.com\/in\/adeel-j-siddiqui\/"],"url":"https:\/\/imperix.com\/doc\/author\/jamal"}]}},"_links":{"self":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/37113","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/users\/29"}],"replies":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/comments?post=37113"}],"version-history":[{"count":245,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/37113\/revisions"}],"predecessor-version":[{"id":43139,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/37113\/revisions\/43139"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/media\/43156"}],"wp:attachment":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/media?parent=37113"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/categories?post=37113"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/tags?post=37113"},{"taxonomy":"software-environments","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/software-environments?post=37113"},{"taxonomy":"provided-results","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/provided-results?post=37113"},{"taxonomy":"related-products","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/related-products?post=37113"},{"taxonomy":"guidedreadings","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/guidedreadings?post=37113"},{"taxonomy":"tutorials","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/tutorials?post=37113"},{"taxonomy":"user-manuals","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/user-manuals?post=37113"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/coauthors?post=37113"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}