Моделирование измерительных задач в среде MATLAB + Simulink
Покупка
Основная коллекция
Тематика:
Системы автоматического моделирования
Издательство:
Южный федеральный университет
Год издания: 2020
Кол-во страниц: 144
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-9275-3499-9
Артикул: 756668.01.99
Учебное пособие содержит изложение теоретических и практических основ разработки приложений в среде MATLAB + Simulink в части компьютерного моделирования измерительных процессов. Приводятся практические примеры моделирования как в частотной, так и во временной области. Пособие предназначено для студентов третьего курса бакалавриата, обучающихся по физическим и техническим направлениям подготовки, и позволяет получить практические навыки по компьютерному моделированию в среде MATLAB + Simulink.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное автономное образовательное учреждение высшего образования «ЮЖНЫЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ» В. В. ЗЕМЛЯКОВ, В. Л. ЗЕМЛЯКОВ, С. А. ТОЛМАЧЕВ МОДЕЛИРОВАНИЕ ИЗМЕРИТЕЛЬНЫХ ЗАДАЧ В СРЕДЕ MATLAB + SIMULINK Учебное пособие Ростов-на-Дону - Таганрог Издательство Южного федерального университета 2020
УДК 004.94-027.22(075.8) ББК 32.973-018я73 353 Печатается по решению кафедры информационных и измерительных технологий Института высоких технологий и пьезотехники Южного федерального университета (протокол № 7 от 20.02.2020) Рецензенты: кандидат технических наук, доцент И. Ю. Соломенцев; кандидат технических наук, доцент Б. В. Рябошапко Земляков, В. В. 353 Моделирование измерительных задач в среде MATLAB + Simulink : учебное пособие / В. В. Земляков, В. Л. Земляков, С. А. Толмачев ; Южный федеральный университет. - Ростов-на-Дону ; Таганрог: Издательство Южного федерального университета, 2020. - 144 с. ISBN 978-5-9275-3499-9 Учебное пособие содержит изложение теоретических и практических основ разработки приложений в среде MATLAB + Simulink в части компьютерного моделирования измерительных процессов. Приводятся практические примеры моделирования как в частотной, так и во временной области. Пособие предназначено для студентов третьего курса бакалавриата, обучающихся по физическим и техническим направлениям подготовки, и позволяет получить практические навыки по компьютерному моделированию в среде MATLAB + Simulink. УДК 004.94-027.22(075.8) ББК 32.973-018я73 ISBN 978-5-9275-3499-9 © Южный федеральный университет, 2020 © Земляков В. В., Земляков В.Л., Толмачев С.А., 2020 © Оформление. Макет. Издательство Южного федерального университета, 2020
ОГЛАВЛЕНИЕ ВВЕДЕНИЕ......................................4 МОДУЛЬ 1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ MATLAB + SIMULINK......................................5 1.1. Работа в диалоговом режиме.............6 1.2. Графические возможности MATLAB. Высокоуровневая и низкоуровневая графика.. 28 1.3. Программирование приложений в MATLAB...42 Тестовые задания к модулю 1 .............. 58 МОДУЛЬ 2. ПРИМЕРЫ РАЗРАБОТКИ ПРИЛОЖЕНИЙ В MATLAB + SIMULINK...............60 2.1. Преобразование сигналов в линейных электрических цепях........................60 2.1.1. Преобразование сигналов в электрических цепях при гармоническом воздействии........61 2.1.2. Преобразование сигналов в электрических цепях при импульсном воздействии...........67 2.2. Моделирование измерений в частотной области................................... 76 2.3. Моделирование измерений во временной области....................................95 2.4. Обработка результатов измерений......103 Тестовые задания к модулю 2...............122 ЛИТЕРАТУРА..................................125 ПРИЛОЖЕНИЕ..................................126 3
ВВЕДЕНИЕ Поскольку натурные измерения более затратны, чем компьютерное моделирование, студентам физических и технических направлений подготовки будет полезно освоить виртуальные измерения на компьютере. Предлагаемое учебное пособие, в котором на базе среды программирования MATLAB + Simulink изучается процесс компьютерного моделирования измерительных процессов, призвано помочь будущим специалистам получить необходимые умения и навыки. Весь комплекс измерительных процедур рассматривается для различных электрических цепей, содержащих R-, L-и C-элементы. Учебное пособие содержит два модуля. Первый модуль дает общее описание среды программирования MATLAB + Simulink, ее структуры и возможностей. Целью и содержанием второго модуля является описание и изучение возможностей моделирования измерений. Вначале рассматривается преобразования сигналов в линейных электрических цепях при гармоническом и импульсном воздействии. Следующим идет моделирование измерений в частотной области. Затем подробно разбирается ситуация, когда на цепь воздействует ЛЧМ-сигнал, а частотная характеристика цепи получается путем преобразования Фурье от реакции цепи в момент воздействия. В завершение приводится материал, позволяющий освоить обработку результатов измерений методами оптимизации. Практические примеры во втором модуле приведены применительно к MATLAB 6.5. При использовании более поздних версий потребуется незначительная корректировка кода программы. Пособие не претендует на полноту описания среды программирования MATLAB + Simulink. Для ее подробного изучения лучше воспользоваться специальной литературой (например, [1; 5-8]). 4
МОДУЛЬ 1 ТЕОРЕТИЧЕСКИЕ ОСНОВЫ MATLAB + SIMULINK Среда программирования MATLAB является одним из эффективных средств выполнения научно-технических и инженерных расчетов, визуализации их результатов, обработки данных эксперимента, их анализа и моделирования. Она включает ядро, выполняющее базовые (встроенные) вычислительные функции и алгоритмы, а также целый ряд общематематических, графических и проблемно-ориентированных пакетов (Toolboxes), позволяющих применять современные вычислительные технологии в следующих областях: — обработка сигналов; — моделирование процессов; — системы управления; — нечеткая логика и др. Среда программирования содержит обширную библиотеку специализированных функций, справочную систему, демонстрационные примеры. Специализированные функции выполнены в виде отдельных файлов, имеющих расширение m, — это так называемые m-файлы. В отличие от компонентов ядра, m-файлы доступны для просмотра и редактирования. Пользователь может создавать и включать в систему собственные программы, оформляемые в виде m-файлов. Программы решения типовых задач в диалоговом окне оформлены также в виде m-файлов. Например, существует программа проектирования частотного фильтра, вызываемая командой fdatool. От пользователя требуется лишь задание таких исходных данных, как тип фильтра и параметры его частотной характеристики в полосе пропускания и задержания. Последующая реализация решения остается за кадром, а пользователь получает возможность наблюдать на экране основные характеристики реализованного фильтра. 5
МОДУЛЬ 1 1.1. Работа в диалоговом режиме Основной режим работы при изучении ядра MATLAB — это работа в командном окне. Обратим внимание на основные понятия и приемы работы. Символ >> в текущей строке командного окна показывает, что система готова к диалогу. В этой строке в обычном текстовом режиме набирают одну или несколько команд (выражений). Окончание ввода, т. е. передача управления системе, осуществляется нажатием на клавишу <Enter>. При этом курсор может находиться в любом месте вводимой строки. После окончания ввода программа выполняет предписанные строкой действия, и результат появится в следующих строках окна, например: > > 10+2 ans=12 Поскольку пользователь не присвоил название результату выполняемой операции, то система автоматически присваивает ему имя ans (сокращение от answer — ответ, решение). Под этим именем результат хранится в памяти, и его можно использовать в последующих вычислениях до тех пор, пока в ходе работы не будет получен новый непоименованный результат, например: > > 15+ans ans=27 Для получения поименованного результата нужно в строке ввода задать имя переменой с обязательным присвоением переменной значения (определить переменную). Для присваивания значения используется знак равенства, например: d=5 Имена переменных должны начинаться с буквы, могут содержать цифры и символ подчеркивания, но не должны содержать знаков пунктуации, арифметических операций и символа пробела. Не рекомендуется задавать переменным имена, зарезервированные системой для встроенных команд и функций (например, sin, exp и т. д.). 6
ТЕОРЕТИЧЕСКИЕ ОСНОВЫ MATLAB + SIMULINK MATLAB чувствителен к регистру букв; например, ав, Ав, аВ, АВ — это разные переменные. Значение переменной хранится в памяти до тех пор, пока она не будет переопределена или очищена командой clear. Обратите внимание на изменение содержания окон Workspace и Command History. В окне Command History появляются все команды, введенные в командном окне. В окне Workspace появляются все определенные пользователем переменные. Для редактирования значения переменной можно в этом окне дважды щелкнуть мышью по строке с переменной и в открывшемся окне редактора изменить ее значение. В одной строке можно ввести несколько выражений или команд, разделяя их запятой или точкой с запятой. В первом случае результат выводится на экран, во втором — нет. Отсутствие разделителя в конце строки ввода равносильно запятой, например: > > a=5, b=7; c=18 Если требуется вывести на экран значения определенных пользователем переменных, следует в командной строке набрать их имена через запятую и нажать <Enter>. При необходимости ввода длинного выражения, не помещающегося в одной командной строке, его можно набрать в нескольких строках, заканчивая предыдущие строки тремя или более точками, например, > > x=a+... b+... c x=30 Введенные команды представляют собой историю. Для того чтобы повторно использовать команду, необходимо прокрутить стек истории, используя клавиши перемещения курсора <$> или <^>. Таким способом ранее введенные строки командного окна вносятся в текущую командную строку, где их можно изменять и отправлять на выполнение клавишей <Enter>. Другой способ повторного исполнения команд — это перенос команд или их частей из командного окна или из окна Command History через буфер обмена. 7
МОДУЛЬ 1 Форматы вывода чисел Переменные, участвующие в вычислениях, могут быть вещественными или комплексными. Для обозначения мнимой единицы используются i или j. При вводе комплексных чисел мнимая единица может стоять либо перед мнимой частью, либо после нее. В первом случае между ними обязательно ставится знак умножения (1+i*2=1+j*2), во втором случае знак умножения ставить необязательно (1+2i=1+2j), однако в этом случае между мнимой частью и мнимой единицей не должно быть пробелов. Вычисления с числами происходят с двойной точностью, но вывод их на экран можно производить в разном формате, используя различные варианты команды format (подчеркнем, что изменение формата вывода не влияет на величину числа, хранящегося в памяти): • Целые числа, меньшие 1010, выводятся как целое, даже если они были введены с десятичной точкой и нулевой дробной частью: >> 999999999.0 ans=999999999 • format или format short — устанавливает фиксированный формат вывода рациональных чисел с 4 значащими цифрами после десятичной точки. Этот формат устанавливается по умолчанию для чисел меньших 103 и больших 10⁻³: >> 999.91234 ans=999.9123 >> 0.00123 ans=0.0012; • format long — устанавливает фиксированный формат вывода с 14 значащими цифрами после десятичной точки: >> 99.9999 ans=99.99990000000000 • format short e — устанавливает экспоненциальный формат с 5 знаками мантиссы и 3 знаками порядка: >> 125.567 ans=1.2557e+002 8
ТЕОРЕТИЧЕСКИЕ ОСНОВЫ MATLAB + SIMULINK Этот формат устанавливается по умолчанию для чисел больших 103 и меньших 10⁻³. • format long e - устанавливает экспоненциальный формат с 15 знаками мантиссы и 3 знаками порядка: >> 125.567 ans=1.255670000000000e+002 • format + - вместо положительных, отрицательных и нулевых элементов массивов изображаются знаки плюс, минус и пробел соответственно. • format rat устанавливает формат вывода, при котором вещественные результаты представляются рациональными дробями: >> 0.333 ans=333/1000 • format compact - подавляет лишние интервалы между строками вывода, format loose - восстанавливает межстрочные интервалы. Применение команды format без параметров восстанавливает используемые по умолчанию настройки вывода данных. Кроме переменной ans, в системе используются еще некоторые специальные переменные: • inf (infinity) - машинная бесконечность, которая может быть аргументом функций, имеющих конечный предел при стремлении аргумента к бесконечности, например: >> 1 + exp(-inf) ans=1 • NaN (Not a Number) - нечисловой результат, который может быть получен, например, при вычислении неопределенного выражения наподобие sin(0)/0. • pi - число п. • eps - константа, определяющая точность сравнения двух чисел при вычислениях с плавающей точкой, равная 2⁻⁵². Выражения, помещенные между апострофами, рассматриваются как символьные и не вычисляются, например: > > ‘1 + 2’ ans=1 + 2 9
МОДУЛЬ 1 Формирование векторов и матриц Как уже упоминалось, основным объектом системы является массив данных. Массив представляет собой совокупность однотипных данных, объединенную в один поименованный объект. Такие массивы могут быть скалярами, т. е. состоять из одного числа, могут быть одномерными, т. е. векторами, двумерными — матрицами и т. д. Простейший способ формирования одномерного массива — это перечисление его элементов в квадратных скобках []. Элементы разделяются пробелами или запятыми. Допустимо в пределах ввода одного вектора использовать оба типа разделителей. > > v = [1,2 3] v=1 2 3 В качестве элементов формируемого вектора могут выступать не только числа, но и другие векторные переменные, уже существующие в рабочем пространстве, а также выражения и функции: > > w = [v,v+3] w=1 2 3 4 5 6 Доступ к элементам вектора осуществляется по номеру элемента в их последовательности — индексу, например, > > w(3) ans=3 Используя доступ по индексу, можно изменять значение элемента вектора; > > w(5) = 2*w(5) w=1 234 106 Отметим, что при изменении значения какого-либо элемента вектора система выводит на экран весь вектор-строку. Если индекс вводимого элемента превышает размер вектора, т. е. максимальное значение индекса, то система увеличивает размер вектора, заполняя нулями промежуточные элементы: > > w(9)=9 w=1 2 3 4 10 6 0 0 9 10