ML-Driven Adaptive Voltage Controlled Oscillator
Through this project, a VCO will be able to adjust its output frequency and account for minor changes in temperature and input voltage.
Let
On solving this, we get
Data was collected by simulating the circuit in MicroCap 12, with capacitance temperature coefficients optimized using Hooke's algorithm.
Temperature (Celsius) on the x axis and output frequency (Hz) on the y axis
Temperature (Celsius) and control voltage (volts) on the horizontal plane, and output frequency (Hz) on the vertical axis
Using these data points, we trained a neural network using Tensorflow.
- 3 hidden layers, 10 neurons each
- RELU activation function
- 500 epochs
This data was converted to a cpp header file for use inside Arduino IDE using tinymlgen.
We built the VCO circuit on a PCB, connected to an ESP32 loaded with the trained neural network. We then verified that the frequency is, indeed, self adaptive by heating the circuit upto 45 degrees Celsius.