public ActionResult Simulation(VGeneralProperties model) { if (_model == null) { return RedirectToAction("Simulation"); } ViewBag.Title = SimulationPageTitle; lock (_model) { model.WindFarm = _model.WindFarm; ObjectMapperManager.DefaultInstance.GetMapper<VGeneralProperties, VGeneralProperties>().Map(model, _model); } var dWindFarm = _ctx.DWindFarms.First(e => _model.WindFarm == e.Name); var turbines = dWindFarm.DWindFarmTurbines.OrderBy(t => t.Number).Select(t => new decimal[] { t.Number, t.X, t.Y }).ToList(); var turbinesCoordinates = new double[turbines.Count, 2]; for (var index = 0; index < turbinesCoordinates.GetLength(0); index++) { var turbine = turbines[index]; turbinesCoordinates[index, 0] = (double)(turbine[1]); turbinesCoordinates[index, 1] = (double)(turbine[2]); } var config = new WakeFarmControlR.WakeFarmControlConfig() { Turbines = turbinesCoordinates, }; config.enablePowerDistribution = _model.EnablePowerDistribution; config.enableTurbineDynamics = _model.EnableTurbineDynamics; config.powerRefInterpolation = _model.PowerRefInterpolation; config.enableVaryingDemand = _model.EnableVaryingDemand; config.SimParm.timeStep = (double)_model.TimeStep; config.SimParm.tEnd = (double)_model.StopTime; config.SimParm.ctrlUpdate = (double)_model.ControlUpdateInterval; config.SimParm.powerUpdate = (double)_model.PowerUpdateInterval; config.InitialPowerDemand = (double)_model.InitialPowerDemand; config.NREL5MW_MatFile = WebConfigurationManager.AppSettings["WakeFarmControlRNREL5MW"]; // @"c:\farmcontrol\NREL5MW_Runc.mat"; config.Wind_MatFile = WebConfigurationManager.AppSettings["WakeFarmControlRWind"]; // @"c:\farmcontrol\wind_Runc.mat"; double[][] simulationDataOut; List<string> simulationInformationMessages; _simulation = WakeFarmControlR.FarmControl.Simulation(config, out simulationDataOut, out simulationInformationMessages); _simulationTurbines = turbines; _simulationTimeStep = _model.TimeStep; _simulationDataOut = simulationDataOut; _simulationInformationMessages = simulationInformationMessages; return RedirectToAction("Results"); }
public ActionResult Simulation() { ViewBag.Title = SimulationPageTitle; if (_model == null) { _model = new VGeneralProperties(); //_model.TimeStep = (decimal)(0.1); //_wfl = new List<string>(); _simulation = null; _simulationDataOut = null; _nowcastingSimulationResult = null; _nowcastingSimulationWarningMessages = null; } var model = new VGeneralProperties(); ObjectMapperManager.DefaultInstance.GetMapper<VGeneralProperties, VGeneralProperties>().Map(_model, model); return View(model); }