c#极性循环的归一化功率

时间:2017-05-05 16:53:43

标签: c# visual-studio

List<int> NPower = new List<int>();

List<double> list = new List<double>();



try
{
    for (int i = 1; i < dataGridView1.Rows.Count; i++)
    {
        for (int n = 0; n < i + 30; n++)
        {
            NPower.Add(Convert.ToInt32(dataGridView1.Rows[i + n].Cells[6].Value));
        }
    }
    average = NPower.Average();

    total = Math.Pow(average, 4);
    NPower.Clear();
}
catch (Exception)
{
    average = NPower.Average();

    NP = Convert.ToInt32(Math.Pow(average, (1.0 / 3.0)));


    label19.Text = "Normalised Power:  " + NP.ToString();
    NPower.Clear();
}

嗨所以我正在尝试计算循环极地循环的归一化功率。我知道,对于你需要的标准化功率:

1)从30秒标记开始,计算滚动30秒平均值(显然是前一个时间点)。

2)将步骤#1中获得的所有值提高到4次幂。

3)取步骤#2中获得的所有值的平均值。

4)取第3步中获得的值的第4个根。

我想我已经做到了,但标准化的功率出现了16这是不正确的。任何人都可以查看我的代码,看看他们是否能找到解决方案。谢谢,对不起我的代码,我还是很新,所以我的代码可能格式不正确。

1 个答案:

答案 0 :(得分:-1)

我不确定我是否完全理解您的要求或代码,但我注意到了一些事情:

  1. 由于您应该在30秒后开始采用滚动平均值,因此i不应该初始化为30而不是1?
  2. 由于它是滚动平均值,因此不应将n初始化为i而不是0?
  3. 为什么最终结果是在catch区块内计算的?
  4. 不应该是Math.Pow(average, (1.0 / 4.0)),因为你想要第四个根,而不是第三个根?