<< Click to Display Table of Contents >> control_transient |
{ CONTROL_TRANSIENT.PDE
This example shows the use of a GLOBAL VARIABLE in a control application.
We wish to find the required power input to a heater, such that the resulting
average temperature over the domain is a specified value.
The temperature on the outer surface is prescribed, with a time-sinusoidal
oscillation.
The input power is driven by a time-relaxation equation. The coefficient
of the right hand side is the reciprocal of the response time of the power.
This problem is a modification of CONTROL_STEADY.PDE, showing the use of
time-dependent GLOBAL equations.
}
TITLE "Time-dependent Control test"
VARIABLES
temp { The temperature field }
GLOBAL VARIABLES
power { a single value for input power }
DEFINITIONS
setpoint = 700 { the desired average temperature }
skintemp = 325+20*sin(t) { oscillating outer boundary temperature }
responsetime = 0.1 { response time of the power input }
k=1 { conductivity }
heat=0 { the heat function for the temperature.
it is non-zero only in the heater region }
{ the control function, average temperature }
tcontrol = integral(temp)/integral(1)
{ tcontrol = val(temp,0,0) -- an alternative control method, which tracks the
temperature value at a specified point (unused here) }
{initial guess for temperature distribution }
tinit1=min(1767-400*abs(x), 1767-400*abs(y))
INITIAL VALUES
temp=min(1500,tinit1)
power=137 { initial guess for power }
EQUATIONS
temp: div(-k*grad(temp))-heat = 0 { diffusion of temperature field }
{ single equation defining power. response time is 1/100 }
power: dt(power) = (setpoint - tcontrol)/responsetime
BOUNDARIES
REGION 'Insulation'
k=0.1
heat=0
start(-4,-4)
value(temp)=skintemp
line to (4,-4) to (4,4) to (-4,4) to close
REGION 'Heater'
k=50
heat = power
start(-1,-1) line to (1,-1) to (1,1) to (-1,1) to close
TIME 0 to 20 by 1e-4
PLOTS
for cycle=10
contour(temp)
report power
report tcontrol as "Avg Temp"
HISTORIES
History(tcontrol-setpoint, skintemp-325) as "Skin Temperature and Error"
History(tcontrol-setpoint) as "Controlled temperature error"
History(power)
END