Example #1
0
        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;
 }
Example #4
0
        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));
        }