コード例 #1
0
        ///<summary>产生变电数据</summary>
        static void gentranform(DistNet dn)
        {
            foreach (DNTransformFacilityBase item in dn.getAllObjListByCategory(EObjectCategory.变电设施类))
            {
                RunDataTransformFacilityBase rundata = item.busiRunData as RunDataTransformFacilityBase;
                AcntTransformFacilityBase    acnt    = item.busiAccount as AcntTransformFacilityBase;
                rundata.activePower   = acnt.cap * (0.4 + 0.5 * rd.NextDouble());
                rundata.powerFactor   = 0.8 + 0.2 * rd.NextDouble();
                rundata.apparentPower = rundata.activePower / rundata.powerFactor;
                rundata.reactivePower = Math.Sqrt(Math.Pow(rundata.apparentPower, 2) - Math.Pow(rundata.activePower, 2));
                rundata.rateOfLoad    = rundata.apparentPower / acnt.cap;
                rundata.HVoltPUV      = 0.85 + 0.3 * rd.NextDouble();
                rundata.HVL           = acnt.hnvl * rundata.HVoltPUV;

                if (rundata.lstApparentPower.Count == 0) //初始模拟50条
                {
                    for (int i = 50; i > 0; i--)
                    {
                        rundata.lstApparentPower.Add(new MyClassLibrary.DevShare.ChartDataPoint()
                        {
                            argudate = DateTime.Now.AddMinutes(i), value = acnt.cap * (0.4 + 0.5 * rd.NextDouble())
                        });
                    }
                }
                rundata.addApparentPower(rundata.apparentPower);
                rundata.refresh();
            }

            foreach (DNTransformerBase item in dn.getAllObjListByCategory(EObjectCategory.变压器类))
            {
                RunDataTransformerBase rundata = item.busiRunData as RunDataTransformerBase;
                AcntTransformBase      acnt    = item.busiAccount as AcntTransformBase;
                rundata.activePower   = acnt.cap * (0.4 + 0.5 * rd.NextDouble());
                rundata.powerFactor   = 0.8 + 0.2 * rd.NextDouble();
                rundata.apparentPower = rundata.activePower / rundata.powerFactor;
                rundata.reactivePower = Math.Sqrt(Math.Pow(rundata.apparentPower, 2) - Math.Pow(rundata.activePower, 2));
                rundata.rateOfLoad    = rundata.apparentPower / acnt.cap;
                rundata.HVoltPUV      = 0.85 + 0.3 * rd.NextDouble();
                rundata.HVL           = acnt.hnvl * rundata.HVoltPUV;

                if (rundata.lstApparentPower.Count == 0) //初始模拟50条
                {
                    for (int i = 50; i > 0; i--)
                    {
                        rundata.lstApparentPower.Add(new MyClassLibrary.DevShare.ChartDataPoint()
                        {
                            argudate = DateTime.Now.AddMinutes(i), value = acnt.cap * (0.4 + 0.5 * rd.NextDouble())
                        });
                    }
                }
                rundata.addApparentPower(rundata.apparentPower);
                rundata.refresh();
            }

            foreach (var item in dn.getAllObjListByObjType(EObjectType.节点))
            {
                RunDataNode rundata = item.busiRunData as RunDataNode;
                rundata.vl      = 110;
                rundata.voltPUV = 0.9 + 0.2 * rd.NextDouble();
                rundata.volt    = rundata.voltPUV * rundata.vl;
            }
        }