Simcenter STAR-CCM+ Modelling Fan Overspeed with a Proportional-Integral Controller

Simcenter STAR-CCM+ Simcenter STAR-CCM+ Virtual Reality Teamcenter Share Simcenter Cloud HPC Simcenter STAR-CCM+ Viewer Simcenter STAR-CCM+ Application Specific Solutions


This article demonstrates how to model an automotive fan where the mass flow rate incident on the fan causes its rotational speed to go beyond its rotational speed defined by the fan motor. For example, this occurs when a vehicle is travelling fast enough that the cooling fan is no longer injecting energy into the flow, but the flow is fast enough to cause the fan to free-wheel at speeds beyond what the fan motor provides.


Attachments: (212 MB)
To model a fan free-wheeling under the incident flow field, typically this could involve using Dynamic Fluid-Body Interaction (DFBI) whereby the motion is dictated by the forces applied to the body from the fluid. This involves modelling the simulation transiently, however, for certain applications this may not be desirable.
This following steady state method can be applied to multiple use cases, for example let's take an external aerodynamics or vehicle thermal management simulation as an example. Here we have a vehicle in a fluid domain, with an incident velocity acting on it. This incident velocity will interact with the cooling fans within the engine bay, with these fans normally having a prescribed rotational velocity. At slower speeds, the fans will spin at their prescribed velocity set by the fan motor, however at faster speeds, the incident mass flow rate on the fans will cause the fans to speed up, beyond their prescribed speed.
To capture this, DFBI can of course be used, however if you wish to model the physics in a steady state manner, another method is required. This is where the proportional-integral controller comes in. When a fan is free-wheeling, the torque acting on the fan blades is effectively zero, so we will be using our proportional-integral controller to modify the fan speed such that the torque is (almost) zero.

The Proportional-Integral Controller

A proportional-integral (PI) controller is a feedback control loop which calculates an error signal based off the difference between the current value and the desired target point. The equation for this feedback loop is as follows:
u(t): new input to the system based off the current errors
KP: proportional gain
Ki: integral gain
e(t): system error (target value - current value)



To begin the process, we can create a few parameters that will help us control the simulation. Five scalar parameters are needed and defined as follows:
  1. Fan Speed: the input rotational speed for the fan as defined by the motor. For this example, we use 2000 rpm.
  2. Inlet Velocity: the inlet boundary condition velocity for the tunnel domain.
  3. Integral Gain: the Ki from the above equation.
  4. Proportional Gain: the Kp from the above equation
  5. Target Torque Input: the value of torque we want the PI controller to maintain (in this example, we use 0.2 Nm).
The target torque input is set just above 0 to prevent any hysteresis loops forming based on the control logic.



With the parameters created, we can now build the reports needed to calculate the errors in the simulation.
  1. Actual Torque: a moment report for the fan blades that captures the torque acting on the fan.
  2. Target Torque: an expression report set to the parameter "Target Torque Input".
  3. Torque Error: Actual Torque report minus the Target Torque report, giving us the system error "e(t)".
  4. Torque Error Sum: A statistics report capturing the sum of the torque errors as the solver iterates. This creates
  5. Rotation Rate: a maximum value report tracking the rotation rate in the simulation.
In order to create the Torque Error Sum report, you will need to create a monitor from the Torque Error report. This monitor is fed into the Torque Error Sum report. Monitors tracking the actual torque and rotation rate are created for visualisation purposes.


The PI Controller Field Function

The "New_Rotation" field function implements our PI controller based off our proportional and integral gains, as well as the outputs from our reports. The field function is defined as follows:
${Iteration} < 50 ? ${Fan Speed} : (${Actual Torque} < 0 ? ${Fan Speed} : ${Proportional Gain}*${Torque Error}+${Integral Gain}*${Torque Error Sum})

In short, the logic applied here is to apply the user-defined rotational speed for the first 50 iterations, allowing the fan torque to stabilise. Once the fan torque is stable within those 50 iterations, the field function will check to see if the torque is above or below 0. If the torque is below 0, use the user-defined rotational speed as the fan is driving the fluid. If the torque is above 0, use the PI controller to determine the free-wheeling rotational speed.
The reason we set the target torque to just above 0 (0.2 Nm in this case), is so that the torque doesn't drop just below 0 and then the fan speed switches suddenly from the PI controller to the fixed fan speed.

Setting the Physics

Finally, you'll need to create a rotating reference frame and assign the rotation rate to be the "New_Rotation" field function. Then, set this reference frame as the motion specification for your desired region. In this example sim file, the MRF region has the rotating reference frame assigned to it.
The example sim file is a simple domain with a fan being modelled in a reference frame. The proportional and integral terms used here have been tuned such that the behaviour is consistent for this setup. However, for more complex examples that have faster inlet velocities and rotational speeds, as well as more complex flow fields around the fan, these gains should be tuned such that the behaviour of the controller brings convergence as quickly and as smoothly as possible. By varying these gains, you can define the overshoot, settling time and the general stability of the simulation. The attached sim file: "Fan_PI.sim" includes a custom tree called "Fan PI Inputs", for you to see all the components needed to create the PI controller.


Simulation Output

From the "Fan Speed and Torque Plot", we can see that the rotation rate is fixed until 50 iterations and the torque within these 50 iterations is above 0. Based off our field function, we know that after 50 iterations it will implement the PI controller. As the error sum has built up over the 50 iterations, a large spike appears but the PI controller soon adjusts the rotation rate such that our desired torque tends to 0.2 Nm as pre-defined in the simulation file. Feel free to push this target torque closer to zero, this should be perfectly fine if the torque convergence is smooth and not oscillating above and below 0.
To stop the simulation, asymptotic criteria are set for the Actual Torque monitor and the Rotation Rate monitors.


KB Article ID# KB000073876_EN_US



Associated Components

Design Manager Electronics Cooling In-Cylinder (STAR-ICE) Job Manager Simcenter STAR-CCM+