Как настроить смартфоны и ПК. Информационный портал
  • Главная
  • Вконтакте
  • 2 моделирование процесса исследования его алгоритмизация. Формализация и алгоритмизация процессов функционирования систем

2 моделирование процесса исследования его алгоритмизация. Формализация и алгоритмизация процессов функционирования систем

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

Принципы построения моделирующих алгоритмов.

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

Рассмотрим процесс функционирования некоторой детерминированной системы в которой отсутствуют случайные факторы, т. е. вектор состояний такой системы можно определить из (2.3) как . Тогда состояние процесса в момент времени

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

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

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

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

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

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

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

Формы представления моделирующих алгоритмов.

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

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

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

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

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

Логическая схема алгоритма и схема программы могут быть выполнены как в укрупненной, так и в детальной форме. Для начертания этих схем используется набор символов, определяемых ГОСТ 19.701 - 90 (ИСО 5807 - 85) «Единая система программной документации.

Схемы алгоритмов, программ, данных и систем.

Условные обозначения и правила выполнения». Некоторые наиболее употребительные в практике моделирования на ЭВМ символы показаны на рис. 3.3, где изображены основные, специфические и специальные символы процесса. К ним относятся: основной символ: а - процесс - символ отображает функцию обработки данных любого вида (выполнение определенной операции или группы операций, приводящее к изменению значения, формы или размещения информации или к определению, по которому из нескольких направлений потока следует двигаться); специфические символы процесса: б - решение - символ отображает решение или функцию переключательного типа, имеющую один вход и ряд альтернативных выходов, один и только один из которых может быть активизирован после вычисления условий, определенных внутри этого символа (соответствующие результаты вычисления могут быть записаны по соседству с линиями, отображающими эти пути); в - подготовка - символ отображает модификацию команды или группы команд с целью воздействия на некоторую последующую функцию (установка переключателя, модификация индексного регистра или инициализация программы); г - предопределенный процесс - символ отображает предопределенный процесс, состоящий из одной или нескольких операций или шагов программы, которые определены в другом месте (в подпрограмме, модуле); д - ручная операция - символ отображает любой процесс, выполняемый человеком; специальные символы: е - соединитель - символ отображает выход в часть схемы и вход из другой части этой схемы и используется для обрыва линии и продолжения ее в другом месте (соответствующие символы-соединители должны содержать одно и то же уникальное обозначение); ж - терминатор - символ отображает выход во внешнюю среду и вход из внешней среды (начало или конец схемы алгоритма, внешнее использований или пункт назначения данных).

Рис. 3.3. Символы и схемы моделирующих алгоритмов

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

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

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

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

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

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

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

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

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

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

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

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

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

2.4. Выбор инструментальных средств для моделирования. На этом подэтапе необходимо окончательно решить вопрос о том, какую вычислительную машину (ЭВМ, АВМ, ГВК) и какое программное обеспечение целесообразно использовать для реализации модели системы S. Вообще, выбор вычислительных средств может быть проведен и на предыдущих подэтапах, но рассматриваемый подэтап является последним, когда этот выбор должен быть сделан окончательно, так как в противном случае возникнут трудности в проведении дальнейших работ по реализации модели. Вопрос о выборе ЭВМ сводится к обеспечению следующих требований:

а) наличие необходимых программных и технических средств; б) доступность выбранной ЭВМ для разработчика модели; в) обеспечение всех этапов реализации модели; г) возможность своевременного получения результатов.

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

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

б) особенности программирования модели; в) проведение необходимых изменений; г) возможности тестирования программы; д) оценку затрат машинного времени; е) форму представления входных и выходных данных.

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

назначения или языка моделирования (например, SIMULA, SIMSCRIPT, GPSS).

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

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

2.9. Проверка достоверности программы. Эта последняя проверка на этапе машинной реализации модели, которую необходимо проводить: а) обратным переводом программы в исходную схему; б) проверкой отдельных частей программы при решении различных тестовых задач; в) объединением всех частей программы и проверкой ее в целом на контрольном примере моделирования варианта системы S.

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

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

Таким образом, на этом этапе разрабатывается схема модели системы S, проводится ее алгоритмизация и программирование

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


Задержки транзактов по заданному времени. Статическое моделирование служит для описаний поведения объекта в какой-либо момент времени. Динамическое моделирование отражает поведение объекта во времени. Дискретное моделирование служит для отображения объекта в определенный момент времени.


Поделитесь работой в социальных сетях

Если эта работа Вам не подошла внизу страницы есть список похожих работ. Так же Вы можете воспользоваться кнопкой поиск


Другие похожие работы, которые могут вас заинтересовать.вшм>

9929. Алгоритмические методы защиты информации 38.36 KB
Для нормального и безопасного функционирования этих систем необходимо поддерживать их безопасность и целостность. Что такое криптография Криптография наука о шифрах – долгое время была засекречена так как применялась в основном для защиты государственных и военных секретов. В настоящее время методы и средства криптографии используются для обеспечения информационной безопасности не только государства но и частных лиц организаций. Пока криптографические алгоритмы для рядового потребителя – тайна за семью печатями хотя многим уже...
1927. Моделирование систем 21.47 KB
В студенческом машинном зале расположены две мини ЭВМ и одно устройство подготовки данных (УПД). Студенты приходят с интервалом в 8±2 мин и треть из них хочет использовать УПД и ЭВМ, а остальные только ЭВМ. Допустимая очередь в машинном зале составляет четыре человека, включая работающего на УПД.
1974. МОДЕЛИРОВАНИЕ ПОВЕРХНОСТЕЙ 233.46 KB
Поверхность и цифровая модель Основой для представления данных о земной поверхности являются цифровые модели рельефа. Поверхности – это объекты которые чаще всего представляются значениями высоты Z распределенными по области определенной координатами X и Y. ЦМР – средство цифрового представления рельефа земной поверхности. сбор по стереопарам снимков отличается трудоемкостью и требует специфического программного обеспечения но в то же время позволяет обеспечить желаемую степень детальности представления земной поверхности.
2156. Моделирование освещения 125.57 KB
Для наблюдателя находящегося в любой точке яркость точки которую он видит будет выражаться следующим образом. где V яркость для ч б; E – альбедо коэффициент отражения поверхности. По сравнению с методом Ламберта эта модель уменьшает яркость точек на которые мы смотрим под углом 90 и увеличивает яркость тех точек на которые мы смотрим вскользь Применение законов освещения при синтезе объекта изображения. 7 Рассчитывается яркость в одной точке например в центре тяжести для выпуклых многоугольников грани по Ламберту и...
8080. Троичное моделирование 18.3 KB
Троичное моделирование Троичное моделирование широко используется для выявления состязаний сигналов которые могут иметь место в схеме. Моделирование входного набора происходит в 2 этапа. Пример: провести троичное логическое моделирование методом Э. Троичное моделирование с нарастающей неопределенностью В данном алгоритме для каждого лта указывается максимальное и минимальное значение задержки т.
6675. Имитационное моделирование 56.71 KB
Этот процесс состоит из двух больших этапов: разработки модели и анализа разработанной модели. Моделирование позволяет исследовать суть сложных процессов и явлений с помощью экспериментов не с реальной системой а с ее моделью. В области создания новых систем моделирование является средством исследования важных характеристик будущей системы на самых ранних стадиях ее разработки.
5651. Моделирование производственной системы 391.61 KB
Компьютер задействован в управлении технологическим оборудованием. Для контроля состояния оборудования каждые 20 мин запускается одна из трех типов задач. Через каждые 5 мин работы процессора каждая задача выводит результаты работы в базу данных
4640. МОДЕЛИРОВАНИЕ ЦИФРОВЫХ УЗЛОВ 568.49 KB
На кристаллах современных БИС можно поместить множество функциональных блоков старых ЭВМ вместе с цепями межблочных соединений. Разработка и тестирование таких кристаллов возможно только методами математического моделирования с использованием мощных компьютеров.
6206. Моделирование в научных исследованиях 15.78 KB
Большие успехи и признание практически во всех отраслях современной науки принес методу моделирования ХХ в. Однако методология моделирования долгое время развивалась независимо отдельными науками. Лишь постепенно стала осознаваться роль моделирования как универсального метода научного познания.
3708. Моделирование с использованием сплайнов 465.08 KB
Они же и определяют степень кривизны сегментов сплайна прилегающих к этим вершинам. Сегмент – это часть линии сплайна между двумя соседними вершинами. В 3ds Mx используются четыре типа вершин: Corner Угловая – вершина примыкающие сегменты к которой не имеют кривизны; Smooth Сглаженная вершина через которую кривая сплайна проводится с изгибом и имеет одинаковую кривизну сегментов с обеих сторон от нее; Bezier Безье вершина подобная сглаженной но позволяющая управлять кривизной сегментов сплайна с обеих сторон от вершины....

Моделирование, алгоритмизация и программирование

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

Решение задачи с применением компьютера предполагает следующие этапы :

Рассмотрим подробнее каждый из перечисленных этапов.

1. Постановка задачи. Построение информационной модели

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

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

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

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

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

Все эти сведения образуют информационную модель задачи .

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

Шаги построения информационной модели:

Дадим определение понятия «модель» и возможные классификации.

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

Процесс создания (а иногда и исследования) модели называется моделированием.

Метод познания, состоящий в исследовании объекта по его свойствам, называется моделированием.

Классификация моделей

По области использования

Классификация с учетом фактора времени

По способу представления

По форме представления можно выделит следующие виды информационных моделей:

2. Формализация задачи

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

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

3. Построение алгоритма

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

Алгоритмы являются объектом систематического исследования пограничной между математикой и информатикой научной дисциплины, примыкающей к математической логике – теории алгоритмов .

Само слово «алгоритм» происходит от algorithmi – латинской формы написания имени великого математика IX века аль-Хорезми, который сформулировал правила выполнения арифметических действий. Первоначально под алгоритмами и понимали только правила выполнения четырех арифметических действий над многозначными числами.

Алгоритм – понятное и точное предписание исполнителю совершить последовательность действий, направленных на достижение поставленной цели или решение поставленной задачи.

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

Исполнитель – это кто-то или что-то, умеющий выполнять некоторый вполне определенный набор действий. Он обладает следующими свойствами:

Вся совокупность команд, которые данный исполнитель умеет выполнять, называется системой команд исполнителя (СКИ).

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

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

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

Свойства алгоритмов

Дискретность алгоритма

Исполнение алгоритма распадается на последовательность отдельных шагов. Выполнить каждый шаг предписывает команда. Таким образом, алгоритм представляет собой последовательность команд, определяющих действия исполнителя. Алгоритм имеет прерывистую (дискретную) структуру: только выполнив одну команду, исполнитель может приступить к выполнению следующей. Это свойство называется дискретностью.

Понятность алгоритма

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

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

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

Точность алгоритма

Важным свойством алгоритма является точность (определенность, однозначность). Каждая команда алгоритма должна однозначно восприниматься исполнителем и предполагать его определенное действие. Выполнив шаг алгоритма, исполнитель должен точно знать, какой шаг выполнять следующим. Примером неточного алгоритма является фраза из рецепта «всыпать 2-4 столовые ложки сахара» или классическое изречение «казнить нельзя помиловать».

Результативность и конечность алгоритма

Исполнение алгоритма должно приводить к получению результата (свойство результативности ) за конечное число шагов (свойство конечности ).

Массовость алгоритма

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

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

Способы записи алгоритмов

На практике наиболее распространены следующие формы фиксации алгоритмов:

Словесный способ

Для человека основным является словесный способ.

Например. Записать алгоритм нахождения наибольшего общего делителя (НОД) двух натуральных чисел.

Алгоритм может быть следующим:

задать два числа;

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

определить большее из чисел;

заменить большее из чисел разностью большего и меньшего из чисел;

повторить алгоритм с шага 2.

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

Словесный способ не имеет широкого распространения по следующим причинам:

Псевдокод

Псевдокод – система обозначений и правил для единообразной и точной записи алгоритмов.

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

Отметим, что между понятиями «алгоритмический язык» и «языки программирования» есть различие; прежде всего, под исполнителем в алгоритмическом языке может подразумеваться не только компьютер, но и устройство для работы «в обстановке». Программа, записанная на алгоритмическом языке, не обязательно предназначена компьютеру. Практическая же реализация алгоритмического языка – отдельный вопрос в каждом конкретном случае.

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

Алгоритм, записанный на алгоритмическом языке, должен иметь название. Название желательно выбирать так, чтобы было ясно, решение какой задачи описывает данный алгоритм. Для выделения названия алгоритма перед ним записывают служебное слово АЛГ (АЛГоритм). За названием алгоритма (обычно с новой строки) записывают его команды. Для указания начала и конца алгоритма его команды заключают в пару служебных слов НАЧ (НАЧало) и КОН (КОНец). Команды записывают последовательно.

Последовательность записи алгоритма:

АЛГ название алгоритма

серия команд алгоритма

Графическое представление алгоритмов

Алгоритм, составленный для некоторого исполнителя, можно представить различными способами: с помощью графического или словесного описания, в виде таблицы, последовательностью формул, записанным на алгоритмическом языке (языке программирования). Остановимся на графическом описании алгоритма, называемом блок-схемой . Этот способ имеет ряд преимуществ благодаря наглядности, обеспечивающей, в частности, высокую «читаемость» алгоритма и явное отображение управления в нем.

Прежде всего определим понятие блок-схемы.

Блок-схема – это ориентированный граф, указывающий порядок исполнения команд алгоритма.

Блок-схема – это графическое представление алгоритма.

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

В блок-схеме действия алгоритма (блоки) изображаются следующими геометрическими фигурами:

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

Конструкция следования (линейный алгоритм)

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

Здесь в качестве серий команд могут выступать:

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

Пример

Задача: вычислить площадь круга, если известен радиус.

Дано : R - радиус круга.

Найти : S - площадь круга.

Решение : S=3,14 R2

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

Прочесть значение R.

Умножить значение R на 3,14.

Умножить результат второго действия на значение R.

Записать полученный результат как значение S.

На языке блок-схем

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

Конструкция ветвления

Конструкция ветвления – это форма организации действий, при которой в зависимости от выполнения (невыполнения) некоторого условия выполняется одна из двух серий команд.

Если < условие>

то < серия команд 1>

иначе < серия команд 2>

конец ветвления

Пример

Задача : вычислить

Дано : х – значение аргумента.

Найти : у – значение функции.

Решение:

X , если х<0

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

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

Начало

Если х>0, то

у: = х

иначе

начало

У: = -х

Конец ветвления

Записать значение у

Конец

Выделяют полную и неполную условную конструкцию.

Введём обозначение:

Q – условие;

P 1 , P 2 , … P N – действия, которые выполняются в случае истинности условия;

T 1 , T 2 , … T N - действия, которые выполняются, если условие ложно.

Блок-схема и алгоритм выглядят следующим образом (см. табл.):

Условные конструкции

Полная

Неполная

Р 1

Р 2

Р N

иначе

Т 1

Т 2

Т N

Конец ветвления

Р 1

Р 2

Р N

Конец ветвления.

Конструкция цикла

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

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

Различают два основных типа циклов: цикл с параметром и цикл с условием.

Цикл с параметром

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

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

Запись цикла с параметром на алгоритмическом языке выглядит так:

начальное конечное шаг

для <имя параметра> от < значение > до < значение > шаг <изменения>

параметра параметра параметра

<тело цикла>

Цикл с условием

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

Различают циклы с предусловием и с постусловием .

Цикл с предусловием (цикл «пока»)

Проверка условия происходит перед очередным исполнением тела цикла.

Запись на алгоритмическом языке и в виде блок-схемы:


пока <условие>

< тело цикла >

Пока условие выполняется (соответствующее логическое выражение имеет значение «истина»), повторяется исполнение тела цикла . Как только условие перестало выполняться – прекращается исполнение цикла (выход по лжи).

Если условие изначально не выполняется, тело цикла может не быть исполнено ни разу .

Цикл с постусловием (цикл «до»)

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


повторять

< тело цикла >

до < условие >



Исполнение тела цикла происходит, если условие не выполняется (соответствующее логическое выражение имеет значение «ложь»). Как только наступает выполнение условия, исполнение тела цикла прекращается (выход по истине).



4. Составление программы

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

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

Технологии программирования

Алгоритмическое (модульное) программирование

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

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

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

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

Структурное программирование

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

Возможность применения подпрограмм относит язык программирования к классу процедурных языков .

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

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

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

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

Событийно-ориентированное программирование

С активным распространением системы Windows и появлением визуальных RAD - сред широкую популярность приобрел событийный подход к созданию программ - событийно-ориентированное программирование .

Идеология системы Windows основана на событиях. Щелкнул человек на кнопке, выбрал пункт меню, нажал на клавишу или кнопку мыши - в Windows генерируется подходящее сообщение, которое отсылается окну соответствующей программы. Структура программы, созданной с помощью событийного программирования, следующая. Главная часть представляет собой один бесконечный цикл , который опрашивает Windows , следя за тем, не появилось ли новое сообщение. При его обнаружении вызывается подпрограмма, ответственная за обработку соответствующего события (обрабатываются не все события, их сотни, а только нужные), и подобный цикл опроса продолжается, пока не будет получено сообщение «Завершить работу».

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

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

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

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

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

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

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

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

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

В большинстве случаев методы базового класса у классов-наследников приходится переопределять - объект класса «студент-заочник» выполняет метод «посещать занятия» совсем не так, как объект класса «студент-очник». Все переопределяемые методы по написанию (названию) будут совпадать с методами базового объекта, однако компилятор по типу объекта (его классу) распознает, какой конкретно метод надо использовать, и не вызовет для объекта класса «студент-заочник» метод «посещать занятия» класса «студент». Такое свойство объектов переопределять методы наследуемого класса и корректно их использовать называется полиморфизмом .

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

Например, файловая система компьютера может содержать сотни и тысячи файлов. Все файлы обладают одним и тем же набором свойств (имя, положение в файловой системе) и операций (переименование, перемещение или копирование) и образую класс объектов ФАЙЛЫ. Каждый отдельный файл является экземпляром этого класса и имеет конкретные значения свойств (имя, местоположение и др).

  1. Наследование – определяет отношение между классами: объекты класса-потомок обладают всеми свойствами объектов класса-родитель . То есть каждый следующий производный объект наследует свойства, действия своих предшественников. Механизм наследования позволяет переопределить или добавить новые данные и методы их обработки, создать иерархию классов.

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

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

Свойства

Координаты (x,y)

Перемещение

Изменение цвета

Из класса объектов ТОЧКА можно получить новый класс ОКРУЖНОСТЬ, добавив новое свойство Радиус и операцию Изменение радиуса. Класс объектов ОКРУЖНОСТЬ можно задать таблицей.

Свойства

Координаты (x,y)

Перемещение

Изменение цвета

Радиус (R)

Изменение радиуса

Все объекты класса ОКРУЖНОСТЬ наследуют свойства и операции класса ТОЧКА. Класс ТОЧКА называется класс-родитель, класс ОКРУЖНОСТЬ – класс-потомок. Графически это выглядит так:


наследование

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

Например. Для большинства класса объектов в среде WINDOWS/OFFICE характерен набор одних и тех же операций – переименование, перемещение, копирование, удаление и т.д. Механизмы реализации этих действий неодинаковы для различных классов. Так, для копирования папки необходимо совершить последовательность действий по изменению файловой системы, а для копирования символа внести изменения в документ. Эти операции будут выполнятся различными программами.

Визуальное программирование

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

Развитие этой технологии связано с появлением графического интерфейса. Это технология разработки приложений в виде графических объектов, с последующим переводом их в программный код. В 90-х годах появляется технология RAD – Rapid Application Development – быстрая разработка приложений. Все необходимые элементы оформления и управления создаются и обслуживаются не путем ручного программирования, а с помощью готовых визуальных компонентов, которые с помощью мыши перетаскиваются в проектируемое окно. Свойства и поведение компонентов настраиваются с помощью простых редакторов, визуально показывающих характеристики соответствующих элементов. При этом исходный текст программы генерируется RAD-средой автоматически.

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

Из универсальных языков программирования сегодня наиболее популярны следующие:

Бейсик (Basic) - для освоения требует начальной подготовки (общеобразовательная школа);

Паскаль (Pascal) - требует специальной подготовки (школы с углубленным
изучением предмета и общетехнические вузы);

Си++ (C++), Ява (Java), Си Шарп (С#) - требуют профессиональной подго­товки (специализированные средние и высшие учебные заведения).

Для каждого из этих языков программирования сегодня имеется немало систем программирования, выпускаемых различными фирмами и ориентированных на различные модели ПК и операционные системы. Наиболее популярны следую­щие визуальные среды быстрого проектирования программ для Windows:

Basic: Microsoft Visual Basic;

Pascal: Borland Delphi;

C++: Microsoft Visual C++;

Java: BorlandJBuilder,

C#: Microsoft Visual Studio .NET, Borland С#Builder.

Для разработки серверных и распределенных приложений можно использовать систему программирования Microsoft Visual C++, продукты фирмы Borland, прак­тически любые средства программирования на java.

5. Ввод программы в память компьютера. Пробный запуск

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

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

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

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

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

Важным этапом процесса отладки является тестирование программы, т.е. испытание ее путем введения теста – определенного набора исходных данных, для которого результат работы отдельных блоков или программы в целом известен заранее.

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

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

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

До последнего времени 4, 5 и 6 этапы были необходимыми этапами решения задачи с помощью ЭВМ. При этом языки и системы программирования были теми программными инструментами, с помощью которых создавались новые программы для решения задач пользователя. Однако с расширением круга задач, для решения которых используется компьютер, растет число людей, которые, не будучи профессиональными программистами, применяют компьютер в своей работе.

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

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

7. Получение и анализ результатов

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

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

Вопросы для подготовки к контрольной работе по теме «Моделирование, алгоритмизация, программирование»

    формализация и алгоритмизация процессов функционирования систем.

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

Методика разработки и машинной реализации моделей систем.

Моделирование с использованием средств вычислительной техники (ЭВМ, АВМ, ГВК) позволяет исследовать механизм явлений, протекающих в реальном объекте с большими или малыми скоростями, когда в натурных экспериментах с объектом трудно

(или невозможно) проследить за изменениями, происходящими

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

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

Требования пользователя к модели. Сформулируем основные требования, предъявляемые к модели М S.

1. Полнота модели должна предоставлять пользователю возможность

получения необходимого набора оценок характеристик

системы с требуемой точностью и достоверностью.

2. Гибкость модели должна давать возможность воспроизведения

различных ситуаций при варьировании структуры, алгоритмов

и параметров системы.

3. Длительность разработки и реализации модели большой системы

должна быть по возможности минимальной при учете ограничений

на имеющиеся ресурсы.

4. Структура модели должна быть блочной, т. е. допускать

возможность замены, добавления и исключения некоторых частей

без переделки всей модели.

5. Информационное обеспечение должно предоставлять возможность

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

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

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

7. Должно быть реализовано проведение целенаправленных

(планируемых) машинных экспериментов с моделью системы с использованием

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

При машинном моделировании системы

S характеристики процесса ее функционирования определяются

на основе модели М, построенной исходя из имеющейся исходной

информации об объекте моделирования. При получении новой информации

об объекте его модель пересматривается и уточняется

с учетом новой информации.

Моделирование систем с помощью ЭВМ можно использовать

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

Этапы моделирования систем:

    построение концептуальной модели системы и ее формализация;

    алгоритмизация модели системы и ее машинная реализация;

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

Перечислим эти подэтапы:

1.1-постановка задачи машинного моделирования системы (цели, задачи для создаваемой системы, а) признание существования задачи и необходимости машинного моделирования;

б) выбор методики решения задачи с учетом имеющихся ресурсов; в) определение масштаба задачи и возможности разбиения ее на подзадачи.);

1.2 - анализ задачи моделирования системы (выбор критериев оценки, выбор эндогенных и экзогенных переменных, выбор методов, выполнения предварительных анализов 2-го и 3-го этапов);

1.3-определение требований к исходной информации об объекте моделирования

и организация ее сбора (проводится: а) выбор необходимой информации о системе S и внешней среде Е; б) подготовка априорных данных; в) анализ имеющихся экспериментальных данных; г) выбор методов и средств предварительной обработки информации о системе);

1.4 - выдвижение гипотез и принятие предположений (о функционировании системы, об изучаемых процессах);

1.5 - определение параметров и переменных модели (входные переменные, выходные, параметры модели и т.д.);

1.6 - установление основного содержания модели (структура, алгоритмы ее поведения);

1.7 - обоснование критериев оценки эффективности системы;

1.8 - определение процедур аппроксимации;

1.9 - описание концептуальной модели системы (а) описывается концептуальная модель в абстрактных терминах и понятиях; б) дается описание модели с использованием типовых математических схем; в) принимаются окончательно гипотезы и предположения; г) обосновывается выбор процедуры аппроксимации реальных процессов при построении

1.10 - проверка достоверности концептуальной модели;

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

2.1 - построение логической схемы модели (построение схемы системы, например по блочному принципу со всеми функциональными блоками);

2.2 - получение математических соотношений (задание всех функций, которые описывают систему);

2.3 - проверка достоверности модели системы; (проверяются: а) возможность

решения поставленной задачи; б) точность отражения замысла в логической

схеме; в) полнота логической схемы модели; г) правильность

используемых математических соотношений)

2.4 - выбор инструментальных средств для моделирования (окончательный выбор ЭВМ, АВМ или ГВМ для процесса моделирования, учитывая что они будут доступны и быстро выдавать результаты);

2.5 - составление плана выполнения работ по программированию (определение задач и сроков их выполнения, также учитываются а) выбор языка (системы) программирования модели; б) указание типа ЭВМ и необходимых для моделирования устройств; в) оценку примерного объема необходимой оперативной и внешней памяти; г) ориентировочные затраты машинного времени на моделирование; д) предполагаемые затраты времени на программирование и отладку программы на ЭВМ.);

2.6 -спецификация и построение схемы программы (составление логической блок-схемы),

2.7 - верификация и проверка достоверности схемы программы (Верификация программы - доказательство того, что поведение программы соответствует спецификации на программу);

2.8 - проведение программирования модели;

2.9 - проверка достоверности программы (необходимо проводить: а) обратным переводом программы в исходную схему; б) проверкой отдельных частей программы при решении различных тестовых задач; в) объединением всех частей программы и проверкой ее в целом на контрольном примере моделирования варианта системы S ) ;

2.10 - составление технической документации по второму этапу (а) логическую схему модели и ее описание; б) адекватную схему программы и принятые обозначения; в) полный текст программы; г) перечень входных и выходных величин с пояснениями; д) инструкцию по работе с программой; е) оценку затрат машинного времени на моделирование с указанием требуемых ресурсов ЭВМ);

3.1 - плакирование машинного эксперимента с моделью системы (составляется план эксперимента с начальными параметрами и всеми условиями, определяется время моделирования);

3.2 - определение требований к вычислительным средствам (какие нужны ЭВМ и сколько времени они будут работать);

3.3 - проведение рабочих расчетов (обычно включают в себя: а) подготовку наборов исходных данных для ввода в ЭВМ; б) проверку исходных данных, подготовленных для ввода; в) проведение расчетов на ЭВМ; г) получение выходных данных, т. е. результатов моделирования.);

3.4 - анализ результатов моделирования системы (анализ выходных данных системы и дальнейшая их обработка);

3.5 - представление результатов моделирования (различные наглядные представления в виде графиков, таблиц, схем);

3.6 - интерпретация результатов моделирования (переход от информации, полученной в результате машинного эксперимента с моделью, к реальной системе);

3.7 - подведение итогов моделирования и выдача рекомендаций (определены главные результаты, проверены выдвинутые гипотезы);

3.8 - составление технической документации по третьему этапу (а) план проведения машинного эксперимента; б) наборы исходных данных для моделирования; в) результаты моделирования системы; г) анализ и оценку результатов моделирования; д) выводы по полученным результатам моделирования; указание путей дальнейшего совершенствования машинной модели и возможных областей ее приложения).

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

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

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

Построение концептуальных моделей систем и их формализация.

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

объекта к его математической модели, другими словами, процесс формализации.

Наиболее рационально строить модель функционирования системы по блочному принципу.

При этом могут быть выделены три автономные группы блоков такой модели. Блоки первой группы представляют собой имитатор воздействий внешней среды Е на систему 5; блоки второй группы являются собственно моделью процесса функционирования исследуемой системы S; блоки третьей группы - вспомогательными

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

Концептуальная модель – отображаются подпроцессы системы, в блочной системы удаляются процессы, которые можно не рассматривать (они не влияют на работу модели).

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

j _ 8,39 - 41,43 - 47). Предполагается, что они не оказывают существенного влияния на ход процессов, исследуемых с помощью

модели. Часть элементов (14,15, 28, 29, 42) заменяется пассивными связями h, отражающими внутренние свойства системы (рис. 3.2, б). Некоторая часть элементов (1 - 4. 10. 11, 24L 25)- заменяется входными факторами х и воздействиями внешней среды v – Возможны и комбинированные замены: элементы 9, 18, 19, 32, 33 заменены пассивной связью А2 и воздействием внешней среды Е.

Элементы 22,23.36.37 отражают воздействие системы на внешнююсреду y.

Математические модели процессов. После перехода от описания

моделируемой системы S к ее модели Mv построенной по блочному

принципу, необходимо построить математические модели процессов,

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

представляет собой совокупность соотношений (например, уравнений,

логических условий, операторов), определяющих характеристики

процесса функционирования системы S в зависимости от

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

воздействий внешней среды Е, начальных условий и времени.

Алгоритмизация моделей систем и их машинная реализация.

На втором этапе моделирования - этапе алгоритмизации модели

и ее машинной реализации - математическая модель, сформированная

на первом этапе, воплощается в конкретную машинную

модель. Практическая реализация системы.

Построение моделирующих алгоритмов.

Процесс функционирования системы S можно рассматривать как последовательную смену ее состояний z=z(z1(t), z2(t), ..., zk(t)) в k-мерном пространстве. Очевидно, что задачей моделирования процесса функционирования исследуемой системы S является построение функций z, на основе которых можно провести вычисление интересующих

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

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

Рассмотренный принцип построения моделирующих алгоритмов называется принципом At. Это наиболее универсальный принцип, позволяющий определить последовательные состояния процесса функционирования системы S через заданные интервалы времени

At. Но с точки зрения затрат машинного времени он иногда оказывается неэкономичным.

При рассмотрении процессов функционирования некоторых систем можно обнаружить, что для них характерны два типа состояний:

1) особые, присущие процессу функционирования системы только

в некоторые моменты времени (моменты поступления входных

или управляющих воздействий, возмущений внешней среды и т. п.);

2) неособые, в которых процесс находится все остальное время.

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

образом, следя при моделировании системы S только за ее особыми состояниями в те моменты времени, когда эти состояния имеют место, можно получить информацию, необходимую для построения функций z(t). Очевидно, для описанного типа систем могут быть построены моделирующие алгоритмы по «принципу особых состояний». Обозначим скачкообразное (релейное) изменение состояния z как bz, а «принцип особых состояний» - как принцип bz.

Например, для системы массового обслуживания (Q-схемы) в качестве особых состояний могут быть выбраны состояния в моменты поступления заявок на обслуживание в прибор П и в моменты окончания обслуживания заявок каналами К, когда состояние системы,

оцениваемое числом находящихся в ней заявок, меняется скачком.

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

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

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

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

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

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

На третьем этапе моделирования - этапе получения и интерпретации результатов моделирования - ЭВМ используется для проведения рабочих расчетов по составленной и отлаженной программе.

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

В ходе машинного эксперимента изучается поведение исследуемой модели М процесса функционирования системы S на заданном интервале времени .

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

Советов Б.Я., Яковлев С.А.

Моделирование систем. 4-е изд. – М.: Высшая школа, 2005. – С. 84-106.

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

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Введение

1. Аналитический обзор существующих методов и средств решения задачи

1.1 Понятие и виды моделирования

1.2 Численные методы расчета

1.3 Общее понятие о методе конечных элементов

2. Алгоритмический анализ задачи

2.1 Постановка задачи

2.2 Описание математической модели

2.3 Графическая схема алгоритма

3. Программная реализация поставленной задачи

3.1 Отклонения и допуски трубной цилиндрической резьбы

3.2 Реализация отклонения и допусков трубной цилиндрической резьбы в ПО «Компас»

3.3 Реализация задачи на языке программирования C#

3.4 Реализация модели конструкции в пакете ANSYS

3.5 Исследование полученных результатов

Заключение

Список использованной литературы

Введение

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

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

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

1 . Аналитический обзор существующих методов и средств решения задачи

1.1 Понятие и виды модел и рования

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

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

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

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

4) Индуктивные задачи, решение которых имеет целью составление или уточнение уравнений, описывающих процессы протекающие в системе, свойства которой (возмущения и реакция на них) известны .

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

Детерминированные;

Стохастические.

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

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

В зависимости от поведения объекта во времени моделирование относят к одному из двух видов:

Статическое;

Динамическое.

Статическое моделирование служит для описания поведения объекта в какой - либо момент времени, а динамическое моделирование отражает поведение объекта во времени.

В зависимости от формы представления объекта (системы) можно выделить

Физическое моделирование;

Математическое моделирование.

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

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

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

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

Математическое моделирование можно разбить на следующие группы:

Аналитическое;

Имитационное;

Комбинированное.

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

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

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

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

В настоящее время имитационное моделирование - часто единственный практически доступный метод получения информации о поведении системы, особенно на этапе ее проектирования.

Комбинированное (аналитико-имитационное) моделирование позволяет объединить достоинства аналитического и имитационного моделирования.

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

С точки зрения описания объекта и в зависимости от его характера математические модели можно разделить на модели:

аналоговые (непрерывные);

цифровые (дискретные);

аналого-цифровые.

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

1.2 Численные методы ра с чета

Решить задачу для математической модели - значит указать алгоритм для получения требуемого результата из исходных данных.

Алгоритмы решения условно делятся на:

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

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

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

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

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

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

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

Алгоритм МКР состоит из трех этапов:

1. Построение сетки в заданной области. В узлах сетки определяются приближенные значения функции (узловые значения). Набор узловых значений - сеточная функция.

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

3. Решение полученной системы алгебраических уравнений.

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

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

1. Свойства материалов смежных элементов не должны быть обязательно одинаковыми. Это позволяет применять метод к телам, составленным из нескольких материалов.

2. Криволинейная область может быть аппроксимирована с помощью прямолинейных элементов или описана точно с помощью криволинейных элементов.

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

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

Решение задач по МКЭ содержит следующие этапы:

1.Разбиение заданной области на конечные элементы. Нумерация узлов и элементов.

2.Построение матриц жесткости конечных элементов.

3.Сведение нагрузок и воздействий, приложенных к конечным элементам, к узловым силам.

4.Формирование общей системы уравнений; учет в ней граничных условий. Решение полученной системы уравнений.

5.Определение напряжений и деформаций в конечных элементах.

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

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

1.3 Общее понятие о методе конечных элементов

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

Метод конечных элементов в общем случае состоит из следующих этапов:

1. Разбиение области на конечные элементы. Разбиение области на элементы обычно начинают от её границы, с целью наиболее точной аппроксимации формы границы. Затем производится разбиение внутренних областей. Часто разбиение области на элементы производят в несколько этапов. Сначала разбивают на крупные части, границы между которыми проходят там, где изменяются свойства материалов, геометрия, приложенная нагрузка. Затем каждая подобласть разбивается на элементы. После разбиения области на конечные элементы осуществляется нумерация узлов. Нумерация была бы тривиальной задачей, если бы не влияла на эффективность последующих вычислений. Если рассмотреть полученную в результате систему линейных уравнений, то можно увидеть, что некоторые ненулевые элементы в матрице коэффициентов находятся между двумя линиями, это расстояния называется шириной полосы матрицы. Именно нумерация узлов влияет на ширину полосы, а это значит, что чем шире полоса, тем больше нужно итераций для получения нужного ответа.

моделирование алгоритм программный ansys

Рисунок 1 - Некоторые конечные элементы

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

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

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

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

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

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

2. Алгоритмический анализ задачи

2 .1 Постановка задачи

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

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

Исходными данными для проекта являются схема плоской конструкции с приложенной распределенной нагрузкой и закреплением (Приложение А), значения характеристик материала (модуль упругости -2*10^5 Па, коэффициент Пуассона -0.3), нагрузка 5000H .

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

2.2 Описание математической модели

Для решения поставленной задачи используется метод конечных элементов, описанный выше. Деталь разбивается на треугольные конечные элементы с узлами i, j, k (Рисунок 2).

Рисунок 2 - Конечно-элементное представление тела.

Перемещения каждого узла имеют две компоненты, формула (2.1):

шесть компонент перемещений узлов элемента образуют вектор перемещений {д}:

Перемещение любой точки внутри конечного элемента определяется соотношениями (2.3) и (2.4):

При объединении (2.3) и (2.4) в одно уравнение получается следующее соотношение:

Деформации и перемещения связаны между собой следующим образом:

При подстановке (2.5) в (2.6) получается соотношение (2.7):

Соотношение (2.7) можно представить в виде:

где [В] называется градиентная матрица вида (2.9):

Функции формы линейно зависят от координат x, y, и следовательно, градиентная матрица не зависит от координат точки внутри конечного элемента, и деформации и напряжения внутри конечного элемента в этом случае постоянны.

При плоском деформированном состоянии в изотропном материале матрица упругих постоянных [D] определяется по формуле (2.10):

где Е - модуль упругости, - коэффициент Пуассона.

Матрица жесткости конечного элемента имеет вид:

где h e - толщина, А e - площадь элемента.

Уравнение равновесия i -ого узла имеет вид:

Для учета условий закрепления существует следующий метод. Пусть имеется некоторая система N уравнений (2.13):

В случае, когда одна из опор неподвижна, т.е. U i =0, используют следующую процедуру. Пусть U 2 =0, тогда:

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

Для решения полученной системы выбираем метод Гаусса. Алгоритм решения методом Гаусса подразделяется на два этапа:

1. прямой ход: путём элементарных преобразований над строками систему приводят к ступенчатой или треугольной форме, либо устанавливают, что система несовместна. Выбирается разрешающая строка k-ая, где k = 0…n - 1, и для каждой следующей строки выполняется преобразование элементов

для i = k+1, k+2 … n-1; j = k+1,k+2 … n.

2. обратный ход: осуществляется определение значений неизвестных. Из последнего уравнения преобразованной системы вычисляется значение переменной х n , после этого из предпоследнего уравнения становится возможным определение переменной x n -1 и так далее .

2. 3 Графическая схема алгоритма

Представленная графическая схема алгоритма показывает основную последовательность действий выполненных при моделировании детали конструкции. В блоке 1 происходит ввод исходных данных. На основании введённых данных, следующим шагом происходит построение конечно элементной сетки. Далее в блоке 3 и 4 соответственно строится локальная и глобальная матрицы жесткости. В блоке 5 полученная система решается методом Гаусса. На основании решения в блоке 6 определяются искомые перемещения в узлах, и происходит вывод результатов. Краткая графическая схема алгоритма представлена на рисунке 7.

Рисунок 7 - Графическая схема алгоритма

3 . Про граммн ая реализация поставленной задачи

3.1 Отклонения и допуски трубной цилиндрической резьбы

Трубная цилиндрическая резьба (ГОСТ 6357-73) имеет треугольный профиль с закругленными вершинами и впадинами. Эта резьба применяется главным образом для соединения труб, арматуры трубопроводов и фитингов.

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

Предельные отклонения элементов трубной цилиндрической резьбы для диаметра “1” наружной и внутренней резьбы, приведены в таблицах 1 и 2 соответственно .

Таблица 1 - отклонения трубной наружной цилиндрической резьбы (по ГОСТ 6357 - 73)

Таблица 2 - отклонения трубной внутренней цилиндрической резьбы (по ГОСТ 6357 - 73)

Предельные отклонения наружной резьбы минимального наружного диаметра, формула (3.1):

dmin=dн + ei (3.1)

где dн - номинальный размер наружного диаметра.

Предельные отклонения наружной резьбы максимального наружного диаметра, вычисляется по формуле (3.2):

dmax=dн + es (3.2)

Предельные отклонения наружной резьбы минимального среднего диаметра, формула (3.3):

d2min=d2 + ei (3.3)

где d2 - номинальный размер среднего диаметра.

Предельные отклонения наружной резьбы максимального среднего диаметра, вычисляется по формуле (3.4):

d2max=d2 + es (3.4)

Предельные отклонения наружной резьбы минимального внутреннего диаметра, формула (3.5):

d1min=d1 + ei (3.5)

где d1 - номинальный размер внутреннего диаметра.

Предельные отклонения наружной резьбы максимального внутреннего диаметра, вычисляется по формуле (3.6):

d1max=d1 + es (3.6)

Предельные отклонения внутренней резьбы минимального наружного диаметра, формула (3.7):

Dmin=Dн + EI, (3.7)

где Dн - номинальный размер наружного диаметра.

Предельные отклонения внутренней резьбы максимального наружного диаметра, вычисляется по формуле (3.8):

Dmax=Dн + ES (3.8)

Предельные отклонения внутренней резьбы минимального среднего диаметра, формула (3.9):

D2min=D2 + EI (3.9)

где D2 - номинальный размер среднего диаметра.

Предельные отклонения внутренней резьбы максимального среднего диаметра, вычисляется по формуле (3.10):

D2max=D2 + ES (3.10)

Предельные отклонения внутренней резьбы минимального внутреннего диаметра, формула (3.11):

D1min=D1 + EI (3.11)

где D1 - номинальный размер внутреннего диаметра.

Предельные отклонения внутренней резьбы максимального внутреннего диаметра, вычисляется по формуле (3.12):

D1max=D1 + ES (3.12)

Фрагмент скиза резьбы можно увидеть на рисунке 6 главы 3.2.

3.2 Реализация отклонения и допусков трубной цилиндрической резьбы в ПО «Компас»

Рисунок 6 - Трубная цилиндрическая резьба с допусками.

Координаты точек отображены в таблице 1 приложения Д

Копирование построенной резьбы:

Выделяем резьбу > Редактор> копировать;

Вставка резьбы:

Ставим курсор на нужное нам место>редактор> вставить.

Результат построенной резьбы можно посмотреть в приложении Д

3.3 Реализация зада чи на языке программирования C#

Для реализации алгоритма прочностного расчета выбрана среда разработки MS Visual Studio 2010, используя язык C# из пакета . NET Framework 4.0. Применив подход объектно-ориентированного программирования, создадим классы содержащие в себе необходимые данные:

Таблица 3 - структура класса Element

Имя переменной

Лучшие статьи по теме