private void timerChart_Tick(object sender, EventArgs e)
        {
            // sample states for plotting
            SampleStates(Plant);

            // draw chart
            UpdateChart(dataChart, states);
            UpdateChart(perturbationChart, perturbations);

            // update time axis minimum and maximum
            Charting.UpdateChartAxes(dataChart, time_chart_window);
            Charting.UpdateChartAxes(perturbationChart, time_chart_window);

            // draw animation
            Animation.DrawTanks(this);

            // update labels
            UpdatePerturbationLabels(Disturbance);
        }