Leveraging our Senior Capstone Project’s problem, we are creating a mathematical model that will programmatically capture the temperature control system. Our project is being tasked with controlling the temperature of a 4” in length x 0.5” in diameter 316 Stainless Steel cylinder – this cylinder is used as a holding reservoir for samples used during experimentation. Initial conditions for the cylinder are standard laboratory conditions e.g. 24°C and 50% RH. The final condition for the cylinder is 4 +/- 0.25°C after 5 minutes i.e. must achieve an average -5°C/minute ramp rate
Testing setup
The power supplies were used to power the Peltiers(x3) and the 80mm x 80mm Fans (x2)
MATLAB and an Arduino were used to supply PWM signal to Fans for Fan Speed
Device Under Test (DUT)
Parts list (not capturing clam shell)
Performing Test
DMM with K-Type Thermocouple Displaying Temperature
The input step command can be ignored on this plot, because this was not a closed loop test
Test initial Temperature was 24 degrees Centigrade - it took ~2 minutes to achieve 4 degrees Centigrade
Sampling was performed using a stopwatch at 10 second intervals
Results Plotted with exponential curve fit
The trend line equation was then taken from above collected data and converted to s domain
### MATLAB Script used to analyze Transfer Function Response
%MECA 482 - Thermal Response %12/4/2019 clc; close all; clear all; %% raw data from testing, sampled at .1Hz temp = [22.2 21.7 20.2 17.9 15.4 13.2 11.1 8.9 7.2 6 4.5 3.2 2.7]; time = [10 20 30 40 50 60 70 80 90 100 110 120 130]; %% Transfer Function and step response s = tf('s'); %init temperature from exp trend line at t = 0 t = 0; To = 34.701*exp(-.018*t); K = -34.701; % DC gain tau = .018^-1; TF = K/(tau*s+1); % model transfer function [y,t] = step(TF,130); % model step response %% plot generation plot(time,temp,'rx',t,y+To,'b') xlabel('Time [sec]') ylabel('Temperature [C]') title('SLAC Reservoir Clamshell Temperature Step Response') legend('Raw data','Model','Location','NorthEast')
The results from the above MATLAB script plotted
The below captures the implemented Closed Loop Temperature Contoller using Simulink
Data collected during testing of the system
Unfortunately because of hardware limitations within the Arduino Uno we were using (32kb Flash memory) we were not able to compile and execute the simulink model on the microcontroller in a standalone configuration. Alternative microcontrollers have since been identified.
Link to prototype testing below