参考以下流程和代码，写出实现直接加载法的代码：
直接加载法，起步2kN,每次增加1kN，步骤如下；

预压2kN.记录10s平均上下位移传感器的值。
加电压，比如 150V ,记录10s 平均上下位移传感器的值
计算出增加电压后，减不增加电压，位移膨胀的值
每次增加1kN ,记录位移变化。
如果位移小于0，记录增加的阻挡力。
计算刚度值。

await Task.Delay(10 * 1000);
                int nValue = 2000;
                int step = 1000;
                for (int i = 0; i < 30; i++)
                {
                    if (nValue >= 20502)
                    {
                        break;
                    }

                    //Force_Set(nValue);
                    //await Task.Delay(12000);
                    //dataLines.Add(string.Format("{0},{1},{2}", Math.Round(rawSignalUp.Average(), 3), Math.Round(rawSignalDown.Average(), 3), nValue));
                    //nValue += step;
                    Force_Set(nValue);
                    for (int j = 0; j < 100; j++)
                    {
                        await Task.Delay(1000);
                        // if (Convert.ToDouble(textBox5.Text) > nValue-2)
                        if (ReadRegister(1200) == 1)
                        {
                            //double upperResolution = Convert.ToDouble(textBox3.Text);
                            //double lowerResolution = Convert.ToDouble(textBox4.Text);
                            //dataLines.Add(string.Format("{0},{1},{2}", Math.Round(upperResolution, 3), Math.Round(lowerResolution, 3), nValue));
                            //测试代码
                            //for (int k = 0; k < 1000; k++)
                            //{
                            //    await Task.Delay(300);
                            //    double upperResolution = Convert.ToDouble(textBox3.Text);
                            //    double gResolution = Convert.ToDouble(textBox2.Text);
                            //    //dataLines.Add(string.Format("{0},{1},{2}", Math.Round(rawSignalUp.Average(), 3), Math.Round(rawSignalDown.Average(), 3), nValue));
                            //    dataLines.Add(string.Format("{0},{1},{2}", Math.Round(upperResolution, 3), Math.Round(gResolution, 6), Math.Round(forceValues.Average(), 3)));
                            //}//测试代码

                            //记录平均数代码
                            await Task.Delay(11 * 1000);
                            //dataLines.Add(string.Format("{0},{1},{2}", Math.Round(rawSignalUp.Average(), 3), Math.Round(rawSignalDown.Average(), 3), nValue));
                            dataLines.Add(string.Format("{0},{1},{2}", Math.Round(rawSignalUp.Average(), 3), Math.Round(rawSignalDown.Average(), 3), Math.Round(forceValues.Average(), 3)));
                            nValue += step;
                            //step += 100;
                            break;

                            /* //调用于工算法参考代码
                            List<double> list = new List<double> { };
                            double[] data = rawSignalUp.ToArray();
                            for (int k = 0; k < 100; k++)
                            {
                                bandstop.bandStop(data[k]);
                            }

                            for (int k = 0; k < 200; k++)
                            {
                                list.Add(bandstop.bandStop(data[k]));
                            }

                            List<double> list1 = new List<double> { };
                            double[] data1 = rawSignalDown.ToArray();

                            for (int k = 0; k < 200; k++)
                            {
                                list1.Add(bandstop.bandStop(data1[k]));
                            }

                            dataLines.Add(string.Format("{0},{1},{2}", Math.Round(list.Average(), 3), Math.Round(list1.Average(), 3), Math.Round(forceValues.Average(), 3)));
                            */
                        }

                    }
                }