Курсовая работа: Программирование и основы алгоритмизации

Курсовая работа: Программирование и основы алгоритмизации




⚡ 👉🏻👉🏻👉🏻 ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻




























































Федеральное агентство образования Российской Федерации
Тульский государственный университет
Кафедра «Системы автоматического управления»
« Программирование и основы алгоритмизации».

По заданной структурной схеме САУ составить систему ДУ, описывающих её функционирование.
Разработать программу на языке Pascal для решения этой системы методом Эйлера.
Разработать программу на языке Pascal для построения графиков переходных процессов.
Провести исследование влияния конструктивных параметров на величину времени регулирования при подаче на вход системы единичного ступенчатого сигнала.
УУП – устройство усиления и преобразования;
α

координата исполнительного органа исполнительного устройства;
2. Пропорциональный интегральный регулятор
3. Пропорциональный дифференциальный регулятор
4.Интегрально-дифференциальный регулятор
5. Пропорциональный интегрально-дифференциальный регулятор
Варианты схем исполнительных механизмов:

W(p)=K4/((T4*p+1)*(T5*p+1)*(T6*p+1))
W(p)=K4/(p*(T4 2
*p 2
+2*η*T4*p+1))
W(p)=K4/((T4*p+1) (T5 2
*p 2
+2*η*T5*p+1))
1. Решение дифференциальных уравнений методом Эйлера

Уравнения, содержащие производные от функции, возникают при решении многих научно-технических задач, причем существует большое разнообразие классов подобных уравнений. Для решения некоторых из них могут быть использованы аналитические методы, рассматриваемые в курсах математики, однако в большинстве случаев приходится применять численные методы.
Сначала рассмотрим один из простейших классов дифференциальных уравнений, на примере которого будут показаны особенности использования численных методов.
Пусть задано дифференциальное уравнение первого порядка с начальным условием (задача Коши)
dy

/

dx

=

F

(

x

,

y

),

(1)
где F

(

x

,

y

)

– заданная функция двух переменных x

и у

, x 0


, у 0


– известные числа. Требуется определить функцию у = у(x)

при х=>

x

0


.
Уравнение (1)
можно рассматривать как задание кривой через ее производную в координатной плоскости x, у

, поскольку известно как вычислить производную в каждой точке этой кривой через ее координаты. В общем случае уравнению (1)
удовлетворяет целое семейство кривых; начальное условие (2)
позволяет выбрать из этого семейства одну определенную кривую, которая проходит через заданную точку x

0


,

y

0


.


Для численного решения (1)
, (2)
заменим область непрерывного изменения аргумента х

дискретным множеством точек, т.е. введем сетку. Положим, что величина х

изменяется от значения х=

x

0


до значения х=

b

.
Тогда, рассматривая равномерную сетку, получаем узловые точки x 0
,

x

1


,…

x k


,…

b

,
находящиеся на расстоянии h

друг от друга, т.е.
x k


+1


-

x k


=

h

,

k

=0,1... ,

(3)
где h –

шаг сетки. Соответствующие значения функции будем обозначать у k


, т.е.
Здесь у* (х)


функция, которая является приближенным решением (1),
(2).
Для получения численного решения, дифференциальное уравнение (1)
заменяется уравнениями относительно значений функций у*(x)

в узловых точках. Эти уравнения называются разностными. Простейшее разностное уравнение для (1)
имеет вид
(

y k


+1


-

y k


)/

h

=

F

(

x k


,

y k


)

k

=0,

l

,... ,

(4)
Уравнение (4)
следует из (1),
если производную dy/

dx

приближенно представить через значения функции у(x)

в соседних узлах.
Соотношения (2.12.4) можно записать в виде
Y k


+1


=

y k


+

h

*

F

(

x k


,

y k


).

(5)
Тогда, учитывая (2),
с помощью формулы (5)
можно последовательно определить значения у 1
,y 2


,
.… Этот метод приближенного решения (1), (2)
называется методом Эйлера.
Геометрическая интерпретация этой схемы дана на рис.1
, где изображено поле интегральных кривых. Использование только первого члена формулы Тейлора означает движение не по интегральной кривой, а по касательной к ней. На каждом шаге мы заново находим касательную; следовательно, траектория движения будет ломаной линией. Из-за этого метод Эйлера иногда называют методом ломаных.
Доказывается, что если шаг сетки h

стремится к нулю, то приближенное решение, определяемое (5),
стремится к точному решению (1), (2),
т.е. имеется факт сходимости приближенного решения к точному при h

®0. Однако в условиях реальных вычислений на компьютере при конечном шаге целесообразно знать насколько полученное приближенное решение близко к точному. В качестве меры отклонения (нормы ошибки) часто используют величину
d

y

=

max

|

y

(

x k


) –

y k


|.

(6)
Здесь у(х)


строгое решение (1), (2)
, y k



приближенное значение искомой функции в узловых точках x k


,
полученное путем решения разностных уравнений, например (4).

Для разностных уравнений величина d

y

оценивается формулой
Здесь С


const
,
зависящая от длины отрезка, на котором ищется решение, и способа дискретизации (1)
, m



параметр, который называется порядком точности решения. Порядок точности метода Эйлера - минимальный, т.е. т

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

| (

y

(

x k


+1


)-

y

(

x k


))/

h

-

f

(

x k


,

y

(

x k


))|<=

Ch m



где С

- const, т

порядок аппроксимации разностного уравнения.
Сравнение (1) и (4) показывает, что метод Эйлера имеет первый порядок аппроксимации, так же как и точность решения. Однако в общем случае утверждение о равенстве порядков точности решения и аппроксимации разностного уравнения не является очевидным и требует доказательства. Метод Эйлера является одним из самых старых и широко известных методов численного решения дифференциальных уравнений. К сожалению, этот метод может приводить к недопустимо большим ошибкам, а кроме того, он часто оказывается неустойчивым — малая ошибка (происходящая при округлении или из-за неточности исходных данных) существенно увеличивается с ростом х

.

1.2 Программная реализация метода Эйлера


Программа для решения дифференциальных уравнений состоит из трех частей:
Процедуры, реализующие метод Эйлера.
Процедуры вычисления правых частей.
Процедура вычисления правых частей R

имеет вид:
F – массив значений правых частей системы, приведенной к нормальной форме Коши;
y0 – массив значений начальных условий системы;
ft – f(t), т.е. сигнал (воздействие), подаваемый на вход системы;
Процедура, реализующая метод Эйлера:
procedureEu(vart0,t,h: real; varm:integer; vary0,y:mass);
t0,tk – начальное и конечное значение времени;
После задания всем переменным определенных значений происходит последовательное вычисление значений функции
Для приведённой выше схемы составим систему дифференциальных уравнений:
Выразим неизвестные величины через данные начальных условий
Таким образом имеем систему из пяти дифференциальных уравнений:
Итак, составим программу для решения дифференциальных уравнений и построения графиков переходных процессов.
Сначала сделаем некоторые переобозначения:
Y0 — начальные значения переменных системы уравнений
Y — массив переменных системы уравнений
start(ymin,ymax,t0,tk,t,k1,k2,k3,k4,t1,t2,t3,h,g,y0,y);
Eu(g,k1,k2,k3,k4,k6,t1,t2,t3,t4,d,t,h,m,y0,F,y,Gr);
Eu(g,k1,k2,k3,k4,k6,t1,t2,t3,t4,d,t,h,m,y0,F,y,Gr);
finish(t0,tk,ymin,ymax,shg,hi,bx,by);
interface
{описание структуры программы}
type mass=array [1..m] of real; {массивдифференциалов}
mass2=array [1..m2] of real; {массивпереходныхпроцессов}
g,n,u4,k3,k4,t1,t2,t3,T4,T5,d,k6,k1,k2,h,ymin,ymax,t0,tk,t, shg,hi,bx,by,i1:real;
procedure start
(var ymin, ymax,t0, tk, t,k1,k2,k3,k4,t1,t2, t3,h,g:real;var y0,y:mass);
procedure start2
(var t0,t: real; var y0,y: mass); Procedure Eu
(var g,k1, k2,k3,k4,t1,t2,t3, u4, k, d, t, h: real; m:integer; var y0, F, y: mass; var Gr: mass2);
Procedure R
(var y0, F: mass; g,k1,k2,k3,k4,k6,t1,t2,t3,t4,n: real);
procedure graphiks
(var Gr: mass2; y, y0: mass; g,k1,k2,k3,k4,k6,T1,T2,T3,T4,n: real);
procedure abc
(Gr: mass2; var ymin,ymax:real);
procedure top
(ymin,ymax,t0,tk: real; var shg,hi,bx,by: real);
procedure draw
(Gr: mass2; t,shg,hi,bx,by,h: real);
procedure finish
(t0,tk,ymin,ymax,shg,hi,bx,by: real);
procedure output
(t: real; y: mass);
procedure start
(var ymin,ymax,t0,tk,t,k1,k2,k3,k4,t1,t2,t3,h,g:real;var y0,y:mass); {начальныеприсвоения}
procedure start2
(var t0,t: real; var y0,y: mass); {начальныеприсвоения2}
Procedure
Eu
(varg,k1, k2,k3,k4,t1,t2,t3, u4, k, d, t, h: real; m:integer; vary0, F, y: mass; varGr: mass2);
R (y0,F,g,k1,k2,k3,k4,k6,T1,T2,T3,T4,n);
graphiks(Gr,y,y0,g,k1,k2,k3,k4,k6,T1,T2,T3,T4,n);
Procedure R
(var y0, F: mass; g,k1,k2,k3,k4,k6,T1,T2,T3,T4,n: real);
F[5]:=(y0[4]-2*n*T5*y0[5]-y0[2])/(T5*T5);
procedure
graphiks
(varGr: mass2; y, y0: mass; g,k1,k2,k3,k4,k6,T1,T2,T3,T4,n: real);
Gr[2]:=(g-y[2]*k6y[1])*k2+k1*(g-y[2]*k6);
initgraph(grdriver, grmode, 'd:\bp\bgi');
procedure abc
(Gr: mass2; var ymin,ymax: real);
procedure top
(ymin,ymax,t0,tk: real; var shg,hi,bx,by: real);
procedure draw
(Gr: mass2; t,shg,hi,bx,by,h: real);
moveto(round((t-h)*shg+bx),round(GetMaxY-Gr[i]*hi-by));
lineto(trunc(t*shg+bx),trunc(GetMaxY-Gr[i]*hi-by));
procedure finish
(t0,tk,ymin,ymax,shg,hi,bx,by: real);
outtextxy(round(i1*shg+bx)-10,GetMaxY-30,s);
outtextxy(round(i1*shg+10),getMaxY-40,'T(c)');
outtextxy(10,round(GetMaxY-i1*hi-by),s);
writeln(e,' Результаты решение системы ДУ');
writeln(e,'****************************************************');
writeln(e,'* T (c) * D(z1) * D(x5) * D(A) * D(x4) * D(x6) *');
writeln(e,'***************************************************');
writeln(' Результаты решение системы ДУ');
writeln('*****************************************************');
writeln('* T (c) * D(z1) * D(x5) * D(A) * D(x4) * D(x6) *');
writeln('*****************************************************');
procedure
output
(t: real; y: mass); {Вывод на экран результатов решения системы уравнений и их запись во внешний файл}
for i:=1 to m do begin write (e, y[i]:5:4,' ');
Зависимость сигнала на выходе УУП от времени

Зависимость сигнала рассогласования от времени

Зависимость от времени координаты исполнительного органа ИУ

Название: Программирование и основы алгоритмизации
Раздел: Рефераты по информатике
Тип: курсовая работа
Добавлен 09:14:41 15 июля 2010 Похожие работы
Просмотров: 21
Комментариев: 14
Оценило: 2 человек
Средний балл: 5
Оценка: неизвестно   Скачать

Привет студентам) если возникают трудности с любой работой (от реферата и контрольных до диплома), можете обратиться на FAST-REFERAT.RU , я там обычно заказываю, все качественно и в срок) в любом случае попробуйте, за спрос денег не берут)
Да, но только в случае крайней необходимости.

Курсовая работа: Программирование и основы алгоритмизации
Сочинение Рассуждение На Тему Зачем Я Учусь
Дипломная Работа На Тему Проблемы И Перспективы Развития Федеральной Целевой Программы "Электронная Россия"
Политико-психологический портрет представителя русской интеллигенции: Рихард Зорге
Курсовая работа по теме Forms of Ownership
Курсовая работа по теме Формирование собственного капитала организации
Реферат: Macbeth Essay Research Paper A Sample Macbeth
Лабораторный 24 Мрэо График Работы
Реферат: Россия в первой половине XIX века 3
Курсовая Работа Насосы
Контрольная работа по теме Понятие охраны окружающей среды
Контрольная Работа 7 Мордкович
Аттестационная Работа На Тему Экскурсия - Форма Воспитания Экологического Сознания И Эстетического Мировосприятия
Реферат: Социальный имидж организации технологии управления внешней средой
Реферат Развитие Мира
Реферат: Методи прийняття стратегічних управлінських рішень
Реферат по теме Активность и деятельность как всеобщая характеристика жизни
Реферат по теме Компетенция военных вузов как субъектов образовательной деятельности
Органы Внутренних Дел Курсовая Работа
Диалекты Русского Языка Реферат
Реферат На Тему Электрические Сети
Реферат: Планирование и мотивация деятельности
Реферат: Социально-философские аспекты курения
Статья: Затравки: как они разжигают эпидемию спроса

Report Page