Provided herein is a method for automatically controlling inspired oxygen delivery, including: receiving signals representing a plurality of input oxygen saturation (SpO2) values for a patient; generating control values based on the input SpO2 values and a target SpO2 value; and generating output inspired oxygen concentration (FiO2) values based on the control values and reference inspired oxygen concentration (rFiO2) values; wherein the control values include: immediate control values, generated based on the input SpO2 values, the target SpO2 value, and an immediate gain coefficient; accumulation control values, generated based on the input SpO2 values, the target SpO2 value, and an accumulation gain coefficient; and predictive control values, generated based on the input SpO2 values, the target SpO2 value, and a predictive gain coefficient; wherein the immediate gain coefficient is determined based on the rFiO2 value; and wherein a non-linear compensation weighting is applied to the accumulation control value based on a predetermined non-linear relationship between partial pressure of arterial oxygen (PaO2) and SpO2.