示例#1
0
        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();
                }
            }
        }
示例#2
0
        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);
        }