private void PlottingGAData() { FormMain.DrawLine(VR.SolveCloseLoopResponse(), 1, chart_mag, chart_phs); if (radioButtonGA1.Checked) { DrawLine(FittingOPT.GA[0].GetMaxFitnessHistory(), 0, chartFitness); DrawLine(FittingOPT.GA[0].GetMeanFitnessHistory(), 1, chartFitness); if (radioButtonMass.Checked) { DrawLine(FittingOPT.GA[0].GetFeatureHistory(0), 0, chartParameters); chartParameters.Series[1].Points.Clear(); chartParameters.Series[2].Points.Clear(); } if (radioButtonZeta.Checked) { DrawLine(FittingOPT.GA[0].GetFeatureHistory(1), 1, chartParameters); chartParameters.Series[0].Points.Clear(); chartParameters.Series[2].Points.Clear(); } if (radioButtonFreq.Checked) { DrawLine(FittingOPT.GA[0].GetFeatureHistory(2), 2, chartParameters); chartParameters.Series[1].Points.Clear(); chartParameters.Series[0].Points.Clear(); } } if (radioButtonGA2.Checked) { DrawLine(FittingOPT.GA[1].GetMaxFitnessHistory(), 0, chartFitness); DrawLine(FittingOPT.GA[1].GetMeanFitnessHistory(), 1, chartFitness); if (radioButtonMass.Checked) { DrawLine(FittingOPT.GA[1].GetFeatureHistory(0), 0, chartParameters); chartParameters.Series[1].Points.Clear(); chartParameters.Series[2].Points.Clear(); } if (radioButtonZeta.Checked) { DrawLine(FittingOPT.GA[1].GetFeatureHistory(1), 1, chartParameters); chartParameters.Series[0].Points.Clear(); chartParameters.Series[2].Points.Clear(); } if (radioButtonFreq.Checked) { DrawLine(FittingOPT.GA[1].GetFeatureHistory(2), 2, chartParameters); chartParameters.Series[1].Points.Clear(); chartParameters.Series[0].Points.Clear(); } } if (radioButtonGA3.Checked) { DrawLine(FittingOPT.GA[2].GetMaxFitnessHistory(), 0, chartFitness); DrawLine(FittingOPT.GA[2].GetMeanFitnessHistory(), 1, chartFitness); if (radioButtonMass.Checked) { DrawLine(FittingOPT.GA[2].GetFeatureHistory(0), 0, chartParameters); chartParameters.Series[1].Points.Clear(); chartParameters.Series[2].Points.Clear(); } if (radioButtonZeta.Checked) { DrawLine(FittingOPT.GA[2].GetFeatureHistory(1), 1, chartParameters); chartParameters.Series[0].Points.Clear(); chartParameters.Series[2].Points.Clear(); } if (radioButtonFreq.Checked) { DrawLine(FittingOPT.GA[2].GetFeatureHistory(2), 2, chartParameters); chartParameters.Series[1].Points.Clear(); chartParameters.Series[0].Points.Clear(); } } }
public void GeneticAlgorithmOptimization(List <InitialFrequencyPoints> ResonantPeak) { List <Mode> VLoopModes = new List <Mode>(); CreateModes(VLoopModes); GeneticAlgorithm.Range Mass_range = new GeneticAlgorithm.Range { MinValue = 0.001, MaxValue = 1 }; GeneticAlgorithm.Range Zeta_range = new GeneticAlgorithm.Range { MinValue = 0.01, MaxValue = 0.5 }; List <GeneticAlgorithm.Range> FrequencyRange = new List <GeneticAlgorithm.Range>(); for (int i = 0; i < ResonantPeak.Count; i++) { FrequencyRange.Add(ResonantPeak[i].FrequencyRage); } FittingOPT = new FittingOptimization(Mass_range, Zeta_range, FrequencyRange); FittingOPT.SetOptimizationParameters(100, 1, 0.9, 50, 500); FittingOPT.SetReference(VClose_ref, VR, VLoopModes); VLoopModes = new List <Mode>(); VLoopModes = FittingOPT.Solve(); //Create Structure Nature Modes Object VR.VLoopModes = VLoopModes; //Evaluation FRF[] Close = VR.SolveCloseLoopResponse(); //FRF[] Open = VR.SolveOpenLoopResponse(); // draw simulated FRF in chart DrawLine(Close, 1); }