2.9: Комп'ютерне моделювання електричних ланцюгів
- Page ID
- 101603
Ці ж програми можуть бути фантастичними посібниками для початківця студента електроніки, що дозволяє швидко та легко досліджувати ідеї без складання реальних схем. Звичайно, немає ніякої заміни для фактично побудови та тестування реальних схем, але комп'ютерне моделювання, безумовно, допомагає в процесі навчання, дозволяючи студенту експериментувати зі змінами та бачити вплив, який вони мають на схемах. Протягом цієї книги я буду включати комп'ютерні роздруківки з моделювання схеми часто, щоб проілюструвати важливі концепції. Спостерігаючи за результатами комп'ютерного моделювання, студент може отримати інтуїтивне розуміння поведінки схеми без залякування абстрактного математичного аналізу.
Для імітації схем на комп'ютері я використовую певну програму під назвою SPICE, яка працює, описуючи схему до комп'ютера за допомогою списку тексту. По суті, даний перелік є своєрідною комп'ютерною програмою сам по собі, і повинен дотримуватися синтаксичних правил мови SPICE. Потім комп'ютер використовується для обробки або «запуску» програми SPICE, яка інтерпретує текст з описом схеми і виводить результати її детального математичного аналізу, також в текстовому вигляді. Багато деталей використання SPICE описані в томі 5 («Довідник») цієї серії книг для тих, хто хоче отримати більше інформації. Тут я просто познайомлю з основними поняттями, а потім застосую SPICE до аналізу цих простих схем, про які ми читали.
По-перше, нам потрібно встановити SPICE на нашому комп'ютері. Як безкоштовна програма, вона зазвичай доступна в Інтернеті для завантаження та у форматах, придатних для багатьох різних операційних систем. У цій книзі я використовую одну з більш ранніх версій SPICE: версія 2G6, за її простоту використання.
Далі нам знадобиться схема для SPICE для аналізу. Спробуємо одну з схем, проілюстрованих раніше в розділі. Ось її принципова схема:
Ця проста схема складається з акумулятора і резистора, з'єднаних безпосередньо між собою. Ми знаємо напруга акумулятора (10 вольт) і опір резистора (5 Ом), але нічого іншого про схему. Якщо ми опишемо цю схему SPICE, вона повинна бути в змозі сказати нам (принаймні), скільки струму ми маємо в ланцюзі, використовуючи Закон Ома (I = E/R).
SPICE не може безпосередньо зрозуміти принципову схему або будь-яку іншу форму графічного опису. SPICE - це текстова комп'ютерна програма, і вимагає, щоб схема була описана з точки зору складових компонентів та точок підключення. Кожна унікальна точка підключення в схемі описується для SPICE номером «вузла». Точки, які електрично спільні один одному в ланцюзі, що імітується, позначаються як такі, розділяючи одне і те ж число. Було б корисно вважати ці цифри «дротяними» числами, а не «вузлами», дотримуючись визначення, наведене в попередньому розділі. Ось так комп'ютер знає, що до чого підключено: шляхом спільного використання загального дроту, або вузла, чисел. У нашому прикладі схеми ми маємо тільки два «вузла», верхній провід і нижній провід. SPICE вимагає, щоб десь у схемі був вузол 0, тому ми будемо маркувати наші дроти 0 і 1:
На наведеній вище ілюстрації я показав кілька міток «1» та «0» навколо кожного відповідного дроту, щоб підкреслити концепцію спільних точок, які поділяють загальні номери вузлів, але все ж це графічне зображення, а не текстовий опис. SPICE повинен мати значення компонентів та номери вузлів у текстовій формі, перш ніж будь-який аналіз може продовжити.
Створення текстового файлу в комп'ютері передбачає використання програми під назвою текстовий редактор. Подібно до текстового процесора, текстовий редактор дозволяє набирати текст і записувати набране у вигляді файлу, що зберігається на жорсткому диску комп'ютера. Текстові редактори не мають можливості форматування текстових процесорів (без курсиву, напівжирного або підкресленого символів), і це добре, оскільки такі програми, як SPICE, не знали б, що робити з цією додатковою інформацією. Якщо ми хочемо створити звичайний текстовий файл, абсолютно нічого не записане, крім символів клавіатури, які ми вибираємо, текстовий редактор є інструментом для використання.
Якщо використовується операційна система Microsoft, така як DOS або Windows, пара текстових редакторів легко доступні разом з системою. У DOS є стара програма редагування тексту Edit, яку можна викликати, ввівши edit в командному рядку. У Windows (3.x/95/98/NT/ME/2K/XP) текстовий редактор Блокнота - ваш вибір на складі. Багато інших програм для редагування тексту доступні, а деякі навіть безкоштовні. Я використовую безкоштовний текстовий редактор під назвою Vim, і запускаю його як під операційними системами Windows 95, так і під Linux. Мало значення, який редактор ви використовуєте, тому не хвилюйтеся, якщо скріншоти в цьому розділі не схожі на ваші; важливою інформацією тут є те, що ви вводите, а не який редактор ви використовуєте.
Щоб описати цю просту, двокомпонентну схему до SPICE, я почну з виклику своєї програми текстового редактора і набравши рядок «title» для схеми:
Ми можемо описати батарею до комп'ютера, ввівши в рядок тексту, що починається з літери «v» (для «Джерело напруги»), визначивши, до якого проводу підключається кожна клема акумулятора (номери вузлів), і напруга акумулятора, ось так:
Цей рядок тексту говорить SPICE, що у нас є джерело напруги, підключене між вузлами 1 і 0, постійний струм (DC), 10 вольт. Ось і все, що комп'ютер повинен знати щодо акумулятора. Тепер переходимо до резистору: SPICE вимагає, щоб резистори описувалися буквою «r», цифри двох вузлів (точок підключення), а опір в Омах. Так як це комп'ютерне моделювання, немає необхідності вказувати номінал потужності для резистора. Це одна приємна річ про «віртуальних» компонентах: вони не можуть бути пошкоджені надмірними напругами або струмами!
Тепер SPICE буде знати, чи є резистор підключений між вузлами 1 і 0 зі значенням 5 Ом. Цей дуже короткий рядок тексту повідомляє комп'ютеру, що у нас є резистор (» r»), підключений між тими ж двома вузлами, що і акумулятор (1 і 0), зі значенням опору 5 Ом.
Якщо ми додамо оператор.end до цієї колекції команд SPICE, щоб вказати кінець опису схеми, ми матимемо всю необхідну інформацію SPICE, зібрану в одному файлі та готову до обробки. Цей опис схеми, що складається з рядків тексту в комп'ютерному файлі, технічно відомий як список мереж, або колода:
Після того, як ми закінчили вводити всі необхідні команди SPICE, нам потрібно «зберегти» їх у файл на жорсткому диску комп'ютера, щоб SPICE мав на що посилатися при виклику. Оскільки це мій перший список мереж SPICE, я збережу його під назвою файлу «circuit1.cir» (фактичне ім'я є довільним). Ви можете вибрати назву свого першого списку мереж SPICE щось зовсім інше, доки ви не порушуєте жодних правил назви файлів для вашої операційної системи, наприклад, використання не більше 8+3 символів (вісім символів у назві та трьох символів у розширенні: 12345678.123) у DOS.
Щоб викликати SPICE (скажіть йому, щоб обробити вміст файлу circuit1.cir netlist), ми повинні вийти з текстового редактора та отримати доступ до командного рядка («Підказка DOS» для користувачів Microsoft), де ми можемо вводити текстові команди для операційної системи комп'ютера, щоб підкорятися. Цей «примітивний» спосіб виклику програми може здатися архаїчним користувачам комп'ютерів, які звикли до графічного середовища «вказуйте та клацніть», але це дуже потужний і гнучкий спосіб робити речі. Пам'ятайте, що ви робите тут за допомогою SPICE - це проста форма комп'ютерного програмування, і чим зручніше ви стаєте в наданні командам текстової форми комп'ютера, щоб слідувати - на відміну від простого натискання на зображення піктограм за допомогою миші - більше майстерності ви матимете над вашим комп'ютером.
Опинившись у командному рядку, введіть цю команду, після чого натисніть клавішу [Enter] (у цьому прикладі використовується назва файлу circuit1.cir; якщо ви вибрали іншу назву файлу для вашого файлу Netlist, замініть його):
Ось як це виглядає на моєму комп'ютері (під управлінням операційної системи Linux), безпосередньо перед тим, як я натискаю клавішу [Enter]:
Як тільки ви натиснете клавішу [Enter] для виконання цієї команди, текст з виводу SPICE повинен прокручуватися на екрані комп'ютера. Ось скріншот, який показує, що SPICE виводить на моєму комп'ютері (я подовжив вікно «терміналу», щоб показати вам повний текст. З терміналом звичайного розміру текст легко перевищує одну довжину сторінки):
SPICE починається з повторення списку мереж, в комплекті з рядком заголовка і оператом.end. Приблизно на півдорозі моделювання він відображає напругу на всіх вузлах з прив'язкою до вузла 0. У цьому прикладі у нас є лише один вузол, відмінний від вузла 0, тому він відображає там напругу: 10.0000 вольт. Потім він відображає струм через кожне джерело напруги. Оскільки у нас є лише одне джерело напруги у всій схемі, він відображає струм лише через цю. В даному випадку струм джерела дорівнює 2 ампера. Завдяки примхи в тому, як SPICE аналізує струм, значення 2 ампер виводиться як негативний (-) 2 ампер.
Останній рядок тексту в звіті про аналіз комп'ютера - «загальна розсіювання потужності», яка в цьому випадку дається як «2.00E+01» Вт: 2,00 х 10 1, або 20 Вт. SPICE виводить більшість цифр у науковому позначенні, а не звичайному (фіксованому) позначенні. Хоча спочатку це може здатися більш заплутаним, насправді це менш заплутано, коли беруть участь дуже великі або дуже малі числа. Подробиці наукового позначення будуть висвітлені в наступному розділі цієї книги.
Однією з переваг використання «примітивної» текстової програми, такої як SPICE, є те, що текстові файли, які розглядаються, надзвичайно малі порівняно з іншими форматами файлів, особливо графічними форматами, що використовуються в іншому програмному забезпеченні для моделювання схем. Крім того, той факт, що вивід SPICE є простим текстом, означає, що ви можете направити вивід SPICE в інший текстовий файл, де він може бути додатково маніпульовано. Для цього ми повторно видаємо в операційну систему комп'ютера команду для виклику SPICE, на цей раз перенаправляючи висновок в файл, який я буду називати «output.txt»:
SPICE буде працювати «безшумно» на цей раз, без потоку виведення тексту на екран комп'ютера, як і раніше. Буде створено новий файл output1.txt, який ви можете відкрити і змінити за допомогою текстового редактора або текстового процесора. Для цієї ілюстрації я використовую той же текстовий редактор (Vim), щоб відкрити цей файл:
Тепер я можу вільно редагувати цей файл, видаляючи будь-який сторонній текст (наприклад, «банери», що показують дату та час), залишаючи лише текст, який, на мою думку, має відношення до аналізу моєї схеми:
Після відповідного редагування та повторного збереження під тим самим ім'ям файлу (output.txt у цьому прикладі), текст може бути вставлений у будь-який документ, «звичайний текст» є універсальним форматом файлів майже для всіх комп'ютерних систем. Я навіть можу включити його безпосередньо до тексту цієї книги, а не як графічне зображення «скріншот» - ось так:
До речі, це кращий формат для виведення тексту з симуляцій SPICE в цій серії книг: як реальний текст, а не як графічні знімки екрана.
Щоб змінити значення компонента в моделюванні, нам потрібно відкрити файл netlist (circuit1.cir) і внести необхідні зміни в текстовому описі схеми, а потім зберегти ці зміни до того ж імені файлу та повторно викликати SPICE в командному рядку. Цей процес редагування і обробки текстового файлу один знайомий кожному комп'ютерному програмісту. Однією з причин, чому я люблю викладати SPICE, є те, що він готує учня думати і працювати як комп'ютерний програміст, що добре тим, що комп'ютерне програмування є значною областю передової роботи з електронікою.
Раніше ми досліджували наслідки зміни однієї з трьох змінних в електричному ланцюзі (напруга, струм або опір), використовуючи Закон Ома, щоб математично передбачити, що станеться. Тепер давайте спробуємо те ж саме, використовуючи SPICE, щоб зробити математику для нас.
Якби ми потроїли напругу в нашому останньому прикладі ланцюга від 10 до 30 вольт і зберегти опір ланцюга незмінним, ми очікували б, що струм потроїться, а також. Давайте спробуємо це, перейменуючи наш файл netlist, щоб не перезаписати перший файл. Таким чином, ми матимемо обидві версії моделювання схеми, збережені на жорсткому диску нашого комп'ютера для подальшого використання. Наступний текстовий список є виходом SPICE для цього зміненого списку мереж, відформатований як звичайний текст, а не як графічне зображення екрана мого комп'ютера:
Так само, як ми і очікували, струм потроївся зі збільшенням напруги. Струм раніше був 2 ампер, але тепер він збільшився до 6 ампер (-6.000 x 10 0). Зверніть увагу також, як збільшилася загальна розсіювання потужності в ланцюзі. Раніше це було 20 Вт, але зараз становить 180 Вт (1,8 х 10 2). Згадуючи, що потужність пов'язана з квадратом напруги (Закон Джоуля: P = E 2 /R), це має сенс. Якщо потроїти напругу ланцюга, потужність повинна збільшитися в дев'ять разів (3 2 = 9). Дев'ять разів 20 дійсно 180, тому вихід SPICE дійсно корелює з тим, що ми знаємо про потужність в електричних ланцюгах.
Якщо ми хочемо побачити, як ця проста схема буде реагувати на широкий діапазон напруг акумулятора, ми можемо викликати деякі з більш просунутих варіантів в SPICE. Тут я буду використовувати опцію аналізу «.dc», щоб змінити напругу акумулятора від 0 до 100 вольт з кроком 5 вольт, друкуючи напругу ланцюга і струм на кожному кроці. Рядки в списку мереж SPICE, що починаються символом зірки («*»), є коментарями. Тобто, вони не говорять комп'ютеру робити що-небудь, що стосується аналізу ланцюгів, а лише служать нотатками для будь-якої людини, яка читає текст мережевого списку.
Команда.print у цьому списку мереж SPICE наказує SPICE друкувати стовпці чисел, що відповідають кожному кроку аналізу:
Якщо я повторно редагую файл netlist, змінивши команду.print на команду.plot, SPICE виведе грубу графіку, що складається з текстових символів:
В обох вихідних форматах ліва колонка цифр представляє напругу акумулятора на кожному інтервалі, так як воно збільшується від 0 вольт до 100 вольт, 5 вольт за раз. Цифри в правій колонці вказують струм ланцюга для кожного з цих напруг. Подивіться уважно на ці цифри, і ви побачите пропорційне співвідношення між кожною парою: Закон Ома (I = E/R) відповідає дійсності в кожному випадку, кожне значення струму є 1/5 відповідним значенням напруги, оскільки опір ланцюга рівно 5 Ом. Знову ж таки, негативні числа для струму в цьому аналізі SPICE є більш примхою, ніж будь-що інше. Просто зверніть увагу на абсолютне значення кожного числа, якщо не вказано інше.
Існують навіть деякі комп'ютерні програми, здатні інтерпретувати та перетворювати неграфічні дані, виведені SPICE в графічний графік. Одна з таких програм називається Мускатний горіх, а її висновок виглядає приблизно так:
Зверніть увагу, як Мускатний горіх відображає напругу резистора v (1) (напруга між вузлом 1 і мається на увазі контрольною точкою вузла 0) як лінію з позитивним нахилом (від нижнього лівого до верхнього правого).
Незалежно від того, чи станете ви коли-небудь досвідченим у використанні SPICE, не має відношення до його застосування в цій книзі. Все, що важливо, це те, що ви розвиваєте розуміння того, що означають цифри в звіті, створеному Spice. У майбутніх прикладах я зроблю все можливе, щоб анотувати числові результати SPICE, щоб усунути будь-яку плутанину, і розблокувати потужність цього дивовижного інструменту, щоб допомогти вам зрозуміти поведінку електричних ланцюгів.