Welcome to Qucs Help’s documentation! Зміст¶
Contents:
Швидкий старт в аналоговому моделюванні¶
Qucs (вимовляється: kju:ks) - симулятор електричних кіл з графічним користувацьким інтерфейсом. Він здатний виконувати різні види моделювання (наприклад, моделювання в постійному струмі, моделювання S-параметрів тощо). Даний документ стисло описує, як користуватися Qucs.
При першому запуску Qucs створює теку ”.qucs” у Вашій домашній теці. Кожен файл зберігається у цій теці чи в одній з її підтек. Після завантаження Qucs появляється головне вікно, яке виглядає як на мал.1. З правого боку розташована робоча область (6), де розміщуються схеми, документи перегляду даних, графіки і т.д.. З допомогою вкладок (5) можна швидко переключатися по всіх документах, що відкриті у даний час. З боку головного вікна Qucs є ще одна область (1), її вміст залежить від стану вкладок, розташованих з ліва від неї: “Проекти” (2), “Зміст” (3) і “Компоненти” (4). Після запуску Qucs активується вкладка “Проекти” (2). Оскільки Ви запустили програму вперше, ця область порожня, тому що у Вас ще немає жодної проекту. Натиснімо кнопку “Створити” прямо над областю (1) і відкриється діалогове вікно. Введіть ім’я для Вашого першого проекту, наприклад, “firstProject” і натисніть кнопку “Створити”. Qucs створить теку проекту у теці ~/.qucs, у нашому прикладі “firstProject_prj”. Кожен файл, що належить до нового проекту, буде збережено у цій теці. Новий проект негайно відкривається (це можна зауважити прочитавши заголовок вікна) і вкладки переключаються на “Зміст” (3), де показується зміст відкритого в даний момент проекту. У Вас ще немає жодного документа, тому натисніть кнопку збереження на панелі інструментів (чи використайте головне меню: Файл->Записати) щоб зберегти документ без назви, який заповнює робочу область (6). Після цього з’явиться діалогове вікно для введення імені нового документа. Введіть “firstSchematic” і натисніть кнопку “Зберегти”.
Мал. 1 - Головне вікно Qucs
Тепер зробимо просте моделювання в постійному струмі, тобто хочемо проаналізувати схему на мал. 1. Виберіть вкладку “Компоненти” ( (4) на мал. 1). Там, вгорі, Ви побачите випадаючий список, де можна вибрати групу компонентів і відповідний компонент з обраної групи. Виберіть “дискретні компоненти” і натисніть перший символ: “Опір”. Переміщуючи курсор миші в робочу область (6), Ви переносите малюнок позначення опору. Натисканням правої кнопки миші можна обертати позначення, натисканням лівої кнопки миші поміщаєте компонент на схему. Повторіть цей процес для всіх компонентів, показаних на мал. 1. Джерело напруги може бути знайдене у п’ятому класі компонентів “джерела”, позначення заземлення можна взяти з класу “дискретні компоненти” чи з панелі інструментів, необхідне моделювання визначається за допомогою великих блоків моделювання, що розміщені у класі компонентів “види моделювання”. Щоб змінити параметри другого опору, зробіть подвійне натискання лівої кнопки миші на ньому. Відкриється діалогове вікно, яке дозволяє редагувати параметри опору. Введіть “100 Ohm” на полі редагування справа і натисніть Enter.
Щоб з’єднати компоненти, натисніть кнопку з провідником на панелі інструментів (чи скористайтеся головним меню: Вставка->Провідник). Перемістіть курсор на незайнятий вивід (позначений маленьким червоним кільцем). Натискання кнопки миші у ньому починає провідник. Тепер пересуньте курсор до кінцевої точки і знову натисніть кнопку миші. Маєте вже з’єднані компоненти. Якщо ви хочете змінити напрям вигину провідника, натиснімо праву кнопку миші, як робите кінцеву точку. Можете також закінчити провідник, не натискаючи на вільний вивід, а просто зробіть подвійне натискання лівої кнопки миші.
Нарешті, дуже важливо позначити вузол, у якому Ви хочете, щоб Qucs розрахував напругу. Натиснімо на панелі інструментів кнопку для мітки провідника (чи скористайтеся меню: Вставка->Мітка провідника). Тепер натисніть кнопку миші на обраному провіднику. Відкриється діалогове вікно де можна ввести ім’я вузла. Напишіть “divide” і натисніть кнопку “Так”. Тепер схема має бути як на мал. 1.
Для запуску моделювання натисніть кнопку моделювання на панелі інструментів (чи використовуйте меню: Моделювання->Моделювати). Відкриється вікно і покаже просування процесу. Після завершення моделювання відкривається документ показу даних. Звичайно, усе це відбувається настільки швидко, що ви побачите лише швидке мелькання. Зараз Вам потрібно помістити діаграму, щоби побачити результати моделювання. Зліва тепер розміщено клас компонентів “діаграми”, який вибирається автоматично. Натисніть на “Таблична”, перейдіть в робочу область і помістіть її, натиснувши ліву кнопку мишки. Відкривається діалогове вікно, де можна вибрати те, що можливо показати у новій діаграмі. У лівій області видно ім’я вузла, яке Ви поставили: “divide”. Зробіть подвійне натискання лівої кнопки миші на ньому, і воно перенесеться у праву область. Вийдіть з діалогу натисканням кнопки “Так”. Тепер видно результат моделювання: 0.667 вольта. Чудово, можете поплескати себе по плечу!
Швидкий старт в цифровому моделюванні¶
Qucs - надає також графічний інтерфейс користувачу для виконання цифрового моделювання. Даний документ коротенько описує, як для цього користовуватись Qucs.
Для цифрового моделювання Qucs використовує програму FreeHDL (http://www.freehdl.seul.org). Тому пакет FreeHDL, разом з компілятором GNU С++ необхідно встановити на комп’ютері.
Немає великої різниці у виконанні аналогового чи цифрового моделювання. Тому після прочитання Швидкий старт в аналоговому моделюванні можна легко домогтися, щоб працювало цифрове моделювання. Давайте розрахуємо таблицю істинності простого логічного елемента І. Виберіть цифрові компоненти що в списку вкладки компонентів зліва і побудуйте схему, зображену на мал. 1. Блок цифрового моделювання можна знайти серед інших блоків моделювання.
Цифрові джерела S1 і S2 підключені до входів, вузол з міткою Output є виходом. Після виконання моделювання відкривається сторінка показу даних. Помістіть на неї діаграму Таблиця істинності і вставте зміну Output. Тепер показується таблиця істинності дво-вхідного елемента І. Поздоровлення, перше цифрове моделювання зроблено!
Мал. 1 - Головне вікно Qucs
Таблиця істинності - далеко не єдиний вид моделювання, котрий можна виконати в Qucs. Можливо також подати на вхід випадковий сигнал і подивитися вихідний сигнал в часовій діаграмі. Для цього, треба поміняти параметр Type блоку моделювання на TimeList і у наступному параметрі слід ввести тривалість моделювання. Тепер в цифрових джерел інший зміст: вони можуть видавати випадкову послідовність бітів, для цього їм потрібно вказати перший біт (низький чи високий) і список моментів часу наступної зміни стану. Зверніть увагу, що цей перелік повторюється після кінця. Тому, щоб отримати тактові імпульси з частотою 1 ГГц і скважністью 1:1, у списку має бути записано: 0.5ns; 0.5ns.
Для відображення результатів цього моделювання є часова діаграма. У ній результати всіх вихідних сигналів можуть бути зображені пострічково в одній діаграмі. Отож успіхів у цій справі...
Файловий компонент VHDL¶
Більш складні і більш універсальні види моделювання можуть бути виконані з допомогою компонента “файл VHDL”. Цей компонент можна взятий з списку компонентів (розділ “цифрові компоненти”). Проте, рекомендується наступний спосіб: файл VHDL повинен бути в складі проекту. Потім перейдіть в перегляд вмісту проекту й натисніть ім’я файла. Зайшовши у область побудови схем, помістіть компонент VHDL.
Останній об’єктний блок в файлі VHDL визначає інтерфейс, тобто тут повинні бути оголошені всі вхідні і вихідні виводи. Такі виводи показуються також на схемному позначенні і можуть бути з’єднані з іншою схемою. Під час моделювання вихідний код файла VHDL поміститься у VHDL-файл верхнього рівня. Це треба враховувати, оскільки це веде до деяких обмежень. Наприклад, імена об’єктів у VHDL-файлі мають відрізнятись від іменам, вже даних підсхемам. (Після моделювання повний вихідний код можна переглянути, натиснувши F6. Користуйтеся цим, щоб відчути процес.)
Швидкий старт в оптимізації¶
Для оптимізації ланцюгів в Qucs використовується утиліта ASCO (http://asco.sourceforge.net/). Нижче подається стислий опис того, як підготувати схему, виконати утиліту й інтерпретувати результат. Перед цим у системі слід встановити ASCO.
Для підготовки списку зв’язків до оптимізації дві речі потрібно додати до існуючої схеми: потрібно вставити рівняння та блок компонента оптимізації. Візьміть схему з мал. 1 і внесіть у неї зміни такі щоб отримати у результаті схему на мал. 2.
Оптимізація електричних кіл - це ніщо інше, як мінімізація функції вартості. Це може бути час затримки чи наростання цифрового кола, або потужність чи підсилення аналогового електричного кола. Ще один спосіб - визначити завдання оптимізації як поєднання функцій, що в цьому разі веде до визначення показника добротності.
Мал. 1 - Вхідна схема.
Мал. 2 - Підготовлена схема.
Тепер відкрийте компонент оптимізації і виберіть вкладку оптимізації. З наявних параметрів особливу увагу слід приділити “Максимальному числу ітерацій”, “Константі F” і “Фактору перетину”. Переоцінка чи недооцінка можуть призвести до передчасної збіжності оптимізатора до локального мінімуму або до дуже тривалого часу оптимізації.
Мал. 3 - Діалог оптимізації, параметри алгоритму.
На вкладці “Змінні” визначається, які елементи кола буде обрано і діапазони їх допустимих значень (мал. 4). Імена змінних відповідають ідентифікаторам, поміщеним у властивості компонентів, а не іменам компонентів.
Мал. 4 - Діалог оптимізації, параметри змінних.
Нарешті, переходите до “Цілі”, де задаються цілі оптимізації (зробити максимальним, зробити мінімальним) та обмеження (менше, більше, рівно). Потім ASCO автоматично об’єднує всіх їх в одну функцію вартості, мінімум якої і шукається.
Мал. 5 - Діалог оптимізації, параметри цілей.
Наступний крок полягає у зміні схеми й визначенні, які елементи потрібно оптимізувати. Отримана внаслідок схема зображено на мал. 6.
Мал. 6 - Нове головне вікно Qucs.
Останній крок - запуск оптимізації, тобто моделювання, натисканням клавіші F2. Після завершення роботи, на яку на сучасному комп’ютері піде лише кілька секунд, найкращі результати моделювання постануть в графічному вигляді.
Мал. 7 - Вікно Qucs з результатами.
Оптимальні параметри електричного кола можна знайти у діалозі оптимізації, на вкладці “Змінні”. Тепер вони є початковими значеннями кожної з представлених змінних (мал. 8).
Мал. 8 - Найкращі знайдені параметри електричного кола.
Getting Started with Octave Scripts¶
Qucs can also be used to develop Octave scripts (see http://www.octave.org). This document should give you a short description on how to do this.
If the user creates a new text document and saves it with the Octave extension, e.g. ‘name.m’ then the file will be listed at the Octave files of the active project. The script can be executed with F2 key or by pressing the simulate button in the toolbar. The output can bee seen in the Octave window that opens automatically (per default on the right-hand side). At the bottom of the Octave window there is a command line where the user can enter single commands. It has a history function that can be used with the cursor up/down keys.
There are two Octave functions that load Qucs simulation results from a dataset file: loadQucsVariable() and loadQucsDataset(). Please use the help function in the Octave command line to learn more about them (i.e. type help loadQucsVariable and help loadQucsDataset).
Postprocessing¶
Octave can also be used for automatic postprocessing of a Qucs simulation result. This is done by editing the data display file of a schematic (Document Settings... in File menu). If the filename of an Octave script (filename extension m) from the same project is entered, this script will be executed after the simulation is finished.
Короткий опис дій¶
Дії загального призначення¶
колесо миші
колесо миші |
Прокручує область малювання по вертикалі. Можна прокручувати за межі поточного розміру. |
колесо миші + клавіша Shift |
Прокручує область малювання по горизонталі. Можна прокручувати за межі поточного розміру. |
колесо миші + клавіша Ctrl |
Збільшує чи зменшує масштаб області малювання. |
перетягування файлу в документну область |
Намагається відкрити файл як схему Qucs чи як документ показу даних. |
Режим “Виділення”¶
(Меню: Правка->Виділити)
ліва кнопка миші |
Виділяє елемент, під курсором миші. Якщо міститься кілька компонентів, можна натискати на кнопку кілька разів, аби вибрати потрібний.Тримаючи цю кнопку миші натиснутою, можна переміщати компонент, під курсором миші, і всі виділені компоненти. Якщо потрібно точно розмістити компоненти, натиснімо під час руху клавішу CTRL, і сітка буде відключена.Якщо тримати кнопку миші натиснутої без будь-яких елементів під курсором, вийде прямокутник. Після відпускання кнопки миші всі елементи, що містяться всередині цього прямокутника, виділяться.Розміри виділеної діаграми чи малюнка можуть бути змінені, якщо натиснути ліву кнопку миші над одним з кутів і рухати курсор, тримаючи кнопку натиснутою.Якщо натиснути кнопку миші на тексті компоненту, його можна безпосередньо редагувати. Натискання клавіші Enter переводить до наступної властивості. Якщо ця властивість є списком вибору, то її можна змінити лише за допомогою клавіші управління курсором (стрілки вверх/вниз).Якщо натиснути кнопку миші на вузлі електричного кола, відбудеться вхід в “режим провідника”. |
ліва кнопка миші + клавіша Ctrl |
Дозволяє виділяти більше елементів, тобто, виділення одного елемента не знімає виділення з інших. Натискання кнопки на виділеному елементі призводить до зняття його виділення. Цей режим також доречний під час виділення з допомогою прямокутника (див. попередній пункт). |
права кнопка миші |
Натискання кнопки на провіднику виділяє одну пряму лінію, а не весь провідник. |
подвійне натискання правої кнопки миші |
Відкриває діалог редагування властивостей елемента (мітки провідників, параметри компонентів тощо). |
Режим “Вставка компонента”¶
(Натиснімо на компонент/діаграму у лівій області)
ліва кнопка миші |
Помістити новий примірник компонента на схему. |
права кнопка миші |
Крутити компонент. (Не діє на діаграмах). |
Режим “Провідник”¶
(Меню: Вставка->Провідник)
ліва кнопка миші |
ліва кнопка миші |
права кнопка миші |
Змінює напрям вигину провідника (спочатку наліво/направо чи спочатку вверх/вниз). |
подвійне натискання правої кнопки миші |
Закінчує провідник, не перебуваючи на провіднику чи виводі. |
Режим “Вставка”¶
(Меню: Правка->Вставити)
ліва кнопка миші |
(Меню: Правка->Вставити) |
права кнопка миші |
Крутити елементи. |
Миша у вкладці “Зміст”¶
натискання лівої кнопки |
Виділяє файл. |
|
[ image ] |
Відкриває файл. |
|
натискання правої кнопки |
Відображає меню з: |
|
“відкрити” |
|
|
“перейменувати” |
|
|
“видалити” |
|
|
“видалити групу” |
|
Клавіатура¶
Багато дій може бути викликано/зроблено з допомогою клавіш клавіатури. Дії що виконуються пояснюються в рядку статусу при виборі команди із меню. Деякі додаткові команди, що виконуються з допомогою клавіш, наводяться в наступному списку:
“Delete” чи “Backspace” |
Видаляє виділені елементи чи входить у режим видалення, якщо жоден елемент не виділено. |
Клавіші зі стрілками вліво/вправо |
Змінюють розташування виділених маркерів на графіках.Якщо жоден маркер не виділено, переміщають виділені елементи.Якщо жоден елемент не виділено, прокручують область документа. |
Клавіші зі стрілками вверх/вниз |
Змінюють розташування виділених маркерів на багатомірних графіках.Якщо жоден маркер не виділено, переміщають виділені елементи.Якщо жоден елемент не виділено, прокручують область документа. |
Клавіша Tab |
Переходить до наступного відкритого документу (у відповідності до вкладків). |
Фундаментальна обізнаність із підсхемами¶
Підсхеми використовуються, щоб зробити більш зрозумілою схему. Це дуже корисно у великих схемах чи в схемах де який не будь блок компонентів з’являється по кілька разів.
У Qucs кожна схема, що містить вивід підсхеми, є підсхемою. Вивід підсхеми можна отримати з допомогою панелі інструментів, списку компонентів (в дискретних компонентах) чи меню (Вставка->Вставити вивід). Після того, як вставлені всі виводи підсхеми (наприклад, два), треба зберегти підсхему (наприклад, натиснувши CTRL-S). Якщо глянути в перегляд вмісту проекту (мал. 1), помітно, що тепер праворуч від імені схеми стоїть “2-виводи” (стовпець “Примітка”). Ця позначка є у всіх документів, що є підсхемами. Тепер перейдіть в схему, де Ви хочете використати цю підсхему. Потім натиснімо на ім’я підсхеми (в перегляді вмісту). Знову зайшовши у область документів, Ви бачите, що зараз можна помістити підсхему в головну схему. Зробіть так і закінчіть схему. Тепер можна виконати моделювання. Результат буде таким же, коли б всі компоненти підсхем були розміщені безпосередньо на схемі.
Мал. 1 - Одержання доступу до підсхеми
Якщо вибрати компонент-підсхему (натиснувши на її позначення у схемі), можна ввійти у підсхему, натиснувши CTRL-I (звісно, ця функція доступна через панель інструментів, і через меню). Можна повернутися назад, натиснувши CTRL-H.
Якщо Вам не подобається позначення компонента підсхеми, то можете намалювати свій власний і помістити текст компонента туди, де Вам подобається. Просто зробіть схему підсхеми поточним документом і перейдіть до меню: Файл->Змінити позначення схеми. Якщо ви не намалювали позначення для цієї схеми, то автоматично буде створено просте позначення. Це позначення можна редагувати, малюючи лінії та дуги. Після закінчення, збережіть його. Тепер помістіть його на іншу схему, і вже у Вас є нове позначення.
Як і в усіх інших компонентів, у підсхем можуть бути параметри. Для формування власних параметрів, поверніться в редактор, де ви редагували позначення підсхеми, і двічі натисніть ліву кнопку на тексті параметра підсхеми. З’явиться діалогове вікно, у якому можете заповнити параметри початковими значеннями і описами. Коли Ви це закінчите, закрийте діалогове вікно і збережіть підсхему. Скрізь, де вставляється підсхема, у неї будуть ці нові параметри, і можна редагувати їх, як і у всіх інших компонентів.
Subcircuits with Parameters¶
A simple example using subcircuits with parameters and equations is provided here.
Create a subcircuit:
- Create a new project
- New schematic (for subcircuit)
- Add a resistor, inductor, and capacitor, wire them in series, add two ports
- Save the subcircuit as RLC.sch
- Give value of resistor as ‘R1’
- Add equation ‘ind = L1’,
- Give value of inductor as ‘ind’
- Give value of capacitor as ‘C1’
- Save
- File > Edit Circuit Symbol
- Double click on the ‘SUB File=name’ tag under the rectangular box
- Add name = R1, default value = 1
- Add name = L1, default value = 1
- Add name = C1, default value = 1
Гаразд
Insert subcircuit and define parameters:
- New schematic (for testbench)
- Save Test_RLC.sch
- Project Contents > pick and place the above RLC subcircuit
- Add AC voltage source (V1) and ground
- Add AC simulation, from 140Hz to 180Hz, 201 points
- Set on the subcircuit symbol
- R1=1
- L1=100e-3
- C1=10e-6
Моделювати
- Add a Cartesian diagram, plot V1.i
- The result should be the resonance of the RLC circuit.
- The parameters of the RLC subcircuit can be changed on the top schematic.
Короткий опис математичних функцій¶
У рівняннях Qucs можна застосовувати наступні операції, та функції. Для детальнішого опису будь-ласка зверніться до “Measurement Expressions Reference Manual”. Параметри в квадратних дужках “[]” не обовязкові.
Оператори¶
Арифметичні оператори¶
+x |
унарний плюс |
-x |
унарний мінус |
x+y |
додавання |
x-y |
віднімання |
x*y |
множення |
x/y |
ділення |
x%y |
залишок від ділення |
x^y |
піднесення до степеня |
Логічні оператори¶
!x |
Заперечення |
x&&y |
І |
x||y |
Або |
x^^y |
Виключаюче або |
x?y:z |
Скорочення для логічного розалуження якщо |
x==y |
Тотожність |
x!=y |
Не дорівнює |
x<y |
Менше |
x<=y |
Менше рівно |
x>y |
Більше |
x>=y |
Більше рівно |
Математичні функції¶
Вектори та матриці: Створення¶
eye(n) |
n x n одинична матриця |
length(y) |
створює вектор з n лінійно протяжними елементами між from і to, обидва значення включно |
linspace(from,to,n) |
створює вектор з n логарифмічно протяжними елементами між from і to, обидва значення включно |
logspace(from,to,n) |
створює вектор з n логарифмічно протяжними елементами між from і to, обидва значення включно |
Вектори та матриці: Базові матричні функції¶
adjoint(x) |
сполучена матриця (транспонована і комплексно-спряжена) |
det(x) |
детермінант x |
inverse(x) |
інверсія матриці x |
transpose(x) |
транспонована матриця x (рядки - і стовпчики міняються місцями) |
абсолютне значення, модуль комплексного числа¶
abs(x) |
абсолютне значення, модуль комплексного числа |
angle(x) |
фаза в радіанах |
arg(x) |
спряжене комплексне число |
conj(x) |
спряжене комплексне число |
deg2rad(x) |
Функція Евклідової відстані |
hypot(x,y) |
Функція Евклідової відстані |
imag(x) |
те саме, що і abs(x) |
mag(x) |
квадрат mag(x) |
norm(x) |
фаза в градусах |
phase(x) |
фаза в градусах |
polar(m,p) |
повертає комплексне число, з модуля і фази |
rad2deg(x) |
перетворює радіани в градуси |
real(x) |
дійсна частина комплексного числа |
sign(x) |
обчислення знаку функції |
sqr(x) |
квадратний корінь |
sqrt(x) |
квадратний корінь |
unwrap(p[,tol[,step]]) |
розгортає кут (в радіанах), використовуючи необов’язкове значення допуску (типово pi) |
експоненціальна функція з основою e¶
exp(x) |
експоненціальна функція з основою e |
limexp(x) |
Обмежена експоненціальна функція |
log10(x) |
десятковий логарифм |
log2(x) |
логарифм з основою два |
ln(x) |
натуральний логарифм |
Елементарні математичні функції: Тригонометричні функції¶
cos(x) |
косеканс |
cosec(x) |
косеканс |
cot(x) |
котангенс |
sec(x) |
секанс |
sin(x) |
тангенс |
tan(x) |
тангенс |
Елементарні математичні функції: Оберенні тригонометричні функції¶
arccos(x) |
арккосинус |
arccosec(x) |
арккосеканс |
arccot(x) |
арккотангенс |
arcsec(x) |
арксеканс |
arcsin(x) |
арксинус |
arctan(x[,y]) |
арктангенс |
косинус гіперболічний¶
cosh(x) |
косинус гіперболічний |
cosech(x) |
косеканс гіперболічний |
coth(x) |
котангенс гіперболічний |
sech(x) |
секанс гіперболічний |
sinh(x) |
синус гіперболічний |
tanh(x) |
тангенс гіперболічний |
арккосинус гіперболічний¶
arcosh(x) |
арккосинус гіперболічний |
arcosech(x) |
арккосеканс гіперболічний |
arcoth(x) |
арккотангенс гіперболічний |
arsech(x) |
арксеканс гіперболічний |
arsinh(x) |
арксинус гіперболічний |
artanh(x) |
арктангенс гіперболічний |
Елементарні математичні функції: Округлення¶
ceil(x) |
округлення до найближчого більшого цілого |
fix(x) |
відкидає дробові розряди дійсного числа |
floor(x) |
округлення до найближчого меншого цілого |
round(x) |
округлення до найближчого цілого |
Елементарні математичні функції: Спеціальні математичні функції¶
besseli0(x) |
модифікована функція Бесселя нульового порядку |
besselj(n,x) |
функція Бесселя 1-го роду n-го порядку |
bessely(n,x) |
функція Бесселя 2-го роду n-го порядку |
erf(x) |
функція помилки |
erfc(x) |
компліментарна функція помилки |
erfinv(x) |
інверсна функція помилки |
erfcinv(x) |
інверсна компліментарна функція помилки |
sinc(x) |
повертає |
step(x) |
avg(x[,range]) |
Аналіз даних: Базова статистика¶
avg(x[,range]) |
арифметичне середнє значення в векторі; якщо дано інтервал range, то в x мусить бути однозначна залежність від даних |
cumavg(x) |
накопичувальне середнє значення в векторі |
max(x,y) |
повертає більше з значень x і y |
max(x[,range]) |
максимальне значення в векторі; якщо дано інтервал range, то в x мусить бути однозначна залежність від даних |
min(x,y) |
повертає менше з значень x і y |
min(x[,range]) |
мінімальне значення в векторі; якщо дано інтервал range, то в x мусить бути однозначна залежність від даних |
rms(x) |
среднеквадратичне значення по вектору |
runavg(x) |
ковзне середнє значення в векторі |
stddev(x) |
видає випадкове число |
variance(x) |
розбіжність значень в векторі |
random() |
випадкове число між 0.0 та 1.0 |
srandom(x) |
видає випадкове число |
Аналіз даних: Базові операції¶
cumprod(x) |
накопичувальний добуток значень в векторі |
cumsum(x) |
накопичувальна сума значень в векторі |
interpolate(f,x[,n]) |
повертає вектор інтерпольованих даних дійсної функції f(x) по n рівновіддаленим даним, останній параметр можна пропустити, тоді буде використано прийнятне значення за замовчуванням |
prod(x) |
добуток значень в векторі |
sum(x) |
сума значень в векторі |
xvalue(f,yval) |
повертає x-значение, що звязане з y-значением, найближчим до yval в даному векторі f; отже, вектор f повинен мати однозначну залежність від даних |
yvalue(f,xval) |
повертає y-значение даного вектора f, найближче до x-значению xval; отже, вектор f повинен мати однозначну залежність від даних |
Аналіз даних: Диференциювання та інтегрування¶
ddx(expr,var) |
Derives mathematical expression expr with respect to the variable var |
diff(y,x[,n]) |
диференціює вектор y за x n раз. Якщо n пропущено, типово береться n=1. |
integrate(x,h) |
чисельно інтегрує вектор x, приймаючи постійний розмір кроку h |
Аналіз даних: Обробка сигналів¶
dft(x) |
обчислює дискретне перетворення Фур’є (DFT) вектора x |
fft(x) |
обчислює швидке перетворення Фур’є (FFT) вектора x |
fftshift(x) |
Shuffles the FFT values of vector x in order to move the frequency 0 to the center of the vector |
Freq2Time(V,f) |
обчислює зворотне дискретне перетворення Фур’є функції V(f) з фізичною інтерпретацією |
idft(x) |
обчислює зворотне дискретне перетворення Фур’є (DFT) вектора x |
ifft(x) |
обчислює зворотне швидке перетворення Фур’є (IFFT) вектора x |
kbd(x[,n]) |
децибели напруги |
Time2Freq(v,t) |
обчислює дискретне перетворення Фур’є функції v(t) з фізичною інтерпретацією |
Функції Електроніки¶
Перетворення величин¶
dB(x) |
децибели напруги |
dbm(x) |
перетворити напругу у потужність в дБ |
dbm2w(x) |
перетворити потужність в dBm в потужність в ваттах |
w2dbm(x) |
перетворити потужність в ваттах в потужність в dBm |
vt(t) |
Функція залежності опору від температури t в Кельвінах |
Коефіцієнти відображення та VSWR¶
rtoswr(x) |
перетворює коефіцієнт відображення в коефіцієнт стоячої хвилі (за напругою) (КСВ чи КСВН) |
rtoy(x[,zref]) |
перетворює коефіцієнт відображення (за умовчанням повний опорний опір рівний 50 Ом) в повну провідність |
rtoz(x[,zref]) |
перетворює коефіцієнт відображення (за умовчанням повний опорний опір рівний 50 Ом) в повний опір |
ytor(x[,zref]) |
перетворює повну провідність в коефіцієнт відображення (за умовчанням повний опорний опір рівний 50 Ом) |
ztor(x[,zref]) |
перетворює повний опір в коефіцієнт відображення (за замовчуванням повний опорний опір рівний 50 Ом) |
Робота з N-портовою матрицею¶
stos(s,zref[,z0]) |
перетворює матрицю s-параметрів в матрицю s-параметрів з другим(и) опорним(и) опором(ами) |
stoy(s[,zref]) |
перетворює матрицю s-параметрів в матрицю y-параметрів |
stoz(s[,zref]) |
перетворює матрицю s-параметрів в матрицю z-параметрів |
twoport(m,from,to) |
перетворює дану матрицю чотирьохполюсника з одногопредставлення в інше, можливі значення для “from” і “to” : ‘Y’, ‘Z’, ‘H’, ‘G’, ‘A’, ‘P.S’ і ‘T’. |
ytos(y[,z0]) |
перетворює матрицю y-параметрів в матрицю s-параметрів |
ytoz(y) |
перетворює матрицю y-параметрів в матрицю z-параметрів |
ztos(z[,z0]) |
перетворює матрицю z-параметрів в матрицю s-параметрів |
ztoy(z) |
перетворює матрицю z-параметрів в матрицю y-параметрів |
Підсилювачі¶
GaCircle(s,Ga[,arcs]) |
коло з постійним посиленням розподіленої потужності Ga у площині джерела |
GpCircle(s,Gp[,arcs]) |
коло з постійним посиленням потужності Gp у площині навантаження |
Mu(s) |
Mu чинник стійкості для матриці x (матриця S-параметрів чотирьохполюсника) |
Mu2(s) |
Mu’ чинник стійкості для матриці x (матриця S-параметрів чотирьохполюсника) |
NoiseCircle(Sopt,Fmin,Rn,F[,Arcs]) |
Створює кола з постійним параметром шуму F (може бути константою чи вектором), Arcs задає кути в градусах, створені, наприклад, з допомогою linspace(0,360,100), якщо Arcs є числом, то воно визначає кількість рівномірно розставлених сегментів кола, коли його пропущено, то типово використовується прийнятне значення |
PlotVs(data,dep) |
повертає елемент даних з data (вектор чи матричний вектор), залежний від вектора dep, наприклад, PlotVs(Gain,frequency/1e9) |
Rollet(s) |
Чинник стійкості Роллета для матриці x (матриця S-параметрів чотирьохполюсника) |
StabCircleL(s[,arcs]) |
окружність стійкості у площині навантаження |
StabCircleS(s[,arcs]) |
окружність стійкості у площині джерела |
StabFactor(s) |
Фактор стабільності для двохпортової матриці S-параметру. Синонім для Rollet() |
StabMeasure(s) |
Границі стабільності B1 для двохпортової матриці S-параметру |
Номенклатура¶
Інтервали¶
LO:HI |
інтервал від LO до HI |
:HI |
аж до HI |
LO: |
від LO |
: |
немає границі інтервалу |
Матриці¶
M |
вся матриця M |
M[2,3] |
елемент, який перебуває у 2-гому рядку і 3-му стовпці матриці M |
M[:,3] |
вектор, утворений з 3-го стовпця матриці M |
Назви величин¶
2.5 |
Real number |
1.4+j5.1 |
Complex number |
[1,3,5,7] |
Vector |
[11,12;21,22] |
Matrix |
Number suffixes¶
E |
exa, 1e+18 |
P |
peta, 1e+15 |
T |
tera, 1e+12 |
G |
giga, 1e+9 |
M |
mega, 1e+6 |
k |
kilo, 1e+3 |
m |
milli, 1e-3 |
u |
micro, 1e-6 |
n |
nano, 1e-9 |
p |
pico, 1e-12 |
f |
femto, 1e-15 |
a |
atto, 1e-18 |
Назви величин¶
S[1,1] |
значення S-параметра |
nodename.V |
постійна напруга в вузлі nodename |
name.I |
постійний струм через компонент name |
nodename.v |
змінна напруга у вузлі nodename |
name.i |
змінний струм через компонент name |
nodename.vn |
шумова напруга змінного струму в вузлі nodename |
name.in |
шумовий змінний струм через компонент name |
nodename.Vt |
перехідна напруга у вузлі nodename |
name.It |
перехідний струм через компонент name |
Примітка: Усі напруги і струми виражені піковими значеннями. Примітка: Шумові напруги виражені СКЗ значеннями в смузі частот в 1Гц.
Константи¶
i, j |
уявна одиниця (“квадратний корінь з -1”) |
pi |
4*arctan(1) = 3.14159... |
e |
Euler = 2.71828... |
kB |
Постійна Больцмана = 1.38065e-23 |
q |
Елементарний заряд = 1.6021765e-19 C |
Перелік спеціальних символів¶
У компоненті “Текст” й у тексті міток осей діаграм можна використовувати спеціальні символи. Це робиться з допомогою тегів LaTeX. У наступній таблиці наводиться перелік наявних на сьогодні символів.
Примітка: Правильне відображення цих символів залежить від шрифту, що використовується у Qucs!
Друковані грецькі літери
Тег LaTeX |
Юнікод |
Опис |
\alpha |
0x03B1 | alpha |
\beta |
0x03B2 | beta |
\gamma |
0x03B3 | gamma |
\delta |
0x03B4 | delta |
\epsilon |
0x03B5 | epsilon |
\zeta |
0x03B6 | zeta |
\eta |
0x03B7 | eta |
\theta |
0x03B8 | theta |
\iota |
0x03B9 | iota |
\kappa |
0x03BA | kappa |
\lambda |
0x03BB | lambda |
\mu |
0x03BC | mu |
\textmu |
0x00B5 | mu |
\nu |
0x03BD | nu |
\xi |
0x03BE | xi |
\pi |
0x03C0 | pi |
\varpi |
0x03D6 | pi |
\rho |
0x03C1 | rho |
\varrho |
0x03F1 | rho |
\sigma |
0x03C3 | sigma |
\tau |
0x03C4 | tau |
\upsilon |
0x03C5 | upsilon |
\phi |
0x03C6 | phi |
\chi |
0x03C7 | chi |
\psi |
0x03C8 | psi |
\omega |
0x03C9 | omega |
Прописні грецькі літери
Тег LaTeX |
Юнікод |
Опис |
\Gamma |
0x0393 | Gamma |
\Delta |
0x0394 | Delta |
\Theta |
0x0398 | Theta |
\Lambda |
0x039B | Lambda |
\Xi |
0x039E | Xi |
\Pi |
0x03A0 | Pi |
\Sigma |
0x03A3 | Sigma |
\Upsilon |
0x03A5 | Upsilon |
\Phi |
0x03A6 | Phi |
\Psi |
0x03A8 | Psi |
\Omega |
0x03A9 | Omega |
Математичні символи
Тег LaTeX |
Юнікод |
Опис |
\cdot |
0x00B7 | знак множення - точка (центрована точка) |
\times |
0x00D7 | знак множення - хрестик |
\pm |
0x00B1 | знак плюс-мінус |
\mp |
0x2213 | знак мінус плюс |
\partial |
0x2202 | знак часткового диференціювання |
\nabla |
0x2207 | набла-оператор |
\infty |
0x221E | знак нескінченності |
\int |
0x222B | знак інтеграла |
\approx |
0x2248 | символ наближення (хвилястий знак рівності) |
\neq |
0x2260 | знак не рівно |
\in |
0x220A | символ “міститься у” |
\leq |
0x2264 | знак меньше-рівно |
\geq |
0x2265 | знак більше-рівно |
\sim |
0x223C | (центральноєвропейський) знак пропорційності |
\propto |
0x221D | (американський) знак пропорційності |
\diameter |
0x00F8 | знак діаметра (також знак середнього) |
\onehalf |
0x00BD | половина |
\onequarter |
0x00BC | чверть |
\twosuperior |
0x00B2 | квадрат (степінь 2) |
\threesuperior |
0x00B3 | степінь 3 |
\ohm |
0x03A9 | одиниця для опору (прописна грецька омега) |
Узгодження електричних кіл¶
Створення узгоджених електричних кіл часто потрібне для мікрохвильової технології. Qucs може робити це автоматично. Необхідні для цього кроки:
Виконати моделювання S-параметрів, щоб розрахувати коефіцієнт відображення.
Вставити діаграму, щоб показати коефіцієнт відображення (тобто, S[1,1] для порту 1, S[2,2] для порту 2 тощо.)
Помістити на графік маркер і рухатися кроками до необхідної частоти.
Натиснути праву кнопку миші на маркері і вибрати “узгодження потужності” в меню яке з’явився.
З’являється діалогове вікно, де можна налаштувати значення, наприклад, повний опорний опір, можливо вибрати відмінним від 50 Ом.
Після натискання на кнопку “створити” відбувається повернення до схеми, і з допомогою курсору миші можна вибрати місце для вставки узгодженого електричного кола.
З’являється діалогове вікно, де можна налаштувати значення, наприклад, повний опорний опір, можливо вибрати відмінним від 50 Ом.
If the marker points to a variable called “Sopt”, the menu shows the option “noise matching”. Note that the only different to “power matching” is the fact that the conjugate complex reflexion coefficient is taken. So if the variable has another name, noise matching can be chosen by re-adjusting the values in the dialog.
Діалог здійснення узгодження може бути також викликаний з допомогою меню (Інструменти->узгодження електричних кіл) чи з допомогою комбінації клавіш (CTRL-5). Але всі значення повинні вводитися вручну.
Узгодження чотирьохполюсників¶
Якщо ім’я змінної з тексту маркера є S-параметром, то існує можливість одночасного узгодження входу і виходу чотирьохполюсного ланцюга. Це працює досить схоже на вищеописані кроки. Результатом є два узгоджені ланцюга: самий лівий вузол повинен з’єднуватися з виводом 1, більш правий вузол - з виводом 2, а через два вузла у середині повинні з’єднуватися з чотирьохполюсником.
Встановлені файли¶
До складу Qucs входять кілька програм. Їх встановлюють під час процесу інсталяції. Шлях, куди встановлюється Qucs, визначається при встановленні (скриптом configure). У наступних поясненнях приймається шлях за замовчуванням (/usr/local/).
/usr/local/bin/qucs - графічний інтерфейс
/usr/local/bin/qucsator - симулятор (консольна програма)
/usr/local/bin/qucsedit - простий текстовий редактор
/usr/local/bin/qucshelp - невеличка програма для перегляду довідкової інформації
/usr/local/bin/qucstrans - програма для розрахунку параметрів ліній передач
/usr/local/bin/qucsfilter - програма синтезу фільтрів
/usr/local/bin/qucsconv - перетворювач форматів файлів (консольна програма)
Усі програми є самостійними додатками і можуть працювати незалежно один від одного. Головна програма (графічний інтерфейс)
викликає qucsator при виконанні моделювання,
викликає qucsedit, коли демонструються текстові файли,
викликає qucshelp, коли показується довідкова система,
викликає qucstrans при виклику цієї програми з меню “Інструменти”,
викликає qucsfilter при виклику цієї програми з меню “Інструменти”,
викликає qucsconv, коли вставляється компонент SPICE і коли виконується моделювання з допомогою компонента SPICE.
Крім цього, за умови встановлення створюються такі папки:
/usr/local/share/qucs/bitmaps - містить всі растрові зображення (значки тощо.)
/usr/local/share/qucs/docs - містить HTML-документи довідкової системи
/usr/local/share/qucs/lang - містить файли перекладів
Аргументи командного рядку¶
qucs [файл1 [файл2 ...]]
qucsator [-b] -і список_кіл -o набір_даних (b = смуга прогресу)
qucsedit [-r] [файл] (r = лише читання)
qucshelp (без аргументів)
qucsconv -if spice -of qucs -і netlist.inp -o netlist.net
Формат схемного файлу¶
У документі описується формат схемного файлу Qucs. Цей формат використовується для схем (звичайно з розширенням .sch
) й для перегляду даних (звичайно з розширенням .dpl
). Наступний текст наводить короткий приклад схемного файлу.
<Qucs Schematic 0.0.6>
<Properties>
<View=0,0,800,800,1,0,0>
</Properties>
<Symbol>
<.ID -20 14 SUB>
</Symbol>
<Components>
<R R1 1 180 150 15 -26 0 1 "50 Ohm" 1 "26.85" 0 "european" 0>
<GND * 1 180 180 0 0 0 0>
</Components>
<Wires>
<180 100 180 120 "" 0 0 0 "">
<120 100 180 100 "Input" 170 70 21 "">
</Wires>
<Diagrams>
<Polar 300 250 200 200 1 #c0c0c0 1 00 1 0 1 1 1 0 5 15 1 0 1 1 315 0 225 "" "" "">
<"acnoise2:S[2,1]" #0000ff 0 3 0 0 0>
<Mkr 6e+09 118 -195 3 0 0>
</Polar>
</Diagrams>
<Paintings>
<Arrow 210 320 50 -100 20 8 #000000 0 1>
</Paintings>
У файлі є кілька розділів. Усі вони пояснюються нижче. Кожна лінія складається лише з одного інформаційного блоку, який починається знаком “менше” (<
) і який закінчується знаком “більше” (>
).
Властивості¶
Перший розділ починається з <Properties>
і закінчується </Properties>
. Він містить властивості документа, що знаходиться у файлі. Кожний рядок необов’язковий. Підтримуються такі властивості:
<View=x1,y1,x2,y2,scale,xpos,ypos>
містить становище у пікселях вікна схеми (перші чотири числа), його поточний масштаб і поточний стан верхнього лівого кута (останні два числа).<Grid=x,y,on>
містить крок сітки в пікселях (перші два числа) і включена сітка (останнє число = 1) чи виключена (останнє число = 0).<DataSet=name.dat>
містить ім’я файлу набору даних, зв’язаного з цією схемою.<DataDisplay=name.dpl>
містить ім’я файлу з сторінкою перегляду даних, зв’язаного з цією схемою (чи ім’я схемного файла, чи цей документ є переглядом даних).<OpenDisplay=yes>
містить 1, якщо сторінка показу даних відкривається автоматично після моделювання, інакше - 0.
Symbol¶
Цей поділ починається з <Symbol>
і закінчується </Symbol>
. Він містить елементи малювання, складові схемне позначення для файла. Це зазвичай використовується лише у схемних файлів, які вважають підсхемою.
Компоненти¶
Цей розділ починається з <Components>
і закінчується </Components>
. Він містить компоненти ланцюгів схеми. Формат рядки:
<type name active x y xtext ytext mirrorX rotate "Value1" visible "Value2" visible ...>
type
(“тип”) означає компонент, наприклад,R
для резистора,З
для конденсатора.name
(“ім’я”) - унікальне позначення компонента на схемою, наприклад,R1
на першому резистора.1
на поліactive
(“активний”) показує, що це компонент активний, тобто використовують у моделюванні.0
показує, що він неактивний.Наступні два числа є x і y координатами центру компонента.
Наступні два числа є x і y координатами верхнього лівого кута тексту компонента. Вони відраховуються від центру компонента.
Наступні два числа свідчить про дзеркальне відображення щодо осі x (
1
- дзеркальне відображення,0
- немає дзеркального відображення) і обертання проти годинниковий стрілки (кратно 90 градусів, тобто 0...3).Наступні параметри є значеннями властивостей компонента (у лапках), що їх слід 1, якщо це властивість певне на схемою (інакше 0).
Wires¶
Цей розділ починається з <Wires>
і закінчується </Wires>
. Він містить провідники (електричне з’єднання між компонентами електричного кола), їх мітки і вузли. Формат рядку:
<x1 y1 x2 y2 "label" xlabel ylabel dlabel "node set">
Цей розділ починається з
<Wires>
і закінчується</Wires>
. Він містить провідники (електричне з’єднання між компонентами електричного кола), їх мітки і вузли. Формат рядку: <code><x1 y1 x2 y2 “label” xlabel ylabel dlabel “node set”></code>Перший рядок у лапках - ім’я мітки. Вона порожня, якщо користувач не встановив мітку на цей провідник.
Наступні два числа - x- і y-координати мітки чи нуль, якщо мітки немає.
Наступне число є відстанню між початковою точкою провідника і точкою, де на провіднику встановлено мітку.
Останній рядок у лапках - параметри кола провідника, тобто початкова напруга вузла, що використовується ядром симулятора для пошуку рішення. Цей рядок порожній, якщо користувач не встановив параметри вузла електричного кола для цього провідника.
Diagrams¶
Цей розділ починається з <Diagrams>
і закінчується </Diagrams>
. Він містить діаграми з своїми графіками і маркерами.
<x y width height grid gridcolor gridstyle log xAutoscale xmin xstep
xmax yAutoscale ymin ystep ymax zAutoscale zmin zstep zmax xrotate
yrotate zrotate "xlabel" "ylabel" "zlabel">
Перші два числа - це x- і y-координати нижнього лівого кута.
Наступні два числа - ширина і висота границь діаграми.
П’яте число рівно 1, якщо сітка включена, і 0, якщо сітка виключена.
Далі йде колір сітки як 24-бітне шістнадцяткове RGB значення, наприклад, #FF0000 - червоний.
Наступне число визначає стиль сітки.
Наступне число визначає, які осі мають логарифмічний масштаб.
Paintings¶
Цей розділ починається з <Paintings>
і закінчується </Paintings>
. Він містить елементи малювання, які є в схемі.
Технічні описи, що стосуються симулятора
Приклади електричних схем