Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛабыИМ.doc
Скачиваний:
68
Добавлен:
10.05.2015
Размер:
1.64 Mб
Скачать

Задания, отчеты, программы по лаботаторным работам по "Имитационному моделированию" Лабораторная работа 1. Принципы построения имитационных моделей и

1. Цель лабораторной работы

- изучить принципы построения имитационных моделей: принцип и принцип особых состояний средствами интегрированной статистической системыStatistica;

- приобрести навыки построения имитационных моделей на примере моделирования работы простейших систем.

2. Задание к работе

1. Рассчитать траекторию процесса Z(t), происходящего в дифференцирующем фильтре (рис. 1), в моменты времени t=1,2,…,N (=0,01). Рассчитатьзначения производной детерминированной функции x(t) (в соответствии с вариантом, табл. 1), подаваемой на вход фильтра, используя принцип (см. п. 3 пояснения к работе).

Усилитель

Интегратор

X’(t)

Z(t)

Рис. 1. Структурная схема дифференцирующего фильтра. 

2.2. Рассчитатьзначения производной детерминированной функции x(t), подаваемой на вход фильтра, в моменты времени t=1,2,…,N, используя аналитическую формулу (аналитический метод). Построить графики исходной функции x(t) и производных x’(t), рассчитанных имитационным методом и аналитическим. Сопоставить результаты вычисления производных аналитическим и имитационным методами. Сделать выводы.

Таблица 1.

Вар.

X(t)

N

Z(0)

1.

sin2(t) +cos(t)

1000

0,5

2.

cos2(t) +sin(t)

1000

0,5

3.

tg2(t)

100

0,5

4.

arctg2(t)

100

0,5

5.

arcsin2(t)

100

0,5

6.

arccos2(t)

100

0,5

7.

Sin2(t)

1000

0,5

8.

Cos2(t)

1000

0,5

9.

sin2(t) +cos(t)

1000

1

10.

cos2(t) +sin(t)

1000

1

11.

tg2(t)

100

1

12.

arctg2(t)

100

1

13.

arcsin2(t)

100

1

14.

arccos2(t)

100

1

15.

Sin2(t)

1000

1

16.

Cos2(t)

1000

1

17.

sin2(t) +cos(t)

1000

2

18.

cos2(t) +sin(t)

1000

2

19.

tg2(t)

100

2

20.

arctg2(t)

100

2

21.

arcsin2(t)

100

2

22.

arccos2(t)

100

2

23.

Sin2(t)

1000

2

24.

Cos2(t)

1000

2

3. Пояснения к работе

Процесс, происходящий в фильтре (рис. 1), описывается дифференциальным уравнением:

В уравнении: K- коэффициент усиления; х(t) – входной сигнал.

Доказано, что: 

Преобразуем математическую модель фильтра (1) к виду, позволяющему применить принцип t. В простейшем случае достаточно уравнение (1) аппроксимировать конечно-разностным уравнением:

Что соответствует итерационной формуле:

(3).

Задав начальное условие Z(t0)=Z0 можно построить траекторию процесса, происходящего в фильтре, с целью получения текущего значения производной любой детерминированной функции x(t), подаваемой на вход.

Пример: Пусть шаг =0,01; x(t)=sin(t)+cos(t); Z(0)=0,5; N=1000.

Вычислим К=1/=100. В табл. 3 приведены результаты вычислений. В последнем столбце табл. 3 приведены значения производной, вычисленные аналитически, по формуле:x’(t)=cos(t)-sin(t). На рис. 2 приведены графики исходной функции x(t) и производных x’(t), рассчитанных имитационным методом и аналитическим.

Таблица 3.

i

t

=

x'(t)

0

0,01

1,00995

0,5

50,9949834

0,98995

1

0,02

1,019799

1,00995

0,98488396

0,979801

2

0,03

1,029546

1,019799

0,97468606

0,969555

3

0,04

1,039189

1,029546

0,96439069

0,959211

4

0,05

1,048729

1,039189

0,95399888

0,948771

5

0,06

1,058165

1,048729

0,94351167

0,938237

6

0,07

1,067494

1,058165

0,93293012

0,927608

7

0,08

1,076716

1,067494

0,92225527

0,916887

8

0,09

1,085831

1,076716

0,91148819

0,906074

9

0,1

1,094838

1,085831

0,90062997

0,895171

Рис. 2

Пояснения к п.2

Моделирование последовательности значений случайных величин с заданным законом распределения реализуется на основе использования случайных величин, имеющих равномерное распределение в интервале (0, 1).

Для генерации случайных чисел с равномерным законом распределения в интервале (0,1) в системе Statisticaнеобходимо либо:

  • в электронной таблице данных Spreadsheetвыделить блок (либо переменнуюvar), который должен быть заполнен случайными числами (которая будет содержать случайные числа);

  • выбрать в меню Edit/Fill StandardizeBlock/Fill Random Values;

либо:

  • в спецификации (Specs) переменной в поле Long Name-Formula withFunctionsзадать функцию:=rnd(1);

либо:

  • программно, используя StatisticaBasic(встроенный в системуStatisticaязык программирования):v2:= rnd(1)*5+2; в результате в переменнойv2 - равномерно распределенные случайные числа в диапазоне 2-7.

Пример выполнения Лабораторная работа 1.

Принципы построения имитационных моделей и

Пример выполнения

Исходные данные:

Вар.

X(t)

N

Z(0)

7

Sin2(t)

1000

0,5

i

Var1(t)

Var2

Var3

Var4 =

Var5 x'(t)

1

0,01

0,0000999966667

0

0,00999966667

0,0199986667

2

0,02

0,00039994667

0,0000999966667

0,0299950003

0,0399893342

3

0,03

0,000899730032

0,00039994667

0,0499783363

0,0599640065

4

0,04

0,00159914685

0,000899730032

0,0699416816

0,079914694

5

0,05

0,00249791736

0,00159914685

0,0898770512

0,0998334166

6

0,06

0,00359568207

0,00249791736

0,109776471

0,119712207

7

0,07

0,00489200189

0,00359568207

0,129631982

0,139543115

8

0,08

0,00638635831

0,00489200189

0,149435642

0,159318207

9

0,09

0,00807815361

0,00638635831

0,169179529

0,179029573

10

0,1

0,00996671108

0,00807815361

0,188855747

0,198669331

График 1

На основании полученного графика можно сделать вывод, что результаты, полученные аналитическим и имитационным методом, практически совпадают.

Задание 2

Вар.

Интервалы поступления заданий

Интервалы обработки заданий

7.

(1, 3)

(1, 3)

Текст программы на языке Си:

#include <iostream.h>

#include <stdio.h>

#include <stdlib.h>

main()

{

int i = 0;

int t_int_prih = 0;

int t_int_obsl = 0;

int t_prih = 0;

int t_begin_obsl = 0;

int t_end_obsl = 0;

int t_ojidan = 0;

int t_prostoya = 0;

int ochered = 0;

cout << "i\t" << "t_int_pr" << "\t" << "t_int_ob" << "\t" << "t_prih" << "\t" << "t_n_obsl" << "\t" << "t_o_obsl" << "\t" << "t_oji" << "\t" << "t_prost" << " \n";

for (; i < 100; i++)

{

int t_prih_prev = t_prih;

int t_end_obsl_prev = t_end_obsl;

t_int_prih = (rand()%3)+1;

t_int_obsl = (rand()%3)+1;

t_prih = t_prih + t_int_prih;

t_begin_obsl = t_prih+t_ojidan;

if(t_end_obsl >= t_prih)

{

t_ojidan = t_end_obsl_prev - t_prih + t_ojidan;

t_end_obsl = t_end_obsl + t_int_obsl;

ochered++;

}

else

{

t_prostoya = t_prostoya + t_prih - t_end_obsl_prev;

t_end_obsl = t_prih + t_int_obsl;

}

cout << i << "\t" << t_int_prih << "\t" << t_int_obsl << "\t" << t_prih << "\t" << t_begin_obsl << "\t" << t_end_obsl << "\t" << t_ojidan << "\t" << t_prostoya << " \n";

}

double t_oj = t_ojidan / 100;

double Po = (double)t_prostoya / (double)t_end_obsl;

cout << "\nt_ojid = " << t_oj << " " << "Po = " << Po;

getchar();

}

Таблица результатов:

I

0

2

1

2

2

3

0

2

1

3

1

5

5

6

0

4

2

2

3

7

7

10

0

5

3

1

1

8

8

11

2

5

4

2

2

10

12

13

3

5

5

2

4

12

15

17

4

5

6

2

5

14

18

22

7

5

7

1

1

15

22

23

14

5

8

1

2

16

30

25

21

5

9

3

3

19

40

28

27

5

10

3

2

22

49

30

33

5

= 36.08= 0.0179211

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]