Singular Value Decomposition Reduced Order Model for Battery Module
Hello and welcome to this video on the Singular Value Decomposition (SVD) Reduced Order Model using Fluent and TwinBuilder. We have a battery module here with 12 cells, featuring a cold plate at the bottom, which will be used for training a model.
Simulation Setup
Initially, a flow-only simulation was run to obtain a flow field simulation distribution for the cold plate. The battery model uses CHD coupling, with dual heat transfer activated. The model includes:
- Active components
- Passive components
- Electrical contacts: negative and positive terminals
ROM Configuration
Moving forward into the Reduced Order Model (ROM), we will:
- Set both the energy source and the tab current to zero.
- Access the advanced options and navigate to the battery ROM toolkit.
- Switch the ROM type to SVD.
- Click on volume heat and use a filter to get the cells, adding them as a group.
- Add a tab current with 100 amps.
- For the exported temperature zone, add everything.
- Double the maximum time step size to 200.
After applying these settings, start the training by clicking on "run training." This process may take about half an hour. Once completed, a new directory named SVD is created. It is recommended to make a copy of this directory, naming it "SVD copy," for use in the TwinBuilder simulation.
TwinBuilder Simulation
In TwinBuilder:
- Open TwinBuilder and navigate to the TwinBuilder menu.
- Go to the toolkit and select SVD ROM identification.
- Increase the number of inputs to two: power and current.
- Tweak the relative error slightly and generate the model.
- Once completed, add a new component to the project components.
- Add constants for the energy source and current, and a square function to multiply the current by itself.
- Adjust the constant value to 120 for 10 watts per battery cell and increase the current to 100.
- Ensure all outputs are active in the output dialog.
- In the analysis section, create a Korea standard report with a rectangular plot.
- Set the analysis time to 30 seconds, with a minimum of 0 seconds and a maximum of 10 seconds.
- Export the results as a CSV file with uniform points, starting at 0 and stopping at 10,000, outputting every 200 seconds.
Fluent Post-Processing
Returning to Fluent:
- Select Models, then Battery Model, and go to the Advanced Options.
- Access the Battery ROM Toolkit and proceed to ROM Post Processing.
- Select a basis file, such as the one for Joule Heat, and a transient coefficient file, like the CSV file.
- Compute the results and edit the contour plot to display SVD temperature.
- Adjust the temperature range from 300 to 316 Kelvin and generate animation images.
For more information, please contact us at Ozen Engineering, Inc..
Singular Value Decomposition Reduced Order Model for Battery Module Hello and welcome to this video on singular value decomposition reduced order model using Fluent and TwinBuilder. We have a battery module here with 12 cells.
It has a cold plate at the bottom, and this will be used for training a model. As you can see here, I ran the flow-only simulation to get a flow field simulation distribution for the cold plate. We'll look at the battery model. So, it's using CHD coupling; dual heat transfer is activated.
Display the active components and then the passive components. In terms of electrical contacts, there is a negative and a positive terminal. And looking at moving forward into the ROM, we'll set all of these to zero. So, both the energy source as well as the tab current. So, apply that.
Then, we'll go to the advanced options, go to the battery ROM toolkit, switch the ROM type to SVD, click on volume heat, use a filter to get the cells. And here, I like to put the value in before using "add individually" or "add as groups." So, in this case, we'll add as a group.
Now it's there, we'll click on OK. We'll add a tab current with 100 amps. And for the exported temperature zone, in this case, I'll just add everything. Click on OK, and then maximum time step size, I'll double that to 200. I think I'll leave everything else the same.
Click apply, and then start the training by clicking on "run training." And this will go maybe almost about a half hour for me. I'm running 10 courses, so see you in a little bit. And we're back from the training runs.
So, you can see that the training runs indicate that the training runs have completed.
So, after this, there is a new directory that forms SVD; I recommend making a copy of that, putting that into a copy named "SVD copy." And so, this is the file directory that will be used for the TwinBuilder simulation.
Now, once we open up TwinBuilder, go to the TwinBuilder menu, go to the toolkit, go down to SVD ROM identification. There are two inputs, one is the power, one is the current, so we'll increase the number of inputs to two, and I'll tweak this relative error by a little bit.
And then do a generate; wait for that to complete. Once this is complete, we'll do "hit any key," click OK, and close here. And then, in the project components, there is a new component. Drag that in, zoom in a little bit. We'll add a constant for the energy source and a constant for the current.
Escape out of that, and we'll add a square function to take the current and multiply it by itself.
We'll do the connections; I'll adjust the value for the constant value, put 120, so we can have 10 watts per battery cell, and we'll increase the current also to 100. And then, go to the output dialog, make sure all the outputs are active, so all the check marks are there, and the defined output is there, so we're good.
Go into the analysis, results, Korea standard report, rectangular plot.
Select all of these ROM outputs, new report, close that, and go into analysis TR, do an edit on that, change the end time to 30 seconds, minimum time to analyze is 30 seconds, minimum time to 0 seconds, and the maximum to 10 seconds. Right-click on PR, tell it to analyze.
So, that took about less than two seconds, so right-click, do an export, and we'll export out a CSV file, but this time, we'll export uniform points. We'll do a start at zero, a stop at 10,000, and then every 200 seconds, we'll output. So, click on save.
And we could write out the TwinBuilder file here. That's something we could do. And I think we're done with the TwinBuilder. So, next, we'll go back to Fluent.
So, we'll go to Fluent, pick on Models, Battery Model, go to the Advanced Options, pick on the Battery ROM Toolkit, now we'll go to the ROM Post Processing, pick one of the basis files, so I'll pick the one for Joule Heat. Then, for the transient coefficient file, I'll pick on the CSV file.
And then, there should be snapshots every 200 seconds. Let's pick on the later ones. Do a compute. And then, once that appears to be done, we'll go to the contour plot.
To edit on that, this time, I switch instead of temperatures to temperature; I go to the user-defined memory, go to SVD temperature, keep auto-range on, save display. It looks like it's a little bit above 315, so I increase to 316, turn the auto-range off, save display one more time.
I can close that, I can go back over here, I can generate animation images from that contour. So, here, I click on create. And then, we wait for all of the images to be generated. There should be about 50 of them. The range for all of them will be 300 to 316 Kelvin.
Although the time is not incrementing in the title, it is doing this every 200 seconds. Please contact us at https://ozeninc.com/contact for more information.

