Построение графика временной функции
Белорусский национальный технический университет
Факультет
информационных технологий и робототехники
Кафедра
робототехнических систем
курсовая работа
по
дисциплине: “Информатика”
Тема: “Построение графика временной функции”
Выполнил:
студент
группы 107410
Руководитель:
доцент
кафедры РТС
Минск 2011
Белорусский национальный технический университет
Кафедра
робототехнических систем
Пояснительная записка
к курсовой работе
по
дисциплине: «Информатика»
Тема: “Построение графика временной функции”
Выполнил:
студент
группы 107410
Руководитель:
доцент кафедры РТС Москаленко А.А.
Минск 2011
Белорусский национальный технический университет
(наименование
ВУЗа)
Факультет:_______ИТР______
«УТВЕРЖДАЮ»
Зав. кафедрой______________________
(подпись)
«____»____________________
З А Д А Н И Е
по
курсовой работе
Студенту
гр. 107410 Шведу А.А.
1. Тема
работы:«Построение
графика временной функции»______________________
2.
Сроки сдачи студентом
законченного проекта:10
декабря 2011г_________________________
3.
Исходные данные
к проекту: Вариант 58____________________________
4.
Содержание расчетно-
Введение____________
Выбор
и обоснование
методов решения_______________
Схемы
алгоритмов подпрограмм___________________
Построение
графика с выводом
результата расчета_______________________
Заключение__________
Список
использованных источников____________________
Приложение
А. Листинг программы_____________
5. Консультанты по работе (с указанием разделов проекта):
Москаленко
А.А___________________________
____________________
____________________
____________________
6.
Дата выдачи задания:
10 сентября 2011г_________________________
7. Календарный график работы над проектом (с указанием трудоемкости отдельных этапов):
10
сентября 2011г. –
Начал работу над программой.___________________
25
сентября 2011г. –
Закончил работу над
программой.___________________
30 сентября 2011г. – Приступил к оформлению пояснительной записки.________________
11
ноября 2011 г. –
Закончил оформление
пояснительной записки.________
____________________
____________________
____________________
_________________________
_________________________
_________________________
Руководитель__________________
(подпись)
Задание
принял к исполнению__________________
(дата и подпись студента)
Условие задания
ВАРИАНТ №58.
Составить
схему алгоритма и программу
для построения графика временной
функции, работающую как в машинном, так
и реальном времени. Реальное время в диапазоне
(t0–tкон)формируется таймером
в виде программного модуля с метками
Тк, называемыми временем квантования.
При вычислении функции использовать
алгоритм Горнера (схему Горнера). Функция:
где to= 0 с.;tкон= 12 с.; Тк = 0,5 с.; х - корень нелинейного уравнения которое необходимо решить методом Ньютона с точностью ε = 10-3 при начальном значении в диапазоне [0; 1]; m - наименьший по абсолютному значению корень квадратного уравнения:
a1z2+b1z+c1=0;
при а1 = 1; b1 = 3; c1= -2;
Коэффициенты:
а = 0.2;
b=2;
d= tg35°;
с = | а — b|
Содержание
Введение 6
- Выбор и обоснование методов решения 7
- Понятие машинного и реального времени 7
- Дискретизация времени 7
- Реализация временных задержек в программе 8
- Решение квадратного уравнения 8
- Метод Ньютона 9
- Алгоритм Горнера 9
- Построение графика 10
- Таблица имен переменных 12
- Схемы алгоритмов подпрограмм 13
- Подпрограмма ввода данных 13
- Подпрограмма решения нелинейного уравнения методом
Ньютона 13
- Схема алгоритма подпрограммы вычисления наименьшего по
абсолютному значению корня квадратного уравнения 15
- Схема алгоритма подпрограммы алгоритма Горнера 17
- Схема подпрограммы вывода результатов 18
- Схема алгоритма основной программы 19
- построение графика с выводом результата
расчета 22
- Вывод промежуточных значений 22
- Вывод графика временной функции 23
ЗАКЛЮЧЕНИЕ 24
СПИСОК ИСПОЛЬЗОВАНЫХ ИСТОЧНИКОВ 25
ПРИЛОЖЕНИЕ
А. Листинг программы 26
Введение
С развитием промышленности возникает необходимость в автоматизации технологических процессов и производств. На данном этапе развития техники широкое применение находят роботы и робототехнические системы. Для управления производственными процессами в 70-е, 80-е годы стало возможным применение микропроцессорной техники. Развитие различных языков программирования (Fortran, Basic, Assembler, Pascal, C и т.д.) дает возможность разработки и внедрения объемных пакетов прикладных программ для управления сложными технологическими процессами и производствами. Пакеты прикладных программ дают возможность дистанционного управления и контроля сложных процессов с невозможным прямым вмешательством человека. Управляющая система намного быстрее и точнее выполняет поставленные задачи, не требуя при этом времени на отдых. Применение программного управления значительно увеличивает производительность труда. Первоначальные затраты материальных средств на установку и наладку микропроцессорного оборудования в процессе работы быстро окупаются. Это делает выгодным применение систем такого рода в производстве.
Для
написания программного обеспечения
к микропроцессорному оборудованию
подходит язык программирования Basic. Программы,
написанные на нём, обладают высокой работоспособностью
и не требуют от управляющей машины высоких
аппаратных качеств. Они позволяют провести
расчет параметров системы, как в машинном,
так и в реальном времени.
- Выбор и обоснование методов решения
- Понятие машинного и реального времени
Реализацию
любой программы можно
Исследователь
должен уметь связывать
- Дискретизация времени
При исследовании блоков и систем во временной области на ЭВМ, в частности микроЭВМ, непрерывные процессы заменяются на дискретные. При этом временной интервал L представляется как совокупность дискретных интервалов:
,
где Tk – период квантования по времени непрерывной функции;
n – количество шагов или
Количество
квантов выбирается не произвольно,
а исходя из максимальной частоты процесса
и допустимой погрешности при моделировании.
- Реализация временных задержек в программе
Можно выделить два основных способа реализации временных задержек в программе. Первый – самый простой – состоит в том, чтобы прямо указать программе, сделать паузу (например, оператором DELAY). Второй способ – организовать цикл, внутри которого выполняется арифметическая операция, абсолютно не влияющая на результат выполнения программы.
- Решение квадратного уравнения
Решение квадратного
уравнения вида az2
+ bz + c = 0 происходит по формулам:
Если
D> 0, то корни квадратного уравнения являются
действительными, разными и вычисляются
по формуле:
Если
D = 0, то корни квадратного уравнения являются
действительными, равными и вычисляются
по формуле:
Если
D< 0, то корни квадратного уравнения являются
комплексными сопряжёнными:
Модули комплексных
Если действительная часть комплексного числа отрицательна, т.е. данное число лежит во 2 или 3 четверти координатной плоскости, то модуль комплексного числа берётся со знаком минус.
- Метод Ньютона
Задано: , и . При использовании этого метода нелинейное уравнение должно быть приведено к виду .
Введем обозначения: - левая часть нелинейного уравнения; – первая производная от; .
Так как вычисления искомого значения производится в этом методе иначе, чем в методе простой итерации, то значения могут использоваться без индексов. Анализ нахождения искомого значения можно упростить. Это несложное доказательство оставляется студентам.
Итак, алгоритм решения:
- Задаем значение
- Вычисляется .
- Вычисляется .
- Определяется .
- Вычисляется .
- Проверяется условие
Если условие выполняется, то - искомый корень, в противном случае следует повторить цикл с п.2.
- Алгоритм (схема) Горнера
Известно,
что полином в общем виде записывается
следующим образом:
Горнер
предложил переиндексировать
Далее
он предложил разложить многочлен
и представить в виде:
Исходя из такого представления, он предложил алгоритм, который еще называют схемой Горнера:
-все коэффициенты представить в виде элементов массива;
-должны учитываться все коэффициенты. Если они отсутствуют в полиноме, то их надо все равно использовать, считая их равными нулю;
-до цикла FOR-NEXT взять значения y=A(1);
-цикл
по управляющей переменной
-в цикле использовать формулу:
Y=Y*X+A(I) .
Если все значения Y надо сохранить, то Y следует организовать тоже как массив.
- Построение графика
Что касается построения графиков функций, то можно использовать графические операторы PSET и LINE. Однако при построении графиков необходимо всегда решать вопрос, связанный с масштабированием графиков. Во-первых, при построении графиков на компьютере пользователь всегда имеет дело с дискретными функциями: yn = f(ndx) или yn = f(nTk), где dx – шаг изменения аргумента; Tk – период квантования, который является тоже шагом по аргументу, которым является время t = nTk.
Необходимо всегда оценивать минимальное и максимальное значение функции: y0(min) при n=0 и yn(max) при nmax.
Кроме того, необходимо выбрать начальную точку (a, b) для построения графика, определить границы окончания графика справа и сверху, а потом рассчитать масштаб по аргументу и по функции. Для пояснения на рисунке 1.1 показан произвольный график:
Рисунок
1.1 — Выбор масштаба
Если исходить из разрешающей способности 640х480 пикселей (12 режим экрана монитора), то:
- количество пикселей по оси Х: 640 – а – а1;
- количество пикселей по оси У: b – b1,
где а1 и в1 – отступы соответственно с правой и верхней сторон экрана, как показано на рисунке 1.1
Тогда масштабы по осям Х(Мх) и Y(Му) равны:
.
С учетом Мх иМу координаты точек для оператора PSET будут следующими:.
В этих формулах учитывается, что по оси абсцисс количество пикселей возрастает при увеличении n, а количество пикселей по оси y убывает.
Для проверки правильности выбора а2 и в2 надо подставить в эти формулы значения nmax и ymax вместо n и y. При этом a2 = 640 – a1, а b2 = b1, то есть, последние значения будут соответствовать значениям отступов. Таким образом, при построении графика следует использовать PSET с координатами (a2,b2):
.
- Таблица переменных программы
В
таблице 2.1 приведены глобальные переменные
программы и их функциональное значение.
Таблица
2.1 — Таблица переменных программы
| Имя | Функциональное значение |
| Глобальные массивы | |
| Y | Значения временной функции |
| Глобальные переменные | |
| t0 | Начальное время |
| Tkon | Конечное время |
| Tk | Время квантования |
| Xa, Xb | Левый и правый пределы диапазона, в котором лежит начальное значение корня нелинейного уравнения |
| E | Погрешность вычисления корня нелинейного уравнения |
| a, b, c, d | Коэффициенты временной функции |
| a1, b1, c1 | Коэффициенты квадратного уравнения |
| P | Номер пункта меню |
- Схемы алгоритмов подпрограмм
- Подпрограмма ввода данных
Схема
алгоритма подпрограммы ввода данных
представлена на рисунке 3.1
Рисунок
3.1 — Схема алгоритма подпрограммы ввода
Блок 02 присваивает переменным исходные значения
- Подпрограмма решения нелинейного уравнения методом Ньютона
Подпрограмма
решения нелинейного уравнения
, методом Ньютона, представлена на рисунках
3.2 и 3.3
Рисунок
3.2 — Схема алгоритма подпрограммы решения
нелинейного уравнения методом Ньютона
Рисунок
3.3 — Продолжение схемы алгоритма
подпрограммы решения нелинейного уравнения
методом Ньютона
Блок
02 служит для нахождения начального значения
Х. Блок 03 вычисляет значение функции и
значение производной соответственно.
Блок 04 служит для проверки условия выхода
из цикла. Блок 05 служит для приближения
значения X, к значению удовлетворяющему
Блоку 04.
- Схема алгоритма подпрограммы вычисления наименьшего по абсолютному значению корня квадратного уравнения
Схема
алгоритма подпрограммы вычисления
наименьшего по абсолютному значению
корня квадратному уравнения представлена
на рисунке 3.4 – 3.5
Рисунок 3.4 — Схема алгоритма подпрограммы вычисления наименьшего по абсолютному значению корня квадратного уравнения
Рисунок
3.5 — Продолжение схемы алгоритма подпрограммы
вычисления наименьшего по абсолютному
значению корня квадратного уравнения
Блок
02 вычисляет дискриминант квадратного
уравнения. Блок 03 в зависимости
от значения дискриминанта передает управление
Блокам 04, 06, 07. Блок 08 служит для анализа
абсолютных значений корней. Блоки 09, 10
служат для присвоения переменной Z минимального
по абсолютному значению корня квадратного
уравнения. Блок 04 производит вычисление
модуля комплексного числа. Блок 06 служит
для вычисления одинаковых действительных
корней. Блок 05 присваивает значению M
наименьший корень.
- Схема алгоритма подпрограммы алгоритма Горнера
Схема
алгоритма подпрограммы алгоритма
Горнера представлена на рисунке 3.6
Рисунок
3.6 — Схема алгоритма подпрограммы алгоритма
Горнера
Блок 02 служит для задания коэффициентов полинома а(1-5). Блок 03 организует цикл по переменной Т с шагом Tk. Блок 04 присваивает значение первого коэффициента переменной y1. Блок 05 организует цикл по переменной I. Блок 06 вычисляет значение полинома при значении Т, взятого из Блока 03. Блок 07 присваивает значение полинома массиву Y(N), а также увеличивает N на единицу.
- Схема подпрограммы вывода результатов
Схема
подпрограммы вывода результатов приведена
на рисунке 3.7–3.8
Рисунок
3.7 — Схема алгоритма подпрограммы вывода
результатов
Рисунок
3.8 — Продолжение схемы алгоритма подпрограммы
вывода результатов
Блок 02 выводит значение корня нелинейного уравнения, решённого методом Ньютона, а также наименьший по абсолютному значению корня квадратного уравнения. Блок 03 организует цикл для вывода значений функции Y(t), а также самого аргумента t. Блок 04 выводит на экран значения Y(t), а также значение переменной t. Блок 05 прибавляет шаг квантования Tkк переменной t и отправляет обратно в Блок 03. Блок 06 организует цикл для вывода коэффициентов Горнера. Блок 07 выводит i-й коэффициент Горнера.
- Схема алгоритма основной программы
Схема
алгоритма основной программы представлена
на рисунке 3.9– 3.11
Рисунок
3.9 — Схема алгоритма основной программы
Рисунок
3.10 — Продолжение схемы алгоритма основной
программы