Добавил:
kaslp1939@mail.ru Казимиров Леонид Петрович , инженер- механик по летательным аппаратам Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

СТАТИСТИЧЕСКОЕ МОДЕЛИРОВАНИЕСЛОЖНЫХ СИСТЕМ_АЛГОРИТМ И ПРОГРАММА_

.pdf
Скачиваний:
0
Добавлен:
23.10.2021
Размер:
3.88 Mб
Скачать

инв. №

Взаи.

Подп. и дата

Инв. № подл.

// MK[j] -нормирующий коэффициент для плотности рапределения

MBUX[j,4]:=MBX[j,4]; //Xmin MBUX[j,5]:=X; //Xmax-Xmin

4:if ABS(M[j,1]-4)<1.0E-4 then begin

//гаммараспределение интервал изменения Х вычисляется

// для заданной Pdov-доверительной вероятности. Для этого используется процедура

ChetPdovFgamma (teta,lambda, Pdov, X ); lambda := M[j,2]; teta:= M[j,3]; Pdov:= M[j,5];

Процедура MCCH

procedure MCCH( M:raM100_10; MK:raX;N,Q:integer;var X:raX);

позволяет получать числа со следующими законами распределения:

1)

изменение параметров с равномерным шагом

 

 

Xmax X min

 

 

X X

min

(i 1) ,

где i 1,2,...,n

;

 

;

 

 

 

 

 

 

max

 

 

 

nmax 1

 

 

 

 

 

 

 

 

 

2)

равномерное распределение на интервале

 

 

X min,X max ;

3)

нормальное распределение с параметрами

 

 

и

;

4)

бета-распределение с параметрами

 

 

, , X min,( X max X min );

5)

гамма-распределение с параметрами

, , X min ;

 

 

6)

Экспоненциальное распределение получается из гамма-распределения при =1.

Значение формальных параметров процедуры:

М - массив , задающий режим работы процедуры (см. табл.1); МК - массив констант, вычисляемых в процедуре OGR;

N - номер реализации;

Q - количество элементов входного (случайного) вектора X; Х - случайный вектор (выходной массив процедуры).

Процедура MCCH использует при работе датчик равномерно распределённых на интервале [0, l] случайных чисел. Работа процедуры основана на формировании чисел с заданным законом распределения методом исключения (метод Дж. фон Неймана). Закон распределения описывается в простейшей форме, и случайное число приводится к закону распределения с заданными параметрами по формуле линейного преобразования одномерной случайной величины:

пусть Х - случайное число, Y = a Х + b;

тогда

Y ( y)

 

1

 

 

X (

y b

) ;

M(aX b) a M X

b ;

D(aX b) a2DX ;

 

 

 

a

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

 

 

Вывод рабочих формул (R – равномерно распределенное на интервале [0…1] случайное число):

1. Равномерное распределение на интервале [X min...X max] по формуле:

X (X max X min) R X min;

 

 

 

 

 

 

СТАТИСТИЧЕСКОЕ МОДЕЛИРОВАНИЕ

 

 

Лист

 

 

 

 

 

11.2017

 

СЛОЖНЫХ СИСТЕМ.

 

 

 

 

 

 

 

 

 

 

 

11

Изм.

Кол.уч

Лист

Подп.

Дата

 

АЛГОРИТМ И ПРОГРАММА

 

 

Копировал:

Формат

 

А4

 

 

 

 

 

 

 

 

2. Нормальное распределение с параметрами , .

Простейшая

формула плотности

нормального распределения (м.о.=0 и с.к.о.=1) имеет вид:

 

 

 

1

 

 

x2

 

 

 

f (x)

e

2 ; 0 f (x) fmax при

x ;

fmax f (0);

2

 

 

 

 

 

 

 

 

При методе Неймана используется нормированная (приведенная) плотность распределения

 

 

 

0 fn (x)

f (x)

 

1;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

fmax

 

 

 

 

 

1

 

Коэффициент нормировки fmax

равен

 

 

fmax

 

 

 

 

2

 

 

 

 

 

 

 

 

 

(6R 3)2

 

Отсюда с учётом правила „3 ”:

fn (x) e

 

;

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

По формуле линейного преобразования производится переход к требуемому

закону распределения:

 

 

 

 

 

 

 

 

 

 

 

 

 

x (6 R 3)

xmax xmin

(6 R 3)

xmax xmin

(xmax xmin ) R xmin;

 

 

 

 

 

6

 

 

 

 

 

2

 

 

 

 

 

Значения

X min и

(X max Xmin)

вычисляются в процедуре OGR. по правилу "3 ".

3. Бета-распределение при 0 x 1 имеет вид:

 

 

 

 

 

 

 

 

 

f (x) A x (1 x) ,

 

 

 

 

 

 

 

 

где

A

Г( 2 )

 

;

 

 

 

 

(3.1)

Г( 1)Г( 1)

 

 

 

 

 

 

 

 

Точку максимума функции находим, приравнивая нулю первую производную f ' (x) A [ x 1(1 x) (1 x) 1] 0;

 

Если 0<x<1 , 0, 0 , то

 

 

 

 

 

 

 

 

 

 

 

 

 

A x 1(1 x) 1[ (1 x) x ] 0;

A (

 

) (

 

) ;

 

(1 x) x 0;

x*

 

;

fmax

 

инв.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где

fmax

– коэффициент нормировки.

 

 

 

 

 

 

.

 

 

 

 

 

 

Взаи

Нормированная плотность распределения равна:

 

 

 

 

 

 

дата

 

 

f (x)

 

 

 

) x (1 x) ;

 

 

 

 

fn(x)

fmax A (

 

) (

 

 

 

 

 

. и

При =0, 0 или 0, =0 , получаем степенную функцию

 

 

 

 

Подп

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

№ подл.

 

 

 

 

 

 

 

 

СТАТИСТИЧЕСКОЕ МОДЕЛИРОВАНИЕ

Лист

Инв.

 

 

 

11.2017

 

 

 

 

СЛОЖНЫХ СИСТЕМ.

 

12

Изм. Кол.уч Лист

Подп.

Дата

 

 

 

 

АЛГОРИТМ И ПРОГРАММА

 

 

Копировал:

Формат А4

 

 

 

 

 

 

 

 

 

 

 

 

f (x) A (1 x) ;

x* 0;

fmax

A;

f

n

(x) (1 x) ;

 

f (x) A x ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(x) x

 

 

 

x* 1;

fmax A;

 

 

 

f

n

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

При =0, =0; получаем равномерную плотность распределения:

 

f (x) fmax

A;

fn (x) 1;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В общем случае можно записать:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

( )

 

 

 

fn (x) A x (1 x) ;

где

A

 

 

( )

 

 

 

 

,

при

0, 0

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

1

 

 

 

 

 

1

 

 

 

 

 

 

 

,

 

при

0, 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

При программной реализации в случае

 

 

 

 

10 6,

 

 

 

10 6

 

в процедуре OGR происходит

 

 

 

 

 

 

изменение соответствующего элемента

 

 

 

 

 

 

 

 

 

 

задающего массива (К[J]:=1).

 

Переход к общему случаю бета-распределения осуществляется по формуле

где R выбирается по методу Неймана с учетом плотности (3.1).

 

 

x(xmax xmin ) R xmin;

4.Гамма-распределение имеет в простейшем виде ( =1) следующую плотность распределения

f ( x )

 

 

x

1

e

x

;

(4.1)

 

Г ( )

 

 

 

Для расчёта функции Г ( )

// вычисление значения Гамма функции

 

используется разложение Гаусса в бесконечное произведение ( см. Р.Курант, Краткий курс дифференциального и интегрального исчисления, т.2,стр.355,изд.»Наука», Москва 1970г. )

procedure Fgamma (X :extended; var gamma:extended );

Число сомножителей N=10000.

Результаты счёта : G(5)= 23,9760179882471точное значение -24; G(6)= 119,820185838726точное значение -120;

 

Для выбора числа N были проведены расчёты разных значений N.

 

 

Был проведен расчет при N=100000.

 

 

 

 

Результаты счёта : G(5)= 23,9976001799882точное значение -24;

 

 

 

 

G(6)= 119,982001859839точное значение -120;

 

Был проведен расчет при N=1000000.

 

 

 

инв.

Результаты счёта : G(5)= 23,9997600018 - точное значение -24;

 

 

 

G(6)= 119,9982000186точное значение -120;

 

.

 

 

 

Взаи

Был выбран вариант– N=10000. Ошибка не превышает 1Е-3

 

Задается в виде Fgamma ( teta,gamma );

 

 

 

 

 

 

 

 

К общему виду (см. табл.2) эту плотность распределения приводит линейное преобразование

дата

 

 

y 1 x;

 

 

(4.2)

 

 

 

 

 

 

. и

 

 

 

 

 

Следовательно, при формировании чисел, имеющих

γ-распределение, можно использовать

Подп

функцию (4.1) с последующим линейным преобразованием (4.2).

 

 

 

 

При выводе рабочей формулы воспользуемся тем же методом, что и в п.З:

 

№ подл.

 

 

 

СТАТИСТИЧЕСКОЕ МОДЕЛИРОВАНИЕ

Лист

Инв.

 

 

11.2017

 

СЛОЖНЫХ СИСТЕМ.

13

Изм. Кол.уч Лист

Подп. Дата

АЛГОРИТМ И ПРОГРАММА

 

Формат А4

 

 

 

Копировал:

 

инв. №

Взаи.

Подп. и дата

Инв. № подл.

f '(x)

1

 

[( 1) x 2

e x

x 1

e x

( 1)] 0,

 

 

 

 

Г( )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x 0,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x 2 e x [( 1) x] 0,

 

x 1;

 

 

 

 

 

 

 

 

 

 

 

1

 

 

1

 

 

( 1)

 

 

 

 

 

 

 

 

 

 

 

 

 

fmax

 

( 1)

e

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

Г( )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1,

fn (x)

f (x)

 

 

 

 

x 1 e x

 

(

 

e

)

( 1)

x

1

e

x

;

fmax

( 1) 1

1

 

1

 

 

 

 

 

 

 

 

 

e (

)

 

 

 

 

 

 

 

 

1,

f (x) e x ,

 

x

0;

fmax 1;

 

 

 

 

 

 

 

 

Окончательно имеем:

 

 

 

 

 

 

 

 

 

1,

 

1;

f (x) A

x 1 e x ,

где

A

 

 

e

)

( 1)

,

2,3,4...;

n

1

 

 

1

 

(

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Далее, поскольку гамма-распределение справа не ограничено, а метод Неймана рассматривается на конечном интервале, необходимо оценить границу распределения при заданной доверительной вероятности Рдов ,

 

 

1

xmax 1

 

x

 

 

PДОВ

 

0

x

e

 

 

dx ;

 

Г( )

 

 

Для целых

 

имеем:

 

 

 

 

 

1

e xdx e x ;

 

 

 

 

2

 

xe xdx xe x

 

e xdx e x (x 1);

3

 

x2e xdx e x (x2 2x 2);

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

 

 

 

n 1 x

 

 

 

e x

0

n

 

1

 

n 1

m

 

n m

n

n

x

 

e

 

dx

 

 

 

(An x

 

An x

 

... An x

 

... An );

 

 

Г(n)

 

 

 

где

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Am

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

(n m)!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Численное решение уравнения при

 

 

 

n

 

 

 

 

 

e x

 

 

0

n

 

1

n 1

 

 

 

m

 

n m

n

 

 

 

P

 

 

 

 

 

(A x

 

A x

 

 

... A

 

x

 

 

... A

);

 

Ã( )

 

 

 

 

 

 

 

äîâ

 

 

n

 

 

n

 

 

 

 

n

 

 

 

n

 

 

 

Получим значение

 

 

Xmax

такое, что

P(X Xmax ) Päîâ .

 

Сучетом формул линейного преобразования имеем

xxmax xmin R xmin,

 

 

 

 

 

 

СТАТИСТИЧЕСКОЕ МОДЕЛИРОВАНИЕ

 

 

Лист

 

 

 

 

 

11.2017

 

СЛОЖНЫХ СИСТЕМ.

 

 

 

 

 

 

 

 

 

 

 

14

Изм.

Кол.уч

Лист

Подп.

Дата

 

АЛГОРИТМ И ПРОГРАММА

 

 

Копировал:

Формат

 

А4

 

 

 

 

 

 

 

 

где R выбирается по методу Неймана с учетом плотности (4.1).

1. Экспоненциальное распределение получается из (4.1) при =1.

Процедура ctatobr

Предназначена для статистической обработки реализаций случайного вектора У. procedure ctatobr(Y:raX;XMXBux,Bi,Ai,dy :raF; var F, MPR,MFR,MX,MF,MXBux,F0:raF;

N,Nmax,W,Nvux:integer); MXBux:=( ' Параметры выходного вектора ');

MPR:=(+' Нормированная плотность распределения ');

F:=( ' Ненормированная Функция распределения ');

«Ненормированная» -показывает число выборки (попаданий) в заданном i-том интервале, нормированная - делённая на общее число испытаний – Nmax.

MFR:=( ' Нормированная Функция распределения ');

MX1:=( ' Координата Х функции распределения'); MXBux:=( ' Параметры выходного вектора ');

N - номер текущего испытания. В цикле проводится расчёт

for N:=1 to Nmax do begin MCCH(MBUX,MK,N,Q, BXStat); Shet (BXStat, BUX);

ctatobr(BUX,F,MPR,MFR,MX1,MF, MXBux,N,Nmax,W,Nvux); end;

Далее с помощью процедуры SaveFile запоминается результат for i:=1 to Nvux do begin

iNvux :=IntToStr(i);

nameMXBux:=(iNvux+' Параметры выходного вектора '); nameMPR:=(iNvux+' Нормированная плотность распределения '); nameF:=(iNvux+' Ненормированная Функция распределения '); nameMFR:=(iNvux+' Нормированная Функция распределения '); nameMX1:=(iNvux+' Координата Х функции распределения');

 

// Nvux

 

 

 

 

 

SaveFile(i,MXBux,nameMXBux,TFile );

 

 

 

SaveFile(i,MX1,nameMX1,TFile );

 

 

 

SaveFile(i,MPR,nameMPR,TFile );

 

 

SaveFile(i,MFR,nameMFR,TFile );

 

 

инв.

SaveFile(i,F,nameF,TFile );

 

 

end;

 

 

 

 

.

 

 

 

 

Взаи

SaveFile(i,MXBux,nameMXBux,TFile );

 

 

SaveFile(i,MX1,nameMX1,TFile );

 

 

 

 

 

 

SaveFile(i,MPR,nameMPR,TFile );

 

 

датаи

SaveFile(i,MFR,nameMFR,TFile );

 

 

end;

 

 

 

 

 

SaveFile(i,F,nameF,TFile );

 

 

.

Результат сохраняется в папке с программой (exe-файлом).

 

Подп

Остальные формальные параметры процедуры:

 

 

 

F – массив, в котором хранятся значения гистограммы;

 

.

MF[1…NВЫX,1…8] – массив статистических параметров закона распределения У:

 

№ подл

 

 

СТАТИСТИЧЕСКОЕ МОДЕЛИРОВАНИЕ

Лист

Инв.

 

 

11.2017

СЛОЖНЫХ СИСТЕМ.

15

Изм. Кол.уч Лист

Подп. Дата

АЛГОРИТМ И ПРОГРАММА

 

Формат А4

 

 

 

Копировал:

 

инв. №

Взаи.

Подп. и дата

Инв. № подл.

Элементы

i, 1

i, 2

i, 3

i,4

i, 5

i, 6

массива MF

 

 

 

 

 

 

 

 

 

 

 

 

 

Содержание

Ymin

Ymax

м.о.

Σσ2

N σ

шаг

 

 

 

 

 

y2j

гисто-

 

 

 

 

 

j 1

граммы

N – номер реализации;

Nmax – заданное число реализаций;

W – число делений гистограммы;

Nвых – число компонент выходного вектора Y.

Процедура ctatobr производит обработку текущих значений вектора Y , что позволяет избавиться от массива, в котором бы запоминались все реализации вектора.

М.О. и с.к.о. (математическое ожидание и среднеквадратическое отклонение) вычисляются по формулам:

n 1

 

м.о. ( y j (n 1) yn )/n;

j 1

 

с.к.о. ( n

y2j m.o.2 n)/(n 1) ;

j 1

 

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

Расчёты показывают практически полное соответствие гистограмм, полученных при этих допущениях и при обычном методе.

Описание работы с программой

Для проведения расчётов необходимо создать ПАПКУ , название не критично, например, «Проведение статмоделирования».

В эту папку помещаем следующие файлы beta-распределение.rtf

ObchijSTATModeling.exe – программа оболочка

ProjectOfflineProcess.exe – программа расчёта исследуемого процесса. Эта программа готовится разработчиком (как готовить – будет показано ниже)

ProjectProOtladka.exe - отладочный вариант, используется для исследования законов распределения координат входного вектора. Характерной особенностью этого варианта является , то, что выход равен входу, то есть – Хвых = Хвход.

Далее идут текстовые файлы

Вфайлах ниже 1-6 даётся краткая характеристика закона распределения:

1.Вектор-const.rtf

2.Равномерное распределение.rtf

 

 

 

 

 

 

СТАТИСТИЧЕСКОЕ МОДЕЛИРОВАНИЕ

 

 

Лист

 

 

 

 

 

11.2017

 

СЛОЖНЫХ СИСТЕМ.

 

 

 

 

 

 

 

 

 

 

 

16

Изм.

Кол.уч

Лист

Подп.

Дата

 

АЛГОРИТМ И ПРОГРАММА

 

 

Копировал:

Формат

 

А4

 

 

 

 

 

 

 

 

3.Равномерный шаг.rtf

4.beta-распределение.rtf

5.Гамма-распределение.rtf

6.Нормальный закон.rtf

Вфайлах ниже 1-6 приводятся № и название координат ВХОДНОГО и ВЫХОДНОГО

векторов

1.Название входного вектора.rtf

2.Название входного вектора — отладка.rtf

3.Название выходного вектора.rtf

4.Название выходного вектора — отладка.rtf

5.Название папки результатов счёта.rtf

6.пусто.rtf

Отдельно приведены bat -файлы, назначение которых понятно из названия

1.Удалить ObchijSTATModeling.bat

2.Удалить ProcessSTATModeling.bat

В каждом из файлов – даётся краткая характеристика закона распределения (Сохранять файлы обязательно с расширением -.rtf. Удобно это делать в блокноте или в Word. Если в блокноте, то после надо изменить расширение txt на rtf).

Примеры содержимого файлов.

Название папки результатов счёта.rtf

Название папки результатов счёта ВХ [1] == Угол опрокидывания

Название входного вектора.rtf

 

 

Название входного вектора

 

 

 

 

ВХ [1] –

 

 

Колея

 

 

 

 

ВХ [2] –

 

 

Ширина рамы

 

 

 

 

ВХ [3]–

 

 

Диаметр колеса

 

 

 

ВХ [4] –

 

 

Радиус статический шины

 

 

. инв.

 

ВХ [5] –

 

 

Центр масс относительно ОП

 

 

ВХ [6] –

 

 

Расстояние от оси до рамы

 

 

Взаи

 

ВХ [7] –

 

 

Высота демпфера на раме

 

 

 

ВХ [8] –

 

 

Высота демпфера на оси

 

 

 

 

 

 

 

 

 

В примере - входов -8.

 

 

 

. и дата

Входов может быть до 100 (так сделано в программе).

 

Название выходного вектора.rtf

 

 

Подп

 

Название выходного вектора

 

 

 

 

.

 

BЫX [1]

Просадка рессор

 

 

№ подл

 

 

 

 

СТАТИСТИЧЕСКОЕ МОДЕЛИРОВАНИЕ

Лист

Инв.

 

 

 

 

11.2017

СЛОЖНЫХ СИСТЕМ.

17

Изм.

Кол.уч Лист

Подп. Дата

АЛГОРИТМ И ПРОГРАММА

 

Формат А4

 

 

 

 

 

Копировал:

 

BЫX [2]

Просадка шин

BЫX [3] Угол без учёта рессор и шин

BЫX [4] Угол с учётом рессор и шин

Здесь выходов 4. В программе реализовано - 100.

пусто.rtf

Пустой файл-текста нет

Равномерный шаг.rtf

Выборка с равномерным шагом шаг определяется как 1/NMAX

где NMAX – заданное число реализаций

Равномерное распределение.rtf

Равномерное распределение

Вероятность того, что наблюдение принадлежит данному интервалу, прямо пропорционально его длине

Нормальный закон.rtf

Нормальный закон Является приемлемой моделью для многих физических явлений вследствие того, что при

довольно общих условиях распределение среднего N-наблюдений стремится к нормальному, независимо от формы исходного распределения при N

beta-рапределение.rtf beta-рапределение.

Основное распределение математической статистики для случайных величин, ограниченных с обеих сторон, + 64

Задаются Xmin, Xmax-Xmin , ,

Гамма.rtf

 

 

 

 

инв.

 

 

 

 

 

Гамма-распределение.

 

 

.

 

 

 

Взаи

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

 

 

одной стороны (0 <Х< ∞).

 

 

дата

Описывает время, необходимое для появления η событий при условии, что они независимы и

появляются с постоянной интенсивностью λ.

 

 

и

При η=1 называется экспоненциальным.

 

 

Подп.

 

 

 

 

 

№ подл.

 

 

 

СТАТИСТИЧЕСКОЕ МОДЕЛИРОВАНИЕ

Лист

Инв.

 

 

11.2017

СЛОЖНЫХ СИСТЕМ.

18

Изм. Кол.уч Лист

Подп. Дата

АЛГОРИТМ И ПРОГРАММА

 

Формат А4

 

 

 

Копировал:

инв. №

Взаи.

Подп. и дата

Инв. № подл.

Подготовка функционала Y=F(X) сложной системы

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

Подобного рода расчётная модель подготавливается разработчиком процесса (машины) и оформляется в виде автономно запрограммированной процедуры unit ShetProcess; , которая включает в себя

procedure ShetModeli(BX:raX; var BUX:raX);

Название этой процедуры соблюсти буквально. Она должна иметь только такое название и такие параметры, т.е. procedure ShetModeli(BX:raX; var BUX:raX);

Порядок подготовки EXE – файла схематично показан на рисунке

Схема создания EXE – файла

 

 

 

 

 

 

СТАТИСТИЧЕСКОЕ МОДЕЛИРОВАНИЕ

 

 

Лист

 

 

 

 

 

11.2017

 

СЛОЖНЫХ СИСТЕМ.

 

 

 

 

 

 

 

 

 

 

 

19

Изм.

Кол.уч

Лист

Подп.

Дата

 

АЛГОРИТМ И ПРОГРАММА

 

 

Копировал:

Формат

 

А4

 

 

 

 

 

 

 

 

В прорамме ипользуется вызов внешней процедуры

WinExec(PAnsiChar('ProjectProOtladka.exe'),SW_RESTORE); (счет процедуры Otladka) WinExec(PAnsiChar('ProjectOfflineProcess.exe'),SW_RESTORE);- (счет процесса ВНЕШНЕГО).

Как видно, используются два вида exe-файла - ProjectProOtladka.exe (для отладки) и ProjectOfflineProcess.exe – для счета процесса. Названия этих файлов СОБЛЮСТИ обязательно. Именно эти файлы будут помещаться в папку для проведения расчётов.

Для подготовки PAS-файла можно использовать любой паскалевский редактор, например

Lazarus.

Использование буфера обмена (БО)

Обмен данными с внешней процедурой происходит через буфер обмена БО. Порядок обмена происходит по следующей схеме.

 

За один цикл – одна реализация входного вектора

 

 

Пояснения к рисунку.

 

 

 

В программе ОБОЛОЧКА сформированный вектор входных параметров запоминается в БО.

 

Внешняя процедура (счёт процесса) считывает данные из БО, производит расчёт и данные

 

расчёта в виде выходного вектора снова записывает в БО. В программе ОБОЛОЧКА данные

 

из БО считываются и обрабатываются.

 

 

 

Для обмена с БО используется файл CopyToClipboardTextQN.pas. Он содержит процедуры:

 

procedure TextCopyToClipbrdQ( BXStatProm:raX0_101); // копирование в буфер

 

procedure TextCopyFromClipbrdN(var BUX:raX); // копирование из буфера

 

 

Без ошибок обмен проходит только с использованием задержки. Она формируется в

 

 

процедуре procedure Delay(Value: Cardinal); - входит в CopyToClipboardTextQN. Pas.

 

 

Для задания задержки используется переменная delayZ (описана в unit Global_ID_Data;).

 

Величина задержки была подобрана опытным путём и равна delayZ = 45;//задержка в 45

 

миллисекунд для обмена с буфером. При меньших значениях возникают сбои обмена (счёт

 

просто не идёт). В случае возникновения сбоев (на другом компьютере), значение delayZ

можно увеличить.

 

 

 

//Пример использования: Delay(delayZ );

 

 

инв.

//Delay(1000); //Задержка на одну секунду

 

 

 

 

 

 

 

.

 

 

 

 

 

Взаи

Пояснение как создать необходимый exe-файл

 

 

 

 

К программе «Оболочка» прилагается папка «Создание ехе Процесс».

 

дата

В этой папке находятся файлы программы - program ProjectOfflineProcess;

 

Первое, что надо сделать – создать пустую папку. В папку помещаем

 

program ProjectOfflineProcess;

 

 

. и

 

 

uses

 

 

 

 

Подп

Winapi.Windows,

 

 

 

 

 

 

 

 

Clipbrd,

 

 

 

 

 

Winapi.Messages,

 

 

 

.

System.SysUtils,

 

 

 

№ подл

 

 

 

СТАТИСТИЧЕСКОЕ МОДЕЛИРОВАНИЕ

Лист

Инв.

 

 

11.2017

СЛОЖНЫХ СИСТЕМ.

20

Изм. Кол.уч Лист

Подп. Дата

АЛГОРИТМ И ПРОГРАММА

 

Формат А4

 

 

 

Копировал: