Домашнее задание
.docxИнститут радиоэлектроники и информационных технологий
Кафедра Автоматики
РАЗРАБОТКА МОДЕЛИ УПРАВЛЯЕМОГО ПРОЦЕССА
(УРОВЕНЬ ТОПЛИВА В ПОПЛАВКОВОЙ КАМЕРЕ КАРБЮРАТОРА)
И КАЧЕСТВЕННЫЙ АНАЛИЗ МОДЕЛИ
Вариант № 70
Индивидуальное домашнее задание
по дисциплине «основы теории сигналов»
Выполнил:
студент группы Р-200101 Катаев Я. В.
дата _____________ подпись _____________
Проверил:
преподаватель Кумков С. И.
Екатеринбург 2012
Содержание
Кафедра Автоматики 1
РАЗРАБОТКА МОДЕЛИ УПРАВЛЯЕМОГО ПРОЦЕССА 1
(УРОВЕНЬ ТОПЛИВА В ПОПЛАВКОВОЙ КАМЕРЕ КАРБЮРАТОРА) 1
И КАЧЕСТВЕННЫЙ АНАЛИЗ МОДЕЛИ 1
Вариант № 70 1
Екатеринбург 2012 1
1. Задание 3
2. Постановка задачи, расчетные формулы 4
3. Структура моделирующей программы 8
4. Результаты моделирования 11
5. Выводы 14
Литература 15
1. Задание 3
2. Постановка задачи, расчетные формулы 4
3. Структура моделирующей программы 7
4. Результаты моделирования 9
5. Выводы 11
Литература 12
1. Задание
Уровень топлива в поплавковой камере карбюратора описывается дифференциальным уравнением:
(1)
(2)
где H — уровень топлива, мм;
k — эффективность управления, мм/с;
U — управление, безразмерный параметр;
A — коэффициент обратной связи, , 1/мм.
В начальный момент, , камера пуста — уровень топлива .
Разработать алгоритмы расчета фазовой траектории управляемого процесса (изменения уровня топлива).
2. Постановка задачи, расчетные формулы
При ближайшем рассмотрении задача сводится к решению простейших дифференциальных уравнений — получение явной зависимости функции — уровня топлива от аргумента — времени.
Решим дифференциальное уравнение на каждом промежутке для наглядности на рис. 1 изображена зависимость H’ = f(H) (фазовая плоскость).
Рис.1. Фазовая плоскость
-
На промежутке (или при ) H(t) — обычная линейная функция:
. (3)
-
На следующем промежутке (или при ) H(t) — экспоненциальная функция:
. (4)
Видно, что
. (5)
Это значит, что при заданных начальных условиях H(t) будет ассимтотично стремиться к , но никогда не достигнет этого уровня и не превысит его, поэтому третий промежуток с практической точки зрения нас не интересует. Однако, по закону, если , то H(t)=const.
При численном моделировании процесса (наполнения поплавковой камеры) можно использовать решения, полученные аналитически: например, если нам нужно заполнить таблицу зависимости H от t, то мы просто возьмем формулу (3), если , или формулу (4), если , и подставим в них значение t. С другой стороны, можно использовать численные методы решения дифференциальных уравнений, например метод Эйлера:
,
,
,
отсюда:
. (6)
Минус числовых методов решения заключается в том, что при расчетах возникает некоторая погрешность, однако у него есть и преимущества: поплавковая камера карбюратора в нашей задаче только наполняется, это значительно упрощает решение, но, если мы захотим модифицировать модель и ввести процесс выхода топлива из поплавковой камеры, описываемый функцией времени, то аналитическое решение может и не получиться, тогда нужно будет использовать только численные методы решения. В своем алгоритме я буду использовать именно метод Эйлера.
Для наглядности нужно не просто выводить численный материал, полученный в результате работы программы, а построить график. Тут же возникает проблема: какие интервалы переменой и значения функции должен охватывать график? Понятно, что значение функции H(t) меняется от 0 до (из начальных условий), но что делать с аргументом? Время t меняется от 0 до некоторого . Если мы возьмем слишком маленьким, то график процесса будет похож на график, изображенный на рис. 2, а если слишком большим — то на график, изображенный на рис. 3. Нужно взять такое, при котором будет достаточно большим, например
Рис.2. График для малого
Рис.3. График для большого
, (7)
где — некоторый коэффициент, назовем его коэффициентом полноты, 1, < 1, безразмерный.
Из формул (4) и (7) находим :
. (8)
Найти значение важно так же и из-за того, что оно поможет найти значение T (см. формулу(6)). Допустим, что для построения графика выделено полотно 600 на 800 пикселей. Тогда, грубо говоря (на самом деле величина самого графика будет чуть меньше — из-за запасов на оси и рамку), мы создадим массив a[ ], состоящий из N=800 (800 — ширина полотна) элементов, заполним его значениями H(t) для с шагом времени T и построим график по этим значениям. Значение шага T может быть найдено с помощью формулы
. (9)
Для проверки точности выполненных расчетов, мы сравним a[N-1] и , которое вычислим с помощью формулы (4).
Исходный числовой материал необходимый для численного моделирования решаемой задачи и их ограничения:
— уровень топлива, после которого наполняемость камеры описывается нелинейной функцией;
— максимальный уровень топлива;
k, k > 0 — коэффициент управления;
, — коэффициент наполненности;
N — количество элементов в массиве, должно быть достаточно большим (от 100 элементов).
3. Структура моделирующей программы
На рисунке 4 изображена блок-схема алгоритма. — вспомогательная функция.
Рис.4. Блок-схема
В программе ввод числового материала может производиться либо пользователем либо в тестовом режиме они могут задаваться случайно. Ниже представлен код программы, в которой количество элементов в массиве N и коэффициент α заданы изначально и равны соответственно 200 и 0,9999; остальные задаются случайным целым числом: не превышает 50 мм, не больше , чем на 50 мм, k не более 30 мм/с. Примечание: ниже представлен только код, который имеет непосредственное отношение к расчету фазовой траектории процесса, т. е. это не полный код программы.
Значимый код тестовой программы:
static void Main()
{
double Hmin, Hmax, k, tmax, T, F, ras, alpha;
int pix;
Random a = new Random();
pix = 200;
alpha = 0.9999;
Hmin = a.Next(50);
Hmax = Hmin + a.Next(49) + 1;
k = a.Next(29)+1;
tmax = (Hmin - Hmax) / k * Math.Log((1 - alpha) * Hmax / (Hmax - Hmin)) + Hmin / k;
T = tmax / pix;
double[] mas = new double[pix];
mas[0] = 0;
for (int i = 1; i < pix; i++)
{
if (mas[i - 1] < Hmin) F = k;
else if (mas[i - 1] < Hmax) F = k * (Hmax - mas[i - 1]) / (Hmax - Hmin);
else F = 0;
mas[i] = mas[i - 1] + F * T;
}
ras = Hmax - (Hmax - Hmin)*Math.Exp((Hmin - k * tmax)/(Hmax - Hmin)) - mas[pix - 1];
}
4. Результаты моделирования
Вариант 1 (рис. 5):
.
Погрешность вычисления численным методом составила 0,0009 мм.
Рис.5. График процесса вариант 1
Вариант 2 (рис. 6):
.
Погрешность вычисления численным методом составила 0,003 мм.
Рис.6. График процесса вариант 2
Вариант 3 (рис. 7):
.
Погрешность вычисления численным методом составила 0,0008 мм.
Рис.7. График процесса вариант 3
На графиках изображена зависимость уровня топлива от времени. Горизонтальные линии соответствуют уровням и , вертикальная — времени . Как видно, графики получились наглядными, хорошо выбран масштаб по оси времени.
5. Выводы
Был разработан алгоритм расчета фазовой траектории управляемого процесса, а именно расчета изменения уровня топлива в поплавковой камере карбюратора во времени. В отчете представлено задание, пояснен смысл задачи, произведена постановка задачи с сопутствующими необходимыми формулами, графиками. Пояснен порядок расчета алгоритма, приведена блок-схема алгоритма и практически значащая часть программы (код). Алгоритм был протестирован, в отчете приведены результаты тестирования и величина погрешностей.
Литература
Павловская Т.А.; С#. Программирование на языке высокого уровня. Учебник для вузов. — СПб.: Питер, 2007. — 432 с.: ил.