protected ModelParamsVM OnQueryModelParamsSuccess(ModelParams resp) { var modelParamsVMCollection = GetModelParamsVMCollection(resp.ModelAim); ModelParamsVM ret = null; if (!string.IsNullOrEmpty(resp.InstanceName)) { ret = modelParamsVMCollection.FirstOrDefault(c => c.InstanceName == resp.InstanceName); if (ret == null) { ret = new ModelParamsVM() { InstanceName = resp.InstanceName, Model = resp.Model, ModelAim = resp.ModelAim }; modelParamsVMCollection.Add(ret); } foreach (var param in resp.Params) { ret[param.Key] = new NamedParamVM() { Name = param.Key, Value = param.Value, }; } } return(ret); }
private void TransformNormal(Model model, ModelParams modelParams) { for (int i = 0; i < model.Normals.Count; i++) { model.Normals[i] = Vector3.Normalize(Vector3.TransformNormal(model.Normals[i], GetWorldMatrix(modelParams))); } }
public double[] GetCoordY(ModelParams para = ModelParams.point_coord_y) { HTuple Y = GetParamValue(para); double[] arry = Y.ToDArr(); return(arry); }
/**获取外包络矩形 * **/ public double[] GetBoundingBox(ModelParams para = ModelParams.bounding_box1) { HTuple boundingBox = GetParamValue(para); double[] arry = boundingBox.ToDArr();//获取2个点,2个点可以转换成一个立方体 return(arry); }
public double[] GetCoordZ(ModelParams para = ModelParams.point_coord_z) { HTuple Z = GetParamValue(para); double[] arry = Z.ToDArr(); return(arry); }
//---------------------------------------------------------------------- //Assign params from math model //Edit: Today, with more experience, I'd use automapper or something like that public void parametersPassing(Parameters model, ModelParams appcode) { appcode.Fs = model.Fs; appcode.Uas_rms = model.Uu1; appcode.Ubs_rms = model.Uv1; appcode.Ucs_rms = model.Uw1; appcode.Phase = model.Phase; appcode.Mas_ext = model.Msu; appcode.Mbs_ext = model.Msv; appcode.Mcs_ext = model.Msw; appcode.Ras_ext = model.Rsu; appcode.Rbs_ext = model.Rsv; appcode.Rcs_ext = model.Rsw; appcode.Jrext = model.Jext; appcode.Drext = model.Dext; appcode.NoLoadTime = model.Ttl; appcode.Textern = model.Tn; appcode.TimeStart = model.Ti; appcode.TimeStop = model.Ts; appcode.pwmState = model.pwmState; appcode.TsoftStart = model.Tsoftstart; appcode.F0 = model.F0; appcode.Fk = model.Fk; appcode.SlopeRatio = model.SlopeRatio; }
/**获取点云的坐标 * **/ public double[] GetCoordX(ModelParams para = ModelParams.point_coord_x) { HTuple X = GetParamValue(para); double[] arry = X.ToDArr(); return(arry); }
/**获取点云的属性,默认为获取点云个数 * **/ public HTuple GetParamValue(ModelParams para = ModelParams.num_points) { HTuple genPara = Enum2Htuple(para); HTuple result = new HTuple(); HOperatorSet.GetObjectModel3dParams(Pointclouds, genPara, out result); return(result); }
private void transformToViewPort(Model model, ModelParams modelParams, float[] w) { for (int i = 0; i < model.Points.Count; i++) { model.Points[i] = Vector4.Transform(model.Points[i], GetViewPortMetrix(modelParams)); model.Points[i] = new Vector4(model.Points[i].X, model.Points[i].Y, model.Points[i].Z, w[i]); } }
public void RemoveTempModel(string modelName) { var model = new ModelParams(); model.InstanceName = modelName; MessageWrapper.SendMessage((uint)SystemMessageID.MSG_ID_UPDATE_TEMPMODELPARAMS, model); }
public void NewWingModelInstance(string modelName) { var modelParam = new ModelParams(); modelParam.InstanceName = modelName; modelParam.Model = "wing"; MessageWrapper.SendMessage((uint)SystemMessageID.MSG_ID_UPDATE_MODELPARAMS, modelParam); }
public void UpdateTempModelParams(string modelName, string paramName, double paramValue) { var model = new ModelParams(); model.InstanceName = modelName; model.Params[paramName] = paramValue; MessageWrapper.SendMessage((uint)SystemMessageID.MSG_ID_UPDATE_TEMPMODELPARAMS, model); }
public ActionResult Index() { List <BaseDatos> pBDS = new List <BaseDatos>(); pBDS.Add(new BaseDatos { Nombre = "Base1", Tables = new List <Tablas>() }); pBDS.Add(new BaseDatos { Nombre = "Base2", Tables = new List <Tablas>() }); pBDS.Add(new BaseDatos { Nombre = "Base3", Tables = new List <Tablas>() }); pBDS.Add(new BaseDatos { Nombre = "Base4", Tables = new List <Tablas>() }); pBDS.Add(new BaseDatos { Nombre = "Base5", Tables = new List <Tablas>() }); List <Tablas> tablasBD1 = new List <Tablas>(); tablasBD1.Add(new Tablas { table = "Nombre Tabla", columnas = new List <Columnas>() }); List <Columnas> ColumnasTabla1 = new List <Columnas>(); ColumnasTabla1.Add(new Columnas { tabla = "Col1", Id = "Varchar", Int1 = "Numero", Int2 = "2", Int3 = "3", Varchar1 = "Var1", Varchar2 = "Var2", Varchar3 = "var3", DateTime1 = "date1", DateTime2 = "Date2", DateTime3 = "Date3" }); tablasBD1[0].columnas = ColumnasTabla1; pBDS[0].Tables = tablasBD1; List <ResultadoGrid> lstResultado = new List <ResultadoGrid>(); List <ColumnasResult> Columnas = new List <ColumnasResult>(); DataTable Resultado = new DataTable(); lstResultado.Add(new ResultadoGrid { Columnas = Columnas, Resultado = Resultado }); ModelParams md = new ModelParams { BDS = pBDS, Resultado = lstResultado }; return(View(md)); }
public void UpdateModelParams(string modelName, IDictionary <string, double> keyvalues) { var model = new ModelParams(); model.InstanceName = modelName; foreach (var pair in keyvalues) { model.Params[pair.Key] = pair.Value; } MessageWrapper.SendMessage((uint)SystemMessageID.MSG_ID_UPDATE_MODELPARAMS, model); }
//------ public MathModel(ModelParams modParams, double time, double[] vars) { this.modParams = modParams; this.size = modParams.Size; Msys = new double[size, size]; Usys = new double[size]; Rsys = new double[size, size]; Gsys = new double[size, size]; //--- SetMsys(time, vars); SetGsys(time, vars); SetRsys(time, vars); SetUsys(time, vars); }
public static void TransformFromWorldToView(Model model, ModelParams modelParams) { CoordTransformations c = new CoordTransformations(); Matrix4x4 worldProjctionMatix = c.GetMVP(modelParams); float[] w = new float[model.Points.Count]; for (int i = 0; i < model.Points.Count; i++) { model.Points[i] = Vector4.Transform(model.Points[i], worldProjctionMatix); w[i] = model.Points[i].W; model.Points[i] /= model.Points[i].W; } c.TransformNormal(model, modelParams); c.transformToViewPort(model, modelParams, w); }
private ModelParams modParams; //Parametry modelu //------ public Solver(ModelParams modParams, MathModel model) { this.model = model; this.modParams = modParams; //--- this.hc = 0.00001; this.varSize = modParams.Size; this.vars1 = new double[varSize]; this.vars2 = new double[varSize]; this.derivSys = new double[varSize]; this.vecSys = new double[varSize]; //copy initial conditions array to vars1 and vars2 arrays for (int i = 0; i < varSize; i++) { vars1[i] = modParams.InitCondit[i]; vars2[i] = modParams.InitCondit[i]; } }
public Task <ModelParamsVM> QueryModelParamsAsync(string modelName, int timeout = 10000) { if (string.IsNullOrEmpty(modelName)) { return(Task.FromResult <ModelParamsVM>(null)); } var msgId = (uint)SystemMessageID.MSG_ID_QUERY_MODELPARAMS; var tcs = new TaskCompletionSource <ModelParamsVM>(new CancellationTokenSource(timeout)); var serialId = NextSerialId; ModelParams modelParams = new ModelParams(); modelParams.Header = new DataHeader { SerialId = serialId }; modelParams.InstanceName = modelName; #region callback MessageWrapper.RegisterAction <ModelParams, ExceptionMessage> (msgId, (resp) => { if (resp.Header?.SerialId == serialId) { tcs.TrySetResult(OnQueryModelParamsSuccess(resp)); } }, (ExceptionMessage bizErr) => { OnErrorAction(bizErr); tcs.SetResult(null); } ); #endregion MessageWrapper.SendMessage(msgId, modelParams); return(tcs.Task); }
public Task <IDictionary <string, ObservableCollection <ModelParamsVM> > > QueryAllModelParamsAsync(int timeout = 10000) { var msgId = (uint)SystemMessageID.MSG_ID_QUERY_MODELPARAMS; var tcs = new TaskCompletionSource <IDictionary <string, ObservableCollection <ModelParamsVM> > >(new CancellationTokenSource(timeout)); var serialId = NextSerialId; ModelParams modelParams = new ModelParams(); modelParams.Header = new DataHeader() { SerialId = serialId }; #region callback MessageWrapper.RegisterAction <ModelParams, ExceptionMessage> (msgId, (resp) => { if (resp.Header?.SerialId == serialId) { OnQueryModelParamsSuccess(resp); if (resp.Header == null || !resp.Header.HasMore) { tcs.TrySetResult(_modelDict); } } }, (ExceptionMessage bizErr) => { OnErrorAction(bizErr); tcs.SetResult(null); } ); #endregion MessageWrapper.SendMessage(msgId, modelParams); return(tcs.Task); }
//------ public void SolverStart(ModelParams modParams) { //********************Calculating delta for Textern increment double texternDelta = 0; if (modParams.Textern_t2 > modParams.Textern_t1) { texternDelta = modParams.Textern / ((modParams.Textern_t2 - modParams.Textern_t1) / hc); } double maximalTextern = modParams.Textern; modParams.Textern = 0; //******************** //|time|vars[0]|...|vars[size-1|Usys[0]|...|Usys[size-2|Telem| this.resCols = 1 + varSize + (varSize - 1) + 1; this.resRows = modParams.PtsResults + 1; this.drawResults = new double[resRows, resCols]; //time step between drawResults this.deltaTime = (modParams.TimeStop - modParams.TimeStart) / (this.resRows - 1); if (deltaTime <= hc) { hc = deltaTime; } //--- startTime = modParams.TimeStart; stopTime = modParams.TimeStop; time = startTime; drawTime = startTime; drawIndex = 0; //--- SetDrawResults(1, 0); //--- double[] K1 = new double[varSize]; double[] K2 = new double[varSize]; double[] K3 = new double[varSize]; double[] K4 = new double[varSize]; //The Runge-Kutta method while (time <= stopTime) { //*************************Zmiana wartości Momentu zewnętrznego.+++++++++++++++++++++++++++++++ if (time >= modParams.Textern_t1 && time <= modParams.Textern_t2 && modParams.Textern_t1 != modParams.Textern_t2) { modParams.Textern += texternDelta; //modParams.Textern = (Text / Text_t1) * (solver.time - Text_t1) + Text; } else if (time > modParams.Textern_t1 && modParams.Textern_t1 == modParams.Textern_t2) { modParams.Textern = maximalTextern; } //**************************Koniec dodatkowego kodu**************************** model.SetModel(time, vars1); //--- SetDsys(time, vars1); K1 = Product(hc, derivSys); SetDsys(time + 0.5 * hc, Add2(vars1, Product(0.5, K1))); K2 = Product(hc, derivSys); SetDsys(time + 0.5 * hc, Add2(vars1, Product(0.5, K2))); K3 = Product(hc, derivSys); SetDsys(time + hc, Add2(vars1, K3)); K4 = Product(hc, derivSys); vars2 = Add2(vars1, Product(0.16666, Add4(K1, Product(2, K2), Product(2, K3), K4))); //****** //int qqq = 0; if (time < drawTime && drawTime <= time + hc) { double dt = drawTime - time; double w1 = 1 - dt / hc; double w2 = dt / hc; if (drawIndex < resRows) { SetDrawResults(w1, w2); } } //****** time += hc; for (int i = 0; i < varSize; i++) { vars1[i] = vars2[i]; } } //while }
private Matrix4x4 GetMVP(ModelParams modelParams) { return(GetWorldMatrix(modelParams) * GetViewerMatrix(modelParams) * GetWorldProjectionMatrix(modelParams)); }
private static Matrix4x4 GetViewPortMetrix(ModelParams modelParams) { return(Matrix.GetViewPortMatrix(modelParams.XMin, modelParams.YMin, modelParams.Width, modelParams.Height, (int)modelParams.FarPlaneDistance)); }
private Matrix4x4 GetWorldProjectionMatrix(ModelParams modelParams) { return(Matrix4x4.CreatePerspectiveFieldOfView(modelParams.FieldOfView, modelParams.AspectRatio, modelParams.NearPlaneDistance, modelParams.FarPlaneDistance)); }
private Matrix4x4 GetViewerMatrix(ModelParams modelParams) { return (Matrix4x4.CreateTranslation(-new Vector3(modelParams.CameraPositionX, modelParams.CameraPositionY, modelParams.CameraPositionZ)) * Matrix4x4.Transpose(Matrix4x4.CreateFromYawPitchRoll(modelParams.CameraYaw, modelParams.CameraPitch, modelParams.CameraRoll))); }
private Matrix4x4 GetWorldMatrix(ModelParams modelParams) { ModelWorldMatrix = Matrix4x4.CreateScale(modelParams.Scaling) * Matrix4x4.CreateFromYawPitchRoll(modelParams.ModelYaw, modelParams.ModelPitch, modelParams.ModelRoll) * Matrix4x4.CreateTranslation(modelParams.TranslationX, modelParams.TranslationY, modelParams.TranslationZ); return(ModelWorldMatrix); }
protected void btnOblicz_Click(object sender, EventArgs e) { bool bVal1 = Double.TryParse(txtTmin.Text, out tmin); bool bVal2 = Double.TryParse(txtTmax.Text, out tmax); bool bVal4 = Double.TryParse(txtUa.Text, out Ua); bool bVal5 = Double.TryParse(txtRa_ext.Text, out Ra_ext); bool bVal6 = Double.TryParse(txtRf_ext.Text, out Rf_ext); bool bVal7 = Double.TryParse(txtMa_ext.Text, out Ma_ext); bool bVal8 = Double.TryParse(txtMf_ext.Text, out Mf_ext); bool bVal9 = Double.TryParse(txtJr_ext.Text, out Jr_ext); bool bVal10 = Double.TryParse(txtDr_ext.Text, out Dr_ext); bool bVal11 = Double.TryParse(txtText.Text, out Text); bool bVal12 = Double.TryParse(txtText_t1.Text, out Text_t1); bool bVal13 = Double.TryParse(txtText_t2.Text, out Text_t2); //Chart1.Visible = true; //Chart4.Visible = true; //--- modelParams = new ModelParams(); //modelParams.TimeStart = tmin; modelParams.TimeStop = tmax; modelParams.Uarma = Ua; modelParams.Uflux = Uf; modelParams.Raext = Ra_ext; modelParams.Rfext = Rf_ext; modelParams.Maext = Ma_ext * 0.001; //przeliczenie jednostek do µF i mH modelParams.Mfext = Mf_ext * 0.001; //przeliczenie jednostek do µF i mH modelParams.Jrext = Jr_ext; modelParams.Drext = Dr_ext; //ustawianie parametrow momentu zewnetrznego modelParams.Textern = Text; modelParams.Textern_t1 = Text_t1; modelParams.Textern_t2 = Text_t2; //---- flag = false; size = Convert.ToInt32(tmax / delta); //liczenie ilości próbek modelParams.PtsResults = size; //------------Sprawdzenie poprawności wprowadzania danych - walidacja------------- if (tmin >= tmax || tmax > 5 || tmin < 0 || !bVal1 || !bVal2) { validation.Visible = true; labErrorMessage_time.Visible = true; labErrorMessage_time.Text = "Wartości parametrów t<sub>min</sub> oraz t<sub>max</sub> zostały wprowadzone błędnie "; txtTmin.BackColor = System.Drawing.Color.Red; txtTmax.BackColor = System.Drawing.Color.Red; flag = true; } /* Sprawdzenie poprawności napięć*/ if (!bVal4 || Ua < 0) { validation.Visible = true; labErrorMessage_Voltage.Visible = true; labErrorMessage_Voltage.Text = "Błędnie wprowadzona wartość napięcia twornika"; txtUa.BackColor = System.Drawing.Color.Red; flag = true; } /* Sprawdzenie poprawności parametrów obwodu*/ if (!bVal5 || Ra_ext < 0) { validation.Visible = true; labErrorMessage_Reza.Visible = true; labErrorMessage_Reza.Text = "Błędnie wprowadzona wartość rezystancji obwodu twornika"; txtRa_ext.BackColor = System.Drawing.Color.Red; flag = true; } if (!bVal6 || Rf_ext < 0) { validation.Visible = true; labErrorMessage_Rezf.Visible = true; labErrorMessage_Rezf.Text = "Błędnie wprowadzona wartość rezystancji obwodu wzbudzenia"; txtRf_ext.BackColor = System.Drawing.Color.Red; flag = true; } if (!bVal7 || Ma_ext < 0) { validation.Visible = true; labErrorMessage_Inda.Visible = true; labErrorMessage_Inda.Text = "Błędnie wprowadzona wartość indukcyjności obwodu twornika"; txtMa_ext.BackColor = System.Drawing.Color.Red; flag = true; } if (!bVal8 || Mf_ext < 0) { validation.Visible = true; labErrorMessage_Indf.Visible = true; labErrorMessage_Indf.Text = "Błędnie wprowadzona wartość indukcyjności obwodu wzbudzenia"; txtMf_ext.BackColor = System.Drawing.Color.Red; flag = true; } /********sprawdzenie momentu bezwładności oraz współczynnika tłumienia********/ if (!bVal9 || Jr_ext < 0 || Jr_ext > 1) { validation.Visible = true; labErrorMessage_Jr.Visible = true; labErrorMessage_Jr.Text = "Wprowadzono niepoprawną wartość momentu bezwładności"; txtJr_ext.BackColor = System.Drawing.Color.Red; flag = true; } if (!bVal10 || Dr_ext < 0 || Dr_ext > 1) { validation.Visible = true; labErrorMessage_Dr.Visible = true; labErrorMessage_Dr.Text = "Wprowadzono niepoprawną wartość współczynnika tłumienia"; txtDr_ext.BackColor = System.Drawing.Color.Red; flag = true; } /*Sprawdzenie warunku momentu*/ if (Text_t1 > Text_t2 || Text_t2 > tmax || Text_t1 < 0 || Text_t1 < 0 || Text_t2 < 0 || !bVal12 || !bVal13 || !bVal11) { validation.Visible = true; labErrorMessage_Text.Visible = true; labErrorMessage_Text.Text = "Błędne wartości parametrów Text<sub>t1</sub>, Text<sub>t2</sub> oraz Text"; txtText.BackColor = System.Drawing.Color.Red; txtText_t1.BackColor = System.Drawing.Color.Red; txtText_t2.BackColor = System.Drawing.Color.Red; flag = true; } /*pętla*/ if (flag == true) { return; } else { labErrorMessage.Visible = true; labErrorMessage.Text = "Dane zostały wprowadzone poprawnie"; Chart1.Visible = true; } this.mathModel = new MathModel(modelParams, modelParams.TimeStart, modelParams.InitCondit); this.solver = new Solver(modelParams, mathModel); //--- solver.SolverStart(modelParams); double[,] wyniki = solver.Results; //-- pierwsza tabela danych do wykresu 1 table1 = new DataTable(); //-- DataColumn column1; DataRow row1; //-- column1 = new DataColumn(); column1.DataType = Type.GetType("System.Double"); column1.ColumnName = "Torque"; table1.Columns.Add(column1); //=-- //column = new DataColumn(); //column.DataType = Type.GetType("System.Double"); //column.ColumnName = "Voltage"; //table.Columns.Add(column); //=-- column1 = new DataColumn(); column1.DataType = Type.GetType("System.Double"); column1.ColumnName = "Omega"; table1.Columns.Add(column1); //=-- //column1 = new DataColumn(); //column1.DataType = Type.GetType("System.Double"); //column1.ColumnName = "Uf"; //table1.Columns.Add(column1); //=-- //column1 = new DataColumn(); //column1.DataType = Type.GetType("System.Double"); //column1.ColumnName = "Ics"; //table1.Columns.Add(column1); //----- tabela do drugiego wykresu //table2 = new DataTable(); //DataColumn column2; //DataRow row2; //-- //column2 = new DataColumn(); //column2.DataType = Type.GetType("System.Double"); //column2.ColumnName = "Time"; //table2.Columns.Add(column2); //column2 = new DataColumn(); //column2.DataType = Type.GetType("System.Double"); //column2.ColumnName = "Uas"; //table2.Columns.Add(column2); ////=-- //column2 = new DataColumn(); //column2.DataType = Type.GetType("System.Double"); //column2.ColumnName = "Ubs"; //table2.Columns.Add(column2); ////=-- //column2 = new DataColumn(); //column2.DataType = Type.GetType("System.Double"); //column2.ColumnName = "Ucs"; //table2.Columns.Add(column2); //-------tabela do trzeciego wykresu //table3 = new DataTable(); //DataColumn column3; //DataRow row3; //-- //column3 = new DataColumn(); //column3.DataType = Type.GetType("System.Double"); //column3.ColumnName = "Time"; //table3.Columns.Add(column3); //column3 = new DataColumn(); //column3.DataType = Type.GetType("System.Double"); //column3.ColumnName = "Iar"; //table3.Columns.Add(column3); ////=-- //column3 = new DataColumn(); //column3.DataType = Type.GetType("System.Double"); //column3.ColumnName = "Ibr"; //table3.Columns.Add(column3); ////=-- //column3 = new DataColumn(); //column3.DataType = Type.GetType("System.Double"); //column3.ColumnName = "Icr"; //table3.Columns.Add(column3); //-------tabela do czwartego wykresu //table2 = new DataTable(); //DataColumn column2; //DataRow row2; //-- //column2 = new DataColumn(); //column2.DataType = Type.GetType("System.Double"); //column2.ColumnName = "Time"; //table2.Columns.Add(column2); //column2 = new DataColumn(); //column2.DataType = Type.GetType("System.Double"); //column2.ColumnName = "ω"; //table2.Columns.Add(column2); //=-- //column2 = new DataColumn(); //column2.DataType = Type.GetType("System.Double"); //column2.ColumnName = "Text"; //table2.Columns.Add(column2); //=-- //column2 = new DataColumn(); //column2.DataType = Type.GetType("System.Double"); //column2.ColumnName = "Telem"; //table2.Columns.Add(column2); //---------------- int size_tmin = Convert.ToInt32(tmin / delta); //labErrorMessage.Text = "jest to ilosc " + (int)size; for (int i = 0; i <= size; i++) { row1 = table1.NewRow(); row1["Torque"] = wyniki[i, 7]; row1["Omega"] = wyniki[i, 3]; // //row1["Uf"] = wyniki[i, 6]; // //row1["Ics"] = wyniki[i, 3]; // table1.Rows.Add(row1); //row2 = table2.NewRow(); //row2["Time"] = wyniki[i, 0]; //row2["Uas"] = wyniki[i, 9]; // //row2["Ubs"] = wyniki[i, 10]; // //row2["Ucs"] = wyniki[i, 11]; // //table2.Rows.Add(row2); //row3 = table3.NewRow(); //row3["Time"] = wyniki[i, 0]; //row3["Iar"] = wyniki[i, 4]; // //row3["Ibr"] = wyniki[i, 5]; // //row3["Icr"] = wyniki[i, 6]; // //table3.Rows.Add(row3); //row2 = table2.NewRow(); //row2["Time"] = wyniki[i, 0]; //row2["ω"] = wyniki[i, 3]; // //row2["Text"] = wyniki[i, 5]; // //row2["Telem"] = wyniki[i, 6]; // //table2.Rows.Add(row2); } //table1.Rows.RemoveAt(table1.Rows.Count - 1); dView1 = new DataView(table1); //-- Chart1.Series.Clear(); Chart1.ChartAreas.Add("Wykres01"); //-- Chart1.DataBindTable(dView1, "Torque"); Chart1.Width = 900; Chart1.Height = 750; //Chart3.Series["Voltage"].ChartType = SeriesChartType.Line; Chart1.Series["Omega"].ChartType = SeriesChartType.Spline; Chart1.Series["Omega"].BorderWidth = 3;//grubosc wykresu //Chart1.Series["Uf"].ChartType = SeriesChartType.Spline; //Chart1.Series["Uf"].BorderWidth = 3;//grubosc wykresu //Chart1.ChartAreas["ChartArea1"].AxisY2.Enabled = AxisEnabled.True; //Chart1.Series["Uf"].YAxisType = AxisType.Secondary; //if (chkIcs.Checked) //{ // Chart1.Visible = true; // Chart1.Series["Ics"].ChartType = SeriesChartType.Line; // Chart1.Series["Ics"].BorderWidth = 3;//grubosc wykresu //} //Chart1.ChartAreas[0].AxisX.LineWidth = 2; Chart1.ChartAreas[0].AxisX.Minimum = tmin; //Chart1.ChartAreas[0].AxisX.Maximum = (double)table.Rows[size]["Time"]; //Chart1.ChartAreas[0].AxisY.Minimum = 0.0; Chart1.ChartAreas[0].AxisY.ArrowStyle = AxisArrowStyle.Lines;//strzałki wykresu //Chart1.ChartAreas[0].AxisX.ArrowStyle = AxisArrowStyle.Lines; Chart1.ChartAreas[0].AxisY2.ArrowStyle = AxisArrowStyle.Lines; //Chart1.ChartAreas[0].AxisY2.Minimum = 0.0; //Chart1.ChartAreas[0].AxisY2.Maximum = 2.4; Chart1.ChartAreas[0].AxisX.LabelStyle.Format = "{#0.###}"; Chart1.ChartAreas[0].AxisX.Title = "Moment obrotowy [Nm]"; Chart1.ChartAreas[0].AxisY.Title = "Omega [rad/s]"; //Chart1.ChartAreas[0].AxisY2.Title = "Uf [V]"; Chart1.ChartAreas[0].AxisX.TitleFont = new System.Drawing.Font("Calibri", 11F, System.Drawing.FontStyle.Bold); Chart1.ChartAreas[0].AxisY.TitleFont = new System.Drawing.Font("Calibri", 11F, System.Drawing.FontStyle.Bold); //Chart1.ChartAreas[0].AxisY2.TitleFont = new System.Drawing.Font("Calibri", 11F, System.Drawing.FontStyle.Bold); //DRUGI WYKRES //dView2 = new DataView(table2); ////-- //Chart2.Series.Clear(); //Chart2.ChartAreas.Add("Wykres02"); //Chart2.Series.Add("Series2"); ////-- //Chart2.DataBindTable(dView2, "Time"); //Chart2.Width = 1200; //Chart2.Height = 800; ////Chart3.Series["Voltage"].ChartType = SeriesChartType.Line; //if (chkUas.Checked) //{ // Chart2.Visible = true; // Chart2.Series["Uas"].ChartType = SeriesChartType.Line; // Chart2.Series["Uas"].BorderWidth = 3;//grubosc wykresu //} //if (chkUbs.Checked) //{ // Chart2.Visible = true; // Chart2.Series["Ubs"].ChartType = SeriesChartType.Line; // Chart2.Series["Ubs"].BorderWidth = 3;//grubosc wykresu //} //if (chkUcs.Checked) //{ // Chart2.Visible = true; // Chart2.Series["Ucs"].ChartType = SeriesChartType.Line; // Chart2.Series["Ucs"].BorderWidth = 3;//grubosc wykresu //} ////Chart1.ChartAreas[0].AxisX.LineWidth = 2; //Chart2.ChartAreas[0].AxisX.Minimum = tmin; ////Chart1.ChartAreas[0].AxisX.Maximum = (double)table.Rows[size]["Time"]; ////Chart1.ChartAreas[0].AxisY.Minimum = 0.0; //Chart2.ChartAreas[0].AxisY.ArrowStyle = AxisArrowStyle.Lines;//strzałki wykresu //Chart2.ChartAreas[0].AxisX.ArrowStyle = AxisArrowStyle.Lines; //Chart2.ChartAreas[0].AxisY2.Minimum = 0.0; //Chart2.ChartAreas[0].AxisY2.Maximum = 100.0; //Chart2.ChartAreas[0].AxisX.LabelStyle.Format = "{#0.###}"; //Chart2.ChartAreas[0].AxisX.Title = "Czas [s]"; //Chart2.ChartAreas[0].AxisY.Title = "Napięcie [U]"; //Chart2.ChartAreas[0].AxisX.TitleFont = new System.Drawing.Font("Calibri", 15F, System.Drawing.FontStyle.Bold); //Chart2.ChartAreas[0].AxisY.TitleFont = new System.Drawing.Font("Calibri", 15F, System.Drawing.FontStyle.Bold); //Trzeci WYKRES //dView3 = new DataView(table3); ////-- //Chart3.Series.Clear(); //Chart3.ChartAreas.Add("Wykres03"); ////-- //Chart3.DataBindTable(dView3, "Time"); //Chart3.Width = 1200; //Chart3.Height = 800; //if (chkIar.Checked) //{ // Chart3.Visible = true; // Chart3.Series["Iar"].ChartType = SeriesChartType.Line; // Chart3.Series["Iar"].BorderWidth = 3;//grubosc wykresu //} //if (chkIbr.Checked) //{ // Chart3.Visible = true; // Chart3.Series["Ibr"].ChartType = SeriesChartType.Line; // Chart3.Series["Ibr"].BorderWidth = 3;//grubosc wykresu //} //if (chkIcr.Checked) //{ // Chart3.Visible = true; // Chart3.Series["Icr"].ChartType = SeriesChartType.Line; // Chart3.Series["Icr"].BorderWidth = 3;//grubosc wykresu //} ////Chart1.ChartAreas[0].AxisX.LineWidth = 2; //Chart3.ChartAreas[0].AxisX.Minimum = tmin; ////Chart1.ChartAreas[0].AxisX.Maximum = (double)table.Rows[size]["Time"]; ////Chart1.ChartAreas[0].AxisY.Minimum = 0.0; //Chart3.ChartAreas[0].AxisY.ArrowStyle = AxisArrowStyle.Lines;//strzałki wykresu //Chart3.ChartAreas[0].AxisX.ArrowStyle = AxisArrowStyle.Lines; //Chart3.ChartAreas[0].AxisY2.Minimum = 0.0; //Chart3.ChartAreas[0].AxisY2.Maximum = 100.0; //Chart3.ChartAreas[0].AxisX.LabelStyle.Format = "{#0.###}"; //Chart3.ChartAreas[0].AxisX.Title = "Czas [s]"; //Chart3.ChartAreas[0].AxisY.Title = "Prąd [A]"; //Chart3.ChartAreas[0].AxisX.TitleFont = new System.Drawing.Font("Calibri", 15F, System.Drawing.FontStyle.Bold); //Chart3.ChartAreas[0].AxisY.TitleFont = new System.Drawing.Font("Calibri", 15F, System.Drawing.FontStyle.Bold); //Czwarty WYKRES //dView2 = new DataView(table2); //-- //Chart2.Series.Clear(); //Chart2.ChartAreas.Add("Wykres04"); //-- //Chart2.DataBindTable(dView2, "Time"); //Chart2.Width = 900; //Chart2.Height = 750; //Chart4.Visible = true; //Chart4.ChartAreas["ChartArea1"].AxisY2.Enabled = AxisEnabled.True; //Chart4.Series["ω"].ChartType = SeriesChartType.Line; //Chart4.Series["ω"].BorderWidth = 3;//grubosc wykresu //Chart4.Series["ω"].YAxisType = AxisType.Secondary; //Chart2.Series["ω"].ChartType = SeriesChartType.Line; //Chart2.Series["ω"].BorderWidth = 3;//grubosc wykresu //Chart2.ChartAreas["ChartArea1"].AxisY2.Enabled = AxisEnabled.True; //Chart2.Series["ω"].YAxisType = AxisType.Secondary; //Chart2.Series["Text"].ChartType = SeriesChartType.Line; //Chart2.Series["Text"].BorderWidth = 3;//grubosc wykresu //Chart2.Series["Telem"].ChartType = SeriesChartType.Line; //Chart2.Series["Telem"].BorderWidth = 3;//grubosc wykresu //Chart1.ChartAreas[0].AxisX.LineWidth = 2; //Chart2.ChartAreas[0].AxisX.Minimum = tmin; //Chart1.ChartAreas[0].AxisX.Maximum = (double)table.Rows[size]["Time"]; //Chart1.ChartAreas[0].AxisY.Minimum = 0.0; //Chart2.ChartAreas[0].AxisY.ArrowStyle = AxisArrowStyle.Lines;//strzałki wykresu //Chart2.ChartAreas[0].AxisY2.ArrowStyle = AxisArrowStyle.Lines; //Chart4.ChartAreas[0].AxisX.ArrowStyle = AxisArrowStyle.Lines; //Chart4.ChartAreas[0].AxisY2.Minimum = 0.0; //Chart4.ChartAreas[0].AxisY2.Maximum = 110.0; //Chart2.ChartAreas[0].AxisY2.Title = "prędkość kątowa [rad/s]"; //Chart2.ChartAreas[0].AxisX.LabelStyle.Format = "{#0.###}"; //Chart2.ChartAreas[0].AxisX.Title = "Czas [s]"; //Chart2.ChartAreas[0].AxisY.Title = "Moment [Nm]"; //Chart2.ChartAreas[0].AxisX.TitleFont = new System.Drawing.Font("Calibri", 11F, System.Drawing.FontStyle.Bold); //Chart2.ChartAreas[0].AxisY.TitleFont = new System.Drawing.Font("Calibri", 11F, System.Drawing.FontStyle.Bold); //Chart2.ChartAreas[0].AxisY2.TitleFont = new System.Drawing.Font("Calibri", 11F, System.Drawing.FontStyle.Bold); }
protected void btnOblicz_Click(object sender, EventArgs e) { bool bVal1 = Int32.TryParse(txtTmin.Text, out Tmin); bool bVal2 = Int32.TryParse(txtTmax.Text, out Tmax); bool bVal4 = Double.TryParse(txtUt_m.Text, out U_mnoznik); //Chart1.Visible = true; //Chart4.Visible = true; //--- modelParams = new ModelParams(); //modelParams.TimeStart = tmin; //modelParams.TimeStop = tmax; modelParams.Uarma = Ua * U_mnoznik; modelParams.Uflux = Uf; modelParams.Raext = Ra_ext; modelParams.Rfext = Rf_ext; modelParams.Maext = Ma_ext * 0.001; //przeliczenie jednostek do µF i mH modelParams.Mfext = Mf_ext * 0.001; //przeliczenie jednostek do µF i mH If = modelParams.Uflux / modelParams.Rfint; //Ia = (modelParams.Uarma - modelParams.Gaf * If * ω) / modelParams.Raint; //ω = (modelParams.Uarma - modelParams.Raint * Ia) / (modelParams.Gaf * If); //modelParams.Jrext = Jr_ext; modelParams.Drext = Dr_ext; //Text = modelParams.Drext * ω - modelParams.Gaf * If * Ia; //ustawianie parametrow momentu zewnetrznego modelParams.Textern = Text; modelParams.Textern_t1 = Text_t1; modelParams.Textern_t2 = Text_t2; //---- flag = false; //size = Convert.ToInt32(Tmax / delta); //liczenie ilości próbek ; modelParams.Tstop //modelParams.PtsResults = size; size = modelParams.PtsResults; //------------Sprawdzenie poprawności wprowadzania danych - walidacja------------- if (Tmin >= Tmax || Tmin < 0 || !bVal1 || !bVal2) { validation.Visible = true; labErrorMessage_Tm.Visible = true; labErrorMessage_Tm.Text = "Wartości parametrów t<sub>min</sub> oraz t<sub>max</sub> zostały wprowadzone błędnie "; txtTmin.BackColor = System.Drawing.Color.Red; txtTmax.BackColor = System.Drawing.Color.Red; flag = true; } /* Sprawdzenie poprawności napięć*/ if (!bVal4 || Ua < 0) { validation.Visible = true; labErrorMessage_Voltage.Visible = true; labErrorMessage_Voltage.Text = "Błędnie wprowadzona wartość napięcia twornika"; txtUt_m.BackColor = System.Drawing.Color.Red; flag = true; } /*pętla*/ if (flag == true) { return; } else { labErrorMessage.Visible = true; labErrorMessage.Text = "Dane zostały wprowadzone poprawnie"; Chart1.Visible = true; } this.mathModel = new MathModel(modelParams, modelParams.TimeStart, modelParams.InitCondit); this.solver = new Solver(modelParams, mathModel); //--- solver.SolverStart(modelParams); double[,] wyniki = solver.Results; //-- pierwsza tabela danych do wykresu 1 table1 = new DataTable(); //-- DataColumn column1; DataRow row1; //-- column1 = new DataColumn(); column1.DataType = Type.GetType("System.Double"); column1.ColumnName = "Torque"; table1.Columns.Add(column1); column1 = new DataColumn(); column1.DataType = Type.GetType("System.Double"); column1.ColumnName = "ω"; table1.Columns.Add(column1); column1 = new DataColumn(); column1.DataType = Type.GetType("System.Double"); column1.ColumnName = "ω przy Uan"; table1.Columns.Add(column1); //---------------- //int size_tmin = Convert.ToInt32(Tmin / delta); //labErrorMessage.Text = "jest to ilosc " + (int)size; double[,] array; for (int i = Tmin; i <= Tmax; i++) { array = new double[Tmax + 1, 3]; array[i, 0] = i; array[i, 1] = ((modelParams.Uarma / modelParams.Gaf * If) - (modelParams.Raint / Math.Pow(modelParams.Gaf * If, 2)) * i) * 10; array[i, 2] = ((Ua / modelParams.Gaf * If) - (modelParams.Raint / Math.Pow(modelParams.Gaf * If, 2)) * i) * 10; row1 = table1.NewRow(); row1["Torque"] = array[i, 0]; row1["ω"] = array[i, 1]; row1["ω przy Uan"] = array[i, 2]; table1.Rows.Add(row1); } //-- dView1 = new DataView(table1); //-- Chart1.Series.Clear(); Chart1.ChartAreas.Add("Wykres01"); //-- Chart1.DataBindTable(dView1, "Torque"); Chart1.Width = 900; Chart1.Height = 750; Chart1.Series["ω"].ChartType = SeriesChartType.Line; Chart1.Series["ω"].BorderWidth = 3; //grubosc wykresu Chart1.Series["ω przy Uan"].ChartType = SeriesChartType.Line; Chart1.Series["ω przy Uan"].BorderWidth = 3; //grubosc wykresu //if (chkIcs.Checked) //{ // Chart1.Visible = true; // Chart1.Series["Ics"].ChartType = SeriesChartType.Line; // Chart1.Series["Ics"].BorderWidth = 3;//grubosc wykresu //} //Chart1.ChartAreas[0].AxisX.LineWidth = 2; Chart1.ChartAreas[0].AxisX.Minimum = 0; //Chart1.ChartAreas[0].AxisX.Maximum = (double)table1.Rows[size]["Torque"]; //Chart1.ChartAreas[0].AxisY.Minimum = 0.0; Chart1.ChartAreas[0].AxisY.ArrowStyle = AxisArrowStyle.Lines;//strzałki wykresu //Chart1.ChartAreas[0].AxisX.ArrowStyle = AxisArrowStyle.Lines; Chart1.ChartAreas[0].AxisX.LabelStyle.Format = "{#0.###}"; Chart1.ChartAreas[0].AxisX.Title = "Text [Nm]"; Chart1.ChartAreas[0].AxisY.Title = "ω [rad/s]"; Chart1.ChartAreas[0].AxisX.TitleFont = new System.Drawing.Font("Calibri", 11F, System.Drawing.FontStyle.Bold); Chart1.ChartAreas[0].AxisY.TitleFont = new System.Drawing.Font("Calibri", 11F, System.Drawing.FontStyle.Bold); }
public bool Save() { bool result; try { var unitModelParams = ModelParams.Write(new PacketStream()).GetBytes(); var slots = new PacketStream(); foreach (var slot in Slots) { slots.Write((byte)slot.Type); if (slot.Type != ActionSlotType.None) { slots.Write(slot.ActionId); } } using (var connection = MySQL.CreateConnection()) { using (var transaction = connection.BeginTransaction()) { using (var command = connection.CreateCommand()) { command.Connection = connection; command.Transaction = transaction; // ---- command.CommandText = "REPLACE INTO `characters` " + "(`id`,`account_id`,`name`,`race`,`gender`,`unit_model_params`,`level`,`expirience`,`recoverable_exp`,`hp`,`mp`,`labor_power`,`labor_power_modified`,`consumed_lp`,`ability1`,`ability2`,`ability3`,`zone_id`,`x`,`y`,`z`,`rotation_x`,`rotation_y`,`rotation_z`,`faction_id`,`faction_name`,`family`,`dead_count`,`dead_time`,`rez_wait_duration`,`rez_time`,`rez_penalty_duration`,`leave_time`,`money`,`money2`,`crime_point`,`crime_record`,`delete_request_time`,`transfer_request_time`,`delete_time`,`bm_point`,`auto_use_aapoint`,`prev_point`,`point`,`gift`,`num_inv_slot`,`num_bank_slot`,`slots`,`updated_at`) " + "VALUES(@id,@account_id,@name,@race,@gender,@unit_model_params,@level,@expirience,@recoverable_exp,@hp,@mp,@labor_power,@labor_power_modified,@consumed_lp,@ability1,@ability2,@ability3,@zone_id,@x,@y,@z,@rotation_x,@rotation_y,@rotation_z,@faction_id,@faction_name,@family,@dead_count,@dead_time,@rez_wait_duration,@rez_time,@rez_penalty_duration,@leave_time,@money,@money2,@crime_point,@crime_record,@delete_request_time,@transfer_request_time,@delete_time,@bm_point,@auto_use_aapoint,@prev_point,@point,@gift,@num_inv_slot,@num_bank_slot,@slots,@updated_at)"; command.Parameters.AddWithValue("@id", Id); command.Parameters.AddWithValue("@account_id", AccountId); command.Parameters.AddWithValue("@name", Name); command.Parameters.AddWithValue("@race", (byte)Race); command.Parameters.AddWithValue("@gender", (byte)Gender); command.Parameters.AddWithValue("@unit_model_params", unitModelParams); command.Parameters.AddWithValue("@level", Level); command.Parameters.AddWithValue("@expirience", Expirience); command.Parameters.AddWithValue("@recoverable_exp", RecoverableExp); command.Parameters.AddWithValue("@hp", Hp); command.Parameters.AddWithValue("@mp", Mp); command.Parameters.AddWithValue("@labor_power", LaborPower); command.Parameters.AddWithValue("@labor_power_modified", LaborPowerModified); command.Parameters.AddWithValue("@consumed_lp", ConsumedLaborPower); command.Parameters.AddWithValue("@ability1", (byte)Ability1); command.Parameters.AddWithValue("@ability2", (byte)Ability2); command.Parameters.AddWithValue("@ability3", (byte)Ability3); command.Parameters.AddWithValue("@zone_id", Position.ZoneId); command.Parameters.AddWithValue("@x", Position.X); command.Parameters.AddWithValue("@y", Position.Y); command.Parameters.AddWithValue("@z", Position.Z); command.Parameters.AddWithValue("@rotation_x", Position.RotationX); command.Parameters.AddWithValue("@rotation_y", Position.RotationY); command.Parameters.AddWithValue("@rotation_z", Position.RotationZ); command.Parameters.AddWithValue("@faction_id", Faction.Id); command.Parameters.AddWithValue("@faction_name", FactionName); command.Parameters.AddWithValue("@family", Family); command.Parameters.AddWithValue("@dead_count", DeadCount); command.Parameters.AddWithValue("@dead_time", DeadTime); command.Parameters.AddWithValue("@rez_wait_duration", RezWaitDuration); command.Parameters.AddWithValue("@rez_time", RezTime); command.Parameters.AddWithValue("@rez_penalty_duration", RezPenaltyDuration); command.Parameters.AddWithValue("@leave_time", LeaveTime); command.Parameters.AddWithValue("@money", Money); command.Parameters.AddWithValue("@money2", Money2); command.Parameters.AddWithValue("@crime_point", CrimePoint); command.Parameters.AddWithValue("@crime_record", CrimeRecord); command.Parameters.AddWithValue("@delete_request_time", DeleteRequestTime); command.Parameters.AddWithValue("@transfer_request_time", TransferRequestTime); command.Parameters.AddWithValue("@delete_time", DeleteTime); command.Parameters.AddWithValue("@bm_point", BmPoint); command.Parameters.AddWithValue("@auto_use_aapoint", AutoUseAAPoint); command.Parameters.AddWithValue("@prev_point", PrevPoint); command.Parameters.AddWithValue("@point", Point); command.Parameters.AddWithValue("@gift", Gift); command.Parameters.AddWithValue("@num_inv_slot", NumInventorySlots); command.Parameters.AddWithValue("@num_bank_slot", NumBankSlots); command.Parameters.AddWithValue("@slots", slots.GetBytes()); command.Parameters.AddWithValue("@updated_at", Updated); command.ExecuteNonQuery(); } using (var command = connection.CreateCommand()) { command.Connection = connection; command.Transaction = transaction; foreach (var pair in _options) { command.CommandText = "REPLACE INTO `options` (`key`,`value`,`owner`) VALUES (@key,@value,@owner)"; command.Parameters.AddWithValue("@key", pair.Key); command.Parameters.AddWithValue("@value", pair.Value); command.Parameters.AddWithValue("@owner", Id); command.ExecuteNonQuery(); command.Parameters.Clear(); } } Inventory.Save(connection, transaction); Abilities.Save(connection, transaction); Appellations.Save(connection, transaction); Skills.Save(connection, transaction); Quests.Save(connection, transaction); try { transaction.Commit(); result = true; } catch (Exception ex) { _log.Error(ex); try { transaction.Rollback(); } catch (Exception ex2) { _log.Error(ex2); } result = false; } } } } catch (Exception ex) { _log.Error(ex); result = false; } return(result); }
public ActionResult DrawWaveforms(Parameters param) { //solver results //0 |1 |2 |3 |4 |5 |6 |7 |8 |9 |10 |11 |12 |13 |14 |15 |16 //time|Isu|Isv|Isw|Iru|Irv|Irw|Omega|Alfa|Usu|Usv|Usw|Uru|Urv|Urv|Text|Telem //------- DataTable dTableIU; DataTable dTableOmegaTorque; DataView dViewIU; DataView dViewOmegaTorque; DataColumn column; DataRow row; ModelParams modelParams = new ModelParams(); parametersPassing(param, modelParams); MathModel mathModel = new MathModel(modelParams, modelParams.TimeStart, modelParams.InitCondit); Solver solver = new Solver(modelParams, mathModel); solver.SolverStart(modelParams); //currents and voltages chart dTableIU = new DataTable(); column = new DataColumn(); column.DataType = Type.GetType("System.Double"); column.ColumnName = "Time"; dTableIU.Columns.Add(column); //______________________ column = new DataColumn(); column.DataType = Type.GetType("System.Double"); column.ColumnName = "Iu"; dTableIU.Columns.Add(column); //_______________________ column = new DataColumn(); column.DataType = Type.GetType("System.Double"); column.ColumnName = "Iv"; dTableIU.Columns.Add(column); //_______________________ column = new DataColumn(); column.DataType = Type.GetType("System.Double"); column.ColumnName = "Iw"; dTableIU.Columns.Add(column); //________________________ column = new DataColumn(); column.DataType = Type.GetType("System.Double"); column.ColumnName = "Uuv"; dTableIU.Columns.Add(column); // Adding rows double Ki = 1; // or Math.Sqrt(3) double Ku = 1; // or 0.25 for (int i = 0; i < modelParams.PtsResults; i++) { row = dTableIU.NewRow(); row["Time"] = solver.Results[i, 0]; row["Iu"] = solver.Results[i, 1] * Ki; row["Iv"] = solver.Results[i, 2] * Ki; row["Iw"] = solver.Results[i, 3] * Ki; row["Uuv"] = solver.Results[i, 9] * Ku; dTableIU.Rows.Add(row); } dViewIU = new DataView(dTableIU); Chart chartIU = new Chart(); chartIU.Width = 1050; chartIU.Height = 700; chartIU.Series.Clear(); chartIU.Titles.Clear(); chartIU.Titles.Add("Currents and voltages waveforms"); chartIU.DataBindTable(dViewIU, "Time"); chartIU.ChartAreas.Add(new ChartArea("Current")); chartIU.ChartAreas.Add(new ChartArea("Voltage")); chartIU.ChartAreas["Voltage"].AxisY.Title = "Uuv[V]"; chartIU.ChartAreas["Current"].AxisY.Title = "Stator currents [A]"; chartIU.Series["Uuv"].ChartType = SeriesChartType.Line; chartIU.Series["Iu"].ChartType = System.Web.UI.DataVisualization.Charting.SeriesChartType.Line; chartIU.Series["Iv"].ChartType = System.Web.UI.DataVisualization.Charting.SeriesChartType.Line; chartIU.Series["Iw"].ChartType = System.Web.UI.DataVisualization.Charting.SeriesChartType.Line; chartIU.Series["Uuv"].ChartArea = "Voltage"; chartIU.Series["Iu"].ChartArea = "Current"; chartIU.Series["Iv"].ChartArea = "Current"; chartIU.Series["Iw"].ChartArea = "Current"; chartIU.ChartAreas[0].AxisX.Minimum = 0; chartIU.ChartAreas[1].AxisX.Minimum = 0; //________________________________________________________________________________________________ chartIU.Titles[0].Font = new System.Drawing.Font( "Times New Roman", 16F, System.Drawing.FontStyle.Bold); chartIU.Titles[0].ForeColor = System.Drawing.Color.FromArgb(250, 0, 0); //*********************************************************** //Speed and torque dTableOmegaTorque = new DataTable(); column = new DataColumn(); column.DataType = Type.GetType("System.Double"); column.ColumnName = "Time"; dTableOmegaTorque.Columns.Add(column); //___________________________ column = new DataColumn(); column.DataType = Type.GetType("System.Double"); column.ColumnName = "Omega"; dTableOmegaTorque.Columns.Add(column); //___________________________ column = new DataColumn(); column.DataType = Type.GetType("System.Double"); column.ColumnName = "Torque"; dTableOmegaTorque.Columns.Add(column); //___________________________ double Kt = 2; //adding rows for (int i = 0; i < modelParams.PtsResults; i++) { row = dTableOmegaTorque.NewRow(); row["Time"] = solver.Results[i, 0]; row["Omega"] = solver.Results[i, 7]; row["Torque"] = solver.Results[i, 16] * Kt; dTableOmegaTorque.Rows.Add(row); } dViewOmegaTorque = new DataView(dTableOmegaTorque); Chart chartOmegaTorque = new Chart(); chartOmegaTorque.Width = 1050; chartOmegaTorque.Height = 700; dViewOmegaTorque = new DataView(dTableOmegaTorque); chartOmegaTorque.ChartAreas.Add("Waveforms"); chartOmegaTorque.DataBindTable(dViewOmegaTorque, "Time"); chartOmegaTorque.Series["Omega"].ChartType = System.Web.UI.DataVisualization.Charting.SeriesChartType.Line; chartOmegaTorque.Series["Torque"].ChartType = System.Web.UI.DataVisualization.Charting.SeriesChartType.Line; chartOmegaTorque.ChartAreas["Waveforms"].AxisX.Minimum = 0.0; chartOmegaTorque.ChartAreas["Waveforms"].AxisX.Maximum = (double)solver.Results[modelParams.PtsResults - 1, 0]; chartOmegaTorque.ChartAreas["Waveforms"].AxisX.LabelStyle.Format = "{#0.000}"; chartOmegaTorque.Width = 1050; chartOmegaTorque.Height = 400; // Legend and title chartOmegaTorque.ChartAreas["Waveforms"].AxisY.Title = "Omega and Torque"; chartOmegaTorque.Legends.Add(new Legend("Legend")); chartOmegaTorque.Legends["Legend"].DockedToChartArea = "Waveforms"; chartOmegaTorque.Series["Omega"].Legend = "Legend"; chartOmegaTorque.Series["Omega"].IsVisibleInLegend = true; chartOmegaTorque.Series["Omega"].LegendText = "Omega [rad/s]"; chartOmegaTorque.Series["Torque"].LegendText = "Torque*2 [Nm]"; chartOmegaTorque.Legends["Legend"].Alignment = StringAlignment.Center; // ------------- Creating chart list ------------ var chartList = new List <Chart> { chartIU, chartOmegaTorque }; var imageList = ChartsToImages(chartList); // ----- Final size of image and bonding charts into one .bmp file var size = new Size(); foreach (var image in imageList) { if (image.Width > size.Width) { size.Width = image.Width; } size.Height += image.Height; } var finalImage = new Bitmap(size.Width, size.Height); using (var gfx = Graphics.FromImage(finalImage)) { var y = 0; foreach (var image in imageList) { gfx.DrawImage(image, 0, y); y += image.Height; } } MemoryStream finalms = new MemoryStream(); finalImage.Save(finalms, System.Drawing.Imaging.ImageFormat.Png); for (int i = 0; i < 8; i++) { modelParams.InitCondit[i] = 0; } return(File(finalms.GetBuffer(), "image/png")); }
public ActionResult Index(string[] textAreaSQL) { LecturaDatosController.Leer(textAreaSQL); List <BaseDatos> pBDS = new List <BaseDatos>(); pBDS.Add(new BaseDatos { Nombre = "Base1", Tables = new List <Tablas>() }); pBDS.Add(new BaseDatos { Nombre = "Base2", Tables = new List <Tablas>() }); pBDS.Add(new BaseDatos { Nombre = "Base3", Tables = new List <Tablas>() }); pBDS.Add(new BaseDatos { Nombre = "Base4", Tables = new List <Tablas>() }); pBDS.Add(new BaseDatos { Nombre = "Base5", Tables = new List <Tablas>() }); List <Tablas> tablasBD1 = new List <Tablas>(); string NombreTabla = Tabla.nombretablas[0]; List <Columnas> ColumnasTabla1 = new List <Columnas>(); Tabla tabla = new Tabla(); List <Tabla> elementoTabla = new List <Tabla>(); if (Tabla.DiccionarioTabla[NombreTabla] != null) { tablasBD1.Add(new Tablas { table = Tabla.nombretablas[0], columnas = new List <Columnas>() }); for (int i = 0; i < Tabla.ResultadoVistas.Count(); i++) { elementoTabla = Tabla.DiccionarioTabla[NombreTabla]; tabla = elementoTabla[i]; ColumnasTabla1.Add(new Columnas { tabla = tabla.nombre, Id = tabla.id, Int1 = tabla.int1, Int2 = tabla.int2, Int3 = tabla.int3, Varchar1 = tabla.varchar1, Varchar2 = tabla.varchar2, Varchar3 = tabla.varchar3, DateTime1 = tabla.dateTime1, DateTime2 = tabla.dateTime2, DateTime3 = tabla.dateTime3 }); } } //ColumnasTabla1.Add(new Columnas { Columna = tab, Tipo = Tabla.nombretablas[0] }); tablasBD1[0].columnas = ColumnasTabla1; pBDS[0].Tables = tablasBD1; List <Tablas> tablasBD2 = new List <Tablas>(); if (Tabla.nombretablas[1] != null) { NombreTabla = Tabla.nombretablas[1]; List <Columnas> ColumnasTabla2 = new List <Columnas>(); if (Tabla.DiccionarioTabla[NombreTabla] != null) { tablasBD2.Add(new Tablas { table = Tabla.nombretablas[1], columnas = new List <Columnas>() }); for (int i = 0; i < Tabla.ResultadoVistas.Count(); i++) { elementoTabla = Tabla.DiccionarioTabla[NombreTabla]; tabla = elementoTabla[i]; ColumnasTabla2.Add(new Columnas { tabla = tabla.nombre, Id = tabla.id, Int1 = tabla.int1, Int2 = tabla.int2, Int3 = tabla.int3, Varchar1 = tabla.varchar1, Varchar2 = tabla.varchar2, Varchar3 = tabla.varchar3, DateTime1 = tabla.dateTime1, DateTime2 = tabla.dateTime2, DateTime3 = tabla.dateTime3 }); } } tablasBD2[0].columnas = ColumnasTabla2; pBDS[1].Tables = tablasBD2; } List <Tablas> tablasBD3 = new List <Tablas>(); if (Tabla.nombretablas[2] != null) { NombreTabla = Tabla.nombretablas[2]; List <Columnas> ColumnasTabla3 = new List <Columnas>(); if (Tabla.DiccionarioTabla[NombreTabla] != null) { tablasBD3.Add(new Tablas { table = Tabla.nombretablas[2], columnas = new List <Columnas>() }); for (int i = 0; i < Tabla.ResultadoVistas.Count(); i++) { elementoTabla = Tabla.DiccionarioTabla[NombreTabla]; tabla = elementoTabla[i]; ColumnasTabla3.Add(new Columnas { tabla = tabla.nombre, Id = tabla.id, Int1 = tabla.int1, Int2 = tabla.int2, Int3 = tabla.int3, Varchar1 = tabla.varchar1, Varchar2 = tabla.varchar2, Varchar3 = tabla.varchar3, DateTime1 = tabla.dateTime1, DateTime2 = tabla.dateTime2, DateTime3 = tabla.dateTime3 }); } } tablasBD3[0].columnas = ColumnasTabla3; pBDS[2].Tables = tablasBD3; } List <Tablas> tablasBD4 = new List <Tablas>(); if (Tabla.nombretablas[3] != null) { NombreTabla = Tabla.nombretablas[3]; List <Columnas> ColumnasTabla4 = new List <Columnas>(); if (Tabla.DiccionarioTabla[NombreTabla] != null) { tablasBD4.Add(new Tablas { table = Tabla.nombretablas[3], columnas = new List <Columnas>() }); for (int i = 0; i < Tabla.ResultadoVistas.Count(); i++) { elementoTabla = Tabla.DiccionarioTabla[NombreTabla]; tabla = elementoTabla[i]; ColumnasTabla4.Add(new Columnas { tabla = tabla.nombre, Id = tabla.id, Int1 = tabla.int1, Int2 = tabla.int2, Int3 = tabla.int3, Varchar1 = tabla.varchar1, Varchar2 = tabla.varchar2, Varchar3 = tabla.varchar3, DateTime1 = tabla.dateTime1, DateTime2 = tabla.dateTime2, DateTime3 = tabla.dateTime3 }); } } tablasBD4[0].columnas = ColumnasTabla4; pBDS[3].Tables = tablasBD4; } List <Tablas> tablasBD5 = new List <Tablas>(); if (Tabla.nombretablas[4] != null) { NombreTabla = Tabla.nombretablas[4]; List <Columnas> ColumnasTabla5 = new List <Columnas>(); if (Tabla.DiccionarioTabla[NombreTabla] != null) { tablasBD5.Add(new Tablas { table = Tabla.nombretablas[4], columnas = new List <Columnas>() }); for (int i = 0; i < Tabla.ResultadoVistas.Count(); i++) { elementoTabla = Tabla.DiccionarioTabla[NombreTabla]; tabla = elementoTabla[i]; ColumnasTabla5.Add(new Columnas { tabla = tabla.nombre, Id = tabla.id, Int1 = tabla.int1, Int2 = tabla.int2, Int3 = tabla.int3, Varchar1 = tabla.varchar1, Varchar2 = tabla.varchar2, Varchar3 = tabla.varchar3, DateTime1 = tabla.dateTime1, DateTime2 = tabla.dateTime2, DateTime3 = tabla.dateTime3 }); } } tablasBD5[0].columnas = ColumnasTabla5; pBDS[4].Tables = tablasBD5; } List <ResultadoGrid> lstResultado = new List <ResultadoGrid>(); List <ColumnasResult> Columnas = new List <ColumnasResult>(); if (Tabla.ResultadoVistas.Count() != 0) { Columnas.Add(new ColumnasResult { Columna = Tabla.ResultadoVistas[0].nombre }); Columnas.Add(new ColumnasResult { Columna = Tabla.ResultadoVistas[0].id }); Columnas.Add(new ColumnasResult { Columna = Tabla.ResultadoVistas[0].int1 }); Columnas.Add(new ColumnasResult { Columna = Tabla.ResultadoVistas[0].int2 }); Columnas.Add(new ColumnasResult { Columna = Tabla.ResultadoVistas[0].int3 }); Columnas.Add(new ColumnasResult { Columna = Tabla.ResultadoVistas[0].varchar1 }); Columnas.Add(new ColumnasResult { Columna = Tabla.ResultadoVistas[0].varchar2 }); Columnas.Add(new ColumnasResult { Columna = Tabla.ResultadoVistas[0].varchar3 }); Columnas.Add(new ColumnasResult { Columna = Tabla.ResultadoVistas[0].dateTime1 }); Columnas.Add(new ColumnasResult { Columna = Tabla.ResultadoVistas[0].dateTime2 }); Columnas.Add(new ColumnasResult { Columna = Tabla.ResultadoVistas[0].dateTime3 }); DataTable Resultado = new DataTable(); foreach (ColumnasResult col in Columnas) { Resultado.Columns.Add(col.Columna); } DataRow DR = Resultado.NewRow(); DataRow dataRow = Resultado.NewRow(); DataRow data = Resultado.NewRow(); DataRow row = Resultado.NewRow(); Resultado.Rows.Clear(); int cantidadFilas = 0; for (int i = 1; i < Tabla.ResultadoVistas.Count(); i++) { if (cantidadFilas == 0) { if (Tabla.ResultadoVistas[0].nombre != null) { DR[Tabla.ResultadoVistas[0].nombre] = Tabla.ResultadoVistas[i].nombre; } if (Tabla.ResultadoVistas[0].id != null) { DR[Tabla.ResultadoVistas[0].id] = Tabla.ResultadoVistas[i].id; } if (Tabla.ResultadoVistas[0].int1 != null) { DR[Tabla.ResultadoVistas[0].int1] = Tabla.ResultadoVistas[i].int1; } if (Tabla.ResultadoVistas[0].int2 != null) { DR[Tabla.ResultadoVistas[0].int2] = Tabla.ResultadoVistas[i].int2; } if (Tabla.ResultadoVistas[0].int3 != null) { DR[Tabla.ResultadoVistas[0].int3] = Tabla.ResultadoVistas[i].int3; } if (Tabla.ResultadoVistas[0].varchar1 != null) { DR[Tabla.ResultadoVistas[0].varchar1] = Tabla.ResultadoVistas[i].varchar1; } if (Tabla.ResultadoVistas[0].varchar2 != null) { DR[Tabla.ResultadoVistas[0].varchar2] = Tabla.ResultadoVistas[i].varchar2; } if (Tabla.ResultadoVistas[0].varchar3 != null) { DR[Tabla.ResultadoVistas[0].varchar3] = Tabla.ResultadoVistas[i].varchar3; } if (Tabla.ResultadoVistas[0].dateTime1 != null) { DR[Tabla.ResultadoVistas[0].dateTime1] = Tabla.ResultadoVistas[i].dateTime1; } if (Tabla.ResultadoVistas[0].dateTime2 != null) { DR[Tabla.ResultadoVistas[0].dateTime2] = Tabla.ResultadoVistas[i].dateTime2; } if (Tabla.ResultadoVistas[0].dateTime3 != null) { DR[Tabla.ResultadoVistas[0].dateTime3] = Tabla.ResultadoVistas[i].dateTime3; } Resultado.Rows.Add(DR); cantidadFilas++; } else if (cantidadFilas == 1) { if (Tabla.ResultadoVistas[0].nombre != null) { dataRow[Tabla.ResultadoVistas[0].nombre] = Tabla.ResultadoVistas[i].nombre; } if (Tabla.ResultadoVistas[0].id != null) { dataRow[Tabla.ResultadoVistas[0].id] = Tabla.ResultadoVistas[i].id; } if (Tabla.ResultadoVistas[0].int1 != null) { dataRow[Tabla.ResultadoVistas[0].int1] = Tabla.ResultadoVistas[i].int1; } if (Tabla.ResultadoVistas[0].int2 != null) { dataRow[Tabla.ResultadoVistas[0].int2] = Tabla.ResultadoVistas[i].int2; } if (Tabla.ResultadoVistas[0].int3 != null) { dataRow[Tabla.ResultadoVistas[0].int3] = Tabla.ResultadoVistas[i].int3; } if (Tabla.ResultadoVistas[0].varchar1 != null) { dataRow[Tabla.ResultadoVistas[0].varchar1] = Tabla.ResultadoVistas[i].varchar1; } if (Tabla.ResultadoVistas[0].varchar2 != null) { dataRow[Tabla.ResultadoVistas[0].varchar2] = Tabla.ResultadoVistas[i].varchar2; } if (Tabla.ResultadoVistas[0].varchar3 != null) { dataRow[Tabla.ResultadoVistas[0].varchar3] = Tabla.ResultadoVistas[i].varchar3; } if (Tabla.ResultadoVistas[0].dateTime1 != null) { dataRow[Tabla.ResultadoVistas[0].dateTime1] = Tabla.ResultadoVistas[i].dateTime1; } if (Tabla.ResultadoVistas[0].dateTime2 != null) { dataRow[Tabla.ResultadoVistas[0].dateTime2] = Tabla.ResultadoVistas[i].dateTime2; } if (Tabla.ResultadoVistas[0].dateTime3 != null) { dataRow[Tabla.ResultadoVistas[0].dateTime3] = Tabla.ResultadoVistas[i].dateTime3; } Resultado.Rows.Add(dataRow); cantidadFilas++; } else if (cantidadFilas == 2) { if (Tabla.ResultadoVistas[0].nombre != null) { data[Tabla.ResultadoVistas[0].nombre] = Tabla.ResultadoVistas[i].nombre; } if (Tabla.ResultadoVistas[0].id != null) { data[Tabla.ResultadoVistas[0].id] = Tabla.ResultadoVistas[i].id; } if (Tabla.ResultadoVistas[0].int1 != null) { data[Tabla.ResultadoVistas[0].int1] = Tabla.ResultadoVistas[i].int1; } if (Tabla.ResultadoVistas[0].int2 != null) { data[Tabla.ResultadoVistas[0].int2] = Tabla.ResultadoVistas[i].int2; } if (Tabla.ResultadoVistas[0].int3 != null) { data[Tabla.ResultadoVistas[0].int3] = Tabla.ResultadoVistas[i].int3; } if (Tabla.ResultadoVistas[0].varchar1 != null) { data[Tabla.ResultadoVistas[0].varchar1] = Tabla.ResultadoVistas[i].varchar1; } if (Tabla.ResultadoVistas[0].varchar2 != null) { data[Tabla.ResultadoVistas[0].varchar2] = Tabla.ResultadoVistas[i].varchar2; } if (Tabla.ResultadoVistas[0].varchar3 != null) { data[Tabla.ResultadoVistas[0].varchar3] = Tabla.ResultadoVistas[i].varchar3; } if (Tabla.ResultadoVistas[0].dateTime1 != null) { data[Tabla.ResultadoVistas[0].dateTime1] = Tabla.ResultadoVistas[i].dateTime1; } if (Tabla.ResultadoVistas[0].dateTime2 != null) { data[Tabla.ResultadoVistas[0].dateTime2] = Tabla.ResultadoVistas[i].dateTime2; } if (Tabla.ResultadoVistas[0].dateTime3 != null) { data[Tabla.ResultadoVistas[0].dateTime3] = Tabla.ResultadoVistas[i].dateTime3; } Resultado.Rows.Add(data); cantidadFilas++; } else if (cantidadFilas == 3) { if (Tabla.ResultadoVistas[0].nombre != null) { row[Tabla.ResultadoVistas[0].nombre] = Tabla.ResultadoVistas[i].nombre; } if (Tabla.ResultadoVistas[0].id != null) { row[Tabla.ResultadoVistas[0].id] = Tabla.ResultadoVistas[i].id; } if (Tabla.ResultadoVistas[0].int1 != null) { row[Tabla.ResultadoVistas[0].int1] = Tabla.ResultadoVistas[i].int1; } if (Tabla.ResultadoVistas[0].int2 != null) { row[Tabla.ResultadoVistas[0].int2] = Tabla.ResultadoVistas[i].int2; } if (Tabla.ResultadoVistas[0].int3 != null) { row[Tabla.ResultadoVistas[0].int3] = Tabla.ResultadoVistas[i].int3; } if (Tabla.ResultadoVistas[0].varchar1 != null) { row[Tabla.ResultadoVistas[0].varchar1] = Tabla.ResultadoVistas[i].varchar1; } if (Tabla.ResultadoVistas[0].varchar2 != null) { row[Tabla.ResultadoVistas[0].varchar2] = Tabla.ResultadoVistas[i].varchar2; } if (Tabla.ResultadoVistas[0].varchar3 != null) { row[Tabla.ResultadoVistas[0].varchar3] = Tabla.ResultadoVistas[i].varchar3; } if (Tabla.ResultadoVistas[0].dateTime1 != null) { row[Tabla.ResultadoVistas[0].dateTime1] = Tabla.ResultadoVistas[i].dateTime1; } if (Tabla.ResultadoVistas[0].dateTime2 != null) { row[Tabla.ResultadoVistas[0].dateTime2] = Tabla.ResultadoVistas[i].dateTime2; } if (Tabla.ResultadoVistas[0].dateTime3 != null) { row[Tabla.ResultadoVistas[0].dateTime3] = Tabla.ResultadoVistas[i].dateTime3; } Resultado.Rows.Add(row); cantidadFilas++; } } lstResultado.Add(new ResultadoGrid { Columnas = Columnas, Resultado = Resultado }); } ModelParams md = new ModelParams { BDS = pBDS, Resultado = lstResultado }; return(View(md)); }