Пример #1
0
        public ActionResult Simulate(String motor)
        {
            SimulationResults results = new SimulationResults();

            List <List <Double> > speed  = graphs.InputSpeedTrace;
            List <List <Double> > torque = graphs.InputTorqueTrace;

            double sample1 = speed[0][1] - speed[0][0];
            double sample2 = torque[0][1] - torque[0][0];

            if (sample1 != sample2)
            {
                return(Json(new { zoh = false, sm = false }, JsonRequestBehavior.AllowGet));
            }
            else
            {
                int  speed_size  = speed[0].Count;
                int  torque_size = torque[0].Count;
                bool zohused     = false;
                if (speed_size > torque_size)
                {
                    double zoh = torque[1][torque_size - 1];
                    for (int i = torque_size; i < speed_size; i++)
                    {
                        torque[0].Add(speed[0][i]);
                        torque[1].Add(zoh);
                    }
                    zohused = true;
                }
                if (torque_size > speed_size)
                {
                    double zoh = speed[1][speed_size - 1];
                    for (int i = speed_size; i < torque_size; i++)
                    {
                        speed[0].Add(torque[0][i]);
                        speed[1].Add(zoh);
                    }
                    zohused = true;
                }

                List <List <List <double> > > output = results.startSimulation(motor, speed, torque, speed_size);
                graphs.OutputCurrentTrace   = output[0];
                graphs.OutputSpeedTrace     = output[1];
                graphs.OutputRefSpeedTrace  = output[2];
                graphs.OutputTorqueTrace    = output[3];
                graphs.OutputRefTorqueTrace = output[4];
                graphs.OutputVoltageTrace   = output[5];

                return(Json(new { zoh = zohused, sm = true }, JsonRequestBehavior.AllowGet));
            }
        }