Simscape Half-Bridge import error using ee_importDeviceParameters with Infineon IM828-XCC PLECS XML files
Show older comments
Hi everyone,
I am trying to import the thermal and switching parameters of Infineon's IM828-XCC IPM module into a Simscape Electrical Half-Bridge (Idealized) block using the ee_importDeviceParameters function, following the workflow shown in the "Import Infineon XML Datasheets into Simscape Half-Bridge Block" example.
While the function works as expected with the MATLAB example XML files, executing it with the official Infineon PLECS XML files for the IM828-XCC throws the following error:
Error using ee_importDeviceParameters (line 23)
Missing minimum value and maximum value of either Gate (on) resistance or Gate (off) resistance in XML file. Use a different XML file.
Does anyone know how to format the XML structure so ee_importDeviceParameters parses it correctly, or if there is a recommended workaround/script to map standard PLECS XML parameters directly into Simscape block parameters?
Any guidance would be greatly appreciated.
1 Comment
Answer from AI:
This error occurs because the ee_importDeviceParameters function expects a specific XML format natively compiled by Infineon for MathWorks tools. Standard PLECS XML files contain 3D lookup tables mapped differently (or omit limits), causing the parser to look for explicit minimum and maximum gate resistance boundaries (Gate (on) resistance and Gate (off) resistance) that are missing or named differently. [1, 2, 3]
Here is how to resolve this formatting conflict and map the parameters successfully.
Solution 1: Format the XML File Structure
To satisfy the parser, you must manually inject the gate resistance limits into your .xml file so that ee_importDeviceParameters can validate the GateResistanceOn and GateResistanceOff inputs you pass in MATLAB. [1]
- Open the IM828-XCC PLECS XML file in any text editor.
- Locate the main metadata or device specification tags (usually under something like <parameters> or a general semiconductor definition section).
- Insert or adjust the gate resistance parameter boundaries following this exact naming convention structure:
xml
<parameter name="Gate (on) resistance minimum" value="X"/>
<parameter name="Gate (on) resistance maximum" value="Y"/>
<parameter name="Gate (off) resistance minimum" value="X"/>
<parameter name="Gate (off) resistance maximum" value="Y"/>
(Replace X and Y with the absolute minimum and maximum allowable gate resistances derived from the device datasheet).
Once saved, ensure your parsed values match the specified range:
matlab
% Make sure these fall safely within your added XML X and Y boundaries
ee_importDeviceParameters( "IM828_XCC.xml", "infineon", blockPath,...
'GateResistanceOn',5,'GateResistanceOff', 10);
Solution 2: Recommended Workaround Script (Bypassing the Parser)
Because PLECS XML structures store tables under variables like _on and _off losses across variables (\(I_c, V_{cc}, T_j, R_g\)), a more robust workaround is to parse the raw PLECS lookup tables yourself and directly assign them to the Simscape block mask.
The following utility script extracts the lookup matrices from a standard PLECS file and assigns them straight to a Simscape Half-Bridge (Idealized, Switching) block: [1]
matlab
% 1. Read raw XML struct
plecsData = xml2struct('IM828_XCC_plecs.xml');
% 2. Extract Turn-on, Turn-off, and Diode recovery matrices from PLECS nodes
% (Adapt the extraction paths below depending on your exact XML file structure)
turnOnLoss_Eon = plecsData.thermal.switch.turnOn.table.data;
turnOffLoss_Eoff = plecsData.thermal.switch.turnOff.table.data;
diodeLoss_Erec = plecsData.thermal.diode.turnOff.table.data;
% Vector variables (Currents, Voltages, Temperatures) used as lookup axes
current_vec = plecsData.thermal.switch.turnOn.table.axis1;
voltage_vec = plecsData.thermal.switch.turnOn.table.axis2;
temp_vec = plecsData.thermal.switch.turnOn.table.axis3;
% 3. Directly assign variables to the Simscape Half-Bridge block variables
blockPath = 'YourModelName/Half-Bridge (Ideal, Switching)';
set_param(blockPath, 'switching_loss_v_vec', mat2str(voltage_vec));
set_param(blockPath, 'switching_loss_i_vec', mat2str(current_vec));
set_param(blockPath, 'switching_loss_t_vec', mat2str(temp_vec));
set_param(blockPath, 'e_on_mat', mat2str(turnOnLoss_Eon));
set_param(blockPath, 'e_off_mat', mat2str(turnOffLoss_Eoff));
set_param(blockPath, 'e_rec_mat', mat2str(diodeLoss_Erec));
Solution 3: Obtain a Native Simscape Part Collection XML
If editing XML profiles manually is error-prone for your workflow, you can bypass PLECS files entirely:
- Check the built-in Simscape Electrical Part Collection by double-clicking your Half-Bridge block and launching the Block Parameterization Manager. [1, 2]
- If the IM828-XCC module is not yet indexed, submit the datasheet to the official Simscape Parameterization Request Form to have MathWorks engineer a natively compatible configuration file for you. [1, 2]
If this doesn't help, contact support:
Answers (1)
Mohammed Shaheen
on 22 Sep 2026 at 6:48
0 votes
Hi Mercedes,
The ee_importDeviceParameters function supports specific Infineon XML data formats. For an IGBT-based Half-Bridge, the function requires the switch-on and switch-off gate resistances, and it also validates these values against the minimum and maximum gate-resistance limits available in the XML file.
From your error I can see that function is unable to locate the expected minimum and maximum gate-resistance information from the IM828-XCC XML file. This indicates that the PLECS XML uses a different structure from the Infineon XML format supported by the importer.
There is no recommendation or mention in the MathWorks documentation for modifying the XML field names because the importer also maps switching-loss tables, temperature and thermal-network parameters.
As a immediate workaround, you can manually parameterize the Half-Bridge block using the electrical -loss and thermal data from datasheet.
For more information I recommend you to contact MathWorks Technical Support: https://www.mathworks.com/support/contact_us.html
I hope this helps.
Thanks,
Shaheen.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!