public ActionResult Simulation(VGeneralProperties model) { ViewBag.Title = "Input | Wake Simulation II | Offwind"; lock (_model) { model.WindFarm = _model.WindFarm; ObjectMapperManager.DefaultInstance.GetMapper <VGeneralProperties, VGeneralProperties>().Map(model, _model); } var dWindFarm = _ctx.DWindFarms.First(e => _model.WindFarm == e.Name); _model.NTurbines = dWindFarm.DWindFarmTurbines.Count(); var input = new Simulation() { Tstart = (double)_model.StartTime, Tend = (double)_model.StopTime, DT = (double)_model.TimeStep, NTurbines = _model.NTurbines, RatedPower = 5, EnablePowerDistribution = true, EnableTurbineDynamics = true, PowerRefInterpolation = true, Pdemand = 3 * 5e6, PRefSampleTime = 5 }; input.LoadNREL5MW_MatFile(WebConfigurationManager.AppSettings["WakeFarmControlNREL5MW"]); input.LoadWind_MatFile(WebConfigurationManager.AppSettings["WakeFarmControlWind"]); _simulation = FarmControl2.Simulation(input); return(RedirectToAction("Results")); }
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")); }
private void InitGeneralProperties(VGeneralProperties m) { m.GridPointsX = 1000; m.GridPointsY = 1000; m.TurbineDiameter = 50; m.TurbineHeight = 70; m.TurbineThrust = 0.5m; m.WakeDecay = 0.02m; m.VelocityAtHub = 9m; m.AirDensity = 1.225m; m.PowerDistance = 0.2m; m.RotationAngle = -48.4m; }
public ActionResult Simulation() { ViewBag.Title = "Input | Wake Simulation II | Offwind"; if (_model == null) { _model = new VGeneralProperties(); _wfl = new List <string>(); _simulation = null; } var model = new VGeneralProperties(); ObjectMapperManager.DefaultInstance.GetMapper <VGeneralProperties, VGeneralProperties>().Map(_model, model); return(View(model)); }
private VGeneralProperties GetModelGeneral() { VGeneralProperties model = null; if (Session["GeneralProperties"] != null) { model = Session["GeneralProperties"] as VGeneralProperties; } if (model == null) { model = new VGeneralProperties(); InitGeneralProperties(model); Session["GeneralProperties"] = model; } return(model); }
public ActionResult GeneralPropertiesSave(VGeneralProperties model) { if (ModelState.IsValid) { Session["GeneralProperties"] = model; if (Request.IsAjaxRequest()) { return(Json("OK")); } return(View(model)); } if (Request.IsAjaxRequest()) { return(Json("FAIL")); } return(View(model)); }
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)); }