Пример #1
0
 public static void 绘制曲线(控件库.曲线控件.XYGraph graph, double[] 电压, double[] 电流, double[] 流量, double[] 进口压力, double[] 出口压力, double[] 转速, double[] 时间轴)
 {
     graph.Graph.Plots[0].PlotXY(时间轴, 电压);
     graph.Graph.Plots[1].PlotXY(时间轴, 电流);
     graph.Graph.Plots[2].PlotXY(时间轴, 流量);
     graph.Graph.Plots[3].PlotXY(时间轴, 进口压力);
     graph.Graph.Plots[4].PlotXY(时间轴, 出口压力);
     graph.Graph.Plots[5].PlotXY(时间轴, 转速);
 }
Пример #2
0
 public 调整坐标轴(XYGraph graph)
 {
     InitializeComponent();
     曲线控件 = graph;
     for (int i = 0; i < 曲线控件.Graph.Plots.Count; i++)
     {
         if (曲线控件.Graph.Plots[i].Tag == null) continue;
         if (曲线控件.Graph.Plots[i].Tag.ToString().EndsWith("S")) continue;
         CB_所属曲线.Items.Add(曲线控件.Graph.Plots[i].Tag.ToString());
     }
 }
Пример #3
0
 public 调整坐标轴(XYGraph graph)
 {
     InitializeComponent();
     曲线控件 = graph;
     for (int i = 0; i < 曲线控件.Graph.Plots.Count; i++)
     {
         if (曲线控件.Graph.Plots[i].Tag == null)
         {
             continue;
         }
         if (曲线控件.Graph.Plots[i].Tag.ToString().EndsWith("S"))
         {
             continue;
         }
         CB_所属曲线.Items.Add(曲线控件.Graph.Plots[i].Tag.ToString());
     }
 }
Пример #4
0
        private double[] f_绘制性能曲线(XYGraph 曲线控件, string 需要进行绘制的曲线ID, Grid 表格控件, string 采集样本_流量数据列名, string 采集样本_Y轴数据列名, int 拟合次数,int 分割点数)
        {
            List<double> 曲线X坐标集合 = new List<double>();
            List<double> 曲线Y坐标集合 = new List<double>();

            double[] 方程常量组;
            List<double> 拟合曲线X坐标集合;
            List<double> 拟合曲线Y坐标集合;
            for (int i = 0; i < 表格控件.ExportBandView.RowCount; i++)
            {
                double X = Convert.ToSingle(((DataRowView)表格控件.ExportBandView.GetRow(i))[采集样本_流量数据列名]);
                double Y = Convert.ToSingle(((DataRowView)表格控件.ExportBandView.GetRow(i))[采集样本_Y轴数据列名]);
                曲线X坐标集合.Add(X);
                曲线Y坐标集合.Add(Y);
            }
            if (曲线X坐标集合.Count == 0) return null;
            辅助库.CurveFitting.f_曲线拟合(曲线X坐标集合.ToArray(), 曲线Y坐标集合.ToArray(), 拟合次数, 分割点数, out 拟合曲线X坐标集合, out 拟合曲线Y坐标集合, out 方程常量组);
            //_曲线拟合.f_曲线拟合(曲线X坐标集合, 曲线Y坐标集合, 4,1000 ,out 拟合曲线X坐标集合, out 拟合曲线Y坐标集合);
            for (int j = 0; j < 曲线控件.Graph.Plots.Count; j++)
            {
                if (曲线控件.Graph.Plots[j].Tag.ToString().Equals(需要进行绘制的曲线ID))
                {
                    曲线控件.Graph.Plots[j].PlotXY(拟合曲线X坐标集合.ToArray(), 拟合曲线Y坐标集合.ToArray());
                }
            }
            return 方程常量组;
        }
Пример #5
0
        private void f_绘制影子性能曲线(XYGraph 曲线控件, string 需要进行绘制的曲线ID, Grid 表格控件, string 采集样本_流量数据列名, string 采集样本_Y轴数据列名)
        {
            List<double> 曲线X坐标对集合 = new List<double>();
            List<double> 曲线Y坐标对集合 = new List<double>();
            for (int i = 0; i < 表格控件.ExportBandView.RowCount; i++)
            {
                double X =  Convert.ToSingle( ((DataRowView)表格控件.ExportBandView.GetRow(i))[采集样本_流量数据列名]);
                double Y = Convert.ToSingle(((DataRowView)表格控件.ExportBandView.GetRow(i))[采集样本_Y轴数据列名]);
                曲线X坐标对集合.Add(X);
                曲线Y坐标对集合.Add(Y);
            }

            for(int j=0;j<曲线控件.Graph.Plots.Count;j++)
            {
                if (曲线控件.Graph.Plots[j].Tag.ToString().Equals(需要进行绘制的曲线ID))
                {
                    曲线控件.Graph.Plots[j].PlotXY(曲线X坐标对集合.ToArray(), 曲线Y坐标对集合.ToArray());
                }
            }
        }
Пример #6
0
 private void 显示曲线(XYGraph 曲线控件, string 曲线ID)
 {
     /*    for (int j = 0; j < 曲线控件.Graph.Plots.Count; j++)
     {
         if (曲线控件.Graph.Plots[j].Tag.ToString().Equals(曲线ID) ||
             曲线控件.Graph.Plots[j].Tag.ToString().Equals(曲线ID+"汽蚀余量"))
         {
             曲线控件.Graph.Plots[j].Visible = true;
         }
         else
         {
             曲线控件.Graph.Plots[j].Visible = false;
         }
     }*/
 }
Пример #7
0
        private void f_绘制采集曲线(XYGraph 曲线控件, string 需要进行绘制的曲线ID, Grid 表格控件, string 采集样本_Y轴数据列名)
        {
            List<double> 曲线X坐标对集合 = new List<double>();
            List<double> 曲线Y坐标对集合 = new List<double>();
            曲线控件.汽蚀余量X轴 = 0;
            曲线控件.汽蚀余量Y轴 = 0;

            DataTable datatable汽蚀试验 = 数据库操作类.GetTableBySql("select * from 汽蚀试验 ORDER by 汽蚀余量 DESC");
             foreach (DataRow dr in datatable汽蚀试验.Rows)
             {
                 if (需要进行绘制的曲线ID.Equals(Convert.ToString(dr["批次编号"])))
                 {
                     double n流量 = Convert.ToDouble(dr["流量"]);
                     double n温度 = Convert.ToDouble(dr["温度"]);
                     double n进口表压 = Convert.ToDouble(dr["进口压力"]);
                     double 汽蚀余量 = Convert.ToDouble(dr["汽蚀余量"]);
                     double Y = Convert.ToDouble(dr[采集样本_Y轴数据列名]);
                     曲线X坐标对集合.Add(汽蚀余量);
                     曲线Y坐标对集合.Add(Y);
                 }
             }

            //显示曲线(曲线控件, 需要进行绘制的曲线ID);
            for (int j = 0; j < 曲线控件.Graph.Plots.Count; j++)
            {
                if ((曲线控件.Graph.Plots[j].Tag.ToString().Equals(需要进行绘制的曲线ID)) &&
                    ((曲线X坐标对集合.Count > 0) && (曲线Y坐标对集合.Count > 0)))
                {
                    曲线控件.Graph.Plots[j].Visible = true;
                    曲线控件.Graph.Plots[j].PlotXY(曲线X坐标对集合.ToArray(), 曲线Y坐标对集合.ToArray());
                    //曲线控件.f_设置汽蚀余量(需要进行绘制的曲线ID, 曲线汽蚀余量, 曲线X坐标对集合, 曲线Y坐标对集合);
                    f_绘制临界点(曲线控件, 需要进行绘制的曲线ID, 采集样本_Y轴数据列名);
                }
            }
        }
Пример #8
0
        private void f_绘制临界点(XYGraph 曲线控件, string 需要进行绘制的曲线ID, string 采集样本_Y轴数据列名)
        {
            List<double> 曲线X坐标对集合 = new List<double>();
            List<double> 曲线Y坐标对集合 = new List<double>();
            曲线控件.汽蚀余量X轴 = 0;
            曲线控件.汽蚀余量Y轴 = 0;

            DataTable datatable汽蚀试验批次 = 数据库操作类.GetTable("汽蚀试验批次");
            foreach (DataRow dr in datatable汽蚀试验批次.Rows)
            {
                if (需要进行绘制的曲线ID.Equals(Convert.ToString(dr["批次编号"])))
                {
                    double 汽蚀余量 = Convert.ToDouble(dr["汽蚀余量"]);
                    double Y = Convert.ToDouble(dr[采集样本_Y轴数据列名]);
                    曲线X坐标对集合.Add(汽蚀余量);
                    曲线Y坐标对集合.Add(Y);
                }
            }

            曲线控件.f_设置临界值(需要进行绘制的曲线ID, 曲线X坐标对集合, 曲线Y坐标对集合);
        }