CPP SDK
converter control software development environment
When compared to using the ACG SDK, this approach also offers superior performance and flexibility over code that is automatically generated using Simulink or PLECS.
C/C++ control development toolsuite for power electronics
The CPP SDK aims at facilitating control software development and implementation for power inverters and all sorts of converter topologies. It contains everything needed to enable truly rapid prototyping of control algorithms for power electronic systems.
Volume pricing
When multiple licenses are related to the same customer, degressive pricing applies, according to the overall purchase history. The table below shows the proposed volume discounts:
Volume discounts
2nd | 41% | 6th | 57% |
3rd | 49% | 7th | 59% |
4th | 53% | 8th | 60% |
5th | 55% | 9th | 61% |
PRODUCTION LICENSES
All controllers can be flashed up to 20 times with this free-of-charge license. This authorizes firmware upgrades during the entire system lifetime in production environments.
Licensing policy
R&D LICENSES
These licenses allow unlimited access to the controllers. All software licenses are:
- Target-locked (i.e. tied to the controller unit)
- Lifetime (no renewal fees, free software updates)
- Usable on an unlimited number of computers
In multi-controllers configurations (B-Box RCP or B-Board PRO only), only the master unit must be licensed. The master is the controller hosting the user-defined CPU program.
PRODUCTION LICENSES
All controllers can be flashed up to 20 times with these free-of-charge licenses. This authorizes firmware upgrades during the entire system lifetime in production environments.
A fully integrated development environment
Once the code is ready, a simple click on the launch button compiles the code, sends it to the target through Ethernet, and starts the execution.
Power converters programming in c/C++
With the CPP SDK, users have direct access to the Application Programming Interface (API) provided by BBOS, imperix’s real-time operating system. This allows easily managing and controlling all FPGA-based peripherals.
Other user functions are also provided, such as controllers, transformations and PLLs, which allow configuring and implementing control algorithms with a minimum of code, maximum readability, and the best possible real-time performance.
Initialization
In this example, the initialization function contains the configuration of the interrupt mapped to a 20 kHz clock, two ADCS, a PWM with dead-time, and a PID controller.
Interrupt
In this interrupt, analog measurements are retrieved, a PLL is run for grid synchronization, and appropriate duty-cycles are applied to the PWM modulators.
Straightforward control implementation
HOW TO DEVELOP AND EXECUTE CONTROL SOFTWARE IN C/C++
1. Configure the environment
The CPP SDK provides a ready-to-use template to use as a starting point. Import it into your workspace and you are ready to code! Do you want to see things for real first, download our software and try it for free!
Write your C or C++ control code in the provided template file. Looking for a helper or library function, just hit CTRL+Space. You get then a list of all available library and OS functions.
2. Write your code
3. Get inspired
A single click on the launch button and the code is compiled and executed on the target within seconds.
Alternatively, if you want the B-Box or B-Board to be able to boot in standalone, you can save your compiled project to flash memory. This way, the device automatically runs your code at startup and is fully autonomous.
4. Compile and launch your code
5. Monitor and tune your variables
A dedicated software, Imperix Cockpit, is part of imperix’s software suites. It offers test, debugging and monitoring features, tailored for power electronic applications. Using it, you will be able to plot any variable, tune your controllers online, take oscilloscope-like shots, generate transients on your setpoints, etc.
Straightforward control implementation
HOW TO DEVELOP AND EXECUTE CONTROL SOFTWARE IN C/C++
1. Configure the environment
The CPP SDK provides a ready-to-use template to use as a starting point. Import it into your workspace and you are ready to code! Do you want to see things for real first, download our software and try it for free!
2. Write converter control code
Write your C or C++ control code in the provided template file. Looking for a helper or library function, just hit CTRL+Space. You get then a list of all available library and OS functions.
3. Get inspired
At any time, browse and download one of the code examples, for getting some shortcuts in programming. You can also access and freely edit the open-source code libraries provided in the API folder.
4. Compile and launch your code
A single click on the launch button and the code is compiled and executed on the target within seconds.
Alternatively, if you want the B-Box or B-Board to be able to boot in standalone, you can save your compiled project to flash memory. This way, the device automatically runs your code at startup and is fully autonomous.
5. Monitor and tune your variables
A dedicated software, Imperix Cockpit, is part of imperix’s software suites. It offers test, debugging and monitoring features, tailored for power electronic applications. Using it, you will be able to plot any variable, tune your controllers online, take oscilloscope-like shots, generate transients on your setpoints, etc.
LEARN MORE ABOUT…
Programming imperix controllers with the CPP SDK is not limited to developing C/++ code for the main processing core. The suite also comprises a dedicated debug and monitoring software, FPGA programming options, and much more!
Imperix Cockpit
Cockpit is imperix's real-time monitoring tool for B-Box and B-Board. This computer software allow viewing, editing and logging all control variables. Furthermore, Cockpit facilitates the configuration of the controllers.
- Real-time parameter tuning
- Data logging and visualization
To see how to extract impactful experimental results, get more insight on Cockpit.
FPGA programming
For the advanced cases when part of the control must be executed on FPGA, the firmware can be freely edited. Users only need to instantiate one imperix IP. Besides, all FPGA resources and I/Os can be accessed with complete freedom.
- Multi-rate control implementation
- Peripheral communication extension
To see how to extend the capabilities of imperix controllers, read more on FPGA programming.
Firmware technology
The acclaimed ease of use of imperix controllers is made possible by a dedicated firmware architecture. This also guarantees the portability of the user software as well as the advanced performance of the networking.
- Long-term code portability
- Transparent networking
To learn more about how the control hardware operates, see more details on our firmware.
Browse OUR Software solutions
In addition to C/C++ programming using the CPP SDK, imperix supports other programming workflows. Notably, the ACG SDK supports automated code generation from Matlab Simulink and Plexim PLECS.
Want to know more?
For all questions related to our software, feel free to get in touch with our technical team. We're here to help! Online demos can also be organized upon request.
Alternatively, you can always download and install the software. As our licenses are hardware-related, our software is essentially unrestricted and all features can be tested free of charge.