Ejemplo n.º 1
0
        public IActionResult CreateCT(CTModel model)
        {
            var NameUser = HttpContext.Session.GetString("UserName");
            var id       = HttpContext.Session.Id;
            var Id       = HttpContext.Session.GetInt32("UserName");

            var result = _webCTDBContext.Login.Single(a => a.UserName == NameUser);

            if (ModelState.IsValid)
            {
                CTModel obj = new CTModel();
                obj.Name = model.Name;

                obj.Price       = model.Price;
                obj.UserID      = result.ID;
                obj.CreatedDate = DateTime.Now;
                _webCTDBContext.Add(obj);
                int kq = _webCTDBContext.SaveChanges();
                if (kq > 0)
                {
                    return(RedirectToAction("Index", "QuanLy"));
                }
            }

            return(View("AddFormCT"));
        }
Ejemplo n.º 2
0
        /*==========================================================================
         * Function:   CTModelAutoTune
         * Arguments:  one CTModel
         * Returns:    One double matrix
         */

        public double[,] CTModelAutoTune(CTModel model)
        {
            // Define local variables
            ComplexNumber[] poles = model.PoleLocation();

            // Move unstable poles to L.H.P.
            for (int i = 0; i < poles.GetLength(1); i++)
            {
                if (poles[i].RealPart > 0)
                {
                    poles[i] = new ComplexNumber(-1 * poles[i].RealPart, poles[i].ImaginaryPart);
                }
            }

            // Calculate state feedback gain
            double[,] K = PolePlacement(model, poles);
            for (int i = 0; i < K.GetLength(1); i++)
            {
                for (int j = 0; j < K.GetLength(1); j++)
                {
                    K[i, j] = 1d;
                }
            }

            // Return state feedback gain
            return(K);
        }
    public void ShowHead(bool shouldShowHead)
    {
        if (_ctGraphicsSource == null)
        {
            _ctGraphicsSource = CTModel.GetComponent <PlayerGraphicsSource>();
        }
        if (_tGraphicsSource == null)
        {
            _tGraphicsSource = TModel.GetComponent <PlayerGraphicsSource>();
        }

        _ctGraphicsSource.Head.gameObject.SetActive(shouldShowHead);
        _tGraphicsSource.Head.gameObject.SetActive(shouldShowHead);
    }
Ejemplo n.º 4
0
        public IActionResult Upload(CTModel model)
        {
            var id       = model.ID;
            var detailCT = _webCTDBContext.ChiTieu.Where(x => x.ID == id).FirstOrDefault();

            if (detailCT != null)
            {
                detailCT.Name        = model.Name;
                detailCT.Price       = model.Price;
                detailCT.UpdatedDate = DateTime.Now;
                _webCTDBContext.Entry(detailCT).State = EntityState.Modified;
                _webCTDBContext.SaveChanges();
                return(RedirectToAction("Index", "QuanLy"));
            }
            return(View("Edit"));
        }
 public void EnsureCorrectPlayerModel(PartialPlayer player)
 {
     if (player.Team == Team.CounterTerrorist)
     {
         CTModel.SetActive(true);
         TModel.SetActive(false);
         if (_ctGraphicsSource == null)
         {
             _ctGraphicsSource = CTModel.GetComponent <PlayerGraphicsSource>();
         }
         _currentPlayerGraphicsSource = _ctGraphicsSource;
     }
     else
     {
         CTModel.SetActive(false);
         TModel.SetActive(true);
         if (_tGraphicsSource == null)
         {
             _tGraphicsSource = TModel.GetComponent <PlayerGraphicsSource>();
         }
         _currentPlayerGraphicsSource = _tGraphicsSource;
     }
 }
        static void Main(string[] args)
        {
            // Create A, B, C, D matrices
            double[,] matrixA = new double[2, 2];
            matrixA[0, 0]     = 1; matrixA[0, 1] = 0;
            matrixA[1, 0]     = 0; matrixA[1, 1] = 1;

            double[,] matrixB = new double[2, 1];
            matrixB[0, 0]     = 1; matrixB[1, 0] = 0;

            double[,] matrixC = new double[1, 2];
            matrixC[0, 0]     = 1; matrixC[0, 1] = 0;

            double[,] matrixD = new double[1, 1];
            matrixD[0, 0]     = 0;

            // Create a continuous time system
            CTModel ctSystem =
                new CTModel(matrixA, matrixB, matrixC, matrixD);

            // Define sampling time
            double ts = 0.01d;


            // Transfer continuous time system to discrete time system
            DTModel dtSystem = ctSystem.ToDiscreteTimeSystem(ts);

            // Define a complex number array
            ComplexNumber[] newPoleLocation = new ComplexNumber[matrixA.GetLength(1)];

            // Place new poles to 0.5 + 0.5j and 0.5 - 0.5j
            newPoleLocation[0] = new ComplexNumber(0.5, 0.5);
            newPoleLocation[1] = new ComplexNumber(0.5, -0.5);

            // Create a state feed back controller
            StateFeedBack stateFeedBack = new StateFeedBack();

            // Calculate state feed back gain
            double[,] Kc = stateFeedBack.PolePlacement(ctSystem, newPoleLocation);
            double[,] Kd = stateFeedBack.PolePlacement(dtSystem, newPoleLocation);

            // Calculate AutoTune state feed back gain
            //double[,] Kc2 = stateFeedBack.CTModelAutoTune(ctSystem);

            //Simulate the closed loop step response
            Simulator simulator = new Simulator();

            simulator.ClosedStepResponse(ctSystem, Kc);
            simulator.ClosedStepResponse(dtSystem, Kd);

            //simulator.ClosedStepResponse(ctSystem, K2);

            // Define a complex number array
            ComplexNumber[] estPoleLocation = new ComplexNumber[matrixA.GetLength(1)];

            // Place poles to 5 + 1j and 5 - 1j
            estPoleLocation[0] = new ComplexNumber(5, 1);
            estPoleLocation[1] = new ComplexNumber(5, -1);

            // Create a state estimator
            StateEstimator stateEstimator = new StateEstimator();

            // Calculate state feed back gain
            double[,] Lc = stateEstimator.Observer(ctSystem, estPoleLocation);
            double[,] Ld = stateEstimator.Observer(dtSystem, estPoleLocation);


            //Simulate the closed loop step response for observer based state feedback system
            simulator.StateFeedBackEstimatorStepResponse(ctSystem, Kc, Lc);
            simulator.StateFeedBackEstimatorStepResponse(dtSystem, Kd, Ld);

            Console.ReadKey();
        }