Главная » Каталог    
рефераты Разделы рефераты
рефераты
рефератыГлавная

рефератыБиология

рефератыБухгалтерский учет и аудит

рефератыВоенная кафедра

рефератыГеография

рефератыГеология

рефератыГрафология

рефератыДеньги и кредит

рефератыЕстествознание

рефератыЗоология

рефератыИнвестиции

рефератыИностранные языки

рефератыИскусство

рефератыИстория

рефератыКартография

рефератыКомпьютерные сети

рефератыКомпьютеры ЭВМ

рефератыКосметология

рефератыКультурология

рефератыЛитература

рефератыМаркетинг

рефератыМатематика

рефератыМашиностроение

рефератыМедицина

рефератыМенеджмент

рефератыМузыка

рефератыНаука и техника

рефератыПедагогика

рефератыПраво

рефератыПромышленность производство

рефератыРадиоэлектроника

рефератыРеклама

рефератыРефераты по геологии

рефератыМедицинские наукам

рефератыУправление

рефератыФизика

рефератыФилософия

рефератыФинансы

рефератыФотография

рефератыХимия

рефератыЭкономика

рефераты
рефераты Информация рефераты
рефераты
рефераты

Разработка и исследование подсистемы учебно исследовательской САПР РЭА

РЕЦЕНЗИЯ на дипломную работу на тему: "Разработка и исследование подсистемы учебно-исследовательской САПР РЭА" Горбач Дмитрия Александровича, студента тр.Р-53, специальности "Радиотехника" Дальневосточного Технологического института. Представленная на рецензию дипломная работа содержит по-
яснительную записку в объеме 102 страницы печатного текста,
включая 37 илл., 7 таблиц, 14 библ. и 6 листов графического
материала формата А3. В настоящее время в промышленности широкое распростране-
ние получили различные системы автоматизированного проектиро-
вания (САПР). В частности, для проектирования печатных плат
(ПП) широко используется система P-CAD, разработанная фирмой
Personal CAD System. При подготовке специалистов радиотехнических специаль-
ностей целесообразно организовать учебную исследовательскую
работу студентов на системах автоматизированного проектирова-
ния промышленного уровня. В связи с этим, представленная на рецензию дипломная ра-
бота является актуальной. В работе приводится обзор современных алгоритмов, исполь-
зуемых на различных этапах радиотехнических САПР - при расчете
конструктивного объема РЭА, компоновке печатных плат и их
трассировке. На примере разработки двух блоков, отличающихся
составом элементной базы, произведены исследования возмож-
ностей программ пакета P-CAD. Приведена методика компоновки в
автоматическом и интерактивном режимах программы PC-PLACE, оп-
ределена последовательность действий оператора, позволяющая
достичь максимального использования ресурсов печатной платы.
Дан сравнительный анализ алгоритмов трассировки программы
PC-ROUTE. Расчет экономической эффективности САПР с применени-
ем данного пакета убедительно показывает снижение трудоемкости
работы проектировщиков более чем в два раза. Дипломником самостоятельно разработана программа, содер-
жащая описания большого количества РЭК, позволяющая рассчитать
конструктивный объем проектируемых изделий и размеры печатной
платы, что не позволяет сделать система P-CAD. Пояснительная записка содержит большое количество рисун-
ков, выполненных средствами компьютерной графики, в частности
в пакетах P-CAD, Picture Maker, Paint Brush и др. Графический материал представлен плакатами, исполненными
на плоттере под управлением программы PC-PLOT. Подготовлен ряд
демонстрационных слайдов, поясняющих ход экспериментов и наг-
лядно отображающих результаты исследований. Результаты работы - методика исследований и данные экспе-
риментов - могут быть использованы при организации курса лабо-
раторных работ на основе пакета P-CAD, а так же будут полезны
разработчикам РЭА, использующим эту систему. Дипломная работа заслуживает оценки "Отлично", а диплом-
ник Горбач Д.А. присвоения квалификации радиоинженера. Начальник отдела САПР АО Приморгражданпроект И.В.Третьяков
. Дальневосточный технологический институт Кафедра радиоэлектроники и компьютерной техники "УТВЕРЖДАЮ" Зав.кафедрой ____________________ "___"__________ 1993г. З А Д А Н И Е на дипломное проектирование студенту Горбач Дмитрию Александровичу 1. Тема работы: Разработка и исследование подсистемы
учебно-исследовательской САПР РЭА. Утверждена приказом по институту No 191/1 от 22.03.93. 2. Срок сдачи работы 01.06.93 3. Техническое задание к работе 3.1. Цель: исследование и разработка подсистем и
звеньев учебно-исследовательской САПР РЭА. 3.2. Решаемые задачи: обзор алгоритмов и методов
конструирования печатных плат; pазpаботка пpогpаммы pасчета
констpуктивного объема РЭА; исследование алгоритмов, использу-
емых в системе автоматизированного проектирования на основе
пакета P-CAD; технико-экономическое обоснование внедpения
pассматpиваемой САПР в пpомышленное пpоизводство. 4. Работа представляется пояснительной запиской и гpафи-
ческим матеpиалом. 5. Содержание пояснительной записки: введение; обзоp ал-
гоpитмов, используемых в САПР РЭА (pасчет констpуктивного объ-
ема, модель печатной платы, алгоpитмы компоновки и тpассиpовки
печатных плат); исследование методов пpоектиpования и алгоpит-
мов, используемых в САПР РЭА на основе пакета P-CAD; экономи-
ческое обоснование внедpения pассматpиваемой САПР в пpомышлен-
ное пpоизводство; пpиложения (пpогpамма pасчета констpуктивно-
го объема РЭА, стpуктуpы баз данных пpогpаммы). 6. Перечень гpафического матеpиала (плакаты формата А3):
1) Пример I. Блок видеомагнитофона. Схема электрическая прин-
ципиальная;
2) Пример I. Компоновочный эскиз печатной платы.
3) Пример I. Трассировка в слое COMP.
4) Пример I. Трассировка в слое SOLDER.
5) Диаграмма - сравнение эффективности алгоритмов трассировки.
6) Диаграмма - снижение трудоемкости при внедрении САПР. 7. Консультант по экономическому разделу работы _______________________________________ Бешенцева О.В. Дата выдачи задания 10.03.93. Руководитель дипломного проектирования _______________________________________ Колесник Н.Я.
. АННОТАЦИЯ
Горбач Д.А. Разработка и исследование подсистемы учебно-исследовательской САПР РЭА. Дипломная работа. ДВТИ, 1993, 102 с., 37 илл., 7 табл., 14 библ., 6 пл. Цель дипломной работы - исследование и разработка
подсистем и звеньев учебно-исследовательской САПР РЭА на осно-
ве пакета P-CAD, в частности программ компоновки и трассировки
печатных плат, как наиболее трудоемкого и нуждающегося в авто-
матизации этапа проектирования радиоэлектронной аппаратуры. В работе приводится обзор современных алгоритмов, исполь-
зуемых на различных этапах радиотехнических САПР - при расчете
конструктивного объема РЭА, компоновке печатных плат и их
трассировке. С целью облегчить расчет конструктивного объема
проектируемых изделий была разработана программа RTN (IBM PC,
Clipper), содержащая описание более 2000 компонентов отечест-
венной элементной базы. На примере разработки двух разнотипных
блоков произведен ряд экспериментов с целью исследовать воз-
можности программ пакета P-CAD. Приведена методика компоновки
в автоматическом и интерактивном режимах программы PC-PLACE,
определена последовательность действий оператора, позволяющая
достичь максимального использования ресурсов печатной платы.
Дан сравнительный анализ алгоритмов трассировки программы
PC-ROUTE. Расчет экономической эффективности САПР с применени-
ем данного пакета убедительно показывает снижение трудоемкости
работы проектировщиков более чем в два раза. При внедрении по-
добной системы на промышленном предприятии срок окупаемости
составит 2-3 месяца. Результаты работы - методика исследований и данные экспе-
риментов - могут быть использованы при организации курса лабо-
раторных работ на основе пакета P-CAD, а так же будут полезны
разработчикам РЭА, использующим эту систему.
. СОДЕРЖАНИЕ
ВВЕДЕНИЕ 4
1. АНАЛИЗ АЛГОРИТМОВ САПР ПЕЧАТНЫХ ПЛАТ 6
1.1. Модель печатной платы для электрических соединений 6
1.2. Алгоритмы компоновки печатных плат 11
1.3. Алгоритмы проектирования печатного монтажа 19
1.4. Способы соединения контактов 39
2. ИССЛЕДОВАНИЕ АЛГОРИТМОВ, ИСПОЛЬЗУЕМЫХ В СИСТЕМЕ P-CAD 41
2.1. Постановка задачи 41
2.2. Пример I. Блок видеомагнитофона. 41
2.3. Пример II. Имитатор целей РЛС. 65
3. ТЕХНИКО-ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ ПРИМЕНЕНИЯ САПР P-CAD 81
ЗАКЛЮЧЕНИЕ 90
СПИСОК ЛИТЕРАТУРЫ 92
Приложение I. Программа RTV. 93
. ВВЕДЕНИЕ С увеличением степени интеграции современной радиоэлект-
ронной аппаратуры (РЭА) существенно возрастает и трудоемкость
ее проектирования. Это связано с ростом размерности задач, ре-
шаемых в процессе разработки. Эффективным средством решения
этой проблемы является применение компьютерной техники на всех
этапах создания РЭА. В последнее время методы автоматизирован-
ного проектирования, как и радиоэлектроника в целом, находятся
на этапе стремительного совершенствования. Поскольку высокоэф-
фективные компьютеры перестали быть редкостью, методы машинно-
го проектирования постепенно превращаются в инструмент, поль-
зоваться которым может практически каждый. Инженер по радиоэлектронике и автоматике в условиях тех-
нической оснащенности интеллектуальной деятельности должен
свободно владеть средствами математического и программного мо-
делирования и решения задач проектирования и эксплуатации ап-
паратуры с помощью ЭВМ. При этом, направленное обучение специ-
алистов по использованию компьютерной техники и программного
обеспечения АРМ инженера, является весьма актуальным и
обусловлено широким внедрением в инженерную практику персо-
нальных ЭВМ. В настоящее время в промышленности широкое распростране-
ние получили различные системы автоматизированного проектиро-
вания (САПР). В частности, для проектирования печатных плат
(ПП), гибридных интегральных схем (ГИС), микросборок (МБС) и
других подобных конструктивов широко используется система
P-CAD, разработанная фирмой Personal CAD System. По оценке
специалистов система P-CAD является несомненным лидером среди
других систем аналогичного назначения, функционирующих на
персональных компьютерах класса IBM PC. Cистема P-CAD (Personal Computer Aided Design) предназна-
чена для автоматизированного проектирования печатных плат.
Данный пакет включает в себя средства, позволяющие пользовате-
лю создавать описания радиоэлектронных компонентов (РЭК),
электрических принципиальных схем, задавать форму печатной
платы, расставлять РЭК на плате как вручную, так и автомати-
чески, а также производить трассировку печатной платы. Резуль-
таты могут быть выданы на принтер, плоттер, фотошаблон. - 5 - $$$ При подготовке специалистов радиотехнических специаль-
ностей целесообразно в курсах по конструированию РЭА (или ана-
логичных курсах) организовать учебную исследовательскую работу
студентов на системах автоматизированного проектирования про-
мышленного уровня, преследуя при этом следующие цели: - сформировать достаточно полное представление об основ-
ных элементах, структуре и принципах функционирования промыш-
ленных систем автоматизированного проектирования; - способствовать получению своеобразного "фундамента" для
упрощения в дальнейшем освоения других промышленных систем ав-
томатизированного проектирования. Необходимость организации такой работы пользователей со
средствами САПР РЭА в диалоговом режиме ставит задачу разра-
ботки учебных систем диалогового проектирования, ориентирован-
ных на дисплейные классы. Рассмотренная система на основе паке-
та P-CAD предназначена для конструирования разнообразных уст-
ройств РЭА и изучения методов и алгоритмов автоматизированного
проектирования. Целью данной дипломной работы является исследование раз-
личных алгоритмов и методов, используемых пакетом P-CAD для
решения задач размещения радиоэлектронных элементов и трасси-
ровки печатных плат. Эти задачи составляют основу подсистемы
учебно-исследовательской САПР, связанной с вопросами компонов-
ки и топологии, как наиболее трудоемкого и нуждающегося в ав-
томатизации этапа проектирования радиоэлектронной аппаратуры.
. - 6 - $$$ 1. АНАЛИЗ АЛГОРИТМОВ САПР ПЕЧАТНЫХ ПЛАТ 1.1. Модель печатной платы для электрических соединений Использование формальных методов проектирования топологии
проводников на монтажных платах требует решения вопросов о
компьютерном представлении модели поверхностей слоев платы. Необходимым условием корректности модели монтажного
пространства является требование адекватности отображения в
ней всех факторов, определяющих ресурсы и ограничения прообра-
за при проектировании печатного монтажа. К числу основных па-
раметров модели следует отнести: число слоев и размеры каждого
слоя платы, координаты и геометрию контактов, допустимые формы
печатных проводников и минимальные зазоры между ними, зоны
запрета на трассировку. Наибольшее распространение в практике трассировки получи-
ла ортогональная модель поля платы. Рассмотрим правила постро-
ения такой модели. Пусть на каждый слой платы, имеющей контакты, проводники
и зоны запрета, наложена некоторая регулярная сетка, образо-
ванная множествами вертикальных и горизонтальных прямых и
состоящая из ячеек размером (dx x dy) каждая. Каждой ячейке соответствует некоторый признак, значение
которого идентифицирует одну из следующих ситуаций:
- ячейка содержит участок проводника, зоны запрета или контак- та, то есть ячейка занята и через нее недопустима прокладка проводника;
- ячейка не содержит перечисленных выше компонент. Размеры dx и dy выбираются из условия: dx >= Hmin,
dy >= Hmin, где Hmin - минимальное расстояние между осями двух
параллельных сигнальных проводников. Введенную сетку, покрывающую монтажное пространство слоя
платы, будем называть дискретной сеткой. Описанная дискретная модель достаточно просто формируется
и представляется в компьютерной памяти с помощью двумерного
числового массива-матрицы, каждый компонент которого взаим-
но-однозначно соответствует одной ячейке сетки. Соответствую-
щий ячейке нулевой код означает, что она свободна для проклад-
ки печатного проводника, ненулевой код устанавливает запрет на - 7 - $$$
прокладку. Платы с двумя и более слоями монтажа программно представ-
ляются в виде трехмерного массива-матрицы M( x, y, z), где
значения индекса z соответствуют номерам слоев платы. Недостатком матричного отображения монтажного прост-
ранства плат является большой объем компьютерной памяти, тре-
буемый для представления этой модели. Однако до настоящего
времени она остается наиболее популярной. Рассмотрим вопрос о размещении матрицы в компьютерной па-
мяти и систему адресации ее элементов. Актуальность данного
вопроса связана с повышением быстродействия алгоритмов трасси-
ровки, использующих матричную модель. Для большинства совре-
менных компьютеров характерна векторная структура представле-
ния многомерных массивов (в частности, трехмерных M( x, y, z).
Положение элемента матрицы M( x, y, z) относительно начального
адреса вектора V определяется выражением kj = (zj - 1) * Xo * Yo + Xo * (yj - 1) + xj (1.1)
где kj - индекс вектора V; Xo, Yo - максимальные значения ин-
дексов x и y для матрицы M. Представленная схема адресации элементов матрицы в векто-
ре V имеет один существенный недостаток. Действительно, при
распространении волнового фронта (см.п.1.3.6) на каждой итера-
ции обработки очередного элемента выполняется анализ состояния
матрицы в соответствии с рис. 1.2. В данном случае рассмотрение осуществляется на одном из
слоев, например Zj = 1. Если положить индексы текущего дискре-
та в M( x, y, z), Xj и Yj, то в векторе V этот дискрет займет
положение kj в соответствии с (1.1). Тогда дискреты 1, 2, 3, 4
(рис. 1.2) будут занимать места в векторе V в соответствии со
следующими выражениями: 1. kj = kj + Xo 2. kj = kj + 1 3. kj = kj - Xo 4. kj = kj - 1
. - 8 - $$$ Zj = 1 Zj = 2 ЪДДДВДДДВДДДї ЪДДДВДДДВДДДї 3 і G і H і I і 3 і P і R і S і ГДДДЕДДДЕДДДґ ГДДДЕДДДЕДДДґ 2 і D і E і F і 2 і M і N і O і ГДДДЕДДДЕДДДґ ГДДДЕДДДЕДДДґ 1 і A і B і C і 1 і J і K і L і АДДДБДДДБДДДЩ АДДДБДДДБДДДЩ Yj / 1 2 3 Yj / 1 2 3 ] Xj Xj а) б) V ЪДДДВДДДВДДДВДДДВДДДВДДДВДДДВДДДВДДДВДДДВДДДВД ДВДДДВДДДї і A і B і C і D і E і F і G і H і I і J і K і ... і R і S і АДДДБДДДБДДДБДДДБДДДБДДДБДДДБДДДБДДДБДДДБДДДБД ДБДДДБДДДЩ 1 2 3 4 5 6 7 8 9 10 11 17 18 Kj в) Рис. 1.1. Иллюстрация расположения элементов матрицы в
векторной структуре: а, б - условное представление элементов
матрицы M( x, y, z) (Xo = Yo = 3); в - расположение элементов
матрицы M( x, y, z) в векторной структуре. ЪДДДї і 1 і і і ЪДДДДДДЕДДДЕДДДДДДї і 4 2 і АДДДДДДЕДДДЕДДДДДДЩ і і і 3 і АДДДЩ Рис. 1.2. Схема анализа соседних элементов.
. - 9 - $$$ Очевидно, что такое расположение элементов вектора явля-
ется неудачным, так как требует для анализа этих четырех эле-
ментов четыре команды обращения к памяти. Практика трассировки
показывает, что операции выборки и анализа дискретов при расп-
ространении волнового фронта полностью определяют быстро-
действие алгоритма. Поэтому актуальной задачей является поиск
новых вариантов упаковки элементов массивов в векторы, позво-
ляющих сократить количество обращений к последним. Одним из решений этой задачи является диагональное
представление рабочего поля платы в компьютерной памяти [1],
где упаковка массива производится по следующей формуле:
kj = [(xj + yj)*Yo + yj + (zj - 1)*Xo*Yo] mod( Zo Xo Yo) (1.2)
где T, при T < q
T mod(q) = { (T - q), при T >= q В 1.2 предполагается, что индексы трехмерной матрицы
M( x, y, z) лежат в следующих диапазонах: x E [ 0, Xo - 1] y E [ 0, Yo - 1] z E [ 0, Zo - 1]. На рис. 1.3 представлена иллюстрация упаковки элементов
матрицы M( x, y, z) в вектор V. Анализ (1.2) и иллюстрация показывают, что данная упаков-
ка выгодно отличается от предыдущей тем, что элементы, сосед-
ние с каждым текущим (рис.1.2) при распространении волнового
фронта, располагаются в векторной структуре попарно с соседни-
ми. Такое расположение элементов позволяет сократить число об-
ращений к памяти вдвое за счет одновременной выборки пары
соседних элементов. Сопутствующий положительный эффект
представленной упаковки элементов является и то, что программе
поиска пути волновым методом нет необходимости "помнить", на
каком слое находится данный текущий элемент. Переход с любого - 10 - $$$ Zj = 1 Zj = 2 ЪДДДВДДДВДДДї ЪДДДВДДДВДДДї 3 і G і H і I і 3 і P і R і S і ГДДДЕДДДЕДДДґ ГДДДЕДДДЕДДДґ 2 і D і E і F і 2 і M і N і O і ГДДДЕДДДЕДДДґ ГДДДЕДДДЕДДДґ 1 і A і B і C і 1 і J і K і L і АДДДБДДДБДДДЩ АДДДБДДДБДДДЩ Yj / 1 2 3 Yj / 1 2 3 ] Xj Xj а) б) V ЪДДДВДДДВДДДВДДДВДДДВДДДВДДДВДДДВДДДВДДДВДДДВД ДВДДДВДДДї і A і R і B і D і S і C і E і G і J і F і H і ... і N і P і АДДДБДДДБДДДБДДДБДДДБДДДБДДДБДДДБДДДБДДДБДДДБД ДБДДДБДДДЩ 1 2 3 4 5 6 7 8 9 10 11 17 18 Kj в) Рис. 1.3. Иллюстрация расположения элементов матрицы в
векторной структуре при диагональном представлении рабочего
поля.
из двух слоев на другой выполняется всегда корректно при уве-
личении zj на единицу. И, наконец, диагональное представление модели рабочего
поля позволяет осуществлять эффективный контроль за процессом
распространения волнового фронта, не позволяя значению индекса
элемента выходить за границы размера массива.
. - 11 - $$$ 1.2. Алгоритмы компоновки печатных плат 1.2.1. Общие вопросы практики компоновки Компоновка РЭА - размещение в пространстве или на
плоскости ЭЛ, имеющих электрические соединения в соответствии
с принципиальной схемой, и обеспечение допустимого минимума
паразитных взаимодействий, которые не нарушают значения
расчетных выходных параметров РЭА. Энергетическое несовершенство РЭА по преобразованию энер-
гии источников питания в энергию выходного сигнала (чаще всего
КПД = 10e-3...10e-10) - причина больших тепловыделений, для
отвода которых требуется развитие поверхности конструкций и
высокая эффективность теплоносителя. Емкостные и индуктивные ЭЛ РЭА требуют для нормальной ра-
боты определенного пространства, в котором при их работе воз-
никают электрические и магнитные поля. Их локализация требует
увеличения объема конструкции РЭА либо использования специаль-
ных экранов. Сложные условия эксплуатации, энергетическое несовер-
шенство РЭА, необходимость учета при компоновке "объемов"
электрических и магнитных полей - причина усложнения проблем
компоновки ЭЛ РЭА, которая может быть определяющим фактором
при выборе того или иного компоновочного решения РЭА. Поэтому
компоновочными моделями ЭЛ РЭА в целом являются не геометри-
чески адекватные им модели, а модели, геометрически обобщающие
всю совокупность их свойств. Такая модель называется обобщен-
ной геометрической моделью (ОГМ). Сложность расчета объема и формы ОГМ [2] - причина
использования в практике компоновочных работ упрощенных компо-
новочных моделей в виде установочных объемов Vуст или площади
Sуст ЭЛ. Vуст (Sуст) - прямоугольный параллелепипед (прямоу-
гольник), описанный вокруг ЭЛ с учетом его максимальных уста-
новочных размеров, требований по монтажу и регулировке и до-
полнительных объемов или пространства, обеспечивающих его нор-
мальную работу при данном тепловыделении, электрических и маг-
нитных взаимодействиях. Размеры ОГМ (Vуст и Sуст) - функция геометрии ЭЛ и его
режима работы. При малых коэффициентах нагрузки (Кн) по мощ- - 12 - $$$
ности (0.1...0.3) можно использовать упрощенные соотношения
для вычислений Vуст и Sуст по нормированным установочным раз-
мерам (рис.1.4): Vуст = 1.5 * Amax * Bmax * Hmax Sуст = 1.3 * Amax * Bmax При значениях Кн > 0.3...0.5 вычисление Vуст и Sуст зат-
рудняется, так как необходимо вычисление объемной или плоской
ОГМ со сложными образующими (рис.1.5), что требует знания на-
чальных и граничных условий. 1.2.2. Аналитическая компоновка В основе аналитической компоновки лежат выражения Vs = Kv * SUM( Vустi) = ( 1/Kvзап) * SUM( Vустi) Ss = Ks * SUM( Sустi) = ( 1/Ksисп) * SUM( Sустi)
где Vs (Ss) - суммарный объем (площадь) РЭА; Kv (Ks) - коэффициенты увеличения объема (площади), за- висящие от назначения и условий эксплуатации и равные 5..1 (3..1); Vустi (Sустi) - установочный объем (площадь) i-го элемента Kvзап - коэффициент заполнения РЭА по объему (0.2...0.1) Ksисп - коэффициент использования площади платы, шасси и т.п. (0.33...1). Объемная масса РЭА обычно лежит в пределах
0.4...1.6 г/см^3. Расчет конструктивного объема РЭА по вышеизложенному ме-
тоду реализован в программе RTV, являющейся авторской разра-
боткой (Приложение I). Программа производит расчет объемов из-
делия и площади печатной платы, а так же сообщает рекомендуе-
мые размеры платы. База данных программы насчитывает свыше
2000 компонентов отечественной элементной базы, проста и удоб-
на в использовании. Результаты расчетов могут использоваться
. - 13 - $$$
на различных этапах проектирования РЭА, в частности служить в
качестве исходной информации для компоновки печатных плат. 1.2.3. Задачи компоновки печатных плат РЭА Цель компоновки заключается в создании наилучших условий
для последующего синтеза топологии электрических соединений
при выполнении конструкторских и технологических ограничений.
На решение задачи компоновки большое влияние оказывают типы
проектируемых блоков. В зависимости от типа блока (цифровой,
аналоговый или цифроаналоговый) решаются различные задачи и
определяется тот или иной метод их решения. Элемент блока является одновременно геометрическим объек-
том Ti( Xi, Qi), где Xi, Qi - параметры установки элемента, и
элементом схемы соединений. Задача компоновки состоит в опти-
мизации оценки качества Ф( X1, Q1, Г1,..., Xn, Qn, Гn), при
условиях непересечения геометрических объектов, соответствую-
щих любой паре элементов и расположения каждого элемента в по-
ле платы. Эта задача является многопараметрической задачей оптими-
зации. Аналитический вид зависимости оптимизируемого критерия
от параметров компоновки неизвестен, в связи с этим решение
задачи в общей постановке невозможно. Задача компоновки разби-
вается на ряд частных задач, которые согласуются со спецификой
проектирования субблоков РЭА. В процессе размещения минимизируются суммарная длина сое-
динений и максимальное число соединений в сечении канала. Об-
щая стратегия состоит в получении начального размещения и в
последующем его улучшении с помощью ряда итерационных алгорит-
мов, применяемых в различных порядках. 1.2.4. Допущения, упрощающие задачу Анализ практических задач, возникающих при проектировании
конкретных устройств РЭА, позволил выделить следующие ограни-
чения, упрощающие постановку задач упаковки: пространство про-
ектирования двумерное; угол поворота системы координат элемен- - 14 - $$$
та относительно системы координат платы может принимать значе-
ния: 0', 90', 180' или 270'; координаты расположения элементов
на поле платы при упаковке могут принимать только конечное
множество значений; все типы элементов, как геометрические
объекты, имеют вид прямоугольников. 1.2.5. Последовательный алгоритм упаковки элементов на плате с заданной сеткой посадочных мест Пусть во множество A входят элементы k видов T1, T2, ...,
Ti, ..., Tk. Некоторые элементы могут быть фиксированы на поле
платы. Тогда упаковка производится в следующей последователь-
ности: Шаг 1. Вычеркивание занятых посадочных мест из заданной
сетки, в том числе учитываются фиксированные элементы; Шаг 2. Выбор вида элемента. Из множества элементов A вы-
бирается один вида Ti. Критерии выбора могут быть различными.
Например: выбор по наибольшим габаритам, по наибольшему коли-
честву контактов, по наибольшему количеству элементов в виде; Шаг 3. Производится последовательно-одиночная упаковка
элементов выбранного вида в заданное множество посадочных
мест. Занятые посадочные места отмечаются; Шаг 4. Контроль упакованных элементов на наложение с сет-
кой посадочных мест неупакованных элементов. Шаг 5. Проверка на возможность дальнейшей упаковки. Про-
веряется возможность в свободные посадочные места упаковать
оставшиеся элементы. Если возможно, переходим к следующему ша-
гу, иначе меняется последовательность упаковки. Шаг 6. Поиск незанятых посадочных мест, оставшихся после
упаковки данного вида элементов. Координаты этих посадочных
мест запоминаются для дальнейшего использования программами
расстановки. Шаг 7. Проверка на завершение. Все виды элементов упако-
ваны? Если нет, переходим ко второму шагу, иначе упаковка за-
вершена. Рассмотренный алгоритм прост в реализации, не требует
большого объема компьютерной памяти, время счета линейно за-
. - 15 - $$$
висит от количества видов элементов и практически не зависит
от количества элементов в каждом виде. 1.2.6. Упаковка элементов на плате без задания сетки посадочных мест В данном случае возникает необходимость в автоматическом
построении сетки посадочных мест. Пространство проектирования
покрывается сеткой квадратов t1 x t2 и поле проектирования To
представляется в виде упорядоченных пар ( t1, t2) индексов по-
павших в него квадратов - позиций. В каждую позицию поля про-
ектирования может быть установлен полюс элемента Ti( Xi, Qi),
где Xi=( t1i, t2i), Qi={ 0, 90', 180', 270'). Задачу упаковки можно свести к линейной (одномерной). Это
даст возможность использовать при решении методы целочисленно-
го программирования, упростит и ускорит получение результата. 1.2.7. Упаковка элементов методом раскроя Для решения задачи упаковки без задания сетки посадочных
мест можно использовать алгоритмы задачи раскроя прямоугольно-
го листа на прямоугольные заготовки, суть которого состоит в
следующем: задан плоский лист размером X на Y и m прямоуголь-
ных площадок размером xi на yi, i = 1...m. Требуется найти на-
именьшее неотрицательное решение функционального уравнения:
f(x,y)=MAX{ max( f(i,y)+f(x-i,y)), max( f(x,i)+f(x,y-i))} (1.3) i=0..x i=0..j
обеспечивающее условия
f( x, 0) = f(0,y) = 0, f(xi,yi) >= Ci, (1.4)
где Ci - стоимость i-й детали.
. - 16 - $$$ Функция f(x,y), являющаяся наименьшим решением уравнений
(1.3)-(1.4), кусочно-постоянна, не убывает по x и y и допуска-
ет представление f(x,y) = max ( fj ), j:xjelement" box1 = "ЕБЗНИЛЙґ " box2 = "КБхНхЛМґ "
DO GetScreen
DO SetScreen
set color to "w*/n"
clearwin(0,0,24,79, "w*/n"," ")
set color to "n */w ,w+ /n"
WM=wopen( 0,0,0,79) - 94 -
wselect( 0)
@ 0, 0 say space(80)
@24, 0 say space(80)
@24, 2 say "F1-Help і"
@24,67 say "і F10-Menu"
keyboard chr(27)
do menu
if file("RTV_1.DBF") # ok .or. ; file("RTV_1.DBT") # ok .or. ; file("RTV_2.DBF") # ok .or. ; file("RTV_3.DBF") # ok window( 10,13,14,66, "w+/r") @ 2,4 say "Не найдены системные файлы - работа невозможна" inkey(0) wclose() l_gmode(3) quit
endif
window(7,21,17,58, "w+*/b ,w+ /n") do copyright select 1 use RTV_1 alias baza0 do menu_new PUBLIC N[n_all] afill( N,0) select 2 use RTV_2 alias Korpus if file("RTV_2.NTX") # ok index on DIP to RTV_2 endif set index to RTV_2 select 3 use RTV_3 alias Standart if file("RTV_3.NTX") # ok index on GOST to RTV_3 endif set index to RTV_3
wclose()
WB=window( 2, 16, 21, 76, "w+*/b ,w+ /n")
set color to "n/w"
@ 0,59,19,60 box box1
set color to "n */w ,w+ /n"
@ 0,59 say "Кх"
@ 19,59 say "Мх"
@ 4,51 say " PgUp "
@ 7,51 say " PgDn "
@10,51 say " Tab "
set color to "n */b"
@ 4,57 say "Ь"
@ 5,52 say "ЯЯЯЯЯЯ"
@ 7,57 say "Ь"
@ 8,52 say "ЯЯЯЯЯЯ"
@10,57 say "Ь"
@11,52 say "ЯЯЯЯЯЯ"
WE=window( 2, 1, 15, 12, "w+*/b ,w+ /n")
select 1
go top
* --------------------------------------------------------- *
* Собственно программа *
* --------------------------------------------------------- *
dbedit( 1,2,12,9, T, "edit", 0, "Элемент","Д")
quit - 95 -
* --------------------------------------------------------- *
* Процедуры, функции *
* --------------------------------------------------------- *
function edit
parameters m, f
if lastkey()=9 .or. lastkey()=13 && Ret, Tab do Var_base
endif
return( 1)
* --------------------------------------------------------- *
procedure Var_base
private i, rec, X, Y, tmp, scr, len, N_inp
N_inp = 0 scr = wselect() tmp = "" X = 0 Y = 0
wselect( WB)
set color to "n */w"
@ 1,59 say "ґН"
set color to "w+*/b ,w+ /n"
@ 3,1,16,48 box box1 select 1 rec = recno() afill(Pole_base,"") baza= baza0->base @ 1,3 say baza0->NAME Y=Mlcount(POLE,8) for i=1 to Y Pole_base[i]=Memoline(baza0->POLE, 8,i) @ 3+i,2 say MemoLine(baza0->Glav,15,i) next i if rec > 1 for i=1 to rec-1 X=X+N_ELEMENT[i] next i endif select 4 use &baza alias bazaRT len=lastrec() set key 9 to exit_code do while ok set color to "w+*/b ,w+ /n" clear gets for i=1 to Y if Pole_base[i]="N" N_inp=N[recno()+X] @ 3+i,18 get N_inp picture " 9999" else tmp=Pole_base[i] @ 3+i,18 say &tmp endif next i set cursor on read set cursor off N[X+recno()]=N_inp key=lastkey() do case case key=13 .or. key=3 && PgDn, Enter do print_code skip +1 if eof() skip -1 endif case key=18 && PgUp do print_code - 96 - skip -1 case key=27 && Esc do print_code exit endcase set color to "n */w" @ 1+17*recno()/len,59 say "ґН" enddo
set key 9 to
select 1
goto rec
wselect(scr)
return
* --------------------------------------------------------- *
procedure exit_code
keyboard chr(27)
return
* --------------------------------------------------------- *
procedure print_code
set color to "n/w"
@ 1+17*recno()/len,59 say "ґН"
return
* --------------------------------------------------------- *
Procedure menu
set cursor off
set key -9
private scr
scr=wselect()
do while ok wselect( WM) @ 0, 1 prompt " Ё " @ 0, 5 prompt " Файл " @ 0,12 prompt " Данные " @ 0,21 prompt " Расчет " @ 0,30 prompt " Объем " @ 0,38 prompt " Отчет " @ 0,46 prompt " Выход " menu to GlavMenu do case case GlavMenu=1 window(6,21,16,58,"w+/b", box1) do copyright inkey(0) wclose() case GlavMenu=2 do menu_file case GlavMenu=0 .or. GlavMenu=3 GlavMenu=3 clear gets exit case GlavMenu=4 do menu_exec case GlavMenu=5 do menu_graf case GlavMenu=6 do menu_text case GlavMenu=7 do menu_quit endcase
enddo
wselect( scr)
set key -9 to menu
return
* --------------------------------------------------------- *
. - 97 -
function window
parameters y1, x1, y2, x2, color
private W W=wopen( y1, x1, y2+1, x2+2) colorwin( 1, 2, y2-y1+1, x2-x1+2) set color to &color @ 0, 0, y2-y1, x2-x1 box box1
return( W)
* --------------------------------------------------------- *
procedure menu_file
private i
i=1
window( 1,5,8,16,"n */w ,w+ /n", box1)
@ 2,1 prompt " Load "
@ 3,1 prompt " Save "
@ 4,1 prompt " Save as.."
@ 5,1 prompt " New "
menu to i do case case i=4 afill(N,0) TXT = "" endcase
wclose()
return
* --------------------------------------------------------- *
function get_name_file
parameters y,x, nfile
window(y,x,y+2,x+21,"n/w, w+/n", box1) clear gets @ 1,2 say "File:" get nfile picture "@K XXXXXXXXXXXX" set cursor on read set cursor off
wclose()
return nfile
* --------------------------------------------------------- *
procedure menu_new
select 1
go top
KOL=0
N_ALL=0
Afill( N_ELEMENT,0) do while .not. eof() baza = baza0->base select 4 if file(baza+".DBF") use &baza KOL=KOL+1 N_ELEMENT[Kol]=lastrec() N_ALL=N_ALL+N_ELEMENT[Kol] else select 1 delete endif select 1 skip enddo pack
return
* --------------------------------------------------------- *
. - 98 -
procedure menu_exec
private i
i=1
window(1,21,5,43,"n */w ,w+ /n", box1)
@ 1,1 prompt " Счет по среднему "
@ 2,1 prompt " Счет по максимуму "
@ 3,1 prompt " Счет по минимуму "
menu to i
wclose()
if i#0 do exec with i
endif
return
* --------------------------------------------------------- *
procedure exec
parameters i
private X, OLD_select, OLD_recno1, OLD_recno4, tmp
private D, L, H, M, Sij, XDip, XGost Selem = 0 Velem = 0 Vreal = 0 Vusta = 0 X = 0 D = 0 L = 0 H = 0 M = 0 rec = 0 Mass = 0 TXT = "" XDip = "" XGost = "" sideZ = 0
OLD_recno4=recno()
OLD_select=select() select 1
OLD_recno1=recno() go top
window(2,16,21,65,"w+*/bg", box1)
set color to "n */bg,w+*/n" @ 2,4 say "Объем Элементов .......... 0 мм^3" @ 3,4 say "Объем Реальный ........... 0 мм^3" @ 4,4 say "Объем Установочный ....... 0 мм^3" @ 6,4 say "Масса Общая .............. 0 гр." @ 7,4 say "Масса Реальная ........... 0 гр." @ 9,4 say "Сторона X ................ 0 мм" @10,4 say "Сторона Y ................ 0 мм" @11,4 say "Сторона Z ................ 0 мм" @13,4 say "Коэффициент заполнения ... (0.2 _ 1)" get koeV picture "99.99" @14,4 say "Коэффициент массы ........ (1.2 _ 3)" get koeM picture "99.99" wopen(19,20,19,62) @0,0 say "Ы"+replicate("±",41)
do while .not. eof() baza = baza0->base tmp = norm_or_min() rec = recno() if rec > 1 X=X+N_ELEMENT[rec-1] endif select 4 use &baza for j=X+1 to X+N_ELEMENT[rec] if N[j]#0 goto j-X do case - 99 - case tmp=1 .and. i=1 D=(D_min+D_max)/2 L=(L_min+L_max)/2 H=(H_min+H_max)/2 case tmp=1 .and. i=2 D=D_max L=L_max H=H_max case tmp=1 .and. i=3 D=D_min L=L_min H=H_min case tmp=2 XDip = DIP select 2
*// go top seek XDip if found() select 4 D=Korpus->D L=Korpus->L H=Korpus->H M=Korpus->M else select 4 D=0 L=0 H=0 M=0 endif endcase if H=0 Sij=N[j]*D*D else Sij=N[j]*D*H endif Selem=Selem+Sij Velem=Velem+Sij*L sideZ=max(L,sideZ) Mass=Mass+M XGost=Gost select 3 go top seek XGost select 4 TXT=TXT+baza0->element+" і "+left(Tip+space(15),15)+; +" і "+Standart->Gost+" і "+; +str(N[j],6)+" шт. і "+str(Sij*L,10)+" мм^3"+; +vk endif next j select 1 @0,0 say replicate("Ы",rec*42/Kol) skip
enddo
wclose() && окно под индикатором выполнения
select 1
goto OLD_recno1
baza=baza0->base
select 4
use &baza
select( OLD_select)
goto OLD_recno4
*//wclose()
* --------------------------------------------------------- *
* *
* Вывод отчета по вычислениям *
* *
* --------------------------------------------------------- *
@17,14 say "Ь Ь Ь"
@18, 5 say "ЯЯЯЯЯЯЯЯЯЯ ЯЯЯЯЯЯЯЯЯЯ ЯЯЯЯЯЯЯЯЯЯ"
. - 100 -
do while ok Vreal=Selem*sideZ Vusta=Vreal/KoeV if sideZ != 0 sideX=sqrt(Vusta/sideZ) else sideX=0 endif sideY=sideX set color to "n */bg,n /w" @ 2,30 say str(Velem,10) @ 3,30 say str(Vreal,10) @ 4,30 say str(Vusta,10) @ 6,30 say str(Mass,10) @ 7,30 say str(Mass*KoeM,10) @ 9,30 say str(sideX,10) @10,30 say str(sideY,10) @11,30 say str(sideZ,10) clear gets @13,41 get KoeV picture "99.99" range 0.2,1 @14,41 get KoeM picture "99.99" range 1.2,3 j=1 set color to "n/w, n */w" @ 17, 4 prompt " NewKoe " @ 17,20 prompt " View " @ 17,36 prompt " Cancel " menu to j do case case j=0 .or. j=3 exit case j=1 set cursor on set color to "n/w,w+/n" read set cursor off case j=2 DO menu_graf endcase
enddo
TXT= space(24)+"Расчет Установочного Объема РЭА"+vk +vk+; +replicate("Д",76) +vk+; +TXT+; +replicate("Д",76) +vk+; +"Объем Элементов .........."+str(Velem,10) +" мм^3"+vk+; +"Объем Реальный ..........."+str(Vreal,10) +" мм^3"+vk+; +"Объем Установочный ......."+str(Vusta,10) +" мм^3"+vk+; +"Масса Общая .............."+str(Mass,10) +" гр." +vk+; +"Масса Реальная ..........."+str(Mass*KoeM,10)+" гр." +vk+; +" Коэффициент заполнения .. "+str(KoeV,4,2) +vk+; +" Коэффициент массы ....... "+str(KoeM,4,2) +vk+; +vk+; +"Размеры сторон:" +vk+; +"X = "+str( sideX,10)+" мм" +vk+; +"Y = "+str( sideY,10)+" мм" +vk+; +"Z = "+str( sideZ,10)+" мм" +vk
wclose()
return
* --------------------------------------------------------- *
function norm_or_min
private i, p, x
p=0
for i=1 to Mlcount(POLE,10) x=Memoline(POLE,10,i) do case case at("MIN",x)#0 p=1 - 101 - case at("DIP",x)#0 p=2 endcase
next i
return( p)
* --------------------------------------------------------- *
procedure menu_text
private i
i=1
window(1,27,4,44,"n */w, w+/n", box1)
do while ok @ 1,1 prompt " Отчет на экран " @ 2,1 prompt " Отчет в файл " menu to i do case case i=0 exit case i=1 wopen(1,0,23,79) set color to "w */n" wbox(box1) set color to "w+ */n" memoedit( TXT, 0,1,22,77,.F.,"",240) wclose() case i=2 nfile=get_name_file(6,32,nfile) if lastkey()=13 memowrit( nfile, TXT) endif exit endcase
enddo
wclose()
return
* --------------------------------------------------------- *
procedure menu_graf
private x[4], y[4], MAX
wopen(0,0,24,79) L_gmode( 16) L_line( 260, 200, 260, 639, 1) && --- 9 - B+ L_line( 260, 200, 320, 0, 1) && / L_line( 260, 200, 0, 200, 1) && | L_stroke( "X", 1, 265, 620, 15, 12, 9) L_stroke( "Y", 1, 320, 10, 15, 12, 9) L_stroke( "Z", 1, 0, 210, 15, 12, 9) MAX=max( sideX, max( sideY, sideZ)) if MAX#0 x[1]=200 y[1]=260 x[2]=200+400*sideX/MAX y[2]=260-220*sideZ/MAX x[3]=200-300*sideY/MAX/2 y[3]=260+ 90*sideY/MAX/2 x[4]=200-300*sideY/MAX/2+400*sideX/MAX y[4]=260+ 90*sideY/MAX/2-210*sideZ/MAX l_box ( y[1],x[1],y[2],x[2],10) l_box ( y[3],x[3],y[4],x[4],10) l_line( y[4],x[4],y[2],x[2],10) l_line( y[3],x[3],y[1],x[1],10) l_line( y[3],x[4],y[1],x[2],10) l_line( y[4],x[3],y[2],x[1],10) endif
. - 102 - inkey(0) release x,y,max do SetScreen
wclose()
return
* --------------------------------------------------------- *
procedure menu_quit
private menu
window(1,32,4,52,"n */w ,w+/n") @ 1,1 prompt " Продолжать работу " @ 2,1 prompt " Закончить работу " menu to menu
wclose() if menu=2 set color to "w/n" L_gmode(3) quit endif
return
* --------------------------------------------------------- *
procedure my_help
set key 28 to
window(3,5,19,73,"w+/bg",box1) set color to "n/bg" memoedit( memoread("rtv.hlp"), 1,2,15,65,.F.,"",240)
wclose()
set key 28 to my_help
return
* --------------------------------------------------------- *
procedure copyright
@ 1, 3 say "Расчет Установочного Объема РЭА"
@ 3,13 say "Версия 2.0"
@ 5,10 say "Владивосток . ДВТИ"
@ 6, 7 say "Кафедра радиоэлектроники"
@ 7, 8 say "и компьютерной техники"
@ 9,13 say "Горбач Д.А."
return
* --------------------------------------------------------- *
Procedure GetScreen
Private VI, ADAPTER VI = " "
ADAPTER = 0 ret = pcxVI(vi)
ADAPTER = asc( substr(VI,1,1)) if ret#0 .or. ADAPTER
рефераты Рекомендуем рефератырефераты

     
Рефераты @2011