Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Программирование и основы алгоритмизации

Тип Реферат
Предмет Информатика
Просмотров
904
Размер файла
111 б
Поделиться

Ознакомительный фрагмент работы:

Программирование и основы алгоритмизации

Федеральное агентство образования Российской Федерации

Тульский государственный университет

Кафедра «Системы автоматического управления»

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовой работе по дисциплине

«Программирование и основы алгоритмизации».

Разработал студент группы 120161

Матях Р.И.

Проверил доцент кафедры САУ:

Илюхин А. С.

Тула 2007 г.


ЗАДАНИЕ

По заданной структурной схеме САУ составить систему ДУ, описывающих её функционирование.

Разработать программу на языке Pascal для решения этой системы методом Эйлера.

Разработать программу на языке Pascal для построения графиков переходных процессов.

Провести исследование влияния конструктивных параметров на величину времени регулирования при подаче на вход системы единичного ступенчатого сигнала.


Общий вид функциональной схемы САУ

z

Обозначения:

СУ – суммирующее устройство;

УУП – устройство усиления и преобразования;

ИУ – исполнительное устройство;

ОУ – объект управления;

УОС – устройство обратной связи;

g – управляющее воздействие;

έсигналрассогласования;

uсигнал на выходе УУП;

αкоордината исполнительного органа исполнительного устройства;

yрегулируемая величина;

zсигнал обратной связи.

Варианты УУП:

1. Пропорциональный регулятор

2. Пропорциональный интегральный регулятор

3. Пропорциональный дифференциальный регулятор

4.Интегрально-дифференциальный регулятор

5. Пропорциональный интегрально-дифференциальный регулятор

Варианты схем исполнительных механизмов:

1. Двигатель постоянной скорости

2. Автоматический привод

3. Автоматический привод

Варианты объектов управления:

W(p)=K4/((T4*p+1)*(T5*p+1)*(T6*p+1))

W(p)=K4/(T42*p2+2*η*T4*p+1)

W(p)=K4/(p*(T4*p+1)*(T5*p+1))

W(p)=K4/(p*(T42*p2+2*η*T4*p+1))

W(p)=K4/((T4*p+1) (T52*p2+2*η*T5*p+1))

W(p)=K4/((T4*p+1)*(T5*p+1))

W(p)=K4/(p*(T4*p+1))

Передаточная функция:

W(p)=K6

1. Решение дифференциальных уравнений методом Эйлера

1.1 Описание метода

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

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

Пусть задано дифференциальное уравнение первого порядка с начальным условием (задача Коши)

dy/dx=F(x,y), (1)

У(x0) = Уо (2)

где F(x,y) – заданная функция двух переменных x и у, x0, у0 – известные числа. Требуется определить функцию у = у(x) при х=>x0.Уравнение (1) можно рассматривать как задание кривой через ее производную в координатной плоскости x, у, поскольку известно как вычислить производную в каждой точке этой кривой через ее координаты. В общем случае уравнению (1) удовлетворяет целое семейство кривых; начальное условие (2) позволяет выбрать из этого семейства одну определенную кривую, которая проходит через заданную точку x0, y0.

Для численного решения (1), (2) заменим область непрерывного изменения аргумента х дискретным множеством точек, т.е. введем сетку. Положим, что величина х изменяется от значения х=x0 до значения х=b. Тогда, рассматривая равномерную сетку, получаем узловые точки x0, x1,… xk,…b, находящиеся на расстоянии hдруг от друга, т.е.

xk+1 - xk= h, k =0,1... , (3)

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

yk=y*(xk).

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

(yk+1-yk)/h=F(xk, yk) k=0,l ,... , (4)

Уравнение (4) следует из (1), если производную dy/dx приближенно представить через значения функции у(x) в соседних узлах.

Соотношения (2.12.4) можно записать в виде

Yk+1=yk+h*F(xk,yk).(5)

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

Рис.1

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

dy= max| y(xk) – yk|. (6)

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

Для разностных уравнений величина dy оценивается формулой

dy~Chm(7)

Здесь Сconst, зависящая от длины отрезка, на котором ищется решение, и способа дискретизации (1) , mпараметр, который называется порядком точности решения. Порядок точности метода Эйлера - минимальный, т.е. т = 1, что связано с довольно грубым способом аппроксимации дифференциального уравнения разностным. Как правило, чем выше порядок точности, тем более предпочтительным является численный метод.

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

Max| (y(xk+1)-y(xk))/h-f(xk,y(xk))|<=Chm

где С - const, т порядок аппроксимации разностного уравнения.

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

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

Программа для решения дифференциальных уравнений состоит из трех частей:

Главная программа.

Процедуры, реализующие метод Эйлера.

Процедуры вычисления правых частей.

Процедура вычисления правых частей R имеет вид:

procedure R( var y0,F: mass);

begin

F[1]:=y0[2];

F[2]:=(ft-k2*y0[2]-k1*y0[1])/Mm

end;

где:

F – массив значений правых частей системы, приведенной к нормальной форме Коши;

y0 – массив значений начальных условий системы;

k1,k2 … kn – коэффициенты;

ft – f(t), т.е. сигнал (воздействие), подаваемый на вход системы;

Процедура, реализующая метод Эйлера:

procedureEu(vart0,t,h: real; varm:integer; vary0,y:mass);

var i: integer;

begin

R(y0,F);

for i:=1 to m do

y[i]:=y[i]+h*F[i];

t:=t+h;

end;

где:

t0,tk – начальное и конечное значение времени;

m – порядок системы;

h – шаг сетки;

После задания всем переменным определенных значений происходит последовательное вычисление значений функции

while t0<=tk do

begin

Eu(t0,t,h,g,y0,y);

writeln(t,y[1],y[2]);

for i:=1 to g do

y0[i]:=y[i];

end;

readln;

end.

Для приведённой выше схемы составим систему дифференциальных уравнений:

Выразим неизвестные величины через данные начальных условий

1. Но

Итак,

2. Аналогично

3.

4.

5. Пусть

тогда

Таким образом имеем систему из пяти дифференциальных уравнений:

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

Сначала сделаем некоторые переобозначения:

F — массив значений правых частей

F[1]=dZ1/dt

F[2]=X6

F[3]=dα/dt

F[4]=dX4/dt

F[5]=dX6/dt

Y0 — начальные значения переменных системы уравнений

Y — массив переменных системы уравнений

Y[1]=Z1

Y[2]=X5

Y[3]= α

Y[4]=X4

Y[5]=X6


2. Листинг программы

Входные параметры:

* T0 * 0

* TK * 30

* h * 0.01

* Y0 * 0 0 0 0 0

* T * 1 2 1 1 1

* k * 1 1 1 1 1

* g * 1

* n * 0.5

********

2.1. Главная программа

programEler;

uses mdd, graph;

begin

start(ymin,ymax,t0,tk,t,k1,k2,k3,k4,t1,t2,t3,h,g,y0,y);

output1;

while t<=tk do

begin

Eu(g,k1,k2,k3,k4,k6,t1,t2,t3,t4,d,t,h,m,y0,F,y,Gr);

abc (Gr, ymin, ymax);

output(t,y)

end;

readln;

begline;

start2(t0,t,y0,y);

top(ymin,ymax,t0,tk,shg,hi,bx,by);

while t<=tk do

begin

Eu(g,k1,k2,k3,k4,k6,t1,t2,t3,t4,d,t,h,m,y0,F,y,Gr);

draw(Gr,t,shg,hi,bx,by,h);

end;

finish(t0,tk,ymin,ymax,shg,hi,bx,by);

readln

end.

2.2. Модуль

unit MDD;

interface{описание структуры программы}

usesgraph;

const m=5;

m2=5;

type mass=array [1..m] of real; {массивдифференциалов}

mass2=array [1..m2] of real; {массивпереходныхпроцессов}

var

y0, y, F: Mass;

Gr: Mass2;

f1,e: text;

i,grdriver,grmode:integer;

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;

s:string[8];

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 begline;

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 output1;

procedure output(t: real; y: mass);

implementation

procedure start(var ymin,ymax,t0,tk,t,k1,k2,k3,k4,t1,t2,t3,h,g:real;var y0,y:mass); {начальныеприсвоения}

begin

assign (f1, 'C:nu.txt');

assign (e, 'C:Result.txt');

reset (f1);

readln(f1);

readln(f1);

readln(f1,s, T0);

readln(f1,s, TK);

readln(f1,s, h);

read(f1,s);

for i:=1 to m do begin

read(f1, y0[i]);

y[i]:=y0[i];

end;

readln(f1);

readln(f1, s, t1, t2, t3, t4, t5);

readln(f1,s, k1, k2, k3, k4, k6);

readln(f1,s, g);

readln(f1,s, n);

ymin:=y0[1];

ymax:=y0[1];

T:=t0;

close(f1);

end;

procedure start2(var t0,t: real; var y0,y: mass);
{начальныеприсвоения2}

begin

reset (f1);

readln(f1);

readln(f1);

readln(f1);

readln(f1);

readln(f1);

read(f1,s);

for i:=1 to m do begin

read(f1, y0[i]);

y[i]:=y0[i];

end;

close(f1);

T:=t0;

end;

ProcedureEu (varg,k1, k2,k3,k4,t1,t2,t3, u4, k, d, t, h: real; m:integer; vary0, F, y: mass; varGr: mass2);

var i: integer;

begin

R (y0,F,g,k1,k2,k3,k4,k6,T1,T2,T3,T4,n);

for i:=1 to m do for i:=1 to m do

y[i]:=y0[i]+h*F[i];

graphiks(Gr,y,y0,g,k1,k2,k3,k4,k6,T1,T2,T3,T4,n);

t:=t+h;

for i:=1 to m do

y0[i]:=y[i];

end;

Procedure R (var y0, F: mass; g,k1,k2,k3,k4,k6,T1,T2,T3,T4,n: real);

begin

F[1]:=((g-y0[2]*k6-y0[1])*k2)/T2;

F[2]:=y0[5];

F[3]:=(k3*(y0[1]+y0[2])-y0[3])/T3;

F[4]:=(k4*y0[1]-y0[4])/T4;

F[5]:=(y0[4]-2*n*T5*y0[5]-y0[2])/(T5*T5);

end;

proceduregraphiks(varGr: mass2; y, y0: mass; g,k1,k2,k3,k4,k6,T1,T2,T3,T4,n: real);

begin

Gr[1]:=g-k6*y[2];

Gr[2]:=(g-y[2]*k6y[1])*k2+k1*(g-y[2]*k6);

Gr[3]:=y[3];

Gr[4]:=y[2];

Gr[5]:=y[2]*k6;

end;

procedure begline;

begin

grdriver:=detect;

initgraph(grdriver, grmode, 'd:bpbgi');

setfillstyle(1,11);

bar(0,0,640,480);

setcolor(15);

rectangle(40,460,600,40);

i:=40;

while i<600 do

begin

setcolor(15);

line(i,40,i,460);

i:=i+56;

end;

i:=40;

while i<460 do

begin

line(40,i,600,i);

i:=i+42

end;

end;

procedure abc (Gr: mass2; var ymin,ymax: real);

begin

for i:=1 to m2 do begin

if ymin>Gr[i] then ymin:=Gr[i];

if ymax<Gr[i] then ymax:=Gr[i];

end;

end;

procedure top(ymin,ymax,t0,tk: real; var shg,hi,bx,by: real);

begin

shg:=560/(tk-t0);

hi:=420/(ymax-ymin);

bx:=600-tk*shg;

by:=440-ymax*hi;

end;

procedure draw(Gr: mass2; t,shg,hi,bx,by,h: real);

{процедурапостроенияграфиков}

begin

for i:=1 to m2 do begin

moveto(round((t-h)*shg+bx),round(GetMaxY-Gr[i]*hi-by));

SetColor(11+i);

SetLineStyle(0,1,3);

lineto(trunc(t*shg+bx),trunc(GetMaxY-Gr[i]*hi-by));

end;

end;

procedure finish(t0,tk,ymin,ymax,shg,hi,bx,by: real);

begin

setfillstyle(1,11);

bar(40,475,600,461);

setfillstyle(1,11);

bar(40,5,635,39);

setfillstyle(1,15);

setcolor(12);

SetLineStyle(0,1,3);

setcolor(5);

i1:=t0;

while i1<=tk do

begin

str(i1:5:2,s);

settextstyle(0,0,1);

outtextxy(round(i1*shg+bx)-10,GetMaxY-30,s);

i1:=i1+(tk-t0)/10;

end;

setcolor(12);

line(50,30,60,30);

settextstyle(0,0,2);

outtextxy(70,20,'E');

setcolor(13);

line(170,30,180,30);

outtextxy(190,20,'U');

setcolor(14);

line(280,30,290,30);

outtextxy(300,20,'A');

setcolor(15);

line(390,30,400,30);

outtextxy(410,20,'Y');

setcolor(16);

line(500,30,510,30);

outtextxy(520,20,'Z');

setcolor(4);

settextstyle(1,0,2);

outtextxy(round(i1*shg+10),getMaxY-40,'T(c)');

setcolor(5);

i1:=ymin;

while i1<=ymax do

begin

str(i1:5:3,s);

settextstyle(0,0,1);

outtextxy(10,round(GetMaxY-i1*hi-by),s);

i1:=i1+(ymax-ymin)/10;

end;

setfillstyle(1,1);

bar(0,0,5,480);

bar(0,0,640,5);

bar(640,0,635,480);

bar(640,480,5,475);

end;

Procedure output1;

begin

rewrite(e);

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('*****************************************************');

end;

procedureoutput(t: real; y: mass); {Вывод на экран результатов решения системы уравнений и их запись во внешний файл}

begin

write (e, t:3:2,' ');

write (t:3:2,' ');

for i:=1 to m do begin write (e, y[i]:5:4,' ');

write (y[i]:5:4,' '); end;

writeln(e);

writeln

end;

END.

3. Графики переходных процессов

Зависимость сигнала на выходе УУП от времени

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

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

Регулируемая величина

График сигнала обратной связи

Общий вид решения


Нет нужной работы в каталоге?

Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
156222
рейтинг
icon
3230
работ сдано
icon
1388
отзывов
avatar
Математика
Физика
История
icon
153147
рейтинг
icon
6013
работ сдано
icon
2718
отзывов
avatar
Химия
Экономика
Биология
icon
105824
рейтинг
icon
2102
работ сдано
icon
1312
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
60 589 оценок star star star star star
среднее 4.9 из 5
УрГУПС
Большое спасибо Елене!) Однозначно рекомендую данного исполнителя!)))))
star star star star star
СибАДИ
Работа выполнена без замечаний, все оформлено по ГОСТу, много рисунков и очень грамотное о...
star star star star star
Брянский базовый медицинский колледж
Кристина. спасибо огромное за качественную, досрочно выполненную работу.
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

Организация технической эксплуатации

Курсовая, Электрические машины

Срок сдачи к 23 мая

только что

Сделать чертежи

Контрольная, инженерная и компьютерная графика

Срок сдачи к 16 мая

только что
только что

Сделать курсовую работу

Курсовая, Программно-аппаратные средства защиты информации

Срок сдачи к 24 мая

1 минуту назад

2 задачи про вентиляцию

Решение задач, безопасность жизнедеятельности

Срок сдачи к 14 мая

2 минуты назад

Проектная деятельность на уроках технологии

Диплом, Технология

Срок сдачи к 17 мая

2 минуты назад

Решить задачи в файле

Решение задач, Тэс и аэс

Срок сдачи к 15 мая

2 минуты назад

Помощь с контрольной работой по физической химии

Онлайн-помощь, Физическая химия

Срок сдачи к 13 мая

2 минуты назад

Выполнить ргр по основам аудита. С-04997

Контрольная, Аудит

Срок сдачи к 16 мая

2 минуты назад

Повысить уникальность текста

Диплом, Фармацевтическая химия

Срок сдачи к 14 мая

3 минуты назад

срок выполнения до 12:00 мск 13.05

Контрольная, Математическая статистика

Срок сдачи к 13 мая

3 минуты назад

решить задачу согласно заданию в файле можно в ворд .

Решение задач, материаловедение

Срок сдачи к 14 мая

3 минуты назад

Написать практическую часть по бухгалтерскому учету

Курсовая, Бухгалтерский учет

Срок сдачи к 15 мая

4 минуты назад

Расчетно графическая работа

Другое, Финансовый менеджмент

Срок сдачи к 25 мая

5 минут назад

Проанализировать налоговую нагрузку газпрома

Другое, Налоги

Срок сдачи к 14 мая

5 минут назад

Методы анализа хлоридов РЗЭ:

Контрольная, Химия

Срок сдачи к 18 мая

5 минут назад

46. Мировые правовые семьи: виды, общая характеристика.

Курсовая, Теория государства и права

Срок сдачи к 16 мая

5 минут назад

Концепция бухгалтерской (финансовой) отчетности в России

Курсовая, Бухгалтерская финансовая отчетность

Срок сдачи к 30 мая

5 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно