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

Анализ задач допускового проектирования. Анализ языков представления математических формул. Обзор особенностей выбранного языка программирования. Достоинства и недостатки платформы .NET. Разработка программы и оценка ее экономической эффективности.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 23.02.2016
Размер файла 1,3 M

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

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

1

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

ВВЕДЕНИЕ

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

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

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

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

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

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

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

проектирование язык программирование платформа

1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ

1.1 Анализ задач допускового проектирования

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

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

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

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

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

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

Предположим, что для использования в сложной технической системе существует набор из n альтернативных типов элементов ci (i=1,2,…, n). Выходные характеристики элементов образуют пространство X. Для каждого типа элементов ei эти характеристики имеют свои, отличающиеся друг от друга многомерные распределения и, следовательно, области распределения Мi. Каждый тип элементов имеет также свою стоимость Сi.

Таким образом, в пространстве характеристик X существует область работоспособности К и ряд областей распределения характеристик Мi (Рисунок 1.1). Данная задача обратна допусковому анализу и возникает, когда устройство спроектировано, но еще не выбраны требования на точность изготовления элементов.

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

Статистический структурный синтез - заданы лишь требуемые уровни внешних характеристик компонента РЭС и допуски на них. Требуется найти структуру компонента и номинальные параметры. Учитывая, что проблема структурного синтеза на ЭВМ (электронно-вычислительных машинах), даже по детерминированной модели, в настоящее время решена лишь ограниченных классов цепей, данную задачу в дальнейшем рассматривать не будем [4].

1

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

Рисунок 1.1 - Варианты взаимного расположения областей распределения Мi и области работоспособности К

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

1.2 Анализ средств моделирования выходных характеристик РЭА

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

Типичная форма функциональных ММ - система уравнений, выражающая взаимосвязи между фазовыми V (характеризуют состояние объекта), внутренними X (соответствуют параметрам элементов, составляющих модель объекта), внешними Q (характеризуют состояние внешней по отношению к объекту среды) и независимыми переменными, которыми могут быть время t и пространственные координаты Z1, Z2 и Z3. Решением системы уравнений являются зависимости элементов вектора V фазовых переменных от Z t, Z1, Z2, Z3, представляемые в виде совокупности графиков или в табличной форме.

Существенное преимущество машинных методов проектирования состоит в возможности проводить на ЭВМ эксперименты на математических моделях (ММ) объектов проектирования, отказавшись от дорогостоящего физического [Влах И., Сингхал К. Машинные методы анализа и проектирования электронных схем: Пер. с англ. М.: Радио и связь, 1988. 560 с] моделирования или сократив его.

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

Цель АП - повышение качества, снижение материальных затрат, сокращение сроков проектирования и ликвидация тенденции к росту числа инженерно-технических работников, занятых проектированием, повышение производительности их труда[3].

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

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

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

1.3 Анализ возможностей САПР в задачах допускового проектирования

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

Такой подход привел к развитию большого количества узкоспециализированных САПР (систем автоматизированного проектирования) для различной радиоэлектронной аппаратуры. Например, для задач проектирования топологии СВЧ-устройств используется Microwave Office и HFSS [7], для электрических схем - Electronics Workbench и Pspice [8], для диаграмм направленности антенн - PolarPlot, GAL-ANA [9,10].

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

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

При автоматизации задачи допускового проектирования для различных видов радиоэлектронных устройств можно рассматривать два подхода: интеграция специализированных программных модулей в каждую из САПР РЭА (ECAD систем) или использование существующих математических моделей выходных характеристик радиоэлектронных устройств в универсальном программном продукте для расчета допусков.

1.4 Анализ языков представления математических формул

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

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

Ввод и редактирование математических операций осуществляется на разработанном языке, который будет подробно рассмотрен далее в разделе 3 - “Разработка синтаксического анализатора”. Представление моделей в «естественном виде» для обеспечения их публикации в сети Интернет или печати, было решено произвести, используя стандартизированный язык разметки способный описывать математические формулы. Наиболее широкую популярность из них получили языки LaTeX (Типографическая разметка) и MathML (Структурная разметка). Далее о них поподробнее.

1.4.1 Язык разметки математических текстов MathML

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

Язык MathML является подмножеством языка XML (eXtensible Markup Language - расширяемый язык разметки), который часто служит для создания других языков. Такое использование XML сегодня вполне естественно и хорошо зарекомендовало себя и в других случаях, когда применение HTML для передачи данных новых типов наталкивалось на ограничения этого формата. К настоящему времени консорциум W3C опубликовал 2-е издание версии 2.0 спецификации языка MathML, что говорит о жизнеспособности и устойчивости проекта [11].

Среди целей, которые ставились рабочей группой W3C по математике при создании MathML, были:

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

- обеспечение кодировани, как математической символики, так и ее значений;

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

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

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

Из популярных броузеров с MathML работают (ОС Windows):

- IE 5.0 с плагином Techexplorer

- IE 5.5 с плагинами MathPlayer или Techexplorer

- IE 6.0+ (необязательно) с плагинами MathPlayer или Techexplorer

- Netscape 6.1 с плагином Techexplorer

- Netscape 7.0+

- Amaya, все версии (только Presentation MathML)

- Mozilla 0.9.9+

Все элементы MathML делятся на три группы: элементы представления, элементы содержания и интерфейсные элементы.

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

Наиболее важными элементами представления являются mi, mn и mo, используемые для представления идентификаторов, чисел и операторов соответственно. Обычно эти элементы отображаются разными стилями: числа -- прямым шрифтом, идентификаторы -- наклонным, вокруг операторов оставляется дополнительное свободное пространство.

В терминах разметки, большинство элементов MathML определяются открывающим и закрывающим тегами, которые ограничивают содержание элемента. Некоторые элементы, например, знаки операций (<plus/>) определяются одиночным тегом.

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

Токены (token elements) представляют индивидуальные символы, названия, числа, обозначения и т. д. В основном в качестве содержания токены могут иметь только символы.

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

Пример разметки математического выражения приведен ниже:

<mfrac>

<mrow>

<msup><mi>a</mi><mn>2</mn></msup>

<mo>+</mo>

<mi>a</mi>

<mi>b</mi>

<mo>+</mo>

<msup><mi>b</mi><mn>2</mn></msup>

</mrow>

<mrow>

<mi>a</mi>

<mo>+</mo>

<mi>b</mi>

</mrow>

</mfrac>

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

1.4.2 LaTeX - типографическая разметка

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

Становлению TeX как стандарта для набора формул в значительной степени поспособствовало Американское математическое сообщество (The American Mathematical Society -- AMS), которое субсидировало разработку расширения TeX, известного как AMSTeX, в начале восьмидесятых годов прошлого столетия. В 1987 году наработки AMSTeX были добавлены в LaTeX в виде пакета amsmath. Вместе с amsmath в LaTeX было добавлено множество улучшений, позволяющих набирать действительно изощрённую математику. Поэтому при использовании в тексте математики в шапке документа следует в обязательном порядке загружать пакет amsmath:

\usepackage{amsmath}

При формировании текста формулы подразделяются на строчные и выносные. Строчные формулы набираются внутри абзаца вместе текстом. По описанию формулы LaTeX создаёт бокс, который обрабатывается наравне с обычными текстовыми боксами. Как правило, строковые формулы это небольшие вставки, вроде E=mc2. Выносные или выключенные формулы выводятся за пределы абзаца.

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

Однострочные выносные формулы формируются с помощью окружения equation. Так как в этом случае формула вынесена за пределы абзаца, то её можно пронумеровать. Данный пример изображен на рисунке 1.2.

\begin{equation}

\label{eq:math:ex1}

\int\limits_{-\infty}^{\infty}

e^{-x^2/2}dx=\sqrt{2\pi}

\end{equation}

Рисунок 1.2 - Пример LaTeX-разметки математического текста

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

\displaystyle -- стиль, используемый для выносных формул,

\textstyle -- стиль строчных формул,

\scriptstyle -- в этом стиле набираются индексы,

\scriptscriptstyle -- индексы второго уровня.

LaTeX содержит еще множество инструментов для разметки математических формул, однако рассматривать их все не целесообразно [12].

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

1.5 Функциональные требования

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

1. Осуществление ввода математических формул в текстовом формате на специализированом языке.

2. Визуализация формул в графическом виде на математически-ориентированном языке.

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

– арифметические операторы;

– элементарные функции (sin, cos, tan, pow, abs, sqrt, th, sh, ch, log);

– операторы цикла;

– функции взятия частных производных;

– представление математической модели в виде нескольких математических формул.

4. Вычисление значений выходных характеристик радиоэлектронных устройств по заданной математической модели.

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

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

7. Обработка алгоритмами синтеза допусков данных полученных от сторонних САПР.

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

1.6 Выводы к разделу 1

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

1. Решение задач допускового проектирования для радиоаппаратуры происходит путем проведения серий экспериментов над их математическими моделями заданных математическим описаниям или их представлениями средствами сторонних САПР.

2. Для решения задач допускового проектирования необходимо обеспечить взаимодействие алгоритмов расчетов допусков, математических моделей и сторонних САПР РЭА.

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

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

2. АНАЛИЗ ПРОГРАМНЫХ СРЕДСТВ

2.1 Обзор особенностей выбранного языка программирования

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

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

– высокая производительность;

– устойчивость к сбоям;

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

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

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

Нельзя сказать, что единственный фактор, влияющий на производительность, - особенности языка. При сравнении быстродействия языков на самом деле сравнивается мастерство создателей компиляторов, а не сами языки [13].

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

Таким образом, для реализации моего проекта был выбран другой язык программирования - С#. Это объектно-ориентированный язык программирования построенный на платформе .NET, обладающий современными технологиями программирования и схожим синтаксисом с языком С++ .

2.2 Достоинства платформы .NET

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

Приложение, написанное на любом .NET-совместимом языке является межплатформенным. В настоящий момент платформа .NET портирована на большинство популярных системы, в том числе и на мобильные системы, такие как MS Windows mobile.

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

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

Любое .NET приложение является автономным, в том смысле, что не зависит от других программ, в частности от ОС. Установка приложения написанного на одном из .NET языках может быть произведена обычным копированием файлов (исключение составляет создание ярлыков в меня "Пуск" и др. местах).

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

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

2.3 Недостатки платформы .NET

Приложения, написанные под платформу .NET работают медленнее, это факт. В некоторых случаях скорость может упасть на 15%, что иногда является неприемлемым (например, при создании 3D приложений). Задержки в выполнении связаны с промежуточным языком MSIL, ведь для того чтобы его скомпилировать в выполняемый файл тоже нужно время так как приложение компилируется по частям, равномерно при работе программы.

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

Необходимо наличие библиотеки FrameWork. Данный недостаток полностью устранен с выходом Windows Vista и более современных ОС MS Windows, т.к. данная библиотека встроена в эти системы по умолчанию.

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

2.4 Особенности среды разработки

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

Обычно среда программирования включает в себя:

– текстовый редактор;

– компилятор и/или интерпретатор;

– средства автоматизации сборки;

– отладчик.

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

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

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

MS Visual Studio Express - бесплатная среда программирования профессионального уровня на языках C++, C# и Visual Basic. Visual Express предоставляет бесплатные инструменты разработки приложений для новейших платформ Windows , Windows Phone и Интернета.

Visual Studio Express позволяет создавать приложения Windows Forms, WPF, консольные приложения и библиотеки классов, а также проекты Win32, библиотеки классов и приложения среды CLR с использованием C++. Вы можете объединять проекты на разных языках в одно большое единое решение. Visual Studio Express насыщена функциональностью улучшения структуры кода, анализа и мощными средствами отладки во время выполнения приложений.

Visual Studio Express можно использовать как стартовую платформу начала программирования, для любительских разработок и разработок коммерческих приложений в соответствии с условиями лицензии. Приложения, созданные в Visual Studio Express поддерживаются в коммерческих выпусках среды: Microsoft Visual Studio Professional, Microsoft Visual Studio Ultimate, что дает возможность расширять свои проекты до профессионального уровня, по мере приобретения опыта и возрастания ваших потребностей.

2.5 Использование сторонних библиотек

В ходе разработки программного обеспечения для формирования математических моделей возникла необходимость реализовать возможность редактирования и визуализации математических формул. Реализация средств визуального редактирования математических формул является очень трудоемкой задачей. Был произведен поиск готовых решений, способных решить ее. Библиотека визуального редактирования MathML текстов NuGenEQML полностью решала поставленную задачу. NuGenEQML - это программное обеспечение, распространяемое по лицензии GNU. Исходный код данной библиотеки размещен на сайте GitHub и доступен по ссылке: github.com/AnthonyNystrom/NuGenEQML.

Пример работы с инструментарием данной библиотеки представлен на рисунке 2.1.

Рисунок 2.1 - «Пример работы с инструментарием NuGenEQML»

Данная библиотека имеет следующий инструментарий:

– загрузка MathML-текстов;

– редактирование и создание любых математических конструкций, которые поддерживает стандарт MathML;

– отображение MathML-разметки в виде графических формул;

– копирование и вставка отдельных MathML-элементов;

– сохранение полученных графических формул в популярные графические форматы (jpg, png, gif);

– настройка шрифтов и стилей отображения формул.

2.6 Выводы к разделу 2

Проведя анализ различных языков программирования, сред разработки приложений и уже готовых реализаций некоторых компонентов системы было сделано следующие выводы. Язык программирования C# основанный на принципах ООП позволяет быстро создавать большие, сложные проекты, обладает простым в использовании синтаксисом и позволяет легко вносить новые изменения в существующие проекты. Реализация языка С# на технологии .NET Framework позволяет создавать надежные отказоустойчивые приложения обладающие достаточно высокой производительностью. Бесплатная IDE Visual Studio Express очень удобна в использовании и обладает превосходными инструментами разработки [21].

Таким образом было принято решение разрабатывать систему на языке С# в интегрируемой среде разработки Visual Studio Express. Также была найдена готовая реализация компонента визуального редактирования математических текстов NuGenEQML. Данная библиотека также задействована в проекте.

3. ОСНОВНЫЕ РЕШЕНИЯ ПО РЕАЛИЗАЦИИ КОМПОНЕНТОВ СИСТЕМЫ

3.1 Реализация общей архитектуры программной системы

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

3.2 Библиотека формирования математических моделей

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

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

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

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

Разрабатываемый язык подобен языку описания математических текстов такой известной системы как MatLab. Он формализированной и описывается в форме Бэкуса- Наура (БНФ) следующим образом:

<ExprCTRL> ::= <FunctionCTRL>

<ExprRavno> ::= <Variable> `=' <MathExpr> [<Comparison> <MathExpr>]

<Comparison> ::= '=' | '>' | '<' | '>=' | '<=' | '<>'

<MathExpr> ::= <Term> {<Operator1> <Term>}

<Operator1> ::= '+' | '-' | 'or' | 'xor'

<Term> ::= <Factor> {<Operator2> <Factor>}

<Operator2> ::= '*' | '/' | '^' | '%'|

<Factor> ::= <UnaryOp> <Factor> | <Base> ['^' <Factor>]

<UnaryOp> ::= '+' | '-' | '=+'| '=-'

<Base> ::= <Variable> | <Function> | <Number> | '(' <MathExpr> ')'

<Function> ::= <FuncName> '(' <MathExpr> ')'

<FunctionCTRL> ::= <FuncNameCTRL> ['(' <MathExpr> {','<MathExpr>} ')']

<FuncName> ::= 'sin' | 'cos' | 'ln'

<FuncNameCTRL> ::= 'for'| 'if'

<Variable> ::= <Letter> {<Letter> | <digit>}

<Letter> ::= 'A' | ... | 'Z' | 'a' | ... | 'z' | '_'

<digit> ::= '0' | ... | '9'

<Number> ::= <digit> {<digit>} ['.' <digit> {<digit>}]

[('E' | 'e') ['+' | '-'] <digit> {<digit>}]

Формы Бэкуса-наура (БНФ) традиционно применяются при описании грамматики формальных языков (в том числе и словно программирование). Эти формы достаточно просто интерпретируются, отличаются лаконичностью и точностью. Они состоят из доступных пониманию буквопечатающих, что называются нетерминальними и терминальными символами. На особенное внимание в БНФ заслуживает символ '::=', который переводится как "СОСТОИТ Из". Определение языковой конструкции в БНФ допускает размещение какого-либо нетерминального символа слева от символа '::='.

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

3.2.2 Разработка основных алгоритмов формирования ММ

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

В процессе преобразования строковая переменная «Expression» хранящая в себе входящую строку математического текста передается по ссылке в функцию «Add», алгоритм которой представлен на рисунке 3.2. Функция «Add» реализует жадный алгоритм извлечения лексемы из входящей строки. Она возвращает в качестве результата полученную лексему и удаляет из входящей строки «Expression» символы, из которых эта лексема получена. Также эта функция принимает аргумент типа «Lexem» Previous. Этот аргумент представляет собой лексему предшествующую полученой. Она используется для выявления синтаксических ошибок.

В случае успешного извлечения лексемы функция «Add» выполняется снова до тех пор, пока переменная «Expression» не станет пустой строкой.

Рисунок 3.1 - Алгоритм преобразования строки в массив лексем

Рисунок 3.2 - Алгоритм работы функции «Add»

Алгоритм преобразования списка лексем реализован в виде рекурсивной функции «BuldTree» (рис. 3.3).

Рисунок 3.3 - Алгоритм работы функции «BuldTree»

Этот алгоритм реализует построение дерева, состоящие из математических операторов и их операндов (чисел или переменных). В ходе работы алгоритма производится поиск по списку лексем в указанном аргументами «start» и «end» диапазоне индексов.

Если полученная лексема является оператором, то производится рекурсивный вызов этой же функции с аргументами указывающие индекс полученной лексемы и аргументами «start» и «end». Таким образом, производится построение нового уровня дерева и получение ссылок на их узлы.

Если полученная лексема является числом или переменной, то алгоритм завершает свою работу, передав в качестве возвращаемого значения новый объект типа «INode» содержащий в себе ссылки на полученные узлы.

3.2.3 Взаимодействие компонента формирования ММ с внешними системами

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

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

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

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

1

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

Рисунок 3.4 - Взаимодействие компонента со внешними системами

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

3.2.4 Разработка диаграмм классов

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

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

Диаграммы классов создаются при логическом моделировании программных средств (ПС) и служат для следующих целей:

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

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

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

4. Для моделирования логики программных компонент (будет описано в последующих статьях).

5. Для моделирования логики обработки данных

1

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

Рисунок 3.5 - Диаграмма классов разрабатываемого компонента

3.3 Библиотека расчета допусков

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

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

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

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

MathModels - массив, что содержит ссылки ко всем доступным математическим моделям системы.

ShowGUI () - процедура, что вызывает окно UserForm.

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

3.4 Библиотека обмена данными с внешними источниками

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

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

– название математической модели;

– дата последнего редактирования;

– имена входных параметров;

– имена выходных параметров;

– массив данных в трассировки.

Формат хранения математических моделей реализован в виде XML - документа. Данный документ должен содержать следующие данные:

– название математической модели;

– дата последнего редактирования;

– имена входных параметров;

– имена фазовых переменных;

– имена выходных параметров;

– текст математической модели;

– дополнительная информация.

3.5 Выводы к разделу 3

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

4. РУКОВОДСТВО ПРОГРАММИСТА

4.1 Назначение и условия применения программы

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

Компонент обеспечивает соответствующий функционал:

– формирование математических моделей;

– обработку математических моделей алгоритмами допускового проектирования;

– обмен данными со сторонними САПР и сохранение результатов роботы.

Компонент поставляется в виде исполняемого exe-файла.

Для запуска приложения на компьютере должна быть установлена библиотека .Net Framework 3.5 или выше.

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

– Оперативная память - не ниже 512Мб;

– операционная система MS Windows Vista/7/8;

– клавиатура;

– манипулятор типа мышь;

– монитор.

4.2 Характеристика программы

“ToleranceCAD” - программная система допускового проектирования радиоэлектронных элементов. Программная система разработана в среде Visual studio 2010. Она состоит из набора файлов содержащих исходный код программы сгруппированных по папкам. Весь исходный код программы написан на языке C#.

Программная система допускового проектирования состоит из следующих проектов:

1. eqml - проект библиотеки визуального редактирования MathML-текстов. Распространяется по лицензии GNU;

2. InterfaceDef - в данном проекте описываются интерфейсы взаимодействия компонентов системы и доступные для всех компонентов структуры данных, реалізован механізм контекстов;

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


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

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