70
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «ЮЖНЫЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ» В.В. ЗЕМЛЯКОВ Моделирование измерительных процессов в Matlab Учебное пособие Ростов-на-Дону 2008

В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ

УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО

ОБРАЗОВАНИЯ

«ЮЖНЫЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»

В.В. ЗЕМЛЯКОВ

Моделирование измерительных

процессов в Matlab

Учебное пособие

Ростов-на-Дону

2008

Page 2: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 2 -

Рецензенты:

Доцент кафедры ПО ВТ и АС ДГТУ, к.т.н., доцент Н.Н. Садовой

Доцент кафедры ИИТ ЮФУ, к.т.н., доцент Сучков А.А.

Земляков В.В. Моделирование измерительных процессов в Matlab:

Уч. пособие. – Ростов-на-Дону, 2008. – 70 с.

Учебное пособие содержит изложение теоретических и практических

вопросов, касающихся компьютерного моделирования измерительных

процессов в Matlab. Приводятся примеры моделирования, как в частотной,

так и временной области.

Пособие предназначено в первую очередь для студентов направления

подготовки «Приборостроение», изучающих дисциплину «Компьютерные

технологии в приборостроении», а также может быть полезно студентам

других направлений подготовки.

Характер изложения материала позволяет использовать пособие, в

том числе и для самостоятельной работы студентов.

Page 3: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 3 -

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ ………………………...……………………….…………….

МОДУЛЬ 1 Структура и возможности пакета Matlab …………………

4

5

МОДУЛЬ 2 Моделирование измерительных процессов в частотной

области ………………………………………………..…..

МОДУЛЬ 3 Моделирование измерительных процессов при

импульсном воздействии …............…….……..……...…..

3.1 Воздействие радиоимпульсом ………………………..…

3.2 Воздействие ЛЧМ-импульсом ………………………….

СПИСОК ЛИТЕРАТУРЫ………………………………...…...................

19

45

45

56

70

Page 4: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 4 -

ВВЕДЕНИЕ

Студентам, обучающимся по направлению подготовки

«Приборостроение», необходимо получить хорошие знания в области

проведения электрических измерений, и, прежде всего, в области

измерения параметров электрических цепей. Поскольку натурные

испытания более затратны, чем компьютерное моделирование, студентам

будут полезны умения и навыки по реализации виртуальных

измерительных процедур на компьютере.

Эту задачу и решает предлагаемое учебное пособие, в котором на базе

программного пакета Matlab подробно изучается процесс компьютерного

моделирования измерительных процессов в электрических цепях.

Для достижения большей наглядности весь комплекс измерительных

процедур рассматривается для одной резонансной цепи, содержащей R, L

и C элементы, при различных видах внешних электрических воздействий.

Учебное пособие содержит три модуля.

Первый модуль дает общее описание программного пакета Matlab, его

структуры и возможностей.

Целью и содержанием второго модуля является описание и изучение

процесса моделирования измерительных процедур, когда на цепь

воздействуют непрерывным синусоидальным сигналом. Такие измерения

чаще всего проводятся с целью получения частотных характеристик

импеданса или проводимости электрических цепей.

В третьем модуле рассматриваются виртуальные измерения при

импульсном воздействии на цепь. Вначале речь идет о воздействии

радиоимпульсом и измерении различных параметров переходного

процесса. Затем подробно разбирается ситуация, когда на цепь

воздействует ЛЧМ-сигнал, а частотная характеристика цепи получается

путем преобразования Фурье от реакции цепи в момент воздействия.

Page 5: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 5 -

МОДУЛЬ 1. СТРУКТУРА И ВОЗМОЖНОСТИ ПАКЕТА MATLAB

Комплексная цель изучения модуля состоит в ознакомлении со

структурой и возможностями пакета MatLab, основными

подходами и приемами решения задач моделирования

измерительных процессов с его помощью.

Система MatLab в настоящее время является мощным и

универсальным средством решения задач, возникающих в различных

областях человеческой деятельности. Спектр проблем, решение которых

может быть осуществлено при помощи MatLab, охватывает: матричный

анализ, обработку сигналов и изображений, задачи математической

физики, оптимизационные задачи, обработку и визуализацию данных,

нейронные сети, нечеткую логику, радио- и электротехнические задачи и

многие другие. Специализированные средства собраны в пакеты программ,

называемые ToolBox и могут быть выбраны при установке MatLab по

желанию пользователя. В состав многих ToolBox входят приложения с

графическим интерфейсом, которые обеспечивают быстрый и наглядный

доступ к основным функциям.

Важным достоинством MatLab является открытость кода, что дает

возможность опытным пользователям при необходимости изменять

запрограммированные алгоритмы. Впрочем, разнообразие набора функций

MatLab допускает решение большинства задач без предварительных

модификаций. MatLab содержит огромное число операторов и функций,

которые решают множество практических задач, для чего ранее

приходилось готовить достаточно сложные программы. К примеру, это

функции обращения или транспонирования матриц, вычисления значений

производной или интеграла и т. д. Число таких функций с учетом пакетов

расширения системы уже достигает многих тысяч и непрерывно

увеличивается. Большинство команд и функций системы реализованы в

виде текстовых m-файлов (с расширением .m) и файлов на языке Си,

причем все файлы доступны для модификации. Пользователю дана

Page 6: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 6 -

возможность создавать не только отдельные файлы, но и библиотеки

файлов для реализации специфических задач.

MatLab имеет достаточно простой и эффективный встроенный язык

программирования, позволяющий пользователю реализовывать

собственные алгоритмы. Простота языка программирования

компенсируется огромным множеством функций MatLab. Такое сочетание

позволяет достаточно быстро разрабатывать эффективные программы.

Язык программирования MatLab, ориентирован на математические

расчеты и способен превзойти возможности традиционных языков

программирования, которые многие годы использовались для реализации

численных методов. При этом особое внимание уделяется как повышению

скорости вычислений, так и адаптации системы к решению самых

разнообразных задач пользователей.

MatLab является интерпретатором, т. е. каждая строка программы

преобразуется в код и затем выполняется. Разумеется, это существенно

увеличивает время работы алгоритмов, содержащих циклически

повторяемые действия. Для повышения производительности вычислений в

составе MatLab имеется дополнительный модуль MatLab Compiler, который

обеспечивает компиляцию программ, написанных на языке MatLab.

Объектно-ориентированный подход, заложенный в основу MatLab,

обеспечивает современную эффективную технологию программирования.

Работа с командным окном MatLab и особенности матричных

вычислений

При запуске MatLab на экране появляется типовой интерфейс (рис. 1),

содержащий ряд встроенных окон, число и расположение которых может

быть изменено по желанию пользователя. Как правило, наиболее часто

используемыми окнами являются командное окно Command Window и

окно текущей (активной) директории.

Символ >> означает приглашение командной строки к вводу команды.

Набор любой команды или выражения должен сопровождаться нажатием

Page 7: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 7 -

клавиши <Enter> для того, чтобы система MatLab выполнила введенную

команду или вычислила выражение.

Рис. 1. Типовой интерфейс MatLab

Встроенные математические функции MatLab позволяют находить

значения различных выражений. Команды для вычисления выражений

имеют вид, свойственный всем языкам программирования высокого

уровня. Полный перечень встроенных математических функций можно

найти в справочной системе MatLab.

При работе с командной строкой следует помнить следующие

особенности:

� при наборе выражения без символа «;» в конце результат вычислений

запишется в оперативную память в виде значения соответствующей

переменной и будет выведен на экран, в противном случае результат

вычислений запишется в оперативную память, но на экран выводиться

не будет;

� при наборе выражения с левой и правой частями, разделенными

знаком равенства, результат вычислений запишется в переменную

левой части выражения. Если выражение не содержит левой части, то

результат запишется в специальную переменную ans и будет

храниться в ней до момента записи в данную переменную результата

вычисления следующего выражения.

Page 8: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 8 -

На рис. 2 приведен ряд примеров,

иллюстрирующих вычисления в командной

строке.

При вычислении выражения А = 43 * 61

результат был сохранен в переменной А и

выведен на экран, поскольку в конце

выражения отсутствовал символ «;».

Повторное вычисление А = 43 * 61;

производит тоже вычисление, однако

результат не выводится на экран.

При вычислении выражения В = ехр(43)

результат был сохранен в переменной В и

выведен на экран.

При вводе выражения 45-32 результат

вычисления был помещен по умолчанию в

специальную переменную ans и выведен на

экран. Переменная ans также может

использоваться в процессе вычислений, как это

показано в примере ans + ans. При этом

результат вычислений вновь помещается в

переменную ans.

По умолчанию результаты вычислений

выводятся на экран с округлением до

четвертого знака после десятичной точки в так

называемом формате Short. Если при выводе

слишком большого или слишком малого числа результат не укладывается

в формат Short, вывод осуществляется в экспоненциальной форме (формат

Short E). Например, результат 0.0000033333 будет выведен на экран в виде

3.3333е-6, что эквивалентно 3.3333×10-6

.

Ввод матриц в командном окне может быть осуществлен одним из

следующих способов (рис. 3):

� поэлементный ввод матриц осуществляется в виде

последовательности элементов, заключенной в квадратные скобки

Рис. 2. Примеры вычисления

выражений в командной

строке

Page 9: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 9 -

[…]. Разделителями элементов в строке матрицы являются пробелы,

разделителями строк матрицы являются символы «;»

� ввод матриц в виде последовательности монотонно возрастающих или

убывающих значений элементов

� ввод матриц специального вида – матрицы с нулевыми элементами

(zeros(M,N)), матрицы с единичными элементами (ones (M,N)) и др.

Процесс ввода матриц в виде последовательности монотонно

возрастающих или убывающих значений элементов осуществляется в

следующей последовательности: начальное значение, двоеточие, прираще-

ние, двоеточие, конечное значение. Если приращение равно 1,

Рис. 3. Ввод матриц

Page 10: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 10 -

последовательность ввода может быть упрощена: начальное значение,

двоеточие, конечное значение.

Выражения, содержащие

операции с матрицами (сложе-

ние, вычитание, умножение,

деление матриц), вводятся ана-

логично арифметическим опе-

рациям с числами, но выполня-

ются по соответствующим пра-

вилам матричных преобразова-

ний. Примеры выполнения та-

ких преобразований приведены

на рис. 4.

При выполнении почлен-

ного умножения и деления мат-

риц или почленного умно-

жения или деления матрицы на

число, необходимо ввести

точку перед символом опера-

ции, как показано в примерах.

При использовании имени

матрицы в качестве аргумента

встроенной функции MatLab

(например, sin(A), exp(-B),

log2(C), abs(D)) соответст-

вующая математическая опе-

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

каждому элементу матрицы и

результат возвращается в виде

матрицы такого же размера,

как и исходная матрица.

При выполнении операций

сложения, вычитания, умноже-

Рис. 4. Примеры вычисления матриц

в командной строке

Page 11: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 11 -

ния и деления матриц следует помнить о необходимости согласования

размерностей исходных матриц в соответствии с правилами выполнения

данных математических операций.

Реализация алгоритма в виде m-файла

Однако, основной областью применения системы MatLab являются

отнюдь не построчные операции, хотя и они обеспечивают весьма удобные

и быстрые вычисления, а интегрированная среда программирования,

позволяющая пользователю писать собственный код прикладных

программ как в обычном языке программирования. Основное

преимущество перед последним заключается в колоссальном наборе

встроенных процедур и функций, значительно упрощающих реализацию

различных численных методов.

В среде программирования системы MatLab исходные файлы

программ по умолчанию сохраняются с расширением *.m. Поэтому их

принято называть m-файлами.

Для запуска m-файла на выполнение необходимо в командной строке

набрать его имя и нажать <Enter>, при этом важно, чтобы текущим

каталогом в этот момент являлся каталог, содержащий данный m-файл.

Проектирование графического интерфейса

Как известно, все Windows-приложения на две категории –

консольные и оконные. Консольные приложении, которые могут быть

созданы в большинстве современных систем программирования,

напоминают программы, функционирующие под управлением MS-DOS. В

их распоряжении вся оперативная память и экран, режим работы которого

максимально приближен к текстовому. Ввод данных консольного

приложения может быть организован либо их чтением из файла, либо

путем их набора на клавиатуре.

В отличие от этого, оконные Windows-приложения включают одно

или несколько окон, одновременно расположенных на экране, которые

Page 12: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 12 -

могут перемещаться, изменять свои размеры, пропадать и возникать вновь.

Для ввода и вывода данных оконные приложения предлагают

своеобразные «форточки» - редактируемые поля ввода/вывода символьной

информации, выделенные в окнах прямоугольные области для

отображения графической информации. В оконных приложениях

используется большой набор типовых компонент, обеспечивающих

диалоговое взаимодействие с пользователем – разнообразные кнопки,

списки, индикаторы состоянии различных процессов, линейки прокрутки,

рамки и т.п.

Система MatLab позволяет нарду с консольными приложениями

создавать и оконные Windows-приложения. При создании оконных

приложений может использоваться динамический подход, основанный на

написании программного кода содержащего описания всех свойств

графических объектов и их расположение. Однако, гораздо удобнее и с

токи зрения программирования, и с точки зрения размеров и простоты

программного кода использовать, так называемую, визуальную среду

GUIDE, являющуюся компонентом среды MatLab.

В визуальной среде интерфейсные элементы включаются в окна

приложения путем их перетаскивания из палитры компонентов и

настройки нужных свойств с помощью редакторов типа. И ни одной

строчки кода для этой цели писать пользователю не приходится. Кроме

того, внешний вид большинства интерфейсных компонентов в визуальной

среде можно наблюдать и корректировать до запуска приложения.

В визуальной среде унифицированы форматы вызова обработчиков

различных событий и перечни передаваемых им параметров. Оболочка для

каждого обработчика формируется визуальной средой автоматически.

Пользователю остается только заполнить тело предоставленной

процедуры.

Редактор GUIDE вызывается командой guide из командного окна или

путем выполнения цепочки команд File – New – GUI.

Page 13: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 13 -

Система Simulink

Одним из наиболее мощных приложений ToolBox в MatLab, особенно

при моделировании процессов во временной области, является программа

Simulink. При моделировании с использованием Simulink реализуется

принцип визуального программирования. Использование Simulink во

многих случаях исключает утомительные и трудоемкие этапы составления

и отладки программ, позволяя сосредоточить основные усилия

непосредственно на решении «своих» предметно-ориентированных задач.

Студенту нужно освоить правила использования готовых функциональных

блоков, из которых, как из конструктора, составляется модель

проектируемого устройства, а также «испытательный стенд», включающий

источники сигналов, измерительные приборы и средства наблюдения за

процессами и характеристиками процессов.

Simulink это интерактивная графическая программа, которая

позволяет моделировать (имитировать) реальные системы и устройства на

уровне структурных и функциональных схем. Библиотеки Simulink

содержат большое количество разнообразных функциональных блоков,

которые отображаются на экране в виде пиктограмм.

Simulink поступает к пользователям с более 100 встроенными

блоками, в состав которых входят наиболее необходимые функции

моделирования. Блоки сгруппированы в библиотеки в соответствии с их

назначением: источники сигнала, приемники, дискретные, непрерывные,

нелинейные, математика, функции и таблицы, сигналы и системы.

В дополнение к обширному набору встроенных блоков Simulink имеет

расширяемую библиотеку блоков благодаря функции создания

пользовательских блоков и библиотек. Существует возможность

настраивать не только функциональность встроенных и пользовательских

блоков, но также пользовательский интерфейс, используя значки и

диалоги. Однажды созданные пользовательские блоки могут быть

сохранены в библиотеке блоков для использования в будущем.

Построение модели сводится к перемещению с помощью «мыши»

необходимых блоков из библиотек Simulink в окно создаваемой модели и

Page 14: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 14 -

соединению этих блоков между собой. Работая с программой Simulink,

можно создавать модели цепей и систем, изменять параметры блоков

непосредственно во время процесса моделирования и сразу же наблюдать

реакцию моделируемой системы.

Simulink является достаточно самостоятельным инструментом MatLab

и при работе с ним совсем не требуется знать сам MatLab и остальные его

приложения. С другой стороны доступ к функциям MatLab и другим его

инструментам остается открытым и их можно использовать в Simulink.

Часть входящих в состав MatLab пакетов имеет инструменты, встраиваемые

в Simulink. Имеются также дополнительные библиотеки блоков для разных

областей применения (например, Power System Blockset – моделирование

электротехнических устройств, Digital Signal Processing Blockset – набор

блоков для разработки устройств цифровой обработки сигналов и т. д.).

В ходе моделирования имеется возможность следить за процессами,

происходящими в системе. Для этого используются специальные устройства

наблюдения, входящие в состав библиотеки Simulink. Результаты

моделирования могут быть представлены в виде графиков или таблиц.

Библиотека блоков Power Systems является одной из множества

дополнительных библиотек Simulink ориентированных на моделирование

конкретных устройств. Power Systems содержит набор блоков для

имитационного моделирования электротехнических устройств. В состав

библиотеки входят модели пассивных и активных электротехнических

элементов, источников энергии, электродвигателей, трансформаторов,

линий электропередачи и т.п. оборудования. Имеется также раздел

содержащий блоки для моделирования устройств силовой электроники,

включая системы управления для них. Используя специальные возможности

Simulink и Power Systems, пользователь может не только имитировать

работу устройств во временной области, но и выполнять различные виды

анализа таких устройств. В частности, пользователь имеет возможность

рассчитать установившийся режим работы системы на переменном токе,

выполнить расчет импеданса (полного сопротивления) участка цепи,

получить частотные характеристики, проанализировать устойчивость, а

также выполнить гармонический анализ токов и напряжений.

Page 15: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 15 -

Несомненным достоинством Power Systems является то, что сложные

электротехнические системы можно моделировать, сочетая методы

имитационного и структурного моделирования. Например, силовую часть

полупроводникового преобразователя электрической энергии можно

выполнить с использованием имитационных блоков Power Systems, а

систему управления с помощью обычных блоков Simulink, отражающих

лишь алгоритм ее работы, а не ее электрическую схему. Такой подход, в

отличие от пакетов схемотехнического моделирования, позволяет

значительно упростить всю модель, а значит повысить ее

работоспособность и скорость работы. Кроме того, в модели с

использованием блоков Power Systems можно использовать блоки и

остальных библиотек Simulink, а также функции самого MATLAB, что

дает практически не ограниченные возможности для моделирования

электротехнических систем.

Библиотека Power Systems достаточно обширна. В том случае, если

все же нужного блока в библиотеке нет, пользователь имеет возможность

создать свой собственный блок как с помощью уже имеющихся в

библиотеке блоков, реализуя возможности Simulink по созданию

подсистем, так и на основе блоков основной библиотеки Simulink и

управляемых источников тока или напряжения.

Состав библиотеки

Библиотека Power Systems имеет семь основных разделов:

• Electrical Sources - источники электрической энергии

• Connectors - соединители

• Measurements - измерительные и контрольные устройства;

• Elements - электротехнические элементы

• Power Electronics - устройства силовой электроники

• Machines - электрические машины

• Powerlib Extras - дополнительные электротехнические устройства

Используя блоки из этих разделов, пользователь в состоянии за

короткое время создать полноценную модель достаточно сложной

электротехнической системы.

Page 16: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 16 -

Основные особенности

Методика создания Power Systems – модели ни чем не отличается от

методики создания модели на основе базовой библиотеки Simulink. Так

же как и для обычной Simulink-модели, необходимо выполнить

расстановку блоков на схеме, задать их параметры, соединить блоки и

установить параметры расчета модели в целом. Для Power Systems –

моделей доступен ускоренный режим расчета и все возможности

Simulink, включая набор инструментов Simulink Performance Tools,

линейный анализ, отладчик и т.д. Однако Power Systems – модели имеют

и некоторые особенности:

1. Входы и выходы Power Systems – блоков, в отличие от блоков

Simulink, не показывают направление передачи сигнала, поскольку

фактически являются эквивалентами электрических контактов. Таким

образом, электрический ток может через вход или выход блока

протекать в двух направлениях: как вовнутрь блока, так и наружу.

2. Соединительные линии между блоками являются, по сути,

электрическими проводами, по которым ток может протекать также

в двух направлениях. В Simulink-моделях же информационный

сигнал распространяется только в одном направлении - от выхода

одного блока к входу другого.

3. Simulink-блоки и Power Systems – блоки не могут быть

непосредственно соединены друг с другом. Сигнал от S-блока можно

передать к Power Systems – блоку через управляемые источники тока

или напряжения, а наоборот - с помощью измерителей тока или

напряжения.

4. Несколько линий связи (проводов) могут быть соединены между

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

специальные блоки - Connectors (соединители).

5. При расчете схемы содержащей нелинейные блоки следует

использовать методы:

• ode15s - многошаговый метод переменного порядка,

• ode23tb - неявный метод Рунге-Кутта 2-го порядка,

которые дают наилучшие результаты по быстродействию.

Page 17: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 17 -

Тесты рубежного контроля

Тестовое задание выполняется в течение 5 минут и содержит 7 вопросов

(правильный ответ помечается любым значком):

Результаты теста оцениваются по следующей шкале:

«7» и «6» правильных ответов – оценка «5»,

«5» правильных ответов – оценка «4»,

«4» правильных ответов – оценка «3»,

менее «4» правильных ответов – оценка «2»

Тесты:

1. Если при наборе выражения в программе MatLab в конце стоит знак

« ; », это означает:

а) результат вычислений будет выведен на экран компьютера;

б) результат вычислений не будет выведен на экран компьютера;

в) программа воспримет эту строчку как комментарий;

г) такой знак всегда ставится в конце каждой строки программы.

2. Если в командной строке MatLab набрано выражение без правой

части, например, 2*3, то после нажатия клавиши «Enter»:

а) программа выдаст сообщение об ошибке;

б) программа запишет результат вычислений в специальную

переменную ans;

в) программа запишет результат в последнюю объявленную

переменную;

г) программа не выдаст сообщения об ошибке, но и не произведет

никаких действий.

Page 18: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 18 -

3. Если результаты вычислений выводятся в следующем формате

«3.3333е-6», то это означает, что в MatLab задан формат данных:

а) Short E; б) Short; в) Long E; г) Long.

4. Если в командной строке набрано выражение «M=1:0.5:4», то

переменная M примет значение:

а) вектор столбец, заполненный числами от 1 до 4 с шагом 0.5;

б) вектор строка, заполненный числами от 1 до 4 с шагом 0.5;

в) M = 1 / 0.5 / 4 = 0.5;

г) такое выражение не имеет смысла;

5. Если переменная a = [2 3 4; 7 8 9], а переменная b = [0 1 2; 2 3 4], то

команда a . / b вычислит:

а) такая команда не имеет смысла;

б) такая команда для заданных a и b выдаст сообщение об ошибке;

в) матрицу 2 х 3 с элементами, равными результату поэлементного

деления a на b;

г) решение системы линейных уравнений с правыми частями равными a

и левыми частями равными b.

6. Что такое m-файл:

а) файл настроек пакета MatLab;

б) файл включенных библиотек MatLab;

в) файл с текстом программы, написанной в среде MatLab;

г) такие файлы создаются автоматически при компиляции программы.

7. Что представляет собой программа GUIDE из пакета MatLab:

а) программа-путеводитель по MatLab;

б) программа настройки параметров MatLab;

в) программа создания графических приложений MatLab;

г) программа создания файлов подсказки.

Page 19: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 19 -

МОДУЛЬ 2 МОДЕЛИРОВАНИЕ ИЗМЕРИТЕЛЬНЫХ ПРОЦЕССОВ

В ЧАСТОТНОЙ ОБЛАСТИ

Комплексная цель изучения модуля состоит в освоении основных

подходов реализации моделирования измерительных процессов в

частной области на примере комбинированной электрической цепи

Моделирование процесса измерений по определению частотных

характеристик электрической цепи, а также параметров резисторов,

конденсаторов и катушек индуктивности в составе электрической цепи

разберем на примере, показанном на рис. 5.

Рис. 5. Исследуемая электрическая цепь

Как следует из электрической схемы, ее проводимость (адмитанс)

)(ωY& имеет две составляющие 0Cω и д1 Z , где ( )CLjRZ ωω 1д −+= -

сопротивление (импеданс) последовательной RLC цепи. Учитывая, что

сопротивление )(1)( ωω YZ && = , можно записать следующие выражения для

)(ωY& и )(ωZ& :

−+

+=

CLjR

СjY

ωω

ωω1

1)( 0

& ,

+−+

−+

=

0

0

111

11

)(

CCLjR

CLjR

CjZ

ωω

ωω

ωω& .

Видно, что проводимость (сопротивление) цепи является величиной

Page 20: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 20 -

комплексной. В дальнейшем точку над Y и Z в обозначении комплексной

проводимости или сопротивления будем опускать.

Основная особенность электрической схемы, показанной на рис.5, -

наличие двух колебательных контуров: последовательного RLC контура и

параллельного 0RLCC контура. Это приводит к тому, что эта схема

обладает двумя резонансами: резонансом последовательной RLC цепи и

параллельным резонансом (антирезонансом) 0RLCC цепи.

Условие резонанса в электрической цепи, как известно, записывается

в виде равенства реактивных составляющих отдельных ветвей. Для

рассматриваемой электрической схемы:

22

0

01

1

1

1

−+

==

CLR

CL

С

С

ωω

ωω

ω

ω .

Откуда следует, что

01111

0

2 =

+−

−+

CCL

CLR

ωω

ωω .

Если пренебречь активными потерями ( )0=R , то частота

последовательного резонанса pω и частота параллельного резонанса

(антирезонанса) aω будут определяться соотношениями:

+==

0

22 111,

1

CCLLCap ωω .

Проводимость и импеданс схемы на произвольной частоте являются

величинами комплексными и характеризуются как модулем, так и фазой,

или могут быть представлены в виде суммы активной и реактивной

составляющих. В частности, для проводимости можно записать

соотношение )()()( ωωω jBGY += , в котором активная )(ωG и реактивная

)(ωB составляющие определяются по формулам:

Page 21: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 21 -

( ) ))(1(

1

1)(

2222мQRCLR

RG

ωνωωω

+=

−+= ,

( ) ))(1(

)(

1

1)(

2

м0220

QR

QC

CLR

CLCB

ων

ωνω

ωω

ωωωω

+−=

−+

−−= .

где ωωωωων pp −=)( , RLQ pω=м - механическая добротность.

Модуль проводимости |Y | = (G2 + B

2)

1/2, а фаза проводимости (сдвиг

фазы тока относительно возбуждающего схему напряжения) ϕ = arctg B/G.

На рис. 6 показана частотная характеристика модуля проводимости

рассматриваемой цепи. Пунктирная линия соответствует частотной

характеристике проводимости 0С .

По измеренным в области резонанса частотным характеристикам

проводимости или импеданса можно определить параметры элементов

цепи.

Рис. 6. Частотная характеристика модуля проводимости

Измерения модуля проводимости

Если измерены частоты максимума и минимума модуля проводимости

и сами значения модуля проводимости на этих частотах, расчетные

соотношения имеют вид:

Page 22: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 22 -

,,22

221

pa

p

с

n

mr

Y

ωω

ω

−=

=

CL

r

CC

RMC

YR

pсpm2

00

1,,

1,

1

ωω==== .

Если вместо значений mY и nY будет измеряться их отношение, то

четвертым независимым параметром должна быть емкость цепи на низкой

частоте (100 Гц) т

C . При этом

,),1( 0т

сс CrCrCC =+= )(1,)(1 02

MCRCL pp ωω == .

При измерении добротности схемы (рис. 5) можно использовать

различные подходы, в зависимости от характера исходных данных.

Если измерены частоты максимума и минимума модуля

проводимости и сами частоты в этих точках, то добротность определяется

формулой

21

22

2

м

−=

n

m

pa

p

Y

YQ

ωω

ω.

При измерении частотной зависимости модуля полной проводимости

имеется возможность приближенного определения добротности.

Действительно, можно показать, что для квадрата модуля проводимости

справедливо соотношение

++=

M

Q

M

QG

RY

pp

м

2

2

2

22

21

1)(1

)(ν

ω

ων

ω

ωωω ,

где м 0

, 1c с

M Q r r C C= = .

Видно, что в области механического резонанса частотные зависимости

( )ωG и ( ) 2ωY примерно совпадают. То есть для определения добротности

можно использовать результаты измерений ширины резонансной кривой

модуля проводимости Yω∆ , на уровне 0,7 от максимального значения −

YpQ ωω ∆= /M

.

Page 23: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 23 -

Измерение активной составляющей проводимости

При измерении частотной зависимости активной составляющей

проводимости )(ωG : частота максимума соответствует частоте

последовательного резонанса pω , обратная величина проводимости на

частоте механического резонанса соответствует активному сопротивлению

)(1 рGR ω= . Значение механической добротности определяется по

ширине резонансной кривой ω∆ на уровне 0,5 от максимального

значения. Последнее утверждение следует из равенства

2

1

))(1(

122м

=+ Qων

.

При условии pр ωωω <<−2 (рис. 7), когда справедливо

приближение

( )р

рр

р ω

ωω

ω

ω

ω

ω −≈−

2

2

22

,

и, учитывая, что ( ) ( )pp ωωωωω −=−≈∆ 21 22 , в итоге получим

ωω ∆= pQм .

Рис. 7. Определение добротности по частотной характеристике активной

составляющей проводимости

Page 24: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 24 -

Другие элементы схемы рассчитываются по формулам:

R

CR

L

p2

ω

ω

∆=

∆= .

Перейдем теперь непосредственно к процессу моделирования.

Пример 1: Оценка влияние величины добротности на точность

определения частот резонанса и антирезонанса по значениям модуля

полной проводимости. Реализуем эту задачу в MatLab с применением

графического интерфейса.

Запускаем редактор GUIDE и создаем новый шаблон. В результате на

экране появляется окно рис. 8.

Рис. 8. Окно редактора GUIDE

В левой части окна расположена панель инструментов редактора,

содержащая основные графические элементы, которые можно

использовать при создании графического интерфейса приложения, а

справа – рабочее поле, на котором можно располагать эти элементы,

Page 25: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 25 -

создавая тем самым внешний вид создаваемого приложения. Каждый из

графических элементов обладает набором свойств (Properties), которые

можно просматривать и редактировать в зависимости от требований

программы.

Теперь создадим интерфейс для реализации программы оценки

влияние величины добротности на точность определения частот резонанса

и антирезонанса по значениям модуля полной проводимости (рис. 9). На

рис. 9 красным выделены названия соответствующих элементов

графического интерфейса GUIDE. Интерфейс включает в себя поля ввода

параметров исследуемой электрической схемы (R, L, C, C0), поля для

вывода рассчитываемых значений частот резонанса и антирезонанса,

область построения графика зависимости модуля проводимости от частоты

и кнопки, запускающей программу на выполнение.

Рис. 9. Шаблон интерфейса для реализации программы.

Для настройки параметров интерфейса рассмотрим свойства

некоторых объектов. Для этого нажимаем правую кнопку мыши,

наведенной на элемент и выбираем пункт Property Inpector (рис. 10).

Для ввода текста необходимо использовать пункт String (выделен

кранным прямоугольником). Для полей, в которые предполагается внесение

числовых данных, необходимо определить имя переменой (рис. 11).

Page 26: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 26 -

Рис. 10

Рис. 11

Page 27: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 27 -

Далее с текст программы добавляются элементы программного кода,

включающие в себя необходимые вычисления. Для этого правую кнопку

мыши нажимаем на кнопке «Расчет» и выбираем «Callback» - задание

функции вызова. При этом открывается текст .m – файла, в который уже

внесена автоматически информация по всем объектам. Последние строки

содержат информацию по созданию функции вызова, которая будет

запускаться при нажатии на кнопку «Расчет».

function varargout = data1(varargin)

% DATA1 M-file for data1.fig

% DATA1, by itself, creates a new DATA1 or raises the existing

% singleton*.

%

% H = DATA1 returns the handle to a new DATA1 or the handle to

% the existing singleton*.

%

% DATA1('CALLBACK',hObject,eventData,handles,...) calls the local

% function named CALLBACK in DATA1.M with the given input arguments.

%

% DATA1('Property','Value',...) creates a new DATA1 or raises the

% existing singleton*. Starting from the left, property value pairs are

% applied to the GUI before data1_OpeningFunction gets called. An

% unrecognized property name or invalid value makes property application

% stop. All inputs are passed to data1_OpeningFcn via varargin.

%

% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one

% instance to run (singleton)".

%

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help data1

% Last Modified by GUIDE v2.5 19-Oct-2007 19:05:39

% Begin initialization code - DO NOT EDIT

Page 28: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 28 -

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @data1_OpeningFcn, ...

'gui_OutputFcn', @data1_OutputFcn, ...

'gui_LayoutFcn', [] , ...

'gui_Callback', []);

if nargin & isstr(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

% End initialization code - DO NOT EDIT

% --- Executes just before data1 is made visible.

function data1_OpeningFcn(hObject, eventdata, handles, varargin)

% This function has no output args, see OutputFcn.

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data1 (see GUIDATA)

% varargin command line arguments to data1 (see VARARGIN)

% Choose default command line output for data1

handles.output = hObject;

% Update handles structure

guidata(hObject, handles);

% UIWAIT makes data1 wait for user response (see UIRESUME)

% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.

function varargout = data1_OutputFcn(hObject, eventdata, handles)

% varargout cell array for returning output args (see VARARGOUT);

Page 29: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 29 -

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data1 (see GUIDATA)

% Get default command line output from handles structure

varargout{1} = handles.output;

function R_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc

set(hObject,'BackgroundColor','white');

else

set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));

end

function R_Callback(hObject, eventdata, handles)

% hObject handle to edit1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data1 (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit1 as text

% str2double(get(hObject,'String')) returns contents of edit1 as a double

% --- Executes during object creation, after setting all properties.

function L_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

Page 30: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 30 -

if ispc

set(hObject,'BackgroundColor','white');

else

set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));

end

function L_Callback(hObject, eventdata, handles)

% hObject handle to edit2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data1 (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit2 as text

% str2double(get(hObject,'String')) returns contents of edit2 as a double

% --- Executes during object creation, after setting all properties.

function C_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit3 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc

set(hObject,'BackgroundColor','white');

else

set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));

end

function C_Callback(hObject, eventdata, handles)

% hObject handle to edit3 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data1 (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit3 as text

% str2double(get(hObject,'String')) returns contents of edit3 as a double

Page 31: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 31 -

% --- Executes during object creation, after setting all properties.

function C0_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit4 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc

set(hObject,'BackgroundColor','white');

else

set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));

end

function C0_Callback(hObject, eventdata, handles)

% hObject handle to edit4 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data1 (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit4 as text

% str2double(get(hObject,'String')) returns contents of edit4 as a double

% --- Executes during object creation, after setting all properties.

% --- Executes during object creation, after setting all properties.

function wr1_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit11 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% --- Executes during object creation, after setting all properties.

function wa1_CreateFcn(hObject, eventdata, handles)

% hObject handle to text19 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

Page 32: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 32 -

% --- Executes on button press in pushbutton1.

function pushbutton1_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data1 (see GUIDATA)

global R L C C0

R=str2double(get(handles.R,'String')); % считывание значения из поля с именем R

и присвоение переменной R числового значения

L=str2double(get(handles.L,'String')); % считывание значения из поля с именем L

и присвоение переменной L числового значения

L=L*1e-3;

C=str2double(get(handles.C,'String')); % считывание значения из поля с именем C

и присвоение переменной C числового значения

C=C*1e-9;

C0=str2double(get(handles.C0,'String')); % считывание значения из поля с

именем C0 и присвоение переменной C0 числового значения

C0=C0*1e-9;

% Расчет теоретических значений частот резонанса и антирезонанса

wr=(1/(L*C))^0.5;

wa=(1/L*(1/C+1/C0))^0.5;

N=500; % число точек построения графика зависимости модуля проводимости

от частоты

www = 0.9*wr:(1.2*wa-0.8*wr)/N:1.1*wa; % Задание интервала частот построения

графика

YY=Yw(www); % расчет значений модуля проводимости в заданном интервале

с помощью внешней функции Yw

% Поиск частот резонанса и антирезонанса, как максимума и минимума на

% графике зависимости модуля проводимости от частоты

wr1=fminsearch(@mYw,0.9*wr);

wa1=fminsearch(@Yw,1.1*wa);

plot(www,YY) % Рисование графика

axis tight

Page 33: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 33 -

% Вывод рассчитанных значений частот резонанса и антирезонанса в

% соответствующие поля

set(handles.wr1,'String', wr1);

set(handles.wa1,'String', wa1);

Для получения числовых переменных величины считываемые из

полей ввода необходимо преобразовать из переменных типа string в

переменные типа double, учтя при этом размерность величин вводимых в

программу. Далее рассчитываем теоретические значения частот резонанса

и антирезонанса по приведенным вше формулам и задаем интервал частот,

в которых будем осуществлять расчет и построение графика функции

зависимости модуля проводимости от частоты. Для расчета модуля

проводимости используем дополнительную функцию, оформленную в

виде от отдельного .m – файла:

function res = Yw(w)

global R L C C0

G = R./(R^2+(w.*L-1./(w.*C)).^2);

B = w.*C0-(w.*L-1./(w.*C))./(R^2+(w.*L-1./(w.*C)).^2);

res=(G.^2+B.^2).^0.5;

Поиск частот резонанса и антирезонанса по графику модуля

проводимости осуществляется как поиск минимума модуля проводимости

для антирезонанса и минимума взятого с отрицательным знаком модуля

проводимости для резонанса (функция mYw повторт функцию Yw, но

значение переменной res взято с противоположным знаком). В данном

примере для этих целей использована стандартная функция fminsearch.

Рассчитанные значения частот резонанса и антирезонанса помещаются

в соответствующие поля с помощью команды set.

Запуск программы осуществляется нажатием кнопки . Результат

работы программы приведен на рис. 12.

Page 34: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 34 -

Рис. 12. Результат работ программы пример 1

Пример 2: Оценка влияние величины добротности на точность

определения частот резонанса и антирезонанса по частотной

характеристике фазы проводимости в области резонанса.

Интерфейс для реализации данной задачи внешне будет совпадать с

предыдущей задачей, однако график функции будет соответствовать

зависимости фазы проводимости от частоты.

Расчет частот резонанса и антирезонанса будет соответствовать

точкам пересечения графиком оси абсцисс.

Рис. 13. Результат работ программы пример 2

Page 35: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 35 -

Ниже приведем текст программного кода, необходимого для

реализации решаемой задачи и включенного, как и в предыдущем примере в

функцию «Callback» для кнопки «Расчет».

% --- Executes on button press in pushbutton1.

function pushbutton1_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data2 (see GUIDATA)

global R L C C0

R=str2double(get(handles.R,'String'));

L=str2double(get(handles.L,'String'));

L=L*1e-3;

C=str2double(get(handles.C,'String'));

C=C*1e-9;

C0=str2double(get(handles.C0,'String'));

C0=C0*1e-9;

wr=(1/(L*C))^0.5;

wa=(1/L*(1/C+1/C0))^0.5;

N=500;

www = 0.9*wr:(1.2*wa-0.8*wr)/N:1.1*wa;

Fi=Fiw(www);

a=0.9*wr;

b=1.1*wa;

dx=(1.1*wa-0.9*wr)/100;

nroots = 0;

while 1

[x1,x2] = rootsearch(@Fiw,a,b,dx);

if isnan(x1)

break

else

a = x2;

Page 36: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 36 -

x = bisect(@Fiw,x1,x2,1);

if ~isnan(x)

nroots = nroots + 1;

root(nroots) = x;

end

end

end

if nroots==2

wr1=root(1);

wa1=root(2);

else

wr1=0;

wa1=0;

end

plot(www,Fi)

hold on

plot([0.9*wr 1.1*wa], [0 0],'k'),

axis tight

hold off

set(handles.wr1,'String', wr1);

set(handles.wa1,'String', wa1);

Функция зависимости фазы от частоты оформлена в виде отдельного

m-файла. Более того, для поиска точек пересечения графика функции с

осью абсцисс использованы также функции rootsearch и bisect поиска

корней методом половинного деления. Тексты этих m-файлов приведены

ниже:

function res = Fiw(w)

global R L C C0

G = R./(R^2+(w.*L-1./(w.*C)).^2);

B = w.*C0-(w.*L-1./(w.*C))./(R^2+(w.*L-1./(w.*C)).^2);

res=atan2(B,G);

Page 37: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 37 -

function [x1,x2] = rootsearch(func,a,b,dx)

% Incremental search for a root of f(x).

% USAGE: [x1,x2] = rootsearch(func,a,d,dx)

% INPUT:

% func = handle of function that returns f(x).

% a,b = limits of search.

% dx = search increment.

% OUTPUT:

% x1,x2 = bounds on the smallest root in (a,b);

% set to NaN if no root was detected

x1 = a;

f1 = feval(func,x1);

x2 = a + dx;

f2 = feval(func,x2);

while f1*f2 > 0.0

if x1 >= b

x1 = NaN; x2 = NaN; return

end

x1 = x2; f1 = f2;

x2 = x1 + dx; f2 = feval(func,x2);

end

function root = bisect(func,x1,x2,filter,tol)

% Finds a bracketed zero of f(x) by bisection.

% USAGE: root = bisect(func,x1,x2,filter,tol)

% INPUT:

% func = handle of function that returns f(x).

% x1,x2 = limits on interval containing the root.

% filter = singularity filter: 0 = off (default), 1 = on.

% tol = error tolerance (default is 1.0e4*eps).

% OUTPUT:

% root = zero of f(x), or NaN if singularity suspected.

if nargin < 5; tol = 1.0e6*eps; end

if nargin < 4; filter = 0; end

f1 = feval(func,x1);

if f1 == 0.0; root = x1; return; end

Page 38: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 38 -

f2 = feval(func,x2);

if f2 == 0.0; root = x2; return; end

if f1*f2 > 0;

error('Root is not bracketed in (x1,x2)')

end

n = ceil(log(abs(x2 - x1)/tol)/log(2.0));

for i = 1:n

x3 = 0.5*(x1 + x2);

f3 = feval(func,x3);

if(filter == 1) & (abs(f3) > abs(f1))...

& (abs(f3) > abs(f2))

root = NaN; return

end

if f3 == 0.0

root = x3; return

end

if f2*f3 < 0.0

x1 = x3; f1 = f3;

else

x2 = x3; f2 = f3;

end

end

root=(x1 + x2)/2;

Пример 3: Исследование возможности определения добротности по

частотной характеристике квадрата модуля проводимости в области

резонанса.

Создадим интерфейс для реализации данной задачи (рис. 14)

В окне программы выделены три области:

1 – область задания параметров элементов электрической схемы;

2 – область отображения результатов расчета (заполняется после

нажатия на кнопку «Расчет»);

3 – область отображения графика частотной зависимости модуля

проводимости.

Результат работы программы показан на рис. 15.

Page 39: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 39 -

Рис. 14. Шаблон интерфейса для реализации программы.

Рис. 15. Результат работ программы пример 3

Частота резонанса определяется как минимум на графике зависимости

взятого с противоположным знаком модуля проводимости от частоты.

Далее определяется уровень 0.7 от значения максимума и вычисляется

Page 40: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 40 -

диапазон частот на этом уровне. Добротность контура определяется по

вышеприведенным формулам.

Приведем, как и в предыдущих примерах, текст программного кода,

необходимого для реализации решаемой задачи и включенного в функцию

«Callback» для кнопки «Расчет».

% --- Executes on button press in pushbutton1.

function pushbutton1_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data3 (see GUIDATA)

global R L C C0 Ymax

R=str2double(get(handles.R,'String'));

L=str2double(get(handles.L,'String'));

L=L*1e-3;

C=str2double(get(handles.C,'String'));

C=C*1e-9;

C0=str2double(get(handles.C0,'String'));

C0=C0*1e-9;

wr=(1/(L*C))^0.5;

N=500;

www = 0.8*wr:0.4*wr/N:1.2*wr;

YY=Yw(www);

wr1=fminsearch(@mYw,0.8*wr);

Ymax=Yw(wr1);

plot(www,YY)

hold on

axis tight

a=0.8*wr;

b=1.2*wr;

dx=0.4*wr/100;

nroots = 0;

while 1

Page 41: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 41 -

[x1,x2] = rootsearch(@Ywmax,a,b,dx);

if isnan(x1)

break

else

a = x2;

x = bisect(@Ywmax,x1,x2,1);

if ~isnan(x)

nroots = nroots + 1;

root(nroots) = x;

end

end

end

if nroots==2

w1=root(1);

w2=root(2);

QQ=wr1/(w2-w1);

Y1=Yw(w1);

Y2=Yw(w2);

plot([0.8*wr 1.2*wr], [0.7*Ymax 0.7*Ymax],'k')

plot([wr1 wr1], [Ymax 0],'k--')

plot([w1 w1], [Y1 0],'k--')

plot([w2 w2], [Y2 0],'k--')

else

w1=0;

w2=0;

QQ=0;

end

hold off

set(handles.wr1,'String', wr1);

set(handles.wa1,'String', (w2-w1));

set(handles.ke1,'String', QQ);

Вспомогательная функция Ywmax, являющаяся, по сути, функцией

зависимости модуля проводимости от частоты, только опущенная на 0.7 от

своего максимального значения, обеспечивает возможность найти разность

частот на уровне 0.7 функции модуля проводимости, как расстояние между

корнями функции Ywmax.

Page 42: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 42 -

function res = Ywmax(w)

global R L C C0 Ymax

G = R./(R^2+(w.*L-1./(w.*C)).^2);

B = w.*C0-(w.*L-1./(w.*C))./(R^2+(w.*L-1./(w.*C)).^2);

res=(G.^2+B.^2).^0.5-0.7*Ymax;

Проектное задание

1. Реализовать с помощью программы GUIDE задачи, приведенные в

примерах 1 и 2. Рассчитать по данным таблицы 1 значения

добротности.

Таблица 1.

С0, нФ 10 10 10 10 10 10 10 10 10 10

С, нФ 1 1 1 1 1 1 1 1 1 1

L, мГн 10 10 10 10 10 10 10 10 10 10

R, Ом 10 20 30 40 50 60 70 80 90 100

Q

2. Реализовать с помощью программы GUIDE задачу, приведенную в

примере 3. Рассчитать по данным таблицы 2 значения добротности и

построить график зависимости ( )Qf=∆ .

Таблица 2.

С0, нФ 10 10 10 10 10 10 10 10 10 10

С, нФ 1 1 1 1 1 1 1 1 1 1

L, мГн 10 10 10 10 10 10 10 10 10 10

R, Ом 10 20 30 40 50 60 70 80 90 100

Q

Qизм

Q

QQизм −=∆

Page 43: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 43 -

Тесты рубежного контроля

Тестовое задание выполняется в течение 5 минут и содержит 7

вопросов (правильный ответ помечается любым значком):

Результаты теста оцениваются по следующей шкале:

«7» и «6» правильных ответов – оценка «5»,

«5» правильных ответов – оценка «4»,

«4» правильных ответов – оценка «3»,

менее «4» правильных ответов – оценка «2»

Тесты: (все вопросы теста составлены применительно к электрической

схеме рис. 5 данного модуля)

1. Частота резонанса определяется по формуле?

0

22

0

22 1,,

111,

1

LCLC

CCLLCрpрp ==

+== ωωωω

2. Частота антирезонанса определяется по формуле?

0

22

0

22 1,,

111,

1

LCLC

CCLLCаааа ==

+== ωωωω

3. Как меняются значения максимума и минимума модуля

проводимости при уменьшении добротности?

а) смещаются в сторону меньших частот;

б) смещаются в сторону больших частот;

в) сближаются по частоте;

г) расходятся по частоте.

4. Как меняются частоты перехода фазы через ноль с уменьшением

добротности?

а) смещаются в сторону меньших частот;

б) смещаются в сторону больших частот;

в) сближаются по частоте;

Page 44: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 44 -

г) расходятся по частоте.

5. В каких случаях частотные характеристики в области резонанса для

активной составляющей проводимости и квадрата модуля

проводимости совпадают?

а) ;

б) ;

в) ;

г) .

6. По какой формуле определяется активная составляющая

проводимости?

а) ( )22 1

)(CLR

RG

ωωω

−+= ; б)

( )2201

1)(

CLR

CLCG

ωω

ωωωω

−+

−−= ;

в)

−+

+=

CLjR

СjG

ωω

ωω1

1)( 0 ; г)

+−+

−+

=

0

0

111

11

)(

CCLjR

CLjR

CjG

ωω

ωω

ωω .

7. Чтобы определить добротность по частотной характеристике модуля

проводимости необходимо знать:

а) частоту резонанса и полосу частот на уровне 0.5;

б) частоту резонанса и полосу частот на уровне 0.7;

а) частоту антирезонанса и полосу частот на уровне 0.5;

а) частоту антирезонанса и полосу частот на уровне 0.7;

Page 45: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 45 -

МОДУЛЬ 3 МОДЕЛИРОВАНИЕ ИЗМЕРИТЕЛЬНЫХ ПРОЦЕССОВ

ПРИ ИМПУЛЬСНОМ ВОЗДЕЙСТВИИ

Комплексная цель изучения модуля состоит в освоении основных

подходов реализации моделирования измерительных процессов во

временной области с применением программы Simulink.

3.1. Воздействие радиоимпульсом

Если на электрическую схему (рис. 5) воздействовать прямоугольным

радиоимпульсом (или скачком напряжения), то, после прекращения

действия импульса, на экране осциллографа будет наблюдаться

экспоненциально-затухающий переходной процесс.

Проведем аналогию между рассматриваемым случаем и классической

задачей о разряде конденсатора при последовательном его соединении с

индуктивным и резистивным элементами. Разрядный ток будет равен

teL

EJ p

р

ω

αsinкз

−= .

где α = ωp /2Qм .

При возбуждении радиоимпульсом, с заполнением сигналом вида

U0sinωpt в силу резонанса напряжений в последовательной RLC цепи

амплитуда тока вначале переходного процесса при закороченных

электродах будет равна

R

UCQU

Q

LUJ p

00

p

м0кз0

1=== ω

ω.

Как видно из приведенных соотношений возбуждение

радиоимпульсом с частотой заполнения, равной частоте механического

резонанса является более эффективным, чем возбуждение электрическим

видеоимпульсом. Соответствие частоты заполнения радиоимпульса

частоте ωр можно определить либо по наибольшей длительности

Page 46: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 46 -

переходного процесса, либо по максимальному значению амплитуды

сигнала в начале переходного процесса.

Для определения параметров электрической схемы измеряют частоту

механического резонанса ωр, амплитуду тока в начале переходного

процесса J0к з и механическую добротность Qм:

ppкз

RQL

RQC

J

UR

ωωм

м0

0 ;1

; === .

При воздействии на схему радиоимпульсом с частотой заполнения,

равной рω , в последовательной RLC цепи наблюдается резонанс

напряжений: на элементах L и C напряжение равно 0MUQ . После

прекращения действия радиоимпульса в электрической схеме имеет место

параллельный резонанс с резонансной частотой аω . При этом в начальный

момент времени после прекращения действия радиоимпульса напряжение

0MUQ будет распределено между двумя последовательно включенными

емкостными элементами цепи С и 0С , причем выходное напряжение

)(tuхх будет сниматься с емкости 0С . Из приведенных рассуждений

следует, что переходной процесс в этом случае будет описываться

выражением

ter

QUtu a

cхх

αsin

1)( M

0−

+= .

Рассмотрим еще один вариант измерения параметров электрической

схемы.

Будем рассматривать форму переходного процесса как амплитудно-

модулированный (АМ) сигнал со стопроцентной модуляцией: несущее

колебание частоты pω модулируется по амплитуде импульсом

экспоненциальной формы.

Если к такому АМ сигналу применить операцию амплитудного

линейного детектирования с углом отсечки 090=Θ , то сигнал на выходе,

например, диодного детектора будет повторять по форме огибающую:

будем иметь экспоненциальный импульс тока, вид которого приведен на

Page 47: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 47 -

рис. 16а, с амплитудой в π раз меньше амплитуды тока в начале

переходного процесса.

Таким образом, в результате детектирования форма тока на выходе

детектора будет описываться формулой

tд e

R

Uti

α

π

−= 0)( .

Рис. 16. Огибающая переходного процесса (а) и скорость изменения тока по

огибающей (б)

Если теперь выполнить операцию дифференцирования сигнала вида

(22), например, обычной дифференцирующей RC − цепочкой, а за начало

отсчета взять момент начала переходного процесса 0=t , как это показано

на рис. 16 б, то величина скорости изменения тока по огибающей в начале

переходного процесса будет определяться формулой

L

U

dt

tdi

t

д

π2

)( 0

0

=−=

−=

=00

)(12

1

t

д

dt

tdi

ULπ .

Моделирование измерительной схемы при помощи Simulink

Структурная схема процесса измерения реализована на рис. 17 с

помощью пакета Simulink. Рассмотрим основные этапы построения данной

схемы и прохождения через нее радиоимпульса.

Page 48: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 48 -

Рис.

17

Page 49: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 49 -

Для формирования радиоимпульса используем блок «Sine Wave» и блок

«Pulse Generator» из библиотеки «Simulink – Sources» с дальнейшим

умножением сигналов в блоке «Product» из библиотеки «Simulink – Math

Operations».

Для формирования электрического сигнала соединим выход блока

«Product» с блоком «Controlled Voltage Source» из библиотеки

«SimPowerSystems – Electrical Sources».

Далее, построим электронную схему (рис. 5) и дополнительного

резистора R0. Для этого из библиотеки «SimPowerSystems – Elements»

воспользуемся блоком «Series RLC Branch». Напомним, что данный блок в

общем случае позволяет задать последовательное соединение резистора,

конденсатора и катушки индуктивности, однако его можно также

использовать для задания любого из этих элементов в отдельности, для

этого необходимо лишь положить величины остальных компонентов

равными нулю (для резистора и катушки) либо бесконечности – inf (для

конденсатора).

Для объединения блоков в систему необходимо соединить их входные

и выходные порты, которые на пиктограммах блоков отмечены значком

">". Для того, чтобы соединить два блока между собой, надо подвести

курсор мыши к порту одного из соединяемых блоков, нажать левую

клавишу мыши и, удерживая ее в нажатом положении, переместить курсор

к порту другого блока, после чего отпустить удерживаемую клавишу.

После снятия электрического сигнала со вспомогательного резистора

R0, необходимо провести его усиление с помощью блока «Gain» из

библиотеки «Simulink – Math Operations». При этом, поскольку это блок

работает с информационными, а не с электрическими сигналами,

необходимо провести прямое и затем обратное преобразование

снимаемого с R0 сигнала с помощью блоков «Voltage Measurement» и

«Controlled Voltage Source» из библиотек «SimPowerSystems –

Measurements» и «SimPowerSystems – Electrical Sources» соответственно.

Необходимо помнить, что к блокам «Controlled Voltage Source» и «Voltage

Measurement» необходимо дополнительно подключать «землю» –

«Ground» из «SimPowerSystems – Connectors».

Page 50: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 50 -

Далее усиленный электрический сигнал поступает на диод

амплитудного детектора (блок «Diode», библиотека «SimPowerSystems –

Power electronic») и далее на ФНЧ (блок «Analog Filter Design», библиотека

«DSP Blockset – Filter Deigns»).

С выхода амплитудного детектора сигнал подается на

дифференцирующую RC цепочку, образованную элементами из блока

«Series RLC Branch» и далее происходит умножение в блоке «Product»

полученного сигнала с сигналом второго импульсного генератора «Pulse

Generator». Сигнал на выходе умножителя является искомым выходным

сигналом измерительного комплекса.

Следующим шагом после построения модели является задание

параметров входящих в нее блоков. Для этого надо дважды щелкнуть

левой клавишей мыши по выбранному блоку. В результате откроется окно,

в котором показаны значения параметров, введенные ранее или

установленные по умолчанию.

Приведем вид окон настройки параметров для основных блоков

схемы.

Рис. 18. Настройка параметров блока «Sine Wave»

Page 51: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 51 -

На рис. 18 приведено окно для блока «Sine Wave». Здесь необходимо

указать амплитуду сигнала, его частоту, фазу. Если параметр «Sample

time» равен нулю и тип синуса выбран «Time based», то происходи

моделирование непрерывного «аналогового» сигнала.

На рис. 19 показано окно для блока «Pulse Generator1». В этом окне

указывается амплитуда, период, ширина заполнения импульса и время

задержки.

Рис. 19. Настройка параметров блока «Pulse Generator1»

Рис. 20. Настройка параметров блока «Diode»

Page 52: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 52 -

Настройка блоков, задающих параметры электрической схемы и

усилителя, не представляет трудности и потому будет опущена. На рис. 20

показано окно для настройки блока «Diode».

Как известно для данного класса задач в качестве ФНЧ рекомендуется

использовать фильтр Баттерворта 2-го – 4-го порядка. Окно настройки для

фильтра приведено на рис. 21.

Рис. 21. Настройка параметров блока «Analog Filter»

Окно настройки для блока «Pulse Generator2» приведено на рис. 22.

Единственным отличим здесь от блока «Pulse Generator1» является

наличие задержки – Phase delay.

Рис. 22. Настройка параметров блока «Pulse Generator2»

Page 53: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 53 -

После этого необходимо также задать параметры моделирования в

главном меню проекта «Simulation – Simulation Parameters». Эти

параметры определяются по умолчанию, однако при необходимости

можно корректировать некоторые из них для задания необходимой

точности и длительности вычислений.

Для запуска процесса моделирования необходимо нажать кнопку �

либо из главного меню «Simulation - Start».

Для контроля результатов моделирования на различных этапах

прохождения сигнала необходимо установить мониторы, задаваемые блоком

«Floating Scope» из библиотеки «Simulink – Sinks», при этом, по

необходимости, между электронной схемой и монитором необходимо

добавлять блок «Voltage Measurement», осуществляющий преобразование

электрического напряжения в сигнал.

На рис. 23-28 приведены результаты моделирования, снимаемые

соответственно с мониторов Scope1, Scope2, Scope4, Scope5, Scope6,

Scope8. Получаемые зависимости подтверждают теоретические кривые, а

результаты, снимаемые с монитора Scope8, позволяют вычислить

параметры исследуемой электрической схемы.

Рис. 23. Результаты моделирования (монитор - scope1)

Page 54: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 54 -

Рис. 24. Результаты моделирования (монитор – scope2)

Рис. 25. Результаты моделирования (монитор – scope4)

Page 55: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 55 -

Рис. 26. Результаты моделирования (монитор – scope5)

Рис. 27. Результаты моделирования (монитор – scope6)

Page 56: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 56 -

Рис. 28. Результаты моделирования (монитор – scope8)

3.2. Воздействие ЛЧМ-импульсом

При импульсном воздействии более эффективным является

возбуждение радиоимпульсом с частотой синусоидального заполнения,

совпадающей с частотой резонанса электрической схемы (рис. 5). Но,

учитывая необходимость частотной коррекции спектра переходного

процесса перед определением частотной характеристики при воздействии

радиоимпульсом, предпочтительно несколько изменить процесс измерений

и вместо обычного радиоимпульса использовать ЛЧМ-сигнал: импульс,

частота синусоидального заполнения которого изменяется по линейному

закону. При этом для определения полной комплексной проводимости

электрической схемы, начальная частота ЛЧМ-сигнала должна быть ниже

частоты резонанса, а верхняя – выше частоты антирезонанса. В момент

воздействия этого ЛЧМ-сигнала нужно зарегистрировать сигнал-отклик и

применить к нему алгоритм быстрого преобразования Фурье.

Page 57: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 57 -

Основное отличие такого подхода от непосредственных измерений

состоит в следующем. При непосредственном измерении частотной

характеристики проводимости, возбуждение электрической схемы

синусоидальным сигналом происходит последовательно во времени на

каждой частоте и одновременно с этим, на каждой частоте, измеряется

реакция. В случае воздействия ЛЧМ-сигналом электрическая схема

возбуждается одновременно всеми синусоидальными составляющими

равномерного спектра радиоимпульса, а к отклику в момент воздействия

применяется процедура, реализующая спектральный анализ через

алгоритм БПФ.

Схема для измерения показана на рис. 29 (исследуемая электрическая

схема условно обозначена значком ).

Рис. 29. Схема для измерений

На рис. 29 использованы следующие обозначения: U0 – опорное

напряжение, U – падение напряжения на пьезоэлементе, R0 –

дополнительный резистор.

По значениям U0(ω) и U(ω), измеренным на частоте ω, можно найти

комплексную проводимость Y = Z -1

по формуле [ ]

( )( )( )

0

0

11

UY

R U

ωω

ω

= −

где величины U0 и U предполагаются комплексными.

При реализации аналогового способа измерений формируется

синусоидальное напряжение заданной частоты, и измеряются |U0(ω)|,

|U(ω)| и их разность фаз. ЛЧМ сигнал позволяет возбуждать пьезоэлемент

Page 58: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 58 -

или преобразователь широкополосным сигналом, спектр которого

охватывает заданную область частот. Сигнал с линейной частотной

модуляцией вида имеет вид

( ) 1 00

sin 22

f fs t A t f t

− = +

где A – амплитуда сигнала, f0 – начальная частота, f1 – конечная частота, T

– длительность сигнала.

При этом ширина спектра сигнала ∆f = f1 – f0. Если f1= f0, то s(t)

переходит в обычный радиоимпульс.

Моделирование измерительного процесса при помощи Simulink

Перед построением модели необходимо предварительно загрузить

систему MatLab и запустить Simulink. Запуск выполняется из командного

окна MatLab, для чего необходимо подвести курсор «мыши» к кнопке

запуска этой программы, находящейся в верхней части окна, и щелкнуть

левой клавишей мыши либо набрать в командном окне следующую

команду simulink. В том и другом случае откроется окно системы

просмотра библиотек Simulink Library Browser (рис. 30). В верхней части

этого окна две крайние левые кнопки служат, соответственно, для

создания новой и открытия существующей модели.

После нажатия левой кнопки на экране появится окно для построения

новой модели. Процесс построения модели Simulink, включает ее

компоновку и задание необходимых параметров. Компоновка заключается

в выборе из библиотек Simulink необходимых блоков, их размещение в

открывшемся окне и соединение между собой.

Процедура поиска и перемещения блоков из библиотек Simulink в

окно модели во многом напоминает операции копирования и перемещения

файлов в среде Windows. В частности, технология работы с Simulink

Library Browser аналогична работе с Проводником Windows. Для

перемещения курсор «мыши» устанавливается на нужный блок. Затем,

нажав левую клавишу мыши, блок перемещает его в окно модели. Кроме

Page 59: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 59 -

непосредственного просмотра содержимого библиотек, любой блок может

быть найден по имени (если оно известно), введенному в текстовое поле,

расположенное в правой верхней части Simulink Library Browser.

Рис. 30. Simulink Library Browser

На рис. 31 приведена структурная схема измерений. Рассмотрим

поэтапно процесс ее построения.

Для формирования ЛЧМ сигнала используем блок «Chirp Signal» из

библиотеки «Simulink – Sources», а для формирования электрического

сигнала соединим его с блоком «Controlled Voltage Source» из библиотеки

«SimPowerSystems – Electrical Sources». Далее построим электрическую

схему (рис. 5) и дополнительного резистора R0. Для этого из библиотеки

«SimPowerSystems – Elements» воспользуемся блоком «Series RLC

Branch». Данный блок в общем случае позволяет задать последовательное

Page 60: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 60 -

соединение резистора, конденсатора и катушки индуктивности, однако его

можно также использовать для задания любого из этих элементов в

отдельности.

Рис. 31. Структурная схема измерений

Для этого необходимо лишь положить величины остальных

компонентов равными нулю (для резистора и катушки) либо

бесконечности – inf (для конденсатора). Для снятия результатов

моделирования необходимо установить монитор, задаваемый блоком

«Floating Scope» из библиотеки «Simulink – Sinks», однако между

электронной схемой и монитором необходимо добавить еще один блок

«Voltage Measurement» из библиотеки «SimPowerSystems – Measurements»,

Page 61: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 61 -

осуществляющий преобразование электрического напряжения в сигнал.

Дополнительно к блоку «Voltage Measurement» подключается «земля» –

«Ground» из «SimPowerSystems – Connectors».

Для объединения блоков в систему необходимо соединить их входные

и выходные порты, которые на пиктограммах блоков отмечены значком

«>». Для того, чтобы соединить два блока между собой, надо подвести

курсор мыши к порту одного из соединяемых блоков, нажать левую

клавишу мыши и, удерживая ее в нажатом положении, переместить курсор

к порту другого блока, после чего отпустить удерживаемую клавишу.

Следующим шагом после построения модели является задание

параметров входящих в нее блоков. Для этого надо дважды щелкнуть

левой клавишей «мыши» по выбранному блоку. В результате откроется

окно, в котором показаны значения параметров, введенные ранее или

установленные по умолчанию. Зададим параметры генератора ЛЧМ

сигналов и электрической схемы: например,

параметры генератора ЛЧМ сигнала:

� Начальная частота ЛЧМ-сигнала – 40 кГц

� Длительность импульса – 0,5 с

� Конечная частота ЛЧМ-сигнала – 70 кГц

параметры электрической схемы:

� R0 – 1000 Ом

� C0 – 10-8

Ф

� C – 10-9 Ф

� L – 0,01 Гн

� R – 100 Ом

После этого необходимо также задать параметры моделирования в

главном меню «Simulation – Simulation Parameters». Эти параметры

определяются по умолчанию, однако необходимо корректировать

некоторые из них для задания необходимой точности и длительности

вычислений. В нашем примере зададим «Simulation time: start time – 0.0;

stop time – 0.5; max. step size – 1e-6; min. step size 0.9e-6».

Для запуска процесса моделирования необходимо нажать кнопку �

либо выбрать из главного меню «Simulation - Start».

Page 62: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 62 -

По окончании расчетов будем наблюдать сигналы, снимаемые с

элементов схемы. В частности, зависимость для «Scope2» приведена на

рис. 30.

Далее необходимо провести преобразования Фурье от сигналов,

снимаемых со «Scope1» и «Scope2», и обозначаемые в дальнейшем как U0

и U соответственно. Эта задача может быть решена различными

способами. Здесь будет рассмотрен один из них, использующий перенос

данных из Simulink с дальнейшими расчетами непосредственно с помощью

аппарата MatLab.

Для этого проведем настройки параметров мониторов следующим

образом: откроем окно монитора и вызовем настройку параметров,

используя иконку в левой верхней части экрана; откроем вторую вкладку

появившегося меню, отключим ограничение на количество записываемых

данных «Limit data points» и установим флажок на сохранение данных во

внешней переменной MatLab (соответственно U0 и U), а также формат

записи «Array», что позволит сохранять данные в виде двух столбцов,

содержащих соответственно абсциссу и ординату точек графиков. Пример

выполнения настройки показан на рис. 33.

Рис. 32. Зависимость, снимаемая с монитора «Scope2»

Page 63: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 63 -

Рис. 33. Настройки параметром монитора

Для осуществления преобразования Фурье и выполнения расчетов

можно составить программу, оформленную в виде отдельного m-файла.

Ниже приведем типовой текст такой программы:

% macros for simulink model

clear all

sim('sim_mod')

tm=U(:,1);

Um=U(:,2);

Um0=U0(:,2);

figure(1)

plot(tm,Um,'k');

FUm0=fft(Um0);

FUm=fft(Um);

Y=1/1000*(FUm0./FUm-1);

Ym=abs(Y);

N=size(Ym);

N=(N(1)-1)/2;

Ym2=Ym(1:N);

f=(0:(N-1))/0.5/1000;

figure(2)

plot(f,Ym2,'k');

hold on

Page 64: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 64 -

% сравнение с теоретической кривой

C0=1e-8;

R=100;

L=1e-02;

C=1e-09;

F=40000:1:70000;

W=2*pi*F;

Y=j*W*C0+1./(R+j*(W*L-1./(W*C)));

YA=abs(Y);

plot(F/1000,YA,'k','LineWidth',2 );

Помимо вычислений в программе реализовано также сравнение с

теоретической кривой зависимости модуля проводимости от частоты, а

строка sim('«имя Simulink модели»') позволяет запускать Simulink

напрямую из m-файла. На рис. 34 представлен график зависимости модуля

проводимости от частоты, полученный в результате моделирования. Из

рисунка видно, что совпадение графиков настолько полное, что их

различение в таком масштабе просто невозможно.

Рис.34. График зависимости модуля проводимости от частоты

Page 65: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 65 -

Краткие сведения о преобразовании Фурье

1. Непрерывное преобразование Фурье

Непрерывное преобразование Фурье – преобразование, которое

применяется к функции h(t), заданной на интервале ( );−∞ +∞ . В результате

получается функция H(f):

2( ) ( ) i f tH f h t e dtπ

−∞

= ∫ .

Также существует обратное преобразование, которое позволяет по

образу H(f) восстановить исходную функцию h(t):

2( ) ( ) i f th t H f e dfπ

−∞

= ∫

Очевидно, что образ H(f) является комплексной функцией

вещественного аргумента, но также и h(t) может принимать не только

вещественные, но и комплексные значения.

2. Дискретное преобразование Фурье

При дискретном преобразовании Фурье (ДПФ) интеграл

аппроксимируется интегральной суммой:

12

0

( ) ( ) exp 2N

i f t

n k k

k

knH f h t e dt h i

N

π π∞ −

=−∞

= = ∆

∑∫

В случае равномерной сетки эта формула упрощается. Также на

равномерной сетке обычно избавляются от шага, чтобы получить

безразмерную формулу:

1

0

exp 2 , ;2 2

N

n k

k

kn N NH h i n

=

= ∈ − ∑

Обратное преобразование в таком случае будет иметь вид

[ ]1

0

1exp 2 , 0; 1

N

k n

n

knh H i n N

N Nπ

=

= − ∈ −

∑ .

Page 66: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 66 -

3. Быстрое преобразование Фурье

Посчитав по определению, сколько операций требуется на проведение

дискретного преобразования Фурье (N раз суммировать N слагаемых),

получаем величину порядка N2. Тем не менее, можно обойтись

существенно меньшим числом операций.

Наиболее популярным из алгоритмов ускоренного вычисления ДПФ

является метод Кули-Тьюки, позволяющий вычислить ДПФ для числа

отсчетов N = 2 k за время порядка N log 2 N (отсюда и название – быстрое

преобразование Фурье, БПФ). Этот способ чем-то неуловимо напоминает

быструю сортировку. В ходе работы алгоритма также проводится

рекурсивное разбиение массива чисел на два подмассива и сведение

вычисления ДПФ от целого массива к вычислению ДПФ от подмассивов в

отдельности.

Изобретение БПФ привело к потрясающему всплеску популярности

преобразования Фурье. Целый ряд важных задач раньше решался за время

порядка N 2, но после проведения преобразования Фурье над исходными

данными (за время порядка Nlog2 N) решается практически мгновенно.

Преобразование Фурье лежит в основе цифровых корелляторов и методов

свертки, активно используется при спектральном анализе (практически в

чистом виде), применяется при работе с длинными числами.

В основе БПФ лежит идея о том, что для четного N можно разделить

преобразование Фурье от всего массива на сумму преобразований от

элементов с четными и от элементов с нечетными номерами:

( )1 11 1 2 2

2 12

2 2 1

0 0 0 0

2exp 2 ; exp

N NN N

k nkn kn

n k k k k

k k k k

kn iH h i h h h

N N

ππ

− −− −+

+

= = = =

= = Ψ = Ψ + Ψ Ψ =

∑ ∑ ∑ ∑

Первое слагаемое в сумме соответствует ДПФ от элементов с

четными номерами, второе – от элементов с нечетными. Если N не просто

четное, а кратное четырем, то можно рекурсивно применить этот процесс к

полученным слагаемым. Если N является степенью двойки, то процесс

можно свести к вычислению ДПФ от одного числа. Этот процесс

повторяется log2 N раз для всех N значений преобразования. Именно эта

идея и является основной в БПФ.

Page 67: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 67 -

Проектное задание

1. Реализовать с помощью программы Simulink задачу моделирования

воздействия на электрическую схему радиоимпульса для параметров

схемы приведенных в таблице 3. Провести расчет параметров схемы

по изложенному алгоритму и сравнить с истинными.

2. Реализовать с помощью программы Simulink задачу моделирования

воздействия на электрическую схему ЛЧМ-сигнала для параметров

схемы приведенных в таблице 3. Провести расчет параметров схемы

по изложенному алгоритму и сравнить с истинными.

Таблица 3.

С0, нФ 10 10 10 10 10 10 10 10 10 10

С, нФ 1 1 1 1 1 1 1 1 1 1

L, мГн 10 10 10 10 10 10 10 10 10 10

R, Ом 10 20 30 40 50 60 70 80 90 100

Page 68: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 68 -

Тесты рубежного контроля

Тестовое задание выполняется в течение 5 минут и содержит 7

вопросов (правильный ответ помечается любым значком):

Результаты теста оцениваются по следующей шкале:

«7» и «6» правильных ответов – оценка «5»,

«5» правильных ответов – оценка «4»,

«4» правильных ответов – оценка «3»,

менее «4» правильных ответов – оценка «2»

Тесты:

1. Блок «Sine Wave» пакета Simulink предназначен для:

а) задания радиоимпульса;

б) задания синуса, длительность которого определяется интервалом

моделирования;

в) задания частотно-модулированного отрезка синусоиды;

г) проверки падающего сигнала на гармоничность.

2. Блок «Pulse Generator» пакета Simulink предназначен для:

а) задания радиоимпульса;

б) задания положительного сигнала единичной амплитуды,

длительность которого определяется интервалом моделирования;

в) задания прямоугольного импульса;

г) проверки падающего сигнала на прямоугольность.

3. Блок «Series RLC Branch» пакета Simulink предназначен для:

а) задания параллельной цепочки элементов R, L и С;

б) задания последовательной цепочки элементов R, L и С;

а) задания комбинированной цепочки элементов R, L и С;

г) формирования серии модулированных импульсов.

Page 69: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 69 -

4. Блок «Chirp Signal» пакета Simulink предназначен для:

а) задания радиоимпульса;

б) задания синуса, длительность которого определяется интервалом

моделирования;

в) задания частотно-модулированного отрезка синусоиды;

г) проверки падающего сигнала на гармоничность.

5. Для реализации быстрого преобразования Фурье в MatLab

используется функция:

а) fft; б) dfft;

в) fastfur; г) ffur;

6. Укажите параметр, не используемый при настройке блока «Sine

Wave»:

а) frequency;

б) phase;

в) sample time;

г) phase delay.

7. Укажите параметр, не используемый при настройке блока «Pulse

Generator»

а) period;

б) pulse width;

в) sample time;

г) phase delay.

Page 70: В ЗЕМЛЯКОВiitt.fvt.sfedu.ru/files/documents/up/UP_Modelirov_iz...Земляков В.В. Моделирование измерительных процессов в Matlab

- 70 -

СПИСОК ЛИТЕРАТУРЫ

1. Кетков Ю.Л., Кетков А.Ю., Шульц М.М. MATLAB 6.х.:

программирование численных методов. // СПб.: БВХ-Петербург, 2004,

672 с.

2. Чен К., Джиблин П., Ирвинг А., MATLAB в математических

исследованиях: Пер. с англ. – М.: Мир, 2001. – 346 с.

3. Потемкин В.Г. Введение в MATLAB. – М.: Диалог-МИФИ, 2000. –

350 с.

4. Кондрашев В. MATLAB как система программирования научно-

технических расчетов. – М.: Мир, 2002. – 350 с.

5. Дьяконов В.П. MATLAB 6: Учебный курс. – СПб.: Питер, 2001. – 592 с.

6. Дьяконов В.П. Simulink 4. Специальный справочник. – СПб.: Питер,

2002. – 528 с.

7. Черных И.В. Simulink: среда создания инженерных приложений / Под

общ. ред. В.Г. Потемкина. – М.: Диалог-МИФИ, 2003. – 496 с.