Задание. Курсовая работа по дисциплине Моделирование систем
Скачать 0.64 Mb.
|
Задание №20.Модель полета тела без учета сопротивления воздуха. Требуется построить модель для исследования движения полета тела, брошенного под углом к горизонту. При нажатии кнопки «Запуск» вычисляется значение L –расстояние, на которое пролетит тело и H – максимальная высота подъема тела. Эти значения высчитываются с учетом заданного угла бросания тела и заданной начальной скорости в полях ввода и отображаются как статический текст. Затем запускается событие event для расчета траектории движения, которая отображается в виде графика. Вычисление максимального расстояния полета и максимальной высоты: Расчет траектории выполняется по формулам: dt =0.001. Период дискретизации В расчетных зависимостях - угол бросания тела к горизонту в радианах равен /57,3. Где значение угла в градусах. Время движения t рассчитывается путем умножения шага моделирования i на период дискретизации модели dt. График модели Обновляется автоматически с периодом обновления равным dt. Отображает 1000 последних точек. Модель останавливается в заданное время, равное 100 секундам либо когда значение x будет больше или равно значению L пройденного пути. Остановка модели в коде выполняется вызовом метода pause() процессора модели Engine. Вызов метода выполняется с помощью оператора getEngine().pause(). Задание №21.Модель «Компьютерная сеть»Разработать модель взаимодействия сервера с тремя рабочими станциями, используя механизм портов и сообщений. Модель состоит из трех активных классов: Сервер, Маршрутизатор, Рабочая станция. В сети передается сообщение – информационный кадр. Экземпляр класса Frame. Класс Framе Структура класса показана на рисунке 1.
Структура информационного кадра Здесь id код сообщения, атрибут класса. Класс «Сервер» Активный класс моделирует работу сервера. При работе сервера событие его событие event из порта out посылает экземпляр класса Frame - сообщение. Код экземпляру классу сообщения назначается случайным образом как целое число, полученное в интервале от 1 до 11. Активный класс сервера выводит код отосланного сообщения и число посланных сообщений. Класс «Маршрутизатор» Класс обладает четырьмя портами p1, p2, p3, p4. Порт p1 служит для соединения с сервером и выполняет «Лавинную» маршрутизацию, пересылает полученное сообщение через порты p2, p3, p4. К этим портам подсоединяются рабочие станции. Класс «Рабочая станция» Рабочая станция обладает портом in для принятия сообщения. Если рабочая станция свободна, то она «окрашена» в зеленый цвет. Это состояние по умолчанию. Если станция обрабатывает полученное сообщение, она «окрашена» в красный цвет. Внутри пиктограммы рабочей станции выводится ее адрес – номер. Сообщения при поступлении в порт фильтруются. Если код сообщения равен адресу рабочей станции, то оно записывается в буфер – коллекцию сообщений рабочей станции, в противном случае сообщения теряется – отвергается. Рабочая станции подсчитывает и выводит информацию: О числе принятых сообщений. Не принятых сообщений Оставшихся в буфере сообщений О числе отработанных сообщений. Работа станции моделируется конечным автоматом. Конечный автомат рабочей станции idle – не активное состояние working – состояние обработки сообщения. t1 – Триггерный переход, срабатывает при получении сообщения. t2 – Переход, выполняемый по таймауту равном двум минутам. При переходе в состояние working, рабочая станция выбирает очередное сообщение из буфера. Активные классы модели должны быть коммутированы по портам в поле активного класса Main. В поле активного класса Main размещается кнопка идентификации рабочих станций. После запуска модель переходит в состояние ожидания идентификации рабочих станций. После нажатия кнопки идентификации рабочим станциям присваивается уникальный номер – адрес целое число из диапазона от 1 до 11. НОМЕРА НЕ ДОЛЖНЫ БЫТЬ ОДИНАКОВЫМИ !!! Затем кнопка идентификации блокируется, и модель начинает свою работу. Управление работой модельного процессора выполняется методами: getEngine().run();//Задается в коде кнопки «Идентификация», запуск модели getEngine().pause();//Вызывается в коде командной кнопки эксперимента. Пауза. Эксперимент длится 100 минут. Пример презентации по завершению работы модели показан на рисунке 10. Завершение работы модели. Контроль работы модели – подсчет числа сообщений. Сумма принятых и не принятых сообщений для каждой рабочей станции должна равняться числу посланных сервером сообщений. Сумма оставшихся сообщений и отработанных сообщений должна равняться числу принятых сообщений. |