автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.12, диссертация на тему:Методы создания программного обеспечения САПР на основе компактной обработки разреженных матриц

кандидата технических наук
Амахвр Юсеф Махди
город
Санкт-Петербург
год
2008
специальность ВАК РФ
05.13.12
Диссертация по информатике, вычислительной технике и управлению на тему «Методы создания программного обеспечения САПР на основе компактной обработки разреженных матриц»

Автореферат диссертации по теме "Методы создания программного обеспечения САПР на основе компактной обработки разреженных матриц"

На правах рукописи

Амахвр Юсеф Махди

МЕТОДЫ СОЗДАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ САПР НА ОСНОВЕ КОМПАКТНОЙ ОБРАБОТКИ РАЗРЕЖЕННЫХ МАТРИЦ

Специальность 05 13 12 - Системы автоматизации проектирования (приборостроение)

Автореферат диссертация на соискание ученой степени кандидата технических наук

Санкт-Петербург - 2008

003449482

Работа выполнена на кафедре систем автоматизированного проектирования Санкт-Петербургского государственного электротехнического университета "ЛЭТИ" им В И Ульянова (Ленина)

Научный руководитель доктор технических наук, профессор

Анисимов Владимир Иванович

Официальные оппоненты* доктор технических наук, профессор

Арустамов Сергей Аркадьевич, кандидат технических наук Фомичев Платон Борисович

Ведущая организация Санкт-Петербургский государственный университет аэрокосмического приборостроения

Защита диссертации состоится "18" "ноября" 2008 г в 15 50 часов на заседании совета по защите докторских и кандидатских диссертаций Д 212 227 05 Санкт-Петербургского государственного университета информационных технологий, механики и оптики по адресу 197101, г Санкт-Петербург, пр Кронверкский, д 49

С диссертацией можно ознакомиться в библиотеке СПбГУ ИТМО

Автореферат разослан "17" октября 2008 г

Ученый секретарь

диссертационного совета /с* —V В И Поляков

Общая характеристика работы Актуальность проблемы.

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

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

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

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

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

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

Целью диссертационной работы является исследование методов построения программного обеспечения САПР на основе технологии разреженных матриц

В работе поставлены и решаются следующие основные задачи

1 Сравнительный анализ возможных методов создания программного обеспечения САПР на основе технологии разреженных матриц

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

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

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

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

Основные методы исследования

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

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

Научная новизна результатов диссертационной работы заключается в следующем-

1 Построена структура классов Element и Matrix и разработаны общие методы этих классов, реализующие доступ к элементам списков, а также добавление в них новых элементов

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

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

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

2 Методика непосредственного формирования компактного описания схемы в виде списочных структур на основании исходной информации о параметрах компонентов

3 Общая методика виртуального решения задачи расчета переменных

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

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

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

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

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

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

Полученные при выполнении работы результаты использованы в учебном процессе кафедры САПР СПБГЭТУ для построения программного обеспечения систем автоматизированного проектирования в различных предметных областях Апробация работы.

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

1 Международная конференция "Приборостроение в экологии и безопасности человека", Санкт-Петербург ГУАП, 2007

2 Международная конференция "Современные технологии обучения международный опыт и российские традиции", Санкт-Петербург, 2007

3 Конференция профессорско-преподавательского состава СПбГЭТУ, Санкт-Петербургский государственный электротехнический университет 2007 г 4. Конференция профессорско-преподавательского состава СПбГЭТУ, Санкт-Петербургский Государственный электротехнический университет 2008 г Публикации

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

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

Основная часть диссертации изложена на 137 листах Работа содержит 44 рисунка и 2 таблицы

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

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

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

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

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

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

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

ед+яЛ+сд.+ял+^о

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

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

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

количеству элементов п2 полностью заполненной матрицы, то есть а = т/2

/ п

Коэффициент разреженности в реальных системах может составлять значения, меньше чем 10"2-1(Г3, что требует использования специальной технологии хранения и обработки разреженных матриц В работе проведен сравнительный анализ известных методов хранения и обработки разреженных матриц с целью сравнения их эффективности и трудоемкости использования При этом показано, что все известные методы с разреженными матрицами могут быть разделены на три группы

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

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

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

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

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

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

Поскольку задача построения программного обеспечения, поддерживающего работу со списочными структурами, достаточно трудоемка, для ее решения используется технология работы с коллекциями, которая стандартизирует способ обработки групп объектов прикладных программ, предлагая для разработки программного обеспечения уже готовые решения построения структур данных В работе показано, что наибольший интерес для практического решения поставленных задач представляет класс ArrayList, предназначенный для поддержки динамических массивов, размеры которых могут изменяться в процессе работы Показано, что в общем случае при создании списка, обеспечивающего работу с разреженными матрицами, необходимо реализовать обработку этих матриц с выполнением сканирования как по строкам, так и по столбцам Для решения такой обобщенной задачи создаются два объекта ArrayList rows и ArrayList columns Каждый элемент объекта rows соответствует определенной строке матрицы и ссылается на ненулевой элемент строки, либо указывает на null если в строке элементов нет Каждый элемент объекта columns соответствует определенному столбцу матрицы и ссылается либо на ненулевой элемент в данном столбце, либо указывает на null если в столбце нет элементов

Для описания элементов списка создан класс Element, в качестве членов которого используется переменная double val для задания значений элементов исходной матрицы, и переменные int i, int j для задания индексов столбцов и строк этих значений Кроме того, членами класса являются ссылки типа Element nextl и Element nextJ для указания на следующий элемент в строке и в столбце Методы класса включают в себя единственный конструктор с тремя аргументами для создания экземпляра класса

Для описания всей разреженной матрицы вводится класс Matrix, членами которого являются ссылка на Element el, а также объекты rows и columns Методы класса включают в себя методы addToRows, addToColumns, resize и setAt, посредством которых реализуются добавления новых элементов, и методы getAtRows и getAtColumns, которые обеспечивают доступ к элементам строк и столбов

В работе предложен алгоритм добавления элемента с координатами i, j и вещественным значением val в строку, заключающийся в следующем

1 Из списка объекта строк выбирается ссылка с номером строки i

2 Если текущая ссылка нулевая, то в данной строке пока нет элементов Данная ссылка перенастраивается на новый созданный объект с координатами (i, j) и значением val Таким образом, в строке появляется первый элемент Конец процедуры

3 Если координата j объекта для текущей ссылки равна координате j нового элемента, то элемент с этими координатами уже присутствует в матрице, у элемента заменяется значение val Конец процедуры

4 Если координат j объекта для текущей ссылки больше, чем координата j нового элемента, то новый объект должен быть вставлен в начале списка 1-й строки Ссылка на следующий объект нового элемента приравнивается к ссылке текущего элемента

5 Вводятся понятия ссылки на предыдущий, равной текущей ссылке, и ссылки на следующий, равной ссылке на следующий объект

6 Если ссылка на следующий нулевая, переход к шагу 11

7 Если координата j объекта под ссылкой на следующий равна координате j нового элемента, то элемент с такими координатами в матрице уже есть, у него заменяется значение val Конец процедуры

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

9 Итерируются предыдущая и следующая ссылки, каждая перенастраивается на ссылку следующего в строке своего объекта

10 Переход к шагу 6

11 Если за время работы процедуры ни один элемент не был изменен или вставлен, то перенастраивается ссылка на следующий в строке у объекта под ссылкой на предыдущий так, чтобы она указывала на новый созданный объект -те, объект является последним в строке Конец процедуры

Аналогичным образом реализован алгоритм добавления элемента с координатами i, j и вещественным значением val в столбец

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

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

М _ 8п2 1

М' 24*п2*а + &*п~3*а тт..

где а =-= — - коэффициент разреженности исходной матрицы

тт ш п

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

Для реализации метода, допускающего сканирование только по строкам, используется класс Element, в котором исключен член класса Element nextJ Списки в этом случае будут связаны только с объектами rows Для описания разреженных матриц в такой сокращенной схеме также используется класс Matrix, из которого исключаются объект columns, а также объявления методов addToColumns, getToColumns Кроме того, в описании метода setAt исключается вызов метода addToColumns и в описании метода resize удаляется вызов метода Add для объекта columns

Аналогичным образом может быть построена сокращенная схема компактной обработки, позволяющая осуществлять сканирование только по столбцам Для построения такой компактной схемы следует исключить из описания класса Element член класса Element nextl Для описания всей разреженной матрицы также используется класс Matrix, из которого исключается объект rows, и методы addToRows и getToRows Кроме того, описание метода setAt в этом случае не должно содержать вызов метода addToRows Соответственно в методе resize следует исключить метод Add для объекта rows

В работе показано, что эффективность обеих сокращенных схем может быть определена выражением

8 *п2 _ 1 п2 *ог*16 + и*4 2* а Сопоставление этого выражения с аналогичным выражением для обобщенного случая показывает, что эффективность использования

оперативной памяти для обеих сокращенных схем увеличивается почти в 1 5 раза

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

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

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

Реализация функций формирования компактного описания частных матриц на основе списочных структур компонентов конкретного типа осуществляется на основе введенных в работе классов Matrix и Element С целью упрощения синтаксических конструкций функции формирования оформлены как методы классов, в которых соответствующие функции будут вызываться Поскольку объем программного кода формирования достаточно велик, то описания всех функций реализуются в частичных классах (partial class), которые являются частями основного класса, содержащего функции формирования

Формирование компактного описания частных матриц компонентов реализуется по единой методике на основе введенных в работе классов Matrix и Element Методы этих классов getAt, setAt включаются в операторы, формирующие основные переменные, которыми характеризуется каждый элемент в списке

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

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

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

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

При этом решены две задачи

• виртуальная ¿{/-факторизация компактного описания ,

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

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

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

предлагается вначале осуществлять перестановку в пределах индексов строк и столбцов от 1 до nv, а затем от nv+1 до п, где ю - число узлов схемы, а и-общее число переменных схемы При этом диагональные элементы блочной матрицы, соответствующей последовательным переменным, оказываются ненулевыми, что позволяет реализовать выполнение LU-факторизации

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

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

Расчет переменных моделируемой схемы выполняется на базе проведенной L [/-факторизации также на основе списочных структур, путем выполнения виртуального прямого и обратного хода без восстановления матриц L и JJ в полной разреженной форме При решении этих задач также используются введенные в диссертационной работе классы Matrix и Element и содержащиеся в этих классах методы getAt, setAt

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

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

Моделирование систем в частотной области реализуется на основе класса Complex, что требует изменения типа переменных, являющихся членами классов Matrix и Element Поскольку основными элементами, определяющими частотные свойства схемы, являются двухполюсные элементы С и L, схема включения которых, так же как и для резистора R, определяется двумя узлами, то для формирования компактного описания двухполюсников используется обобщенная функция

public static void form_d(int[,] in_d, float[] z_d, int nd, char td){// } Аргументы этой функции определяются согласно конкретному типу двухполюсника - R, L или С

Формирование компактного описания для каждого типа двухполюсника реализуется на основе методов getAt, setAt, являющихся членами класса Matrix

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

, . as" a.s'+a„ wis) = —--1-—

P„s" +

В работе приводится методика реализации формирования компактного описания типовых представлений таких функции для управляемых источников типа ИТУН, ИТУТ, ИНУН и ИНУТ Формирование реализуется на основе объектов класса Complex при помощи методов getAt и setAt классов Matrix и Element Для многополюсных, компонентов задача расчета компактного описания схемы в частотной области реализуется на основе общих методов макромоделирования, рассмотренных в третьей главе диссертационной работы

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

В работе показано, что поставленная задача может быть решена на основе включения в алгоритм объектов классов Matrix и Element, при помощи которых реализуется компактное описание задачи на каждом шаге итерационной процедуры решения уравнений В диссертации разработана общая блок-схема для виртуальной формы организации вычислительного процесса Схема содержит блок "Выбор способов разгона", в котором устанавливаются ключи в соответствии с предпочтительным методом продолжения решения по параметру - метод взвешенных источников, метод взвешенных ветвей и т д На каждом шаге разгона вычисляется значение параметров для продолжения решения и осуществляется формирование объектов классов Matrix и Element, после чего выполняется блок "Формирование компактного описания компонентов", который состоит из совокупности последовательно выполняемых блоков формирования компактного описания компонентов каждого типа

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

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

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

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

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

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

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

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

Предлагаемая в диссертационной работе структурная схема компактной формы расчета чувствительности содержит три основных блока "Формирование компактного описания W", "Формирование формирования описания S " и "Решение уравнения чувствительности"

Блок "Формирование компактного описания W" преследует цель формирования компактной формы матрицы W и реализуется в полном соответствии с общей методикой, разработанной в третьей главе Блок "Формирование компактного описания S " предназначен для формирования задающего вектора уравнения чувствительности на основании структуры моделирующих схем компонентов Блок "Решение уравнения чувствительности" реализует расчет вектора чувствительности методом виртуальной LU- факторизации на базе списочных структур

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

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

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

2 Предложена структура классов Element и Matrix и разработаны общие методы этих классов, реализующие доступ к элементами списков а также добавление в них новых элементов

3 Разработаны методы прямого формирования математического

описания в компактной форме на основе информации о параметрах и схеме включения компонентов

4 Предложена стратегия выбора ведущего элемента, основанная на предложенном в диссертационной работе алгоритме перестановки строк и столбцов, сочетающим в себе критерий Марковича и

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

5 Разработаны методы виртуальной £ [/-факторизации и реализации

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

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

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

1 Амахвр Юсеф Компактные методы обработки разреженных матриц задач мониторинга на основе списочных структур Труды пятой международной конференции "Приборостроение в экологии и безопасности человека" (ПЭБЧ'О?) СПБ ГУАП, 2007, с 157-160

2 Амахвр Юсеф Чувствительность нелинейных систем к вариации параметров//Изв СПБГЭТУ «ЛЭТИ» Сер Информатика, управление и компьютерные технологии -2007 -вып 2 -с 22-26

3 Амахвр Юсеф Обработка разреженных матриц на основе списочных структур классов коллекций С# Материалы XIII Международной конференции "Современное образование содержание, технологии, качество" Санкт-Петербург, 2007г-с 193-195

4 Амахвр Ю М Компактная обработка разреженных матриц на основе списков// Вестник компьютерных и информационных технологий-2008 №4 -с 49-52

Подписано в печать 08 09 08 Формат 60*84 1/16 Бумага офсетная Печать офсетная Печ л 1,0 Тираж 100 экз Заказ 45

Отпечатано с готового орипшал-макета в типографии Издательства СПбГЭТУ "ЛЭТИ"

Издательство СПбГЭТУ "ЛЭТИ" 197376, С -Петербург, ул Проф Попова, 5

Оглавление автор диссертации — кандидата технических наук Амахвр Юсеф Махди

Введение.

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

1.1. Сравнительная оценка математического описания систем в различных базисах.

1.2. Компактное описание моделируемых систем.

Глава 2. Компактная обработка разреженных матриц на основе классов

Коллекций.

2.1. Полная схема компактной обработки списочной структуры.

2.2. Сокращенная схема на основе строчной обработки списочной Структуры.

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

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

3.1. Общие принципы формирования компактного описания Компонентов.

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

3.3. Формирование компактных частных матриц задающих и управляемых источников.

3.4. Формирование компактного описания макромоделей Многополюсников.

3.5. Решение уравнений на основе компактного описания моделируемой системы.

Глава 4. Реализации компактных методов для прикладных задач.

4.1. Моделирование систем в частотной области.

4.2. Моделирование стационарного режима нелинейных систем.

4.3. Расчет чувствительности систем к вариации параметров.

Введение 2008 год, диссертация по информатике, вычислительной технике и управлению, Амахвр Юсеф Махди

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

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

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

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

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

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

В работе поставлены и решаются следующие основные задачи

1. Сравнительный анализ возможных методов создания программного обеспечения САПР на основе технологии разреженных матриц.

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

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

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

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

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

1. Построена структура классов Element и Matrix и разработаны общие методы этих классов, реализующие доступ к элементами списков, а также добавление в них новых элементов.

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

3. Разработана методика виртуальной L [/-факторизации математического описания схемы в компактной форме в виде списочных структур. Практическая ценность полученных в диссертационной работе результатов заключается в следующем:

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

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

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

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

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

Заключение диссертация на тему "Методы создания программного обеспечения САПР на основе компактной обработки разреженных матриц"

Основные результаты работы сводятся к следующим :

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

2. Предложена структура классов Element и Matrix и разработаны общие методы, этих классов, реализующие доступ к элементами списков, а также добавление в них новых элементов.

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

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

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

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

Заключение

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

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

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

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

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

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

Библиография Амахвр Юсеф Махди, диссертация по теме Системы автоматизации проектирования (по отраслям)

1. Автоматизация схемотехнического проектирования / А.И.Бутко и др.. -М. : Радио и связь, 1987. 386 с.

2. Автоматизация схемотехнического проектирования: учеб. пособие для вузов / В.Н.Ильин и др.; под. ред. В.Н.Ильина. М. : Радио и связь, 1987. -368 с.

3. Автоматизация схемотехнического проектирования на мини-ЭВМ / В.И.Анисимов и др.; под ред. В.И. Анисимова. JI. : Изд-во Ленингр. ун-та, 1983.-199 с.

4. Анисимов, В.И. К расчету нестабильности (дрейфа) нулевого уровня усилителей постоянного тока / В.И.Анисимов // Автоматика и телемеханика. 1965.-№5.-С. 867-881.

5. Анисимов, В.И. К расчету точности электронных схем / В.И.Анисимов // Изв. вузов. Приборостроение. 1968. - № 4. - С. 5 - 10.

6. Анисимов, В.И. Комплекс диалоговых пакетов моделирования аналоговых и цифровых электронных схем на IBM/PC / В.И.Анисимов, К.Б.Скобельцын,

7. A.В.Никитин // Автоматизированное проектирование в радиоэлектронике и приборостроении : межвуз. сб. науч. тр. JL, 1991. - С. 3 - 6.

8. Анисимов, В.И. Моделирование непрерывных систем : учеб. пособие /

9. B.И.Анисимов. СПб. : ЛЭТИ, 2006. - 172 с.

10. Анисимов, В.И. Обобщенные уравнения электронных схем / В.И.Анисимов // Радиотехника и телемеханика. 1967. - № 9. - С. 1663 - 1666.

11. Анисимов, В.И. Топологический расчет электронных схем / В.И. Анисимов. М. : Энергия, 1977. - 240 с.

12. Арайс, Е. Автоматизация расчета сложных технических устройств / Е.Арайс, Л.Арайс. -М. : Рига, 1987. 79 с.

13. Арайс, Е. Моделирование неоднородных цепей и систем на ЭВМ / Е.Арайс, В.М.Дмитриев. М. : Радио и Связь, 1982. - 157 с.

14. Беллман, Р. Введение в теорию матриц / Р.Беллман.; пер. с. англ. под. ред. В.Б. Лидского. М. : Наука, 1969. - 336 с.

15. Бычков, Ю.А. Сборник задач и практикум по основам теории электрических цепей : учеб. пособие / Ю.А.Бычков и др.. СПб. : Питер,2005.-304 с.

16. Влах, И. Машинные методы анализа и проектирования электронных схем / И.Влах, К.Сингхал. М. : Радио и связь, 1988. - 560 с.

17. Гамма, Э. Приемы объектно-ориентированного проектирования / Э.Гамма, Р.Хелм. СПб. : Питер, 2001.

18. Гарнаев, А.Ю. Самоучитель Visual Studio.Net 2003 / А.Ю.Гарнаев. СПб. : БХВ - Петербург, 2003. - 688 с.

19. Гербер, Ш. Полный справочник по С# / Ш.Гербер. М. - СПб. - Киев,2006. 740 с.

20. Глориозов, E.JI. Введение в автоматизацию схемотехнического проектирования / Е.Л.Глориозов, В.Г.Сорин, П.П.Сыпчук. — М. : Советское радио, 1976.-232 с.

21. Демидович, Б.П. Основы вычислительной математики / Б.П.Демидович, И.А.Марон. 2-е изд. - М. : Физматгиз, 1963. - 658 с.

22. Джеймс, О. Итерационные методы решения нелинейных систем уравнений / О.Джеймс, Р.Венер.; пер. с. англ. под. ред. Э.В. Вершкова, Н.П. Жидкова, И.В. Коновальцева. М. : Мир, 1975- 551 с.

23. Джордж, А. Численное решение больших разреженных систем уравнений / А.Джордж, Дж.Лю.; пер. с. англ. Х.Д. Икрамова-М. : Мир, 1984. 333 с.

24. Диалоговые системы схемотехнического проектирования / В.И.Анисимов и др.. М. : Радио и связь, 1988. - 287 с.

25. Златев, 3. Прямые методы для разреженных матриц / З.Златев, О.Эстербю. -М. : Мир, 1987.-111 с.

26. Зыков, A.A. Основы теории графов / А.А.Зыков. М. : Наука, 1987.

27. Икрамов, Х.Д. Численное решение матричных уравнений / Х.Д.Икрамов. -М. : Наука. 190 с.

28. Ильин, В.Н. Машинное проектирование электронных схем / В.Н.Ильин. -М. : Энергия, 1972.-279 с.

29. Ильин, В.Н. Основы автоматизации схемотехнического проектирования / В.Н.Ильин. М. : Энергия, 1979. - 391 с.

30. Ильинский, Н.Ф. Приложение теории графов к задачам электромеханики / Н.Ф.Ильинский, В.К.Цаценкин. -М. : Энергия, 1968. 199 с.

31. Имитационное моделирование производственных систем / А.А.Вавилов и др.. Киев : Техника, 1983.-415 с.

32. Калиткин, H.H. Численные методы / Н.Н.Калиткин. М. : Наука, 1978. -519 с.

33. Кениг, Г. Теория электромеханических систем / Г.Кениг, В.Блекуэлл. М. : Энергия, 1965.-415 с.

34. Кнут, Д. Искусство программирования для ЭВМ / Д.Кнут.; пер. с. англ. Г.П.Бавенко, Ю.М.Ваяковского.; под. ред. К.И.Бабенко, В.С.Штаркмана. -М. : Мир, 1976.-734 с.

35. Кристофидес, Н. Теория графов. Алгоритмический подход / Н.Кристофидес.; пер. с. англ. под. ред. Г.П.Гаврилова. М. : Мир, 1978. -432 с.

36. Крылова, В. И. Вычислительные методы вышей математики / В.И.Крылова, В.В.Гобкова, П.И.Монастырный. М. : Высшая школа, 1972. - 578 с.

37. Михайлов, В.Б. Численно-аналитические методы решения сверхжестких дифференциально-алгебраических систем уравнений / В.Б.Михайлов. СПб. : Наука, 2005.-223 с.

38. Мэзон, С. Электронные цепи, сигналы и системы / С.Мэзон, Г.Циммерман; пер. с. анг. под. ред. А.А Саковлева. М. : Иностр.Лит, 1963. - 619 с.

39. Норенков, И.П. Введение в автоматизированное проектирование технических устройств и систем / И.П.Норенков. М. : Высшая школа, 1986. -302 с.

40. Норенков, И.П. Основы теории проектирования САПР / И.П.Норенков,

41. B.Б.Маничев. -М. : Высшая школа, 1990. 334 с.

42. Норенков, И.П. Системы автоматизированного проектирования электронной и вычислительной аппаратуры / И.П.Норенков, В.Б.Маничев. — М. : Высшая школа, 1983.-272 с.

43. Ope, О. Графы и их применение / О.Ope.; пер. с. англ. Л.И.Головиной ; под. ред. И.М. Яглома. М. : Мир, 1965.-173 с.

44. Петренко, А.И. Основы построения систем автоматизированного проектирования / А.И.Петренко, О.И.Семенков. Киев : Высшая школа, 1984.-293 с.

45. Петренко, А.И. Табличные методы моделирования электронных схем на ЭЦВМ / А.И. Петренко, А.И.Власов, А.П.Тимченко. Киев : Высшая школа, 1977.- 186 с.

46. Писсанецки, С. Технология разреженных матриц / С.Писсанецки.; пер. с. англ. под. ред. Х.Д.Икрамова. М. : Мир, 1988. - 410 с.

47. Райе, Дж. Матричные вычисления и математическое обеспечение / Дж.Райс. -М. : Мир, 1984.-264 с.

48. Реза, Ф. Современный анализ электрических цепей / Ф.Реза, С.Сили.; пер. с. англ. С.В.Иноземцева ; под. ред. Г.В.Микуцкого. М. : Энергия, 1964. -480 с.

49. Рихтер, Дж. Windows для профессионалов: создание эффективных Win32 приложений / Дж.Рихтер. 4-е изд.- СПб. : Питер, 2001. - 752 с.

50. Роббинс, Дж. Отладка Windows-приложений / Дж.Роббинс. М. : ДМК, 2001.-448 с.

51. С# Для профессионалов / Симон Робинсон и др..; пер. с. англ.

52. C.Коротыгин и др.. -М. : Лори, 2005. 1002 с.

53. Саймон, P. Microsoft Windows 2000 API. Энциклопедия программиста / Р.Саймон. СПб. : ДиаСофт, 2002.-1088 с.

54. Сешу, С. Линейные графы и электрические цепи / С.Сешу, М.Б.Рид.; пер. с. англ. под. ред. П.А.Ионкина. М. : Высшая школа, 1971. - 448 с.

55. Сешу, С. Анализ линейных цепей / С.Сешу, Н.Балабанян.; пер. с. англ. И.В.Соловьева; под. ред. проф. Г.И.Атабекова. -М. : Госэнергоиздат,1963. -551 с.

56. Сигорский, В.П. Алгоритмы анализа электронных схем / В.П.Сигорский, А.И.Петренко. М. : Советское радио, 1976. - 606 с.

57. Сигорский, В.П. Математический аппарат инженера / В.П.Сигорский. -Киев:Техника, 1975. 765 с.

58. Скворцов, Г.В. Расчет корректирующих цепей и фильтров систем автоматического регулирования и управления / Г.В.Скворцов. — СПБ. : Судостроение, 2002. 224 с.

59. Слипченко, В.Г. Машинные алгоритмы и программы моделирования электронных схем / В.Г.Слипченко, В.Г.Табарный — Киев: Техника, 1976. — 157 с.

60. Советов, Б.Я. Моделирование систем / Б.Я.Советов, С.А.Яковлев. М. : Высшая школа, 1985. - 271 с.

61. Сольницев, Р.И. Автоматизация проектирования систем автоматического управления / Р.И.Сольницев. М. : Высшая школа, 1991. - 328 с.

62. Сольницев, Р.И. Вычислительные машины в судовой гироскопии / Р.И. Сольницев. Л. : Судостроение, 1977. - 312 с.

63. Сольницев, Р.И. Автоматизация проектирования инструментарий проектировщика / Р.И.Сольницев // ЭВМ в проектирование и производстве. - Л. : Машиностроение. Линингр. Отд-ние, 1983. - С. 60 - 71.

64. Степаненко, И.П. Основы микроэлектроники: учеб. пособие для вузов /

65. И.П.Степаненко. -М. : Советское радио, 1980.

66. Тарасик, В.П. Математическое моделирование технических систем / В.П. Тарасик. Минск: Дизайн ПРО, 2004. - 639 с.

67. Трауб, Дж. Итерационные методы решения уравнений / Дж.Трауб. М. : Мир, 1985.-264 с.

68. Трудономин, В.А. Математические модели технических объектов / В.А. Трудономин, Н.В.Пивоварова. — М. : Высшая школа, 1986. 157 с.

69. Тьюарсон, Ф.Р. Разреженные матрицы / Ф.Р.Тьюарсон. М. : Мир, 1977. -189 с.

70. Фадеев, Д.К. Вычислительные методы линейной алгебры / Д.К.Фадеев, В.Н. Фадеева. М. : Изд-во Физ-мат литературы, 1963. - 734 с.

71. Форсайт, Дж. Машинные методы математических вычислений / Дж.Форсайт, М.Малькольм, К.Моулер.; пер. с. англ. под. ред. Х.Д.Икрамова. -М. Мир, 1980.-277 с.

72. Фролов, A.B. Библиотека системного программиста. Microsoft visual С++ и MFC / А.В.Фролов, Г.В.Фролов. М. : Диалог-Мифи, 1997. - 288 с.

73. Чуа, JI.O. Машинный анализ электронных схем / Л.О.Чуа, Лин.Пен-Мин. -М. : Энергия, 1980. 631 с. \

74. Шакиров, М.А. Теоретические основы электротехники. Новые идеи и принципы. Схемоанализ и Диакоптика / М.А.Шакиров. СПб. : Изд-во СПбГТУ, 2001.-212 с.

75. Эндрю, Т. Язык программирования С# 2005 и платформа NET 2.0 / Т.Эндрю. -3-е изд. М.; СПб.; Киев : Вильяме, 2007.-1161 с.