Инструментарий имитационного моделирования Simulink

Принципы информационного моделирования, имитации и анализа динамических объектов. Процедуры проектирования и сопровождения данных в среде Simulink пакета MATLAB. Моделирование системы управления электроприводом механизма поворота конвертера на ОАО "ММК".

Рубрика Экономико-математическое моделирование
Вид курсовая работа
Язык русский
Дата добавления 06.04.2015
Размер файла 1,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Zoom In

Увеличить масштаб. Увеличить масштаб изображения блок-диаграммы; каждое обращение к команде дает увеличение масштаба в полтора раза (на 50 %).

Zoom Out

Уменьшить масштаб. Уменьшить масштаб изображения блок-диаграммы; каждое обращение к команде дает уменьшение масштаба в полтора раза.

Fit system to view

Подготовить систему для просмотра. Увеличить масштаб изображения выбранного элемента блок-диаграммы. Команда обеспечивает N-кратное увеличение (кратность увеличения зависит от исходного размера элемента), и позиционирует элемент по центру окна блок-диаграммы. Повторное применение дополнительного эффекта не дает.

Normal (100 %)

Восстановить стандартный масштаб изображения.

Меню Simulation (Моделирование)

Start

Начать моделирование. При запуске модели команда Start заменяется командой Pause, которая позволяет приостановить сеанс моделирования. Кроме того, становится доступной команда Stop, расположенная ниже. При прерывании моделирования с помощью команды Pause она заменяется альтернативной командой - Continue.

Stop

Завершить моделирование. Позволяет остановить моделирование досрочно, то есть либо до истечения заданного интервала моделирования, либо до реализации предусмотренных условий окончания сеанса моделирования. Команда становится доступной после запуска модели на исполнение

Simulation parameters...

По данной команде открывается диалоговое окно настроек параметров моделирования.

Normal

Обычный (не ускоренный) режим расчета. Команда доступна, если установлено приложение Simulink Performance Tool.

Accelerator

Ускоренный режим расчета. Команда доступна, если установлено приложение Simulink Performance Tool. В этом режиме, после запуска модели на исполнение, создается исполняемый файл модели в виде динамической библиотеки (файл с расширением dll). В результате скорость расчета возрастает в несколько раз. Ускоренный режим расчета не поддерживается для моделей имеющих замкнутые алгебраические контуры.

Меню Format (Форматирование)

Font...

Выбор шрифта для текстовой информации, отображаемой блоком.

Text Alignment

Выравнивание текста. Задает способ расположения текста в текстовой области.

Flip Name

Изменить положение имени блока (над или под изображением блока).

Hide Name/

Show Name

Скрыть/показать имя блока.

Flip Block

Развернуть изображение блока относительно вертикальной оси симметрии на 180°.

Rotate Block

Повернуть изображение блока относительно вертикальной оси симметрии на 90° (по часовой стрелке).

Show/Hide Drop Shadow

Показать/скрыть "тень" блока.

Hide/Show Port Labels

Скрыть/показать метки портов блока. Данная команда применима только к блокам-подсистемам (Subsystem), содержащим внутренние входные или выходные порты, то есть блоки In и Out. Если такие блоки имеются в подсистеме, то их метки по умолчанию выводятся на пиктограмме блока-подсистемы.

Foreground Color

Основной цвет. Выбор цвета контура и символов на пиктограмме выбранного блока (группы блоков).

Background Color

Цвет фона. Выбор цвета фона пиктограммы выбранного блока (группы блоков).

Screen Color

Выбор цвета фона блок-диаграммы.

Library Link Display

Отображение связей с библиотеками.

Sample Time Colors

Подсветка блоков, управляемых параметром Sample time. Блоки, работа которых зависит от величины шага модельного времени, а также соединяющие их линии связи при выполнении данной команды выделяются на блок-диаграмме красным цветом.

Wide nonscalar lines

Широкие линии связи для не скалярных величин. Линии связи, по которым передаются векторные и матричные величины, выводятся более "жирными".

Signal dimensions

Размерность векторных и матричных линий связи. Для векторных или матричных линий связи выводится в цифровой форме размерность передаваемого сигнала, то есть число элементов вектора.

Port Data Types

Тип порта. Рядом с линиями связи отображаются наименования типов данных, установленных для портов, с которыми они соединены.

Storage class

Класс памяти.

Execution order

Вывод порядкового номера блока в последовательности выполнения расчета.

Tools (Инструментальные средства)

Data explorer…

Обозреватель данных. Позволяет просмотреть значения переменных находящихся в рабочей области MATLAB.

Simulink debugger…

Отладчик моделей. Позволяет в пошаговом режиме протестировать модель.

Data Class Designer…

Инструмент создания классов данных.

Model differences…

Сравнение моделей.

Merge/Compare two models…

Объединить/Сравнить две модели.

Compare to last saved model…

Сравнить текущее состояние модели с вариантом который был сохранен на диске в последний раз.

Profiler

Создание отчета о процессе моделирования. Команда должна быть выполнена до начала процесса моделирования. По окончании моделирования создается и выводится на экран отчет в котором можно просмотреть временные затраты при выполнении расчета.

Coverage Setting…

Открытие окна настроек отчета по моделированию.

Linear Analysis…

Исследование линейных стационарных систем. Команда доступна, если установлен инструмент Control System Toolbox (Приложение к MATLABдля исследования и разработки систем управления).

Help (Справка)

Simulink help

Справка по работе с программой Simulink.

Blocks

Справка по выделенному блоку или библиотеке блоков в целом.

Shortcuts

Справка по управлению программой Simulink с помощью нажатия комбинаций клавиш.

S-functions

Справка по созданию S-функций.

Demos

Запуск системы демонстрационных примеров.

About Simulink

Вывод окна с номером версии Simulink.

9. Моделирование системы управления электроприводом механизма поворота конвертера №1 ККЦ ОАО "ММК"

На данной модели представлена система поворота конвертера:

Signal Builder4 - задание на поворот конвертера.

Transfer Fcn16 - фильтр по контуру скорости.

Gain7 - усилитель сигнала (для нормальной работы регулятора скорости).

Saturation1 - блок ограничения выходного напряжения.

Transfer Fcn14 - задатчик интенсивности скорости.

Gain6 - пропорциональный регулятор скорости.

Saturation2 - блок ограничения напряжения на выходе регулятора скорости.

Saturation - блок ограничения напряжения на входе задатчика интенсивности тока.

Transfer Fcn13 - задатчик интенсивности тока.

Transfer Fcn Transfer Fcn3 Transfer Fcn5 Transfer Fcn7 - регулятор тока.

Transfer Fcn1 Transfer Fcn4 Transfer Fcn6 Transfer Fcn8 - передаточная функция тиристорного преобразователя.

Transfer Fcn2 Transfer Fcn9 Transfer Fcn10 Transfer Fcn11 - передаточная функция якорной цепи.

Gain1обратная связь по ЭДС двигателя (в блоке реализован КФ двигателя)

Transfer Fcn12 - электро механический преобразователь(ЭМП).

Lookup Table - блок моделирования изменяющейся нагрузки (связано с тем, что сталь притекает внутри конвертера при его повороте).

Gain8 - преобразование угла поворота вала двигателя с валом поворота выходного редуктора.

Integrator - первообразная по скорости.

Transfer Fcn15 - обратная связь по скорости.

Gain3 Gain2 Gain4 Gain5 - обратная связь по току для каждого регулятора

Scope1 - осциллограф.

Рис. 8 Система управления электроприводом механизма поворота конвертера с двигателем постоянного тока

9.1 Блок передаточной функции Transfer Fcn

Назначение: Блок передаточной характеристики Transfer Fcn задает передаточную функцию в виде отношения полиномов:

,

где nn и nd - порядок числителя и знаменателя передаточной функции,

num - вектор или матрица коэффициентов числителя,

den - вектор коэффициентов знаменателя.

Параметры:

1. Numerator - вектор или матрица коэффициентов полинома числителя

2. Denominator -вектор коэффициентов полинома знаменателя

3. Absolute tolerance - Абсолютная погрешность.

Порядок числителя не должен превышать порядок знаменателя.

Входной сигнал блока должен быть скалярным. В том случае, если коэффициенты числителя заданы вектором, то выходной сигнал блока будет также скалярным (как и входной сигнал). На рис. 9.1 показан пример моделирования колебательного звена с помощью блока Transfer Fcn.

Если коэффициенты числителя заданы матрицей, то блок Transfer Fcn моделирует векторную передаточную функцию, которую можно интерпретировать как несколько передаточных функций имеющих одинаковые полиномы знаменателя, но разные полиномы числителя. При этом выходной сигнал блока является векторным и количество строк матрицы числителя задает размерность выходного сигнала. На рис. 9.2 показан пример блока Transfer Fcn задающий векторную передаточную функцию. Там же показана модель полностью аналогичная рассматриваемой по своим свойствам, но состоящая из отдельных блоков Transfer Fcn.

Рис. 9.1. Пример моделирования колебательного звена

Рис. 9.2. Пример моделирования векторной передаточной функции и ее аналог

Начальные условия при использовании блока Transfer Fcn полагаются нулевыми. Если же требуется, чтобы начальные условия не были нулевыми, то необходимо с помощью функции tf2ss(инструмент Control System Toolbox) перейти от передаточной функции к модели в пространстве состояний и моделировать динамический объект с помощью блока State-Space.

9.2 Блок передаточной функции Zero-Pole

Назначение: Блок Zero-Pole определяет передаточную функцию с заданными полюсами и нулями:

,

где Z - вектор или матрица нулей передаточной функции (корней полинома числителя),

P - вектор полюсов передаточной функции (корней полинома знаменателя),

K - коэффициент передаточной функции, или вектор коэффициентов, если нули передаточной функции заданы матрицей. При этом размерность вектора K определяется числом строк матрицы нулей.

Параметры:

1. Zeros - Вектор или матрица нулей.

2. Poles - Вектор полюсов.

3. Gain - Скалярный или векторный коэффициент передаточной функции.

4. Absolute tolerance - Абсолютная погрешность.

Количество нулей не должно превышать число полюсов передаточной функции.

В том случае, если нули передаточной функции заданы матрицей, то блок Zero-Pole моделирует векторную передаточную функцию.

Нули или полюса могут быть заданы комплексными числами. В этом случае нули или полюса должны быть заданы комплексно-сопряженными парами полюсов или нулей, соответственно.

Начальные условия при использовании блока Zero-Pole полагаются нулевыми.

На рис. 9.3 показан пример использования блока Zero-Pole. В примере передаточная функция имеет один действительный нуль и два комплексно-сопряженных полюса.

Рис. 9.3. Пример использования блока Zero-Pole

9.4 Усилители Gain и Matrix Gain

Назначение: Выполняют умножение входного сигнала на постоянный коэффициент.

Параметры:

1. Gain - Коэффициент усиления.

2. Multiplication - Способ выполнения операции. Может принимать значения (из списка):

3. - Element-wise K*u-Поэлементный.

4. - Matrix K*u - Матричный. Коэффициент усиления является левосторонним операндом.

5. - Matrix u*K - Матричный. Коэффициент усиления является правосторонним операндом.

6. Saturate on integer overflow (флажок) - Подавлять переполнение целого. При установленном флажке ограничение сигналов целого типа выполняется корректно.

Блок усилителя Gain есть один и тот же блок, но с разными начальными установками параметра Multiplication.

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

В том случае если парметр Multiplication задан как Element-wise K*u, то блок выполняет операцию умножения на заданный коэффициент скалярного сигнала или каждого элемента векторного сигнала. В противном случае блок выполняет операцию матричного умножения сигнала на коэффициент, заданный матрицей.

По умолчанию коэффициент усиления является действительным числом типа double.

Для операции поэлементного усиления входной сигнал может быть скалярным, векторным или матричным любого типа, за исключением логического (boolean). Элементы вектора должны иметь одинаковый тип сигнала. Выходной сигнал блока будет иметь тот же самый тип, что и входной сигнал. Параметр блока Gain может быть скаляром, вектором или матрицей либого типа, за исключением логического (boolean).

При вычислении выходного сигнала блок Gain использует следующие правила:

· Если входной сигнал действительного типа, а коэффициент усиления комплексный, то выходной сигнал будет комплексным.

· Если тип входного сигнала отличается от типа коэффициента усиления, то Simulink пытается выполнить приведение типа коэффициента усиления к типу входного сигнала. В том случае, если такое приведение невозможно, то расчет будет остановлен с выводом сообщения об ошибке. Такая ситуация может возникнуть, например, если входной сигнал есть беззнаковое целое (uint8), а параметр Gain задан отрицательным числом.

Примеры использования блока Gain при выполнении скалярных и поэлементных операций показаны на 9.4.

Рис. 9.4. Примеры использования блока Gain

Для операций матричного усиления (матричного умножения входного сигнала на заданный коэффициент) входной сигнал и коэффициент усиления должны быть скалярными, векторными или матричными значениями комплексного или действительного типа single или double.

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

Система Mathlab - универсальная система для моделирования любого привода, привода постоянного тока, асинхронные и синхронные привода. Более того мы можем замоделировать всю среду цеха или производства, на самом раннем этапе прогнозов, применить технические инновации и сделать полный и правильный расчет.

10. Информационное моделирование

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

Модель - это искусственно созданный объект, дающий упрощенное представление о реальном объекте, процессе или явлении, отражающий существенные стороны изучаемого объекта с точки зрения цели моделирования. Моделирование - это построение моделей, предназначенных для изучения и исследования объектов, процессов или явлений.

Объект, для которого создается модель, называют оригиналом или прототипом. Любая модель не является абсолютной копией своего оригинала, она лишь отражает некоторые его качества и свойства, наиболее существенные для выбранной цели исследования. При создании модели всегда присутствуют определенные допущения и гипотезы.

Системный подход позволяет создавать полноценные модели. Особенности системного подхода заключаются в следующем. Изучаемый объект рассматривается как система, описание и исследование элементов которой не выступает как сама цель, а выполняется с учетом их места (наличие подзадач). В целом объект не отделяется от условий его существования и функционирования. Объект рассматривается как составная часть чего-то целого (сам является подзадачей). Один и тот же исследуемый элемент рассматривается как обладающий разными характеристиками, функциями и даже принципами построения. При системном подходе на первое место выступают не только причинные объяснения функционирования объекта, но и целесообразность включения его в состав других элементов. Допускается возможность наличия у объекта множества индивидуальных характеристик и степеней свободы. Альтернативы решения задач сравниваются в первую очередь по критерию "стоимость-эффективность".

Создание универсальных моделей - это следствие использование системного подхода.

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

Моделирование - исследование явлений, процессов или систем объектов путем построения и изучения их моделей - это основной способ научного познания. В информатике данный способ называется вычислительный эксперимент и основывается он на трех основных понятиях: модель - алгоритм - программа.

Использование компьютера при моделировании возможно по трем направлениям:

1. Вычислительное - прямые расчеты по программе.

2. Инструментальное - построение базы знаний, для преобразования ее в алгоритм и программу.

3. Диалоговое - поддержание интерфейса между исследователем и компьютером.

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

Границы между моделями различных типов или классов, а также отнесение модели к какому-то типу или классу чаще всего условны. Рассмотрим наиболее распространенные признаки, по которым классифицируются модели:

· цель использования;

· область знаний;

· фактор времени;

· способ представления.

По целям использования выделяются модели учебные, опытные, имитационные, игровые, научно-технические.

По области знаний выделяются модели биологические, экономические, исторические, социологические и т.д.

По фактору времени разделяются модели динамические и статические. Статическая модель отражает строение и параметры объекта, поэтому ее называют также структурной. Она описывает объект в определенный момент времени, дает срез информации о нем. Динамическая модель отражает процесс функционирования объекта или изменения и развития процесса во времени.

Любая модель имеет конкретный вид, форму или способ представления, она всегда из чего-то и как-то сделана или представлена и описана. В этом классе, прежде всего, модели рассматриваются как материальные и нематериальные.

Материальные модели - это материальные копии объектов моделирования.

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

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

Информационная модель - это совокупность информации об объекте, описывающая свойства и состояние объекта, процесса или явления, а также связи и отношения с окружающим миром.

Информационные модели представляют объекты в виде, словесных описаний, текстов, рисунков, таблиц, схем, чертежей, формул и т.д. Информационную модель нельзя потрогать, у нее нет материального воплощения, она строится только на информации. Ее можно выразить на языке описания (знаковая модель) или языке представления (наглядная модель).

Одна и та же модель одновременно относится к разным классам деления. Например, программы, имитирующие движение тел (автомобиля, снаряда, маятника, лифта и пр.). Такие программы используются на уроках физики (область знания) с целями обучения (цель использования). В то же время они являются динамическими, так как учитывают положение тела в разные моменты времени, и алгоритмическими по способу реализации.

Рассмотрим подробнее класс информационных моделей с позиции способов представления информации. Форма представления информационной модели зависит от способа кодирования (алфавита) и материального носителя.

Воображаемое (мысленное или интуитивное) моделирование - это мысленное представление об объекте. Такие модели формируются в воображении человека и сопутствуют его сознательной деятельности. Они всегда предшествуют созданию материального объекта, материальной и информационной модели, являясь одним из этапов творческого процесса. Например, музыкальная тема в мозгу композитора - интуитивная модель музыкального произведения.

Вербальное моделирование (относится к знаковым) - это представление информационной модели средствами естественного разговорного языка (фонемами). Мысленная модель, выраженная в разговорной форме, называется вербальной (от латинского слова verbalize - устный). Форма представления такой модели - устное или письменное сообщение. Примерами являются литературные произведения, информация в учебных пособиях и словарях, инструкции пользования устройством, правила дорожного движения.

Наглядное (выражено на языке представления) моделирование - это выражение свойств оригинала с помощью образов. Например, рисунки, художественные полотна, фотографии, кинофильмы. При научном моделировании понятия часто кодируются рисунками - иконическое моделирование. Сюда же относятся геометрические модели - информационные модели, представленные средствами графики.

Образно-знаковое моделирование использует знаковые образы какого-либо вида: схемы, графы, чертежи, графики, планы, карты (см. Рис. 3). Например, географическая карта, план квартиры, родословное дерево, блок-схема алгоритма. К этой группе относятся структурные информационные модели, создаваемые для наглядного изображения составных частей и связей объектов. Наиболее простые и распространенные информационные структуры - это таблицы, схемы, графы, блок-схемы, деревья.

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

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

Математическая модель - способ представления информационной модели, отображающий связь различных параметров объекта через математические формулы и понятия.

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

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

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

Процесс решения задач осуществляется в несколько этапов:

Содержательная постановка задачи. Вначале нужно осознать задачу, четко сформулировать ее. При этом определяются также объекты, которые относятся к решаемой задаче, а также ситуация, которую нужно реализовать в результате ее решения. Это - этап содержательной постановки задачи. Для того, чтобы задачу можно было описать количественно и использовать при ее решении вычислительную технику, нужно произвести качественный и количественный анализ объектов и ситуаций, имеющих к ней отношение. При этом сложные объекты, разбиваются на части (элементы), определяются связи этих элементов, их свойства, количественные и качественные значения свойств, количественные и логические соотношения между ними, выражаемые в виде уравнений, неравенств и т.п. Это - этап системного анализа задачи, в результате которого объект оказывается представленным в виде системы.

Следующим этапом является математическая постановка задачи, в процессе которой осуществляется построение математической модели объекта и определение методов (алгоритмов) получения решения задачи. Это - этап системного синтеза (математической постановки) задачи. Следует заметить, что на этом этапе может оказаться, что ранее проведенный системный анализ привел к такому набору элементов, свойств и соотношений, для которого нет приемлемого метода решения задачи, в результате приходится возвращаться к этапу системного анализа. Как правило, решаемые в практике задачи стандартизованы, системный анализ производится в расчете на известную математическую модель и алгоритм ее решения, проблема состоит лишь в выборе подходящего метода.

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

На заключительном этапе производится эксплуатация модели и получение результатов.

Таким образом, решение задачи включает следующие этапы:

1. Содержательная постановка задачи.

2. Системный анализ.

3. Системный синтез (математическая постановка задачи)

4. Разработка или выбор программного обеспечения.

5. Решение задачи.

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

Постановка задачи. Вычислить площадь треугольника S по заданным сторонам а, b, с. Объект моделирования - треугольник. Для содержательного описания объекта надо ответить на следующие вопросы.

а) Что должна делать программа?

б) Какие у нее исходные данные, и какие результаты?

По возможности необходимо сформулировать условия, которым должны удовлетворять исходные данные и результаты работы программы. Разрабатываемая программа должна вычислять площадь треугольника по трем сторонам. Исходные данные: переменные а, b, с - стороны треугольника. Вычисляемый результат: S - площадь треугольника. По смыслу задачи а, b, с, S положительны, причем не всякая тройка чисел образует длины сторон треугольника.

Чтобы числа а, b, с могли быть длинами сторон треугольника, необходимо и достаточно, чтобы большее из них было меньше суммы двух других (известное из геометрии неравенство треугольника). Но вот вопрос: следует ли считать, что вводимые значения а, b, c удовлетворяют этому условию, или программа должна предусматривать дополнительную проверку? Отвечая на него, мы обнаруживаем, что постановка задачи не является столь ясной, какой она показалась на первый взгляд. А значит, в нее нужно внести одно из дополнений: "a, b, с заведомо являются сторонами треугольника" или "Следует вычислить площадь, если а, b, с - стороны треугольника, а в противном случае выдавать сообщение:а, b, с не являются сторонами треугольника". Теперь от нашего выбора зависит работа будущей программы.

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

Выбор метода или построение модели. Проанализировав постановку задачи, программист выбирает метод решения. В нашем примере в связи с этим нужно рассмотреть два вопроса. Во-первых, каким способом лучше определить, что значения а, b, с могут быть длинами сторон треугольника? По определению, неотрицательные числа а, b, с могут быть длинами сторон треугольника, если максимальное из них меньше суммы двух других.

Пусть max(a,b,c)=c.

Тогда правило может быть записано так: a+b>c. Увеличим обе части неравенства на величину с и разделим их на 2: .

Переменной Р обозначим полупериметр треугольника:

Тогда а, b, с - стороны треугольника, если P>c, где с - наибольшая из сторон.

Во-вторых, площадь треугольника также может быть вычислена различными способами. Мы выберем формулу Герона:

Теперь метод решения поставленной задачи может быть сформулирован так. По заданным значениям переменных а, b, c вычислить полупериметр Р. Если а, b, c образуют стороны треугольника, то вычислить его площадь S и выдать результаты расчета. В противном случае, выдать сообщение о том, что а, b, с не являются сторонами треугольника.

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

Организация данных. Прежде чем приступать к разработке алгоритма, следует продумать, какие переменные, массивы или другие виды данных в нем будут использованы. Это во многом определяет будущий алгоритм. К этому этапу нередко приходится обращаться и во время разработки алгоритма, когда появляется необходимость ввести новые переменные, используемые для получения некоторых промежуточных результатов. Или, наоборот, некоторые переменные введены неоправданно, и их нужно исключить. В ходе организации данных нужно не только привести список используемых переменных, но и определить их смысл, тип и условия, которым они должны удовлетворять.

В рассматриваемой задаче мы будем использовать следующие переменные:

а, b, с - стороны треугольника;

d - наибольшее из значений а, b, с;

Р - полупериметр; S - площадь.

Для них должны выполняться следующие условия: P>d, S>0, a>0, b>0, c>0. Все переменные будем считать вещественными.

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

Конечно, разработать алгоритм можно, не пользуясь никакими особыми приемами. Но вы, безусловно, быстрее и успешнее выполните этот шаг, если воспользуетесь специальными методами построения алгоритмов. Одним из них является метод пошагового уточнения.

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

Начало:

1. Задать (а, b, с);

2. Вычислить полупериметр Р;

3. Найти наибольшую из сторон а, b, с;

4. Если а, b, с - стороны треугольника

4.1 То вычислить площадь S; выдать (S);

4.2 Иначе выдать (а, b, с,' - не являются сторонами треугольника')

Конец.

А теперь рассмотрим более подробно пункты алгоритма.

Вычисление полупериметра Р.

Этот шаг сводится к выполнению оператора:

Р= (а + b + c)/2.

Нахождение наибольшей из сторон а, b, с.

Операторы:

d:=a;

если d < b, то d:=b;

если d < с, то d:=c.

Вычисление площади S:

S=SQRT(P*(P - a)*(P - b)*(Р - с)).

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

Построение алгоритма закончено, если, читая его, каждое действие вы можете заменить оператором языка программирования. В нашем примере для этого оказалось достаточным сделать два шага. Теперь алгоритм выглядит так:

Начало

Задать (а,b,с);

(*вычислить полупериметр Р*)

Р:=(а+b+с)/2;

{*найти наибольшую из сторон а, b, с*}

d: =а;

если d если d<с, то d:=с;

если (*а, b, с - стороны треугольника*) P>d

то {(*вычислить площадь S*)

S:=SQRT(P*(P-а)*(Р-b)*(Р-с));

выдать(S)}

иначе выдать (а, b,с,' - не являются сторонами треугольника')

Конец

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

Программирование. На предыдущих этапах был детально разработан алгоритм решения задачи и описаны используемые в нем переменные. Теперь написание программы сводится к переводу этого алгоритма на язык программирования. Но если предыдущие этапы были выполнены некачественно, то алгоритм приходится дорабатывать уже на ходу. Это приводит к появлению дополнительных ошибок.

Одним из вопросов, с которым сталкиваются при программировании, является вопрос о выборе языка программирования. Для написания нашей программы мы выберем язык Паскаль. Теперь основная сложность заключается в том, чтобы учесть все правила и ограничения выбранного языка.

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

В каждой строчке программы размещайте по одному оператору, за исключением случаев, когда операторы небольшие и по смыслу тесно связаны друг с другом. Каждый следующий составной оператор размещайте со сдвигом на несколько позиций вправо. Метки лучше всего располагать в самых левых позициях, чтобы они "не загораживались" другими операторами. Соответствующие друг другу begin и end располагайте в одних и тех же колонках.

Понять смысл программы помогут и комментарии. С их помощью можно указать назначение программы, смысл используемых переменных, пояснить наиболее трудные для понимания участки.

Следуя перечисленным правилам, напишем программу решения рассматриваемой задачи:

program PLОСНАD;

{вычисление площади треугольника по трем сторонам)

var А,В,С:real; {стороны}

D:real; {большая из сторон}

Р:real; {полупериметр}

S:real; {площадь}

begin

writeln('Задайте стороны A,В,С:')

read(А,В,С);

{вычислить полупериметр}

Р:=(А + В + С)/2;

{найти наибольшую длину}

D:=A;

if D<B then D:=B;

if D<C then D:=C;

if {a,b,с - стороны треугольника} P>D

then

begin {вычислить площадь}

S:=SQRT(P*(P-A)*(P-B)*(P-C));

writeln{'ПЛОЩАДЬ:',S)

end

else writeln(A,B,С,

'- не являются сторонами треугольника')

end

Итак, программа готова. Вы занесли ее текст в машину. Но придется приложить еще много усилий, прежде чем вы убедитесь в ее правильной работе.

Тестирование программы. Для начала попытайтесь проверить свою программу, как говорят, "вручную". Внимательно читая ее текст, испытайте себя в роли исполнителя этого алгоритма на конкретных числовых данных. Возможно, что таким образом будут обнаружены некоторые ошибки.

Текст исходной программы программист направляет транслятору, который переводит ее на язык низкого уровня - язык компьютера. Транслятор не человек, он понимает лишь то, что написано, а не то, что мы хотели бы написать. Необходимо, чтобы правильными были все запятые, тире, пробелы, а также команды и программа в целом. Первым делом транслятор проверяет синтаксические ошибки. Если они есть, то программа отвергается с сообщением о том, что в таком-то месте программы найдена ошибка такого-то типа.

Первая цель программиста - добиться безошибочной трансляции. Но вот синтаксические ошибки устранены. Можно ли сказать, что, выполнив программу с заданными исходными данными, мы получим правильные результаты? Конечно, нет. Ведь в ней, помимо синтаксических ошибок, могут быть логические. Их-то транслятор не замечает. Чтобы выявить такие ошибки, программа проходит этап испытаний или тестирования.

Тестирование - это процесс исполнения программы с целью обнаружения ошибок. Для проведения этого этапа заранее, обычно еще до написания программы, подготавливается специальная система примеров, просчитанных вручную или каким-либо другим способом, с тем, чтобы сравнить их с результатами работы программы. Такие примеры называются тестами. Желательно, чтобы тесты были простыми и позволяли легко проверить получаемые результаты, а также разнообразными, чтобы программа вынуждена была пройти по всем ветвям алгоритма.

Протестируем нашу программу.

1. На вход подаем числа 3, 4, 5, являющиеся, как известно, сторонами треугольника с площадью 6. Что дает счет по программе? То же самое! При тестировании нужно проверять не только правильные, но и неверные и граничные ситуации. При этом следует уделять им внимания не меньше, чем работе с правильными данными. А поэтому рассмотрим и такие тесты.

2. Если (А, В, С) = (1, 1, 2), треугольник вырождается в отрезок.

3. Если (А, В, С) = (0,0,0) - это точка.

4. (А, В, С) = (1, 1, 3). Треугольник с такими сторонами построить нельзя.

5. А что, если на вход подать отрицательное число: 2, 1, -3?

6. Пусть все числа будут отрицательными: - 4, - 4, - 4.

Для тестов 2-6 в качестве результата должно быть получено сообщение: "А, В, С не являются сторонами треугольника". Далее проверим, все ли ветви алгоритма будут пройдены хотя бы по одному разу при выполнении этих тестов. Оказывается, да. Но если бы этого не случилось, пришлось бы добавлять новые примеры. Для каждого теста нужно выписывать не только входные данные, но и результаты, которые им соответствуют. Иначе, получив правдоподобные, но неверные результаты, вы можете не заметить ошибку. Ошибка обнаружится позже, и тогда для ее исправления потребуется больше усилий. Помните, чем раньше обнаружится ошибка, тем легче ее устранить. А потому тщательно изучайте итоги каждого тестового выполнения программы.

Отладка программы. Но вот вы получили результаты работы некоторого теста, и они оказались совсем не такими, какие вы ожидали. Что делать? Теперь начинается работа по выяснению того, какая ошибка или ошибки дали такой эффект, а также устранению этих ошибок. Эта работа называется отладкой. Проведение отладки роднит работу программиста с деятельностью врача, который по некоторым симптомам (выдаваемым сообщениям и результатам) пытается установить болезнь (в данном случае - ошибки в программе). Постановка диагноза, в том числе и в программировании, как известно, требует большого искусства. Однако и здесь можно рекомендовать некоторые приемы для облегчения этой работы.

Прежде всего, внимательно просмотрите текст. Возможно, ошибки связаны с синтаксисом программы. Например, если при вычислении полупериметра вместо знака " / " был поставлен знак "*", ошибка такого рода, не замеченная транслятором, будет обнаружена лишь в результате просмотра.

Чтобы выявить логические ошибки, попытайтесь выполнить программу или подозреваемую ее часть в отладчике, просматривая необходимые промежуточные результаты. Попробуйте объяснить каждый оператор своей программы, просматривая ее с конца.

Итак, вы каким-то образом нашли и исправили ошибку. Теперь все тесты нужно повторить заново, чтобы убедиться, не повлекло ли за собой это исправление других ошибок. Поэтому не спешите выбрасывать тесты, чтобы вам не пришлось изобретать их заново.

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

Документирование. Если после проверки программы у вас не возникает сомнений по поводу правильности выдаваемых ею результатов, ее можно использовать в дальнейшем для проведения необходимых расчетов. Но, не имея описания программы, в ней будет трудно разобраться уже через некоторое время. Описание в еще большей степени потребуется тому, кто захочет воспользоваться вашей программой или усовершенствовать ее. А потому разработка программы заканчивается ее описанием, или документированием.

В состав описания входит:

Во-первых, инструкция по использованию программы. Опишите, что делает программа, каким образом задавать исходные данные и какие действия выполнить, чтобы, ничего не зная о ее структуре, пользователь мог бы применить программу для своих расчетов.

Во-вторых, в документацию следует включить краткое описание того, что было сделано на каждом этапе, начиная от постановки задачи и заканчивая набором тестов. Это более подробное описание потребуется тому, кто захочет усовершенствовать вашу программу. Подготовка документации не составит большого труда, если о ней позаботиться заранее еще в период разработки программы. В частности, полезно описание логической структуры программы включать в ее текст в качестве комментариев. Следует также прокомментировать смысл каждой используемой переменной, а иногда и отдельных их значений. В хорошо документированных программах комментарии могут составлять до 3/4 всего текста.

Размещено на Allbest.ru

...

Подобные документы

  • Метод имитационного моделирования, его виды, основные этапы и особенности: статическое и динамическое представление моделируемой системы. Исследование практики использования методов имитационного моделирования в анализе экономических процессов и задач.

    курсовая работа [54,3 K], добавлен 26.10.2014

  • Описание элементов пакета Simulink: библиотеки блоков, циклов и кризисов. Блок-схемная имитационная модель анализа циклов перепроизводства автомобилей. Создание блоков графопостроителей Scope и Scope1 для отображения информации о показателях процессов.

    курсовая работа [584,0 K], добавлен 19.03.2014

  • Понятие имитационного моделирования, применение его в экономике. Этапы процесса построения математической модели сложной системы, критерии ее адекватности. Дискретно-событийное моделирование. Метод Монте-Карло - разновидность имитационного моделирования.

    контрольная работа [26,7 K], добавлен 23.12.2013

  • Статические и динамические модели. Анализ имитационных систем моделирования. Система моделирования "AnyLogic". Основные виды имитационного моделирования. Непрерывные, дискретные и гибридные модели. Построение модели кредитного банка и ее анализ.

    дипломная работа [3,5 M], добавлен 24.06.2015

  • Процесс создания и проектирования системы будущих пользователей. Управление деятельностью предприятий, планирование, информационный поиск в больших массивах информации. Основные этапы информационного моделирования Мартина. Пакет Visible Analyst Workbench.

    контрольная работа [33,3 K], добавлен 08.12.2010

  • Описание компьютерного моделирования. Достоинства, этапы и подходы к построению имитационного моделирования. Содержание базовой концепции структуризации языка моделирования GPSS. Метод оценки и пересмотра планов (PERT). Моделирование в системе GPSS.

    курсовая работа [594,0 K], добавлен 03.03.2011

  • Исследование особенностей разработки и построения модели социально-экономической системы. Характеристика основных этапов процесса имитации. Экспериментирование с использованием имитационной модели. Организационные аспекты имитационного моделирования.

    реферат [192,1 K], добавлен 15.06.2015

  • Виды финансовых моделей. Методический инструментарий моделирования финансово-хозяйственной деятельности. Использование финансового моделирования в принятии управленческих решений и оценке их эффективности на примере ОАО "Новосибстальконструкция".

    дипломная работа [2,3 M], добавлен 17.09.2014

  • Решение системы дифференциальных уравнений методом Рунге-Кутта. Исследованы возможности применения имитационного моделирования для исследования систем массового обслуживания. Результаты моделирования базового варианта системы массового обслуживания.

    лабораторная работа [234,0 K], добавлен 21.07.2012

  • Применение математического моделирования при решении прикладных инженерных задач. Оптимизация параметров технических систем. Использование программ LVMFlow для имитационного моделирования литейных процессов. Изготовление отливки, численное моделирование.

    курсовая работа [4,0 M], добавлен 22.11.2012

  • Теоретические основы имитационного моделирования. Пакет моделирования AnyLogic TM, агентный подход моделирования. Разработка имитационной модели жизненного цикла товара ООО "Стимул", модели поведения потребителей на рынке и специфика покупателей.

    курсовая работа [2,0 M], добавлен 26.11.2010

  • Характеристика основных принципов создания математических моделей гидрологических процессов. Описание процессов дивергенции, трансформации и конвергенции. Ознакомление с базовыми компонентами гидрологической модели. Сущность имитационного моделирования.

    презентация [60,6 K], добавлен 16.10.2014

  • Динамические, стохастические, дискретные модели имитационного моделирования. Предпосылки, технологические этапы машинного моделирования сложной системы. Разработка имитационной модели автоматизированного участка обработки деталей, ее верификация.

    дипломная работа [224,3 K], добавлен 05.09.2009

  • Основы математического моделирования детерминированных и стохастических объектов. Идентификация объектов управления по переходной характеристике. Получение модели методом множественной линейной регрессии и проверка ее адекватности по критерию Фишера.

    курсовая работа [1,1 M], добавлен 14.10.2014

  • Статистическая модель случайного процесса. Численный метод Монте-Карло. Типы имитации, ее достоинства и возможности. Простая имитационная модель системы обработки документов. Использование для моделирования языка Siman. Его основные моделирующие блоки.

    презентация [1,6 M], добавлен 22.10.2014

  • Анализ методов моделирования стохастических систем управления. Определение математического ожидания выходного сигнала неустойчивого апериодического звена в заданный момент времени. Обоснование построения рациональной схемы статистического моделирования.

    курсовая работа [158,0 K], добавлен 11.03.2013

  • Гомоморфизм - методологическая основа моделирования. Формы представления систем. Последовательность разработки математической модели. Модель как средство экономического анализа. Моделирование информационных систем. Понятие об имитационном моделировании.

    презентация [1,7 M], добавлен 19.12.2013

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

    курсовая работа [164,7 K], добавлен 03.01.2011

  • Методы исследования и моделирования социально-экономических систем. Этапы эконометрического моделирования и классификация эконометрических моделей. Задачи экономики и социологии труда как объект эконометрического моделирования и прогнозирования.

    курсовая работа [701,5 K], добавлен 14.05.2015

  • Подсчет запасов устойчивости контуров по амплитуде и фазе в трактовке критерия Найквиста. Проверка устойчивости объекта по двум замкнутым контурам. Составление цифровой модели объекта для системы Simulink. Переходные характеристики объекта управления.

    курсовая работа [748,6 K], добавлен 19.02.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.