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")); }
/*========================================================================== * 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); }
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(); }