Exemple #1
0
 public FurnaceCollection(PIDConstant pidcIn, PIDConstant pidcOut, FurnaceManage manage, double interval = 1)
 {
     this.Interval        = interval;
     this.InPIDConstants  = pidcIn;
     this.OutPIDConstants = pidcOut;
     this.FurnaceManage   = manage;
 }
Exemple #2
0
 public override void GetInstance(List <PIDConstant> constants, FurnaceManage manage, double baseInterval)
 {
     this.FurnaceManage = manage;
     if (constants != null && constants.Count == 2)
     {
         this.ConstantIn                = constants[0];
         this.ConstantOut               = constants[1];
         this.FurnaceCollection         = new FurnaceCollection(this.ConstantIn, this.ConstantOut, manage, baseInterval);
         this.FurnaceCollection.Maximum = this.Maximun;
     }
 }
Exemple #3
0
        void TestFactory3()
        {
            //构造间隔回路
            SwitchController sc = ControllerFactory.Create <SwitchController>();

            sc.GetInstance(3);

            SwitchModel sm1 = new SwitchModel(50, 40, 10, 2);
            SwitchModel sm2 = new SwitchModel(50, 45, 10, 2);
            SwitchModel sm3 = new SwitchModel(50, 52, 10, 2);
            SwitchModel sm4 = new SwitchModel(50, 61, 10, 2);
            SwitchModel sm5 = new SwitchModel(50, 56, 10, 2);

            sc.AddModel(sm1);
            sc.AddModel(sm2);
            sc.AddModel(sm3);
            sc.AddModel(sm4);
            sc.AddModel(sm5);


            //构造加热炉回路
            FurnaceController  fc      = ControllerFactory.Create <FurnaceController>(100);
            List <PIDConstant> pidcs2  = new List <PIDConstant>();
            PIDConstant        pidcIn  = new PIDConstant(120, 200, 30, PIDControlAlgorithm.IPD);
            PIDConstant        pidcOut = new PIDConstant(300, 30, 0, PIDControlAlgorithm.PID);

            pidcs2.Add(pidcIn);
            pidcs2.Add(pidcOut);
            FurnaceManage manage = new FurnaceManage(20, 5);

            fc.GetInstance(pidcs2, manage, 1);

            FurnaceModel fm1 = new FurnaceModel(50, 51, 52, 53, 1);
            FurnaceModel fm2 = new FurnaceModel(50, 52, 52, 55, 1);
            FurnaceModel fm3 = new FurnaceModel(50, 50.5, 52, 54, 1);
            FurnaceModel fm4 = new FurnaceModel(50, 50, 52, 52, 1);
            FurnaceModel fm5 = new FurnaceModel(50, 51.2, 52, 53, 1);
            FurnaceModel fm6 = new FurnaceModel(50, 53, 52, 56, 1);
            FurnaceModel fm7 = new FurnaceModel(50, 52.2, 52, 54, 1);
            FurnaceModel fm8 = new FurnaceModel(50, 51.6, 52, 55, 1);

            fc.AddModel(fm1);
            fc.AddModel(fm2);
            fc.AddModel(fm3);
            fc.AddModel(fm4);
            fc.AddModel(fm5);
            fc.AddModel(fm6);
            fc.AddModel(fm7);
            fc.AddModel(fm8);
        }
 /// <summary>
 /// 用于加热炉控制器
 /// </summary>
 /// <param name="constants">PID回路参数列表</param>
 /// <param name="manage">加热炉时间控制对象</param>
 /// <param name="baseInterval">执行间隔</param>
 public virtual void GetInstance(List <PIDConstant> constants, FurnaceManage manage, double baseInterval)
 {
 }