C#Winform应用程序-生成数字并添加到列表,然后绘制到图表

我在Python中有一个类似的应用程序,但是由于我对语言和语法不熟悉,因此我很难在C#中实现它。

我想使用一个数学模型来模拟一个物理过程。我将使用WinForm应用程序在图表中绘制数据,并从数学模型仿真中生成过程数据。此数学模型被实现为单独的类,并且在主“ Form1.cs”类中,将使用Timer对象以定期间隔调用此模型,以通过调用Process类的方法来检索新值。

到目前为止,我的主要问题对于这里经验丰富的人来说应该是相当基本的;我需要一种方法来接收输入控制信号u(变量,不是常数),使用它来计算新值(使用列表中的先前值),然后将新过程值添加到列表中,并同时返回新列表以进行绘图,并将新的过程值保存到数据库中(插入新条目)。

下面的代码是我到目前为止所拥有的:

namespace Process
{
    class Simulator
    {
        public List<double> TemperatureList { get; set; }
        public double ControlSignal { get; set; }

        /// Process parameters:
        static private double Kh = 3.5;
        static private double theta_constant = 23.0;
        static private double theta_delay = 3.0;
        static private double temp_env = 20.0;
        static private double t_step = 1;


        //private double u_signal { get { return ControlSignal; } }

        public double Temperature()
        {
            this.ControlSignal = u_signal;
            public double T_k = TemperatureList[TemperatureList.Count - 1];
            // Euler forward integration (Euler step):
            public double calc = (1 / theta_constant) * ((temp_env) + Kh * u_signal);
            // Calculate next point
            public double T_kp1 = T_k + t_step*calc;

            TemperatureList.Add(T_kp1);

            return T_kp1;

        }
    }
}

上面的类方法“温度”引发了许多错误。是否有任何有关如何正确构造代码以使其按我的意愿行事的指针?我的主要思想是针对给定的类实例调用Temperature方法,它将计算下一个过程值(温度),将其添加到先前计算的温度列表中,然后返回最新值。然后,列表也可以用于在图表中绘制数据。

ControlSignal double也是一个变量,该变量将由另一个类(控制器)更改,因此不确定如何将其用于方法。

评论