Example #1
0
        private void btnRun_Click(object sender, EventArgs e)
        {
            rtbLog.AppendText("\nНачинаю расчёт.");
            rtbLog.AppendText("\nПреобразование входных данных, задание начальных условий...");

            //Перевод углов, скоростей, угл. скоростей
            //из поточной СК в связанную
            IC.Angles_WindToBody(ref Body.Theta, ref Body.Psi, ref Body.phi);
            IC.V_WindToBody(ref Body.Vcx, ref Body.Vcy, ref Body.Vcz);
            IC.Om_WindToBody(ref Body.Omx, ref Body.Omy, ref Body.Omz);
            Body.centeredPartID = Body.CenteredPartID();
            Body.lRear          = Body.LRear();

            // Чиста листов перед расчётом
            RK.ListsClear();
            //Начальные приближения в массивах
            RK.InitApprox();

            // Временный код для каких-то тестов
            //lbBody.Text = RK.Vcx_List[0].ToString();
            //lbObstacle.Text = Body.Vcx.ToString();
            //lbIC.Text = IC.nu0_dot.ToString();
            //lbResults.Text = IC.phi0_dot.ToString();
            //lbTest5.Text = Obstacle.Layers[0].A.ToString();
            //lbTest6.Text = Body.Omz.ToString();

            //Расчёт и запись соответственно
            rtbLog.AppendText("\nВычисление...");
            RK.Computaion();
            rtbLog.AppendText("\nЗапись результатов в массивы...");
            RK.ListsToArrays();
            RK.Dimentionless();
            RK.DictionaryFill();
            rtbLog.AppendText("\nСохранение результатов в файл...");
            RK.Write();
            rtbLog.AppendText("\nГотово!");
        }
Example #2
0
        // Задает начальные приближения для нулевой итерации
        // Начальные приближения равны начальным условия
        public static void InitApprox()
        {
            t_List.Add(0.0);

            Vcx_List.Add(Body.Vcx);
            Vcy_List.Add(Body.Vcy);
            Vcz_List.Add(Body.Vcz);
            Vc_List.Add(Math.Sqrt(Body.Vcx * Body.Vcx + Body.Vcy * Body.Vcy + Body.Vcz * Body.Vcz)); // Абсолютная скорость

            Omx_List.Add(Body.Omx);
            Omy_List.Add(Body.Omy);
            Omz_List.Add(Body.Omz);
            Om_List.Add(Math.Sqrt(Body.Omx * Body.Omx + Body.Omy * Body.Omy + Body.Omz * Body.Omz)); // Абсолютная угловая скорость

            X_List.Add(IC.XInitial(Body.Theta));
            Y_List.Add(0.0);
            Z_List.Add(0.0);

            psi_List.Add(Body.Psi);
            phi_List.Add(Body.phi);
            theta_List.Add(Body.Theta);

            //Body.Xc = X_Arr[0]; // Координата ЦМ в неподвижной СК
        }