Дипломная работа: Методы расчета волновых сопротивлений линий передачи перспективных печатных плат и создание веб-приложения на их основеtivnyh-pechatnyh-plat-i-sozdanie-veb-pril_101609

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

<label for="n">Толщина основания:</label>

<input data-bind="value:lapPol1.hpol1" id="n" type="number" class="form-control" step="0.0000001" />

</div>

<div class="field">

<label for="tp">Толщина проводника:</label>

<input data-bind="value:lapPol1.tpol1" id="tp" type="number" class="form-control" step="0.0000001" />

</div>

<div class="field">

<label for="dpp">Диэлектрическая проницаемость подложки:</label>

<input data-bind="value:lapPol1.erpol1" id="dpp" type="number" class="form-control" step="0.0000001" />

</div>

<div class="field">

<label for="tcz">Ширина проводника:</label>

<input data-bind="value:lapPol1.wpol1" id="tcz" type="number" class="form-control" step="0.0000001" />

</div>

<div>

<input data-bind="click:calcLapPol1" type="button" class="btn btn-block" value="Расчёт" />

<span data-bind="text: result"></span>

</div>

</div>

Рис. 15 - Код представления полосковой линии

Рис. 16 - Представление полосковой линии

Аналогичный пример кода представления (Рис.16) и самого представления микрополосковой линии передачи (LapMicro1.cshtml) в однородной среде (Рис. 17):

<div class="main row centerLayer h-100 justify-content-center align-items-center col-xs-6 block2 bg-primary center">

<p><img src="~/lib/images/00.png"></p>

<div class="field col-sm-8 col-xs-12">

<label for="n">Ширина проводника:</label>

<input data-bind="value:lapMicro1.w" id="n" type="number" class="form-control" step="0.0000001" />

</div>

<div class="field">

<label for="tp">Толщина подложки:</label>

<input data-bind="value:lapMicro1.h" id="tp" type="number" class="form-control" step="0.0000001" />

</div>

<div class="field">

<label for="dpp">Диэлектрическая проницаемость подложки:</label>

<input data-bind="value:lapMicro1.er" id="dpp" type="number" class="form-control" step="0.0000001" />

</div>

<div class="field">

<label for="tcz">Толщина проводника:</label>

<input data-bind="value:lapMicro1.t" id="tcz" type="number" class="form-control" step="0.0000001" />

</div>

<div>

<input data-bind="click:calcLapMicro1" type="button" class="btn btn-block" value="Расчёт" />

<span data-bind="text: result"></span>

</div>

</div>

Рис. 17 - Код представления микрополосковой ЛП

Рис. 18 - Представление микрополосковой линии в однородной среде

По аналогии сделаны представления ещё 6 линий передачи.

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

Мастер-страница.

Значение 3 файлов, изображенных на рисунке 18:

_Layout.cshtml: мастер-страница, в которую вставляются страницы Razor. Именно в ней реализовано меню;

_ViewStart.cshtml: задает мастер-страницу;

_ViewImports.cshtml: определяет директивы Razor, которые добавляются на каждую страницу Razor.

Рис. 19 - Файлы Razor Pages

Рассмотрим небольшую, но важную часть кода мастер-страницы «_Layout.cshtml» (Рис.19). Изображение показывает реализацию шаблона меню.

<nav class="dws-menu">

<ul>

<li>

<a href="#"><i class="fa fa-shopping-cart"></i>Линии передачи</a>

<ul>

<li>

<a href="#">Микрополосковая</a>

<ul>

<li><a asp-controller="Home" asp-action="LapMicro1">В однородной среде</a></li>

<li><a asp-controller="Home" asp-action="LapMicro2">В кусочно-неоднородной среде</a></li>

<li><a asp-controller="Home" asp-action="LapMicro3">С учётом подтравов печатных проводников</a></li>

<li><a asp-controller="Home" asp-action="LapDiff">Дифференциальная пара</a></li>

</ul>

</li>

<li><a href="#">Полосковая</a>

<ul>

<li><a asp-controller="Home" asp-action="LapPol1">Полосковая</a></li>

<li><a asp-controller="Home" asp-action="LapPol2">Двойная полосковая</a></li>

<li><a asp-controller="Home" asp-action="LapPol3">Несимметричная полосковая</a></li>

<li><a asp-controller="Home" asp-action="LapPol4">Заглубленная полосковая</a></li>

</ul>

</li>

</ul>

</li>

<li><a href="#"><i class="fa fa-th-list"></i>Справка</a></li>

<li><a href="#"><i class="fa fa-envelope-open"></i>О сайте</a></li>

</ul>

</nav>

RenderBody()

Рис. 20 -. Отрывок кода мастер-страницы

Рассмотрим основные моменты:

Тег <nav> имеет класс «dws-menu», который является стилем, отвечающим за визуальные эффекты и расположение меню. Он добавляется непосредственно в «_Layout.cshtml».

Теги <ul> и <li> языка html совместно определяют неупорядоченные списки.

@RenderBody является функцией языка C#. Осуществляет замену представлений.

Функции «asp-controller» и «asp-action» являются функциями Tag Helper, подключающиеся в файле _ViewImports.cshtml. «asp-controller» связывается с контроллером «Home», «asp-action» запускает указанный метод контроллера. Небольшой отрывок кода контроллера Home указан на рисунке 20. В контроллере реализованы методы, вызывающие представления, причём название каждого метода контроллера и представления с расширением .cshtml совпадают. Это значит, когда из мастер-страницы с помощью «asp-controller» и «asp-action» проходят запросы к методам контроллера, тогда вызываются соответствующие представления (см. выше, Рис.13)., и соответственно, у пользователя меняется картинка.

[Route("LapMicro1")]

public IActionResult LapMicro1()

{

return View();

}

[Route("LapMicro2")]

public IActionResult LapMicro2()

{

return View();

}

[Route("LapMicro3")]

public IActionResult LapMicro3()

{

return View();

}

[Route("LapDiff")]

public IActionResult LapDiff()

{

return View();

}

[Route("LapPol1")]

public IActionResult LapPol1()

{

return View();

}

Рис. 21 -. Отрывок кода контроллера Home

Код мастер-страницы похож на полноценную веб-страницу: здесь присутствуют основные теги html: <html>, <head>, <body> и т.д; здесь возможно использование Razor. Фактически, это такое же представление. Главное отличие от обычных представлений (в данном случае: представлений линий передач) состоит в использовании метода @RenderBody(), являющегося плейсхолдером, то есть на его место с помощью вызовов методов контроллера могут подставляться другие представления, использующие данную мастер-страницу. Таким образом, легко установить для всех представлений веб-приложения единообразный стиль оформления.

2.4 Программная реализация расчёта волнового сопротивления

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

На мастер-странице подключаются JavaScript коды:

<script type="text/javascript" src="~/lib/knockout/knockout-3.5.0.js"></script>

<script src="~/lib/scripts/Onclicklistener.js"></script>

Первая строка подключает технологию «knockout.js», вторая строка - написанный вручную JavaScript-код, в котором реализован непосредственно расчёт волнового сопротивления.

Рассмотрим подключение отслеживания:

1. Во всех представлениях каждую форму, где записываются данные, с помощью специальной функции «data-bind» технологии «knockout.js» привязываем к переменным, которые собираемся отслеживать. Пример: привязка текстового поля, в котором будет располагаться значение ширины проводника (Рис.21). Остальные формы привязываются по аналогии.

<div class="field">

<label for="tp">Толщина подложки:</label>

<input data-bind="value:lapMicro1.h" id="tp" type="number" class="form-control" step="0.0000001" />

</div>

Рис. 22 - Привязка формы

2. Затем, привязываем форму, в которой будет выводиться результат (Рис.22).

<span data-bind="text: result"></span>

Рис. 23 - Привязка формы с результатом

3. Далее, в JavaScript коде «Onclicklistener.js» создаётся функция, в которой применяется метод ko.observable(), позволяющий с помощью переменных следить за изменениями в формах. Пример: создание наблюдаемых объектов с помощью ko.observable (Рис.23).

Рис. 24 - Создание наблюдаемых объектов

4. По аналогии выполнена привязка каждой формы для всех линий передачи.

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

data-bind=”click:calcLapMicro1” означает вызов метода «calcLapMicro1», который производит расчёт микрополосковой линии передачи и находится в «Onclicklistener.js» (Рис. 25)

<input data-bind="click:calcLapMicro1" type="button" class="btn btn-block" value="Расчёт" />

Рис. 25 - Вызов функции расчёта в lapMicro1.cshtml

self.calcLapMicro1 = function () {

var w0 = parseFloat(self.lapMicro1.w());

var h0 = parseFloat(self.lapMicro1.h());

var er0 = parseFloat(self.lapMicro1.er());

var t0 = parseFloat(self.lapMicro1.t());

if ((w0 / h0) < 1) {

var eff = (er0 + 1) / 2 + ((er0 - 1) / 2) * (Math.sqrt(w0 / (w0 + 12 * h0)) + 0.04 * (1 - w0 / h0) * (1 - w0 / h0))

};

if ((w0 / h0) >= 1) {

var eff = (er0 + 1) / 2 + ((er0 - 1) / 2) * (Math.sqrt(w0 / (w0 + 12 * h0)));

};

var w00 = w0 + ((t0 / Math.PI) * Math.log(4 * Math.E / (Math.sqrt((t0 / h0) * (t0 / h0))

+ (t0 / ((w0 * Math.PI) + (1.1 * t0 * Math.PI) * (w0 * Math.PI) + (1.1 * t0 * Math.PI)))))) * ((eff + 1) / 2 * eff);

// Волновое сопротивление

var z0 = (377 / (2 * Math.sqrt(2 * Math.PI) * Math.sqrt(eff + 1))) * Math.log(1 + (4 * h0 / w00)

* (4 * ((14 * eff + 8) / (11 * eff)) * (h0 / w00) + Math.sqrt(16 * ((14 * eff + 8) / (11 * eff))

* ((14 * eff + 8) / (11 * eff)) * (h0 / w00) * (h0 / w00) + (eff + 1) * Math.PI / 2 * eff)));

self.result(z0);

};

Рис. 26 - Функция «calcLapMicro1»

2. self.result(z0) задаёт значения выводимой переменной result (Рис.25). Функция data-bind=”text:result” позволяет показывать этот результат (Рис.26).

Рис. 27 - Вывод результата функции «calcLapMicro1»

Таким образом, во всех представлениях (файлах с расширением .cshtml) все формы привязываются к наблюдаемым переменным, затем за счёт нажатия на кнопку «Расчет» вызываются функции JavaScript, в которых происходит расчёт.

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

2.5 Тестирование и отладка веб-сайта

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

1. Для каждой линии передачи были подобраны свои контрольные значения входных данных.

2. Производился расчёт по этим данным двумя способами: вручную и с помощью веб-сайта.

3. Полученные результаты сравнивались.

4. Находились несоответствия, затем осуществлялись исправления написанных неверно формул.

Реализованные на сайте линии передачи, формулы для которых были взяты из действующего международного стандарта IPC-2141A (формулы: раздел 4.8-4.9 данной работы):

Микрополосковая линия в однородной среде

Полосковая линия

Заглубленная полосковая линия

Двойная полосковая линия

Несимметричная полосковая линия

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

2.6 Рекомендации по использованию веб-ресурса

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

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

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

Интерфейс веб-сайта достаточно прост и тривиален:

Рис. 29 - Интерфейс сайта

Рис. 30 - Интерфейс сайта

ВЫВОД

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

Затем был проведён анализ методов расчёта волновых сопротивлений для различных конфигураций линии передачи. На основании проведенного анализа были выбраны наиболее точные и усовершенствованные методы расчёта.

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

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

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

1. Кечиев Л.Н. Проектирование печатных плат быстродействующей аппаратуры. / Л.Н. Кечиев. - М.: ООО «Группа ИДТ», 2007. - 616 с.

2. Медведев А.М. Печатные платы. Конструкции и материалы / А.М. Медведев. - М.: Техносфера, 2005. - 304 с.: ил.

3. Ritchey Lee W. Right The First Time. - Speeding Edge, 2003. - 288 p.

4. Кечиев Л.Н., Смирнов А.М., Соловьев А.В., Нисан А.В. Математические модели для расчета значений волнового сопротивления микрополосковых линий передачи. - Технологии ЭМС, 2008, №3. - С. 68-75.

5. Нефёдов Е.И. Полосковые линии передачи. / Нефёдов Е.И., Фиалковский А.Т.. - М.: Наука, 1980 - 312 с.

6. Wadell, Brian C. Transmission line design handbook / Brian C. Wadell. - 1991. - 267 p.

7. ГОСТ IEC 61188-1-2-2013. Печатные платы и печатные узлы. Часть 1-2. - М.: Стандартинформ, 2014 - 40 с.

8. Иоссель Ю.Я. Расчет электрической емкости / Ю.Я. Иоссель, Э.С. Кочанов, М.Г. Струнский. - 2-е изд., перераб. И доп. - Л.: Энергоиздат, Ленинград, 1981. - 288 с.