управление_объектом_практика
.pdfdouble Ky = 1;
double Uabsmax = fabs (Umax); double Uabsmin = fabs (Umin);
if (Uabsmax > Uabsmin)
{
Kx = (600 - 240) / (2 * Uabsmax); Uabsmin = Uabsmax;
}
else
{
Kx = (600 - 240) / (2 * Uabsmin); Uabsmax = Uabsmin;
}
double Yabsmax = fabs (Ycpmax); double Yabsmin = fabs (Ycpmin); if (Yabsmax > Yabsmin)
{
Ky = (540 - 40) / (2 * Yabsmax);
}
else
{
Ky = (540 - 40) / (2 * Yabsmin);
} |
|
float x; |
// создание осей |
HPEN Pen = CreatePen(PS_SOLID, 2, RGB(255, 255, 255)); SelectObject(hDC, Pen);
MoveToEx(hDC, 240, 290, NULL); LineTo(hDC, 600, 290); MoveToEx(hDC, 420, 40, NULL); LineTo(hDC, 420, 540);
TextOut(hDC, 420, 10, "Ycp", 3); // подписи осей TextOut(hDC, 610, 290, "Ui", 2);
TextOut(hDC, 410, 290, "0", 1); double x1; // создание кривой
11
double x2; double y1; double y2;
for (int h = 0; h < a; h++)
{
x1 = U[h];
y1 = Uusr[h];
x2 = U[h+1];
y2 = Uusr[h+1];
MoveToEx(hDC, (Kx * (x1) + 420), (Ky * (-1) * (y1) + 290), NULL); LineTo(hDC, (Kx * (x2) + 420), (Ky * (-1) * (y2) + 290));
}
DeleteObject(Pen); // уничтожить перья
cout << "Prodolgit? (Y)" << '\n'; // продолжить? cin >> Prod;
if (Prod = 'Y')
{
for (int h=0; h < 100; h++)
{
cout << '\t' << '\n' ;
}
}
}
return 0; system("pause");
}
12
Результаты применения программы в процессе исследования
13
14
Выводы по исследованию
Из графика зависимости Yср от Ui в условиях равномерного возрастания управления по 7 каналу видно, что при значениях управляющих воздействий в интервале от -70 до -10 зависимость близка к линейной, от -10 до 15 значения функции резко возрастают, далее функция неравномерно убывает и возрастает.
Из графика зависимости Yср от Ui в условиях равномерного возрастания управления по 8 каналу видно, что при значениях управляющих воздействий в интервале от -3 до -0,9 функция плавно убывает, при -0,9 достигает минимального значения, от -0,9 до 3 плавно возрастает.
15