If anyone is interested, here are the instructions for setting up the auto control fan variables in order to have the fan duty-cycle varying linearly between a minimum temperature (at which the duty-cycle is the minimum duty-cycle) and a maximum temperature (at which the duty cycle is the maximum duty-cycle).
1) We have to set the minimum and the maximum duty-cycle. The variables to change are "Duty cycle min" and "Duty cycle max".
In this example we set "Duty cycle min" = 60% and "Duty cycle max"=100% (the default values in my case), i.e. the duty-cycle is never lower than 60% and the fan speed is maximum when the GPU reaches the maximum temperature.
2) We have to set the minimum temperature, i.e. the temperature at which the speed fan is increased. This parameter is controlled through the variable Tmin. Note that this variable refers to the temperature processed by the fan controller, that, as far i know, is taken from the fan integrated sensor, not from the Gpu integrated thermal diode, i.e. the temperature you see by default in RivaTuner. For this reason the two temperatures are different. On my system, the temperature reported by the fan controller is 6-7 C lower than the default temperature. In order to see the temperature reported by the fan controller, right click on the core temperature graph in the hardware monitor window and select setup. Then under the "Data provider" menu, select ADT7473. In this way you can monitor drectly the temperature processed by the fan controller. So, if we want Tmin linked to the GPU temperature as reported by RivaTuner from the Gpu thermal diode, we have to take into account this temperature offset, Toffset.
Let's suppose we want set Tmin to 65 C. By taking into account Toffset, the value to enter in the controller rules is:
Tmin=65-6=59
where i entered my offset of 6 C
3) We have to set the maximum temperature Tmax, i.e. the temperature at which the duty-cycle is set to 100%.
This is done through the variable "T-Range". TR ( T Range) can be found through this relation:
TR=2/3*(Tmax-Tmin)/(Dmax-Dmin)
where Dmax and Dmin are the minimum and maximum duty-cycles in p.u., i.e. 60% -> 0.6, 100% -> 1.
Let's suppose we want Tmax at 75 C. We have:
TR=2/3*(75-65)/(1-0.6)=16.7
So we should enter 16.7 for T-Range in Riva, but not all values are possible. RivaTuner will choose the closest value accepted by the controller to the one we enter. In this case the closest value is 16.
4) We have to disable the dynamic Tmin control of the controller.
It is enough to set:
T operating = 110
T low limit = 0
T high limit = 110