コード例 #1
0
        public PIDRegulator(double dt, double K = 0, double Ki = 0, double Kd = 0)
        {
            m_gainBlock     = new GainBlock(K);
            m_integralBlock = new RegIntegralBlock(dt);
            m_diffBlock     = new DifferentialBlock(dt);

            this.K  = K;
            this.Ki = Ki;
            this.Kd = Kd;
        }
コード例 #2
0
 public ChannelUnit()
 {
     for (int i = 0; i < components.Length; i++)
     {
         components[i] = new TonalComponent();
     }
     for (int i = 0; i < gainBlock.Length; i++)
     {
         gainBlock[i] = new GainBlock();
     }
 }
コード例 #3
0
        public BarrelControlSystem(double dt) : base()
        {
            DT          = dt;
            InputStream = 0;

            InputStreamBlock  = new GainBlock(SystemSettings.Gain);
            m_withoutHitBlock = new AperiodicBlock(dt, SystemSettings.TForValve);

            var blocks = new Queue <IBlock>();

            blocks.Enqueue(new DelayBlock(dt, SystemSettings.Delay));
            blocks.Enqueue(new IntegralBlock(dt));
            blocks.Enqueue(new InterferenceBlock(SystemSettings.Interference));
            Object = new ComplexBlock(blocks);

            Regulator = new PIDRegulator(dt);
        }
コード例 #4
0
        public ObjectModel(double k, double T1, double T2, double delayTime, double noize, double dt)
        {
            K10 = new GainBlock(k);
            K11 = new GainBlock(k);
            K12 = new GainBlock(k);
            K13 = new GainBlock(k);
            K14 = new GainBlock(k);
            K15 = new GainBlock(k);

            AperiodicBlockZ1 = new AperiodicBlock(T1, dt);
            AperiodicBlockZ2 = new AperiodicBlock(T2, dt);

            Z2Delay = new DelayBlock(delayTime, dt);
            Z2Noize = new NoizeBlock(noize);
            Z1Delay = new DelayBlock(delayTime, dt);
            Z1Noize = new NoizeBlock(noize);
        }