Построение графика временной функции

Белорусский национальный технический  университет

 

Факультет информационных технологий и робототехники 

Кафедра робототехнических систем 
 
 
 
 
 
 
 
 
 
 
 

курсовая  работа

 
 

    по  дисциплине: “Информатика” 

Тема: “Построение графика временной функции”
 
 
 
 
 
 
 

    Выполнил:

    студент группы 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

  1. Выбор и обоснование методов решения 7
    1. Понятие машинного и реального времени 7
    2. Дискретизация времени 7
    3. Реализация временных задержек в программе 8
    4. Решение квадратного уравнения 8
    5. Метод Ньютона 9
    6. Алгоритм Горнера 9
    7. Построение графика 10
  2. Таблица имен переменных 12
  3. Схемы алгоритмов подпрограмм 13
    1. Подпрограмма ввода данных 13
    2. Подпрограмма решения нелинейного уравнения методом

    Ньютона 13

    1. Схема алгоритма подпрограммы вычисления наименьшего по

    абсолютному значению корня квадратного уравнения 15

    1. Схема алгоритма подпрограммы алгоритма Горнера 17
    2. Схема подпрограммы вывода результатов 18
    3. Схема алгоритма основной программы 19
  1. построение графика с выводом результата

расчета 22

    1. Вывод промежуточных значений 22
    2. Вывод графика временной функции 23

ЗАКЛЮЧЕНИЕ 24

СПИСОК  ИСПОЛЬЗОВАНЫХ ИСТОЧНИКОВ 25

ПРИЛОЖЕНИЕ  А. Листинг программы 26 

    Введение

 

      С развитием промышленности возникает  необходимость в автоматизации  технологических процессов и  производств. На данном этапе развития техники широкое применение находят  роботы и робототехнические системы. Для управления производственными  процессами в 70-е, 80-е годы стало возможным  применение микропроцессорной техники. Развитие различных языков программирования (Fortran, Basic, Assembler, Pascal, C и т.д.) дает возможность разработки и внедрения объемных пакетов прикладных программ для управления сложными технологическими процессами и производствами. Пакеты прикладных программ дают возможность дистанционного управления и контроля сложных процессов с невозможным прямым вмешательством человека. Управляющая система намного быстрее и точнее выполняет поставленные задачи, не требуя при этом времени на отдых. Применение программного управления значительно увеличивает производительность труда. Первоначальные затраты материальных средств на установку и наладку микропроцессорного оборудования в процессе работы быстро окупаются. Это делает выгодным применение систем такого рода в производстве.

    Для написания программного обеспечения  к микропроцессорному оборудованию подходит язык программирования Basic. Программы, написанные на нём, обладают высокой работоспособностью и не требуют от управляющей машины высоких аппаратных качеств. Они позволяют провести расчет параметров системы, как в машинном, так и в реальном времени. 
 
 
 
 
 

 

  1. Выбор и обоснование  методов решения
    1. Понятие машинного и реального  времени
 

       Реализацию  любой программы можно проводить  по двум путям: либо в темпе быстродействия ЭВМ (с учётом быстродействия языка  программирования), либо в реальном масштабе времени. При этом время задержки напрямую зависит от частоты процессора, и эта программа может наиболее объективно использоваться на той ЭВМ, для которой она была написана. Машинное время является относительным, т.к. зависит от быстродействия ЭВМ,отиспользуемого языка, от сложности алгоритма и т.д.

       Исследователь должен уметь связывать последовательность результатов с реальным временем, проводить эксперимент в реальном времени. Моделирование в реальном времени дает возможность оценивать эффективность алгоритмов для работы в реальных системах.

    1. Дискретизация времени
 

       При исследовании блоков и систем во временной  области на ЭВМ, в частности микроЭВМ, непрерывные процессы заменяются на дискретные. При этом временной интервал L представляется как совокупность дискретных интервалов:

       ,

       где Tk – период квантования по времени непрерывной функции;

        n – количество шагов или квантов. 

       Количество  квантов выбирается не произвольно, а исходя из максимальной частоты процесса и допустимой погрешности при моделировании. 

    1. Реализация  временных задержек в программе
 

       Можно выделить два основных способа реализации временных задержек в программе. Первый – самый простой – состоит  в том, чтобы прямо указать  программе, сделать паузу (например, оператором DELAY). Второй способ – организовать цикл, внутри которого выполняется арифметическая операция, абсолютно не влияющая на результат выполнения программы.

    1. Решение квадратного уравнения
 

       Решение квадратного уравнения вида az2 + bz + c = 0 происходит по формулам: 

       Если  D> 0, то корни квадратного уравнения являются действительными, разными и вычисляются по формуле: 

       Если  D = 0, то корни квадратного уравнения являются действительными, равными и вычисляются по формуле: 

       Если  D< 0, то корни квадратного уравнения являются комплексными сопряжёнными: 

         Модули комплексных сопряжённых  чисел равны. Нахождение модуля  комплексного числа осуществляется  по формуле: 

       Если  действительная часть комплексного числа  отрицательна, т.е. данное число лежит во 2 или 3 четверти координатной плоскости, то модуль комплексного числа берётся со знаком минус.

    1. Метод Ньютона
 

       Задано: , и . При использовании этого метода нелинейное уравнение должно быть приведено к виду .

       Введем  обозначения: - левая часть нелинейного уравнения; – первая производная от; .

       Так как  вычисления искомого значения производится в этом методе иначе, чем в методе простой итерации, то значения могут использоваться без индексов. Анализ нахождения искомого значения можно упростить. Это несложное доказательство оставляется студентам.

       Итак, алгоритм решения:

  1. Задаем значение
  2. Вычисляется .
  3. Вычисляется .
  4. Определяется  .
  5. Вычисляется .
  6. Проверяется условие

       Если  условие выполняется, то - искомый корень, в противном случае следует повторить цикл с п.2.

    1. Алгоритм (схема) Горнера
 

       Известно, что полином в общем виде записывается следующим образом: 

       Горнер  предложил переиндексировать коэффициенты многочлена: 

       Далее он предложил разложить многочлен  и представить в виде: 

       Исходя  из такого представления, он предложил  алгоритм, который еще называют схемой Горнера:

       -все  коэффициенты  представить в виде элементов массива;

       -должны  учитываться все коэффициенты. Если  они отсутствуют в полиноме, то их надо все равно использовать, считая их равными нулю;

       -до  цикла FOR-NEXT взять значения y=A(1);

       -цикл  по управляющей переменной организовывать  с I=2 до X+1;

       -в  цикле использовать формулу:

       Y=Y*X+A(I) .

       Если  все значения Y  надо сохранить, то Y следует организовать тоже как массив.

    1. Построение  графика
 

    Что касается построения графиков функций, то можно использовать графические операторы 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 и внадо подставить в эти формулы значения nmax и ymax вместо n и y. При этом a2 = 640 – a1, а b2 = b1, то есть, последние значения будут соответствовать значениям отступов. Таким образом, при построении графика следует использовать PSET с координатами (a2,b2):

    

  1. Таблица переменных программы
 

       В таблице 2.1 приведены глобальные переменные программы и их функциональное значение. 

       Таблица 2.1 — Таблица переменных программы 

    
Имя Функциональное  значение
Глобальные  массивы
Y Значения временной  функции
Глобальные  переменные
t0 Начальное время
Tkon Конечное время
Tk Время квантования
Xa, Xb Левый и правый пределы диапазона, в котором  лежит начальное значение корня  нелинейного уравнения
E Погрешность вычисления корня нелинейного уравнения
a, b, c, d Коэффициенты  временной функции
a1, b1, c1 Коэффициенты  квадратного уравнения
P Номер пункта меню

 

  1. Схемы алгоритмов подпрограмм
    1. Подпрограмма  ввода данных
 

       Схема алгоритма подпрограммы ввода данных представлена на рисунке 3.1 
 
 
 
 
 
 
 
 
 
 
 
 
 

    Рисунок 3.1 — Схема алгоритма подпрограммы ввода  

    Блок 02 присваивает переменным исходные значения

    1. Подпрограмма  решения нелинейного  уравнения методом Ньютона
 

    Подпрограмма  решения нелинейного уравнения  , методом Ньютона, представлена на рисунках 3.2 и 3.3 
 
 
 
 
 
 
 

       Рисунок 3.2 — Схема алгоритма подпрограммы решения нелинейного уравнения методом Ньютона 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

       Рисунок 3.3 — Продолжение схемы алгоритма подпрограммы решения нелинейного уравнения методом Ньютона 

       Блок 02 служит для нахождения начального значения Х. Блок 03 вычисляет значение функции и значение производной соответственно. Блок 04 служит для проверки условия выхода из цикла. Блок 05 служит для приближения значения X, к значению удовлетворяющему Блоку 04. 
 
 
 
 
 
 
 
 

    1. Схема алгоритма подпрограммы вычисления наименьшего  по абсолютному значению корня квадратного  уравнения
 

       Схема алгоритма подпрограммы вычисления наименьшего по абсолютному значению корня квадратному уравнения представлена на рисунке 3.4 – 3.5 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

       Рисунок 3.4 — Схема алгоритма подпрограммы вычисления наименьшего по абсолютному значению корня квадратного уравнения

 
 

       Рисунок 3.5 — Продолжение схемы алгоритма подпрограммы вычисления наименьшего по абсолютному значению корня квадратного уравнения 

       Блок 02 вычисляет дискриминант квадратного  уравнения.  Блок  03 в зависимости от значения дискриминанта передает управление Блокам 04, 06, 07. Блок 08 служит для анализа абсолютных значений корней. Блоки 09, 10 служат для присвоения переменной Z минимального по абсолютному значению корня квадратного уравнения. Блок 04 производит вычисление модуля комплексного числа. Блок 06 служит для вычисления одинаковых действительных корней. Блок 05 присваивает значению M наименьший корень. 

    1.   Схема алгоритма  подпрограммы алгоритма  Горнера
 

       Схема алгоритма подпрограммы алгоритма  Горнера представлена на рисунке 3.6 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

       Рисунок 3.6 — Схема алгоритма подпрограммы алгоритма Горнера 

       Блок 02 служит для задания коэффициентов  полинома а(1-5). Блок 03 организует цикл по переменной Т с шагом Tk. Блок 04 присваивает значение первого коэффициента переменной y1. Блок 05 организует цикл по переменной I. Блок 06 вычисляет значение полинома при значении Т, взятого из Блока 03. Блок 07 присваивает значение полинома массиву Y(N), а также увеличивает N на единицу.

      1. Схема подпрограммы вывода результатов
 

       Схема подпрограммы вывода результатов приведена  на рисунке 3.7–3.8 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

       Рисунок 3.7 — Схема алгоритма подпрограммы вывода результатов 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

       Рисунок 3.8 — Продолжение схемы алгоритма подпрограммы вывода результатов 

       Блок 02 выводит значение корня нелинейного  уравнения, решённого методом Ньютона, а также наименьший по абсолютному значению корня квадратного уравнения. Блок 03 организует цикл для вывода значений функции Y(t), а также самого аргумента t. Блок 04 выводит на экран значения Y(t), а также значение переменной t. Блок 05 прибавляет шаг квантования Tkк переменной t и отправляет обратно в Блок 03. Блок 06 организует цикл для вывода коэффициентов Горнера. Блок 07 выводит i-й коэффициент Горнера.

    1. Схема алгоритма основной программы

       Схема алгоритма основной программы представлена на рисунке 3.9– 3.11 
 
 
 
 
 
 
 

       Рисунок 3.9 — Схема алгоритма основной программы 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

       Рисунок 3.10 — Продолжение схемы алгоритма основной программы 
 
 

 
 
 
 
Построение графика временной функции