Пособие по обработке результатов. Методические указания А. М. БончБруевич
Скачать 0.7 Mb.
|
Московский государственный технический университет имени Н.Э. Баумана Методические указания А.М. Бонч-Бруевич Анализ результатов схемотехнического моделирования в пакете MATLAB Москва Издательство МГТУ им. Н.Э. Баумана 2012 2 В пособии даны краткие теоретические сведения по анализу данных и рассмотрены примеры обработки результатов компьютерного моделирования электронных схем в среде MATLAB. Методические указания могут использоваться при выполнении курсового проекта по дисциплине «Электроника», для анализа полученных в ходе моделирования результатов и оценки их достоверности. Для студентов МГТУ им. Н.Э. Баумана, обучающихся по направлению подготовки «Информационная безопасность» 3 Предисловие . Современные электронные устройства могут использоваться как для несанкционированного получения доступа к информации, так и для построения системы защиты. Специалист по защите информации должен иметь представление о принципах работы аналоговых электронных устройств и владеть методами анализа и обработки сигналов. Традиционно изучаемые в курсе электроники принципы работы электронных приборов – диодов, транзисторов, операционных усилителей и других закрепляются в ходе выполнения лабораторных работ, выполняемых на макетах или в среде компьютерного схемотехнического моделирования. Существует множество программных комплексов схемотехнического моделирования например – Multisim (National Instruments), ADS (Agilent), OrCAD (Candence). Отличительной особенностью работы такого рода программ является возможность создания модели, описывающей схему, и получения результатов работы схемы. Результаты работы отображаются на экране в виде показаний виртуальных приборов (мультиметр, осциллограф, анализатор спектра и т.д.), или могут быть экспортированы в файл для их более детального анализа. Особенностью данного пособия является последовательное рассмотрение функционирования электронных схем на двух уровнях – на уровне модели электронной схемы и на уровне последующей обработки результатов моделирования в среде MATLAB (MathWorks). Объединение удобного интерфейса программ схемотехнического моделирования, множества доступных библиотек электронных компонентов и вычислительных возможностей среды MATLAB имеет преимущество как перед анализом результатов средствами пакетов схемотехнического моделирования, так и перед моделированием работы схем целиком средствами MATLAB – Simulink. В пособии приведены краткие сведения по работе с пакетом Multisim 10 (National Instruments) и по использованию возможностей MATLAB для обработки сохраненных результатов моделирования. 4 Основные сведения по работе с пакетом Multisim 10 Программа Multisim 10 разработана фирмой National Instruments и предназначена для моделирования и анализа электронных схем. Наиболее важные элементы интерфейса программы показаны на рисунке. 1 Меню Панель выбора компонентов Кнопка запуска моделирования Область размещения компонентов схемы Панель приборов Рис .1 Элементы интерфейса программы Multisim 10 Операции с файлами, изменение настроек среды и режимов моделирования выполняется с помощью команд меню. Некоторые часто используемые команды вынесены на кнопки с соответствующими пиктограммами. Рабочая область представляет собой поле размещения компонентов схем и связей между ними. Выбор компонентов осуществляется с помощью панели выбора компонентов. После того, как схема сформирована в рабочей области, можно подключить необходимые приборы, которые выбираются из панели приборов. По умолчанию панель приборов размещается с правой стороны. Запуск моделирования производится путем нажатия на кнопку, имеющую вид выключателя. После запуска модели можно считывать показания приборов. В ходе выполнения лабораторных работ с использованием Multisim 10 будут использоваться следующие приборы: мультиметр (Multimeter), осциллограф (Oscilloscope), частотомер (FreqCounter), 5 функциональный генератор (Function Generator), ваттметр (Wattmeter)и анализатор частотных характеристик схемы (Bode Plotter). Необходимые для построения схемы компоненты выбираются из библиотеки компонентов, которая становится доступной после нажатия на любую из кнопок панели выбора компонентов. Вид библиотеки компонентов показан на рисунке 2. Классы (семейства) компонентов Список доступных компонетов Группы компонентов Рис . 2 Библиотека выбора компонентов схемы Доступные электронные компоненты сгруппированы по группам – основные, или базовые компоненты, транзисторы, аналоговые микросхемы, цифровые микросхемы, индикаторы и т.д., и классам внутри каждой группы, например – переключатели, резисторы, конденсаторы, транзисторы и т.д. – это классы или семейства компонентов базовой группы. Учитывая обилие доступных компонентов целесообразно пользоваться поиском (Search) по названию компонента. Разработка схемы в среде Multisim 10 максимально приближена к процессу реальной разработке электронного устройства – вначале задаются источники сигналов и питания схемы, затем выбираются необходимые компоненты, далее компоненты соединяются между собой проводами и после 6 этого к ним подключаются соответствующие измерительные приборы. Соединение проводами моделируется очень просто – при нажатии на любой из выводов компонента за курсором мышки будет тянуться провод, который можно будет подключить к нужному выводу другого компонента схемы. Если необходимо соединить несколько проводников в одной точке, то можно использовать или непосредственное подключение к существующему проводнику на схеме, или использовать компонент «узел» (меню Place, далее выбрать Junction). Для корректного моделирования требуется, чтобы схема содержала хотя бы один элемент заземления (Ground). Компонент «Земля» (Ground) размещается в группе «Источники» (Sources), семейство «Источники питания» (Power Sources) . Пример простейшей схемы показан на рисунке 3. Рис . 3 Простейшая схема в среде Multisim 10 Схема на рисунке 3 содержит источник сигнала, сопротивление нагрузки и осциллограф. После запуска модели можно посмотреть форму сигнала на сопротивлении R1. Для этого надо дважды щелкнуть левой кнопкой мышки по осциллографу на схеме, после чего откроется экран осциллографа. При необходимости на виртуальном осциллографе можно менять параметры развертки, аналогично тому, как эти параметры задаются на реальных приборах. Результаты моделирования показаны на рисунке 4. 7 Рис . 4 Результаты моделирования работы схемы на виртуальном осциллографе Интерфейс программы Multisim 10 интуитивно понятный и простой в освоении. Эта программа предоставляет широкие возможности для анализа сигналов в схемах по переменному и постоянному токам, частотному анализу и анализу переходных процессов. В то же время, возможности обработки и анализа сигналов, полученных в результате моделирования, могут быть многократно расширены за счет применения системы математического моделирования MATLAB. 8 Обработка результатов моделирования средствами MATLAB Система MATLAB разработана фирмой MathWorks и представляет собой среду, сочетающую возможности калькулятора с очень большим наборам функций, среды разработки и отладки программного обеспечения на так называемом M-языке программирования, и среду имитационного моделирования Simulink. Чтобы использовать возможности этой среды для обработки результатов моделирования в среде Multisim 10 необходимо сохранить результаты моделирования и импортировать сохраненные данные в MATLAB. Для сохранения результатов моделирования достаточно нажать кнопку «Save» (Сохранить) на экране осциллографа (см. рис. 4). После нажатия не кнопку будет открыто стандартное диалоговое окно сохранения результатов, и после задания имени файла будет создан файл с расширением .scp. Этот файл является текстовым файлом и имеет достаточно простую структуру – первые 19 строк – заголовок файла, который содержит описание условий моделирования Oscilloscope data: SCP - заголовок файла Time base: 0.018140 seconds per division – данные о временной развертке Time offset: 0.000000 seconds Channel A sensitivity : 100.000000 volts per division – данные о масштабе амплитуд Channel A offset: 0.000000 volts Channel A color: 255 Channel B sensitivity : 5.000000 volts per division Channel B offset: 0.000000 volts Channel B color: 6604900 Channel A connected: yes Channel B connected: no Column 1 Time (S) – данные в первом столбце Column 2 Channel_A Voltage(V) – данные во втором столбце 9 Column 3 Channel_B Voltage(V) – данные в третьем столбце (при использовании второго канала) Time Channel A ------------------------------- - строка-разделитель Остальные строки файла являются таблицей результатов моделирования, в первом столбце таблице – значения времени, во втором – значения сигнала в соответствующие моменты времени 0.000000000000e+000 0.0000e+000 1.000000000000e-007 6.3978e-003 2.000000000000e-007 1.2796e-002 4.000000000000e-007 2.5591e-002 8.000000000000e-007 5.1182e-002 1.600000000000e-006 1.0236e-001 3.200000000000e-006 2.0473e-001 6.400000000000e-006 4.0946e-001 …. Эти значения могут быть импортированы в MATLAB для дальнейшего анализа. Процедура импорта данных следующая. Вначале необходимо запустить MATLAB. После запуска появится основное окно, показанное на рисунке 5. Рис . 5 Рабочее окно MATLAB 10 Далее следует выбрать меню File, затем Import Data. После этого откроется диалог выбора файла данных, где следует указать путь к созданному ранее файлу с расширением .scp с результатами моделирования. После выбора файла откроется окно мастера импорта данных, показанное на рисунке 6. Рис . 6 Окно импорта данных в MATLAB Для корректного импорта данных необходимо задать число строк заголовка файла. Ранее было показано, что заголовок определяют 19 строк. Число 19 задается в разделе «Number of test header lines», в качестве разделителя выбирается пробел («Space»). В результате будет выделены содержащиеся в таблице данные, без учета заголовка. 11 Рис . 7 выделенные данные из файла После нажатия на кнопку «Next» будет предложено задать имя переменной, которая будет создана в рабочей области памяти системы MATLAB, и над которой можно будет выполнять дальнейшие операции. Рис . 8 Завершающий этап импорта данных После завершения работы мастера импорта данных переменная data становится доступной для обработки и анализа. Например, можно построить график сигнала и убедится в том, что данные были импортированы корректно. Для этого в командной строке MATLAB необходимо ввести следующую команду: plot(data(:,1),data(:,2)), grid on 12 Результаты выполнения команды представлены на рисунке 9 Рис . 9 Выполнение команды построения графика на основе импортированных данных. Особенностью представления данных в MATLAB является то, что все данные представляются в виде одномерных или многомерных массивов или векторов, над которыми можно выполнять те или иные операции. К таким операциям над массивом можно отнести выделение столбца или строки из массива, умножение массива на число, сложение с другим массивом и т.д. Работа с MATLAB подробно описана в множестве книг, например в [1], и в настоящем пособии приведен минимально необходимый перечень команд для анализа данных, построения графиков и выполнения простейших математических операций. Основные команды для работы с массивами данных B=A(i,j) – присвоить переменной В значение элемента массива А из i-ой строки и j-ого столбца; B= A(:,j) – присвоить переменной В значение вектора, соответствующего j-ому столбцу матрицы А; B= A(i,:) – присвоить переменной В значение вектора, соответствующего i-ой строке матрицы А; 13 A.*B – выполнить перемножение соответствующих элементов массивов А и В, которые должны иметь одинаковую размерность; size(A) – определить размерность переменной А; А’ – транспонирование матрицы А. Операции создания переменных A=5 – переменной А присвоить значение 5; A=[4 3 2] – переменной А присвоить вектор-строку [4 3 2]; А=[4;1;3] – переменной А присвоить вектор-столбец [4 1 3]; A=[1 2 3; 4 5 6; 7 8 9] – переменной А присвоить значение матрицы из 9 элементов. 1 2 3 4 5 6 7 8 9 A = A=1:0.1:2 – создать вектор от 1 до 2 с шагом 0.1 . A=[1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2]. A=zeros(1,3) – создать заполненный нулями вектор или матрицу заданной размерности. В данном случае – одна строка, три столбца. Математические функции и операторы *,/,+,-,^,= - операции соответственно умножения, деления, сложения, вычитания, возведения в степень и присвоения значения; <,>,<=,>=,==,= - логические операции соответственно больше, меньше, больше-равно, меньше-равно, равно, не равно; sin(x), cos(x), tan(x), log10(x), log(x) – синус, косинус, тангенс, логарифм десятичный, логарифм натуральный соответственно, применимы к матрицам произвольной размерности; abs(x) – функция вычисления абсолютного значения х, применима к матрице произвольной размерности. Функции для визуализации данных plot(X,Y) – функция строит график вектора Y от вектора X. Вектора должны иметь одинаковую размерность; grid on – функция отображает координатную сетку; 14 hold on (hold off) – функция включает (выключает) режим отображения нескольких графиков в одних осях координат в одном окне Функции для анализа и обработки данных hist(X,M) – функция строит гистограмму значений вектора Х, разбивая диапазон значений от минимального значения Х до максимального на М равных интервалов. mean(X) – функция вычисляет среднее значение вектора Х. fft(X), ifft(X) – функции вычисления прямого и обратного быстрого дискретного преобразования Фурье соответственно. Функция для получения справочной информации. help <имя функции> - имя функции вводится без кавычек, например help fft. Функция возвращает краткую справку о заданной функции. Построение спектра сигнала в MATLAB Спектральный анализ является одним из наиболее распространенных видов анализа сигналов. При проведении спектрального анализа средствами MATLAB важно знать следующие особенности. 1. Спектр вычисляется как преобразование Фурье от массива данных, которые соответствуют отсчетам сигнала во временной области 2. Каждому массиву отсчетов во временной области соответствует определенная частота дискретизации. Без знания частоты дискретизации проводить спектральный анализ записанного сигнала не имеет смысла 3. Результат преобразования Фурье – комплексный спектр. Для отображения используется или модуль комплексного спектра (амплитудный спектр) или фаза комплексного спектра (фазовый спектр). 4. Спектр вычисляется в диапазоне частот от 0 до частоты дискретизации. Однако так как спектр дискретного сигнала 15 периодичен то информативной является только половина спектра – от 0 до половины частоты дискретизации 5. Для корректного отображения спектра надо определить вектор частот, соответствующий отсчетам спектра 6. Разрешение спектрального анализа это минимальная разница между соседними значениями частоты в спектре. Если есть частота дискретизации Fs и массив отсчетов сигнала, содержащий N отсчетов, то справедливо Fs f N ∆ = , следовательно, чем больше отсчетов используется для построения спектра, тем точней можно оценить частоты 7. Спектр сигнала может меняться во времени. Если интервал времени, на котором меняется спектр больше длительности массива отсчетов, по которым спектр вычисляется, то можно считать спектр стационарным во времени. Пример построения спектра в MATLAB >> y=sin(2*pi*(0:0.001:1)*50)+2*sin(2*pi*(0:0.001:1)*150); Задание сигнала. Может быть переменная, полученная путем экспорта данных из программы схемотехнического моделировании. В приведенном примере сигнал представляет собой сумму двух гармоник 50 и 150 Гц, с частотой дискретизации 1000 Гц. >> sp=fft(y); Вычисление комплексного спектра >> plot(sp) Построение графика комплексного спектра. Результат показан на рис. 10 16 Рис . 10 Отображение комплексного спектра. График не информативен, для простых сигналов представляет собой отдельные линии, для сложных- просто множество пересекающихся отрезков. >> plot(abs(sp)) Построение графика модуля спектра. Результат показан на рисунке 11. Рис . 11 Отображение модуля комплексного спектра. График более информативен, но не корректен, так как по оси абсцисс отложены отсчеты сигнала. Необходимо пересчитать номер отсчета в значении частоты. Для этого определим число отсчетов в массиве и частоту дискретизации. >> N=length(y) N = 1001 17 >> Fs=1/0.001 Fs = 1000 >> fv=((0:N-1)/(N-1))*Fs; Вычисление вектора частоты. Вектор частот формируется как нормированный вектор от 0 до половины частоты дискретизации, причем размерность вектора равна размерности исходного массива. >> fv1=fv(1:N/2); >> sp1=abs(sp(1:N/2)); Отбрасываем лишние элементы векторов, то есть частоты, которые выше половины частоты дискретизации. >> plot(fv1,sp1) Построение спектра. Результат показан на рисунке 12 0 50 100 150 200 250 300 350 400 450 500 0 100 200 300 400 500 600 700 800 900 1000 Рис . 12 Отображение модуля спектра как функции от частоты Полученный спектр информативен, так как позволяет оценить точное значение частоты сигнала. 18 Оценка статистических и спектральных характеристик результатов моделирования . Рассмотрим применение MATLAB для анализа результатов моделирования генератора шума. Схема генератора шума показана на рисунке 13. Q1 2N2369 A Q2 2N2369 A Q3 2N2369 A Q4 2N2369 A R1 10kΩ R2 30kΩ R3 2.2kΩ R4 2.2kΩ R5 10kΩ R6 1kΩ R7 15kΩ R8 100Ω R9 30kΩ C1 50nF C2 50nF C3 100nF C4 50nF C5 100nF R10 10kΩ 2 3 1 4 5 R11 1.5kΩ R12 470kΩ 7 8 9 10 6 V1 12 V XSC1 A B Ext Trig + + _ _ 0 13 R13 1kΩ 0 12 Рис . 13 Схема генератора шума. 19 Результаты моделирования в Multisim позволяют убедиться в работоспособности схемы, но получить численные характеристики выходного сигнала проще, используя пакет MATLAB. Выходной сигнал генератора шума показан на рисунке 14 Рис . 14 Выходной сигнал схемы генератора шума. Для того, чтобы провести анализ сигнала надо сохранить данные, нажав кнопку «Save» на осциллографе, а затем импортировать их в MATLAB. В результате в рабочей области MATLAB будет создана переменная data, представляющая собой матрицу, первый столбец который – значения времени, а второй – значения сигнала. Процесс импорта данных был детально рассмотрен выше. Для оценки качества работы генератора проанализируем распределение значений отсчетов выходного сигнала и построим его спектр. Для оценки функции распределения можно использовать команду >>hist(data(:,2),30) 20 В результате выполнения команды будет построена гистограмма распределения значений выходного сигнала, показанная на рисунке 15. -1.5 -1 -0.5 0 0.5 1 1.5 0 2000 4000 6000 8000 10000 12000 14000 Рис . 15 Гистограмма значений выходного сигнала. Оценим частотные характеристики сигнала. Для этого надо вычислить частоту дискретизации c помощью команды: >>Fs=1/(data(51,1)-data(50,1)) Fs = 2.4126e+008 Тогда модуль комплексного спектра можно оценить как >>sp=abs(fft(data(:,2))); >> N=length(data); Вектор значений частоты оценим с помощью команды >>fv=((0:N-1)/(N-1))*Fs; >> fv1=fv(1:N/2); >> sp1=abs(sp(1:N/2)); Отбрасываем лишние элементы векторов, то есть частоты, которые выше половины частоты дискретизации. >>plot(fv1/1000000,sp1), grid on Результат построения спектра показан на рисунке 16. 21 0 10 20 30 40 50 60 70 0 100 200 300 400 500 600 700 800 F, МГц А, мВ Рис . 16 Спектр выходного сигнала генератора шума. Видно, что в спектре присутствуют отдельные дискретные составляющие на нижних частотах, но в то же время в широкой полосе частот сформированный сигнал близок к случайному процессу с постоянной спектральной плотностью мощности. При необходимости в MATLAB могут быть проанализированы и другие характеристики сигнала – например интервал корреляции, дисперсия, пик-фактор и т.д. 22 Список литературы 1. Ануфриев И.Е., Смирнов А.Б., Смирнова Е.Н. MATLAB 7. – СПб.: БХВ-Петербург, 2005. -1104 с. 2. Расчет электронных схем. Примеры и задачи. Г.И. Изъюров, -М. Высшая школа, 1987. 3. Жеребцов И.П. Основы электроники. –Л.: Энергоатомиздат, 1989, 352 с. 4. Разевиг В.Д. Схемотехническое моделирование с помощью MicroCAP 7. М. Горячая линия-телеком, 2003, 368 с. |