Файл: Для публикации( СТАТИСТИЧЕСКОЕ МОДЕЛИРОВАНИЕ СЛОЖНЫХ СИСТЕМ).pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 29.03.2019

Просмотров: 1942

Скачиваний: 4

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

Изм. 

Кол.уч 

№ док. 

Подп. 

05.2017

Дата 

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

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

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

Лист 

15 

Инв

 подл

Подп

и

 дат

а

Взаи

инв

Формат А4

Копировал: 

Лист 

16 

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

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

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

Под сложной системой подразумевается любая математическая модель процесса или 

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

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

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

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

и такие параметры, т.е. procedure ShetModeli(BX:raX;    var BUX:raX); 
В прорамме ипользуется вызов внешней процедуры  
WinExec(PAnsiChar('ProjectProOtladka.exe'),SW_RESTORE);  (счет процедуры Otladka) 
   WinExec(PAnsiChar('ProjectOfflineProcess.exe'),SW_RESTORE);- (счет процесса 
ВНЕШНЕГО). 
Как видно, используются два вида exe-файла - ProjectProOtladka.exe (для отладки) и 
ProjectOfflineProcess.exe – для счета процесса. Названия этих файлов СОБЛЮСТИ 
объязательно. Именно эти файлы будут помещаться в папку для проведения расчётов. 
 
Для подготовки PAS-файла можно использовать любой паскалевский редактор, например 
Lazarus. Конечно, разрабатывать программу для математической модели необходимо  в среде 
Delphi10 и выше.  
 
 
 

Обмен с буфером обмена (БО) 

Обмен данными с внешней процедурой происходит через буфер обмена БО. Порядок обмена 
происходит по следующей схеме.  
За один цикл – одна реализация входного вектора 
В программе ОБОЛОЧКА сформированный вектор входных параметров запоминается в БО. 
Внешняя процедура (счёт процесса) считывает данные из БО, производит расчёт и данные 
расчёта в виде выходного вектора снова записывает в БО. В программе ОБОЛОЧКА данные 
из БО считываются и обрабатываются. 
Для обмена с БО используется файл 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 ); 


background image

Изм. 

Кол.уч 

№ док. 

Подп. 

05.2017

Дата 

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

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

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

Лист 

16 

Инв

 подл

Подп

и

 дат

а

Взаи

инв

Формат А4

Копировал: 

Лист 

17 

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

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

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

В этой папке находятся файлы программы - program ProjectOfflineProcess; 
Первое, что надо сделать – создать пустую папку. В папку помещаем  
program ProjectOfflineProcess; 
 uses 
 Winapi.Windows, 
  Clipbrd, 
  Winapi.Messages, 
  System.SysUtils, 
  System.Classes, 
  Vcl.Graphics, 
  Vcl.Controls, 
  Vcl.Forms, 
  Vcl.Dialogs, 
  Vcl.Buttons, 
  shellAPi, 
  System.Math, 
  System.IOUtils, 
  Vcl.Grids, 
  Vcl.StdCtrls, 
  Vcl.ComCtrls, 
  Vcl.ExtCtrls, 
  System.Variants, 
  typeDATA, 
  Global_ID_Data, 
  OfflineProcess, 
  vektor, 
    CopyToClipboardTextQN ; 
 
      begin 
           TextCopyFromClipbrdQ( BXStat,Q,Nvux); // копирование из буфера 
         ShetModeli(BXStat  ,BUX); 
            TextCopyToClipbrdN(BUX);  // копирование в буфер 
end. 
 
 

 Как создать ProjectOfflineProcess. 

Запускаем Delphi и запускаем ProjectOfflineProcess.dproj.  
Далее открываем  OfflineProcess.PAS и корректируем этот файл «под себя». Файл содержит 
три процедуры 
  procedure ShetModeli(BX:raX;    var BUX:raX ); 
(вспомогательные       procedure ShetRami( BX:raX;    var Rr :vekt); 
          procedure ShetShini(BX:raX;   Rressor:vekt; var Rs :vekt);) 
Главная – это- procedure ShetModeli(BX:raX;    var BUX:raX ); 
Остальные – вспомогательные, количество их - не ограничено. Они используются в основной   
procedure ShetModeli. Структура procedure ShetModeli(BX:raX;    var BUX:raX ); может быть 
различной, главное – НАЗВАНИЕ  и ПАРАМЕТРЫ ИЗМЕНЯТЬ НЕЛЬЗЯ. 


background image

Изм. 

Кол.уч 

№ док. 

Подп. 

05.2017

Дата 

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

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

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

Лист 

17 

Инв

 подл

Подп

и

 дат

а

Взаи

инв

Формат А4

Копировал: 

Лист 

18 

Что касается unit typeDATA; и unit Global_ID_Data. Первая – содержит описания типов 
переменных, вторая – понятно из названия -  названия глобальных переменных. Можно их 
менять? Можно, желательно добавлять своими, не удаляя , которые есть. 
 
 Сохраняем. 
 
Program ProjectOfflineProcess; Сама программа содержит 3 процедуры: 
…….. 
      begin 
           TextCopyFromClipbrdQ( BXStat,Q,Nvux); // копирование из буфера 
         ShetModeli(BXStat  ,BUX); 
            TextCopyToClipbrdN(BUX); // копирование в буфер 
end. 
(Здесь - число входов   Q;    число выходов    Nvux;) 
Как видим, процедура счёта процесса ShetModeli(BXStat  ,BUX);  
входит  в program ProjectOfflineProcess; 
 
Кладём в папку подготовленные файлы 

1.  Название папки результатов счёта.rtf 
2.  Название входного вектора.rtf 
3.  Название выходного вектора.rtf 
4.  пусто.rtf 
5.  Равномерный шаг.rtf 
6.  Равномерное распределение.rtf 
7.  Нормальный закон.rtf 
8.  beta-распределение.rtf 
9.  Гамма-распределение.rtf 

Кладём файлы TYPEDATA.PAS и VEKTOR.PAS,

 Global_ID_Data.pas, OfflineProcess.PAS (счёт 

модели). 

  

 
 

Файл TYPEDATA.PAS 

Содержит unit typeDATA – где приводятся описания типов переменных. Там же приведены 
переменные типа const, предельные значения которых равны 
    QmaxM=1000; // размерность входного вектора 
  nNvuxM=100; // размерность выходного вектора 
  wmaxM =100;   // число интервалов для гистограммы 
  NomerZM=6;  // число законов для входного вектора 
Эти значения определяют границы массивов в unit Global_ID_Data;  
Чтобы изменить границы массивов (размерности векторов) надо задать новые  значения    
QmaxM  и    NvuxM (допустимо только в меньшую сторону). Число интервалов для 
построения гистограммы WvuxM можно не изменять, значение WvuxM =100 достаточно, 
чтобы перекрыть возможные требования. 
 
 
 
 
 
 


background image

Изм. 

Кол.уч 

№ док. 

Подп. 

05.2017

Дата 

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

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

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

Лист 

18 

Инв

 подл

Подп

и

 дат

а

Взаи

инв

Формат А4

Копировал: 

Лист 

19 

ЛИТЕРАТУРА 

1.  Михайлов Г.А. Некоторые вопросы теории методов Монте-Карло, Новосибирск, 

1974г. 

2.  Г. Корн и Т. Корн, Справочник по математике для научных работников и 

инженеров., М.,1968г. 

3.    Р.Курант, Краткий курс дифференциального и интегрального исчисления, 

т.2,изд.»Наука», Москва 1970г.      


background image

Изм. 

Кол.уч 

№ док. 

Подп. 

05.2017

Дата 

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

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

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

Лист 

19 

Инв

 подл

Подп

и

 дат

а

Взаи

инв

Формат А4

Копировал: 

Лист 

20 

       Скриншоты программы 
В качестве примера приведен вариант ОТЛАДКА, при ВЫХ=ВХ=2: