Смекни!
smekni.com

Исследование методов автоматизированного проектирования динамических систем (стр. 9 из 25)

Копирование элементов. При работе с графическим редактором у пользователя так же есть возможность скопировать ранее созданные элементы. Для копирования на панели инструментов есть кнопка «Копировать элементы». Процедура, которая выполняется при нажатии кнопки, имеет следующую структуру. В процедуре описана функция: DoCopyItem(CopyItem: Tprocess): Tprocess, выполняет следующее, создаёт элемент класса Tprocess и всем свойствам созданного объекта присваиваются значения свойств объекта, который передаётся в функцию. В самой процедуре для каждого выделенного объекта вызывается функция DoCopyItem, выделенные объекты становятся не выделенными, выделяются скопированные объекты.

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

Создание диалогового окна.

Процедура создания дианового окна выполняет заполнение компонентами панель, на которой будут расположены кнопки с изображениями конкретных типов связей, происходит это, как и в главном окне приложения, только анализируется файл images1.lst.

Как уже указывалось выше, это окно вызывается при создании, это происходит следующим образом. При создании элемента класса Link после создания элемента вызывается метод ShowEdit. При работе этого метода, перебираются все компоненты свойства Relations создаваемого элемента, и для каждого вызывается метод InitData, который заполняет для каждого объекта в своём диалоговом окне значения своих свойств и добавляет в диалоговом окне связи, в список элементов этой связи своё имя.

Добавление элементов связи.

Так как графически связь изображается в виде одного элемента (Link), то для того, что бы добавить связь, реально соединяющую массы необходимо создать экземпляр какогото из классов Screw, Spring, и т. д. И записать этот экземпляр в свойство графической связи (Link) Relations. Создание экземпляров классов потомков класса Relations (Screw, Spring, и т. д.) происходит при нажатии кнопки на панели с изображением данной связи. При нажатии одной из кнопок происходит вызов конструктора данного класса и присваивание объекту уникального имени. При создании объекту присваивается имя, например «Пружина», но в принципе массы могут соединять и две пружины. Поэтому после того как создан объект, просматриваются все элементы и считается, сколько связей данного типа содержит редактируемый объект (графическая связь). После этого имя созданного объекта изменяется и становится, например «Пружина 3». Следующее действие, которое происходит при нажатии кнопки создания элемента связи – вызов диалогового окна для созданного нами элемента. Происходит это путём вызова метода InitWidow, тот метод вызывает диалоговое окно для созданного элемента и передаёт ему параметры этого объекта (в данном случае параметры по умолчанию). После редактирования свойств, пользователь принимает или отвергает параметры. Для того, что бы присвоить значение свойствам созданного объекта из диалогового окна вызывается метод GetData – записывает информацию из окна в свойства объекта.

Возможно так же удалять созданные объекты, для этого необходимо выбрать в списке элемент и нажать клавишу del или соответствующую кнопку в окне. При этом в свойстве редактируемой графической связи Relations находится элемент с таким именем и удаляется.

Рассмотрим структуру отдельных модулей программы расчётов.

Главный модуль приложения – Model, этот модуль содержит функции и процедуры расчёта параметров моделируемой системы. В данном модуле описан список масс и список связей. Порядок расчёта параметров системы был достаточно подробно рассмотрен выше, поэтому сейчас рассмотрим такой аспект функционирования системы как вывод результатов. Результатами расчёта являются для масс – список перемещений, скоростей и сил, для каждого момента времени моделирования, для связей это сила в каждый момент времени. Следует отметить, выходные данные организованы таким образом, что каждый класс «сам знает» какие данные для его экземпляров необходимо сохранять (класс содержит для каждого параметра список вещественных значений).

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

Кроме того, здесь описано окно редактора, в этом окне пользователь может редактировать параметры модели. Редактор содержит стандартные функции – добавление элементов, редактирование элементов, удаление. Отличие от редактора в том, что редактировать массы и связи пользователь выполняет в одном окне. Это обусловлено тем, что здесь система представляется не графически, а в виде описаний.

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

Так же в модуле описано окно модели, это окно выводится пользователю для выполнения расчётов и вывода результирующей информации. В окне имеется поле, на котором изображаются элементы модели. Каждый класс элемента модели в программе расчётов имеет в предках класс TabstractElement, поэтому все экземпляры этих классов имеют свойство picture – рисунок и свойство hint – подсказка, которая выводится при наведении указателя мыши на элементе. Каждый элемент при создании загружает из файла своё изображение и размещается на поле модели по введенным параметрам. При выполнении расчёта на каждом шаге элементы на поле модели перемещаются согласно данным расчёта, таким образом, организована визуализация работы модели, по этой визуализации пользователь видит, как будут происходить колебания в моделируемой системе. Для каждого элемента определено так же событие OnClick по этому событию происходит вызов окна, на котором изображены графики для данного элемента, какие конкретно графики, «знает» сам элемент, то есть процедура заполнения этого окна описана в каждом классе.

Из окна модели можно вызвать общее окно для построения графиков, в этом окне есть поле, на котором изображаются графики, а справа находятся переключатели для каждого элемента. Заполнение этого окна происходит динамически на основе списков масс и списков связей.

В данном модуле так же описаны методы для создания отчёта по моделированию. Отчёт сохраняется в виде документа Word. Механизм создания реализован с помощью OLE Automation.

3.2 Информационное обеспечение

Общие сведения о программно - методическом комплексе.

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

Графическим редактором – программа, которая предназначена для ввода данных в систему в виде графа, при этом массы играют роль узлов в графе, связи играют роль рёбер графа;

Программой расчётов колебательных систем – программа, которая может принять данные о моделируемой системе из графического редактора и выполняет расчёт параметров, вывод результатов.

Руководство пользователя к графическому редактору.

Запуск программы.

Запуск программы выполняется одним из стандартных способов, принятых в операционной среде функционирования программы. Исполняемый файл редактора – redactor.exe. Для работы графического редактора необходимо, что бы в той же папке находились файлы images.lst и images1.lst. Файл images.lst имеет текстовый формат, в файле через пробел записаны наименование классов масс, и имя файла в котором находится рисунок с изображением данной массы. Файл images1.lst имеет такую же структуру, но в нём описаны классы связей. Также необходима папка images, в которой находятся файлы с пиктограммами элементов.

Ввод и редактирование данных

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

Для того, что бы добавить массу необходимо выполнить следующие действия:

На панели инструментов нажать кнопку с пиктограммой той массы (смотри рисунок 3.1), которую вы хотите создать, далее выполняете щелчок левой кнопкой мыши на поле ввода, в появившемся диалоговом окне установите параметры создаваемой массы (смотри рисунок 3.2).

Рисунок 3.1 – главное окно приложения «графический редактор»

Следует отметить, что все параметры вводимых элементов пользователь вводит сам, поэтому желательно, что бы пользователь «прикинул» схему создаваемой модели, подробнее в руководстве пользователя к программе расчётов.