- •Начала программирования в среде MatLab
- •Содержание
- •Предисловие
- •Введение
- •1. MatLAB как научный калькулятор
- •1.1. Командное окно
- •1.2. Операции с числами
- •1.2.1. Ввод действительных чисел
- •1.2.2. Простейшие арифметические действия
- •1.2.3. Ввод комплексных чисел
- •1.2.4. Элементарные математические функции
- •1.2.5. Специальные математические функции
- •1.2.6. Элементарные действия с комплексными числами
- •1.2.7. Функции комплексного аргумента
- •1.2.8. Задания
- •1.2.9. Вопросы
- •1.3. Простейшие операции с векторами и матрицами
- •1.3.1. Ввод векторов и матриц
- •1.3.2. Формирование векторов и матриц
- •1.3.3. Извлечение и вставка частей матриц
- •1.3.4. Действия над векторами
- •1.3.5. Поэлементное преобразование матриц
- •1.3.6. Матричные действия над матрицами
- •1.3.7. Матричные функции
- •1.3.8. Задания
- •1.3.9. Вопросы
- •1.4. Функции прикладной численной математики
- •1.4.1. Операции с полиномами
- •1.4.2. Обработка данных измерений
- •1.4.3. Функции линейной алгебры
- •1.4.4. Аппроксимация и интерполяция данных
- •1.4.5. Векторная фильтрация и спектральный анализ
- •1.4.6. Задания
- •1.4.7. Вопросы
- •1.5. Построение простейших графиков
- •1.5.1. Процедура plot
- •1.5.2. Специальные графики
- •1.5.3. Дополнительные функции графического окна
- •1.5.5. Задания
- •1.5.6. Вопросы
- •1.6. Операторы управления вычислительным процессом
- •1.6.1. Оператор условного перехода
- •1.6.2. Оператор переключения
- •1.6.3. Операторы цикла
- •1.6.4. Задания
- •1.6.5. Вопросы
- •2. Программирование в среде MatLAB
- •2.1. Функции функций
- •2.2. Создание М-файлов
- •2.2.1. Особенности создания М-файлов
- •2.3.1. Общие требования к построению
- •2.3.2. Типовое оформление процедуры-функции
- •2.3.3. Задания
- •2.3.4. Вопросы
- •2.4. Создание Script-файлов
- •2.4.1. Основные особенности Script-файлов
- •2.4.2. Ввод и вывод информации в диалоговом режиме
- •2.4.3. Организация повторения действий
- •2.4.4. Организация изменения данных в диалоговом режиме
- •2.4.5. Типовая структура и оформление Script-файла
- •2.5. Графическое оформление результатов
- •2.5.1. Общие требования к представлению графической информации
- •2.5.2. Разбивка графического окна на подокна
- •2.5.3. Вывод текста в графическое окно (подокно)
- •2.6. Создание функций от функций
- •2.6.1. Процедура feval
- •2.6.2. Примеры создания процедур от функций
- •2.6.3. Задания
- •2.7. Пример создания сложной программы
- •2.7.1. Программа моделирования движения маятника
- •2.7.2. Задания
- •3.1. Функции меню командного окна
- •3.1.2. Другие меню командного окна
- •3.1.3. Панель инструментов
- •3.2. Команды общего назначения
- •3.3. Создание М-книги
- •3.3.1. Начало новой М-книги
- •3.3.2. Написание М-книги
- •3.3.3. Редактирование М-книги
- •3.3.4. Преобразование документа WORD в М-книгу
- •3.3.6. Изменение параметров вывода результатов
- •4. Классы вычислительных объектов
- •4.1. Основные классы объектов
- •4.1.1. Класс символьных строк (char)
- •4.1.2. Класс записей (struct)
- •4.1.3. Класс ячеек (cell)
- •4.2. Производные классы MatLAB
- •4.2.1. Класс объектов Inline
- •4.2.2. Классы пакета CONTROL
- •4.3. Пример создания нового класса polynom
- •4.3.1. Создание подкаталога @polynom
- •4.3.2. Создание конструктора
- •4.3.3. Создание процедуры символьного представления polynom-объекта.
- •4.4. Создание методов нового класса
- •5.1. Формирование типовых процессов
- •5.1.1. Формирование одиночных импульных процессов
- •5.1.2. Формирование колебаний
- •5.2.1. Основы линейной фильтрации
- •5.2.2. Формирование случайных процессов
- •5.3. Процедуры спектрального (частотного) и статистического анализа процессов
- •5.3.1. Основы спектрального и статистического анализа
- •5.3.2. Примеры спектрального анализа
- •5.3.3. Статистический анализ
- •5.4. Проектирование фильтров
- •5.4.1. Формы представления фильтров и их преобразования
- •5.4.2. Разработка аналоговых фильтров
- •5.4.3. Проектирование БИХ-фильтров
- •5.5. Графические и интерактивные средства
- •5.5.1. Графические средства пакета SIGNAL
- •5.5.2. Интерактивная оболочка SPTOOL
- •6.1. Ввод и преобразование моделей
- •6.2. Получение информации о модели
- •6.3. Анализ системы
- •6.4. Интерактивный "обозреватель" ltiview
- •6.5. Синтез системы
- •7.1. Общая характеристика пакета SimuLink
- •7.1.1. Запуск SimuLink
- •7.1.2. Библиотека модулей (блоков)
- •7.1.3. Раздел Sinks (приемники)
- •7.1.4. Раздел Sources (Источники)
- •7.1.5. Раздел Сontinuous
- •7.1.6. Раздел Discrete
- •7.1.7. Раздел Math
- •7.1.8. Раздел Functions & Tables
- •7.1.9. Раздел Nonlinear
- •7.1.10. Раздел Signals & Systems
- •7.2. Построение блок-схем
- •7.2.1. Выделение объектов
- •7.2.2. Оперирование с блоками
- •7.2.3. Проведение соединительных линий
- •7.2.4. Проставление меток сигналов и комментариев
- •7.2.5. Создание подсистем
- •7.2.6. Запись и распечатка блок-схемы S-модели
- •7.3. Примеры моделирования
- •7.3.1. Моделирование поведения физического маятника
- •7.3.2. Моделирование поведения гироскопа в кардановом подвесе
- •7.4. Объединение S-моделей с программами MatLAB
- •7.4.2. Функции пересечения нуля
- •7.4.5. Образование S-блоков путем использования программ MatLab. S-функции
- •7.4.6. Пример создания S-функции
- •7.5.1. Создание библиотеки
- •7.5.2. Маскировка блоков
- •7.5.3. Моделирование процесса ориентации космического аппарата
- •Послесловие
- •Предметный указатель
- •Указатель операторов, команд, функций и функциональных блоков MatLAB
7.1. Общая характеристика пакета SimuLink |
321 |
|
|
|
|
Блок имеет 4 параметры настраивания (см. рис. 7.16):
Variable name - имя, под которым данные сохраняются в рабочем пространстве (по умолчанию - simout);
Maximum number of rows - максимально допустимое количество строк, т. е. значений данных, которые записываются; по умолчанию она задается константой inf, т. е. данные регистрируются на всем интервале моделирования;
Decimation и Sample Time имеют то самое содержание, которое и раньше; Окошко Save format (Формат записи) позволяет выбрать один из трех
вариантов записи данных: Matrix (Матрица), Structure (Структура) и Structure with time (Структура с временем).
7.1.4. Раздел Sources (Источники)
После выбора раздела Sources библиотеки SimuLink на экране появится дополнительное окно, показанное на рис. 7.17.
Рис. 7.17
Как видим, в этом разделе библиотеки в качестве источников сигналов предусмотрены такие блоки:
Соnstant - формирует постоянную величину (скаляр, вектор или матрицу);
7.1. Общая характеристика пакета SimuLink |
322 |
|
|
|
|
Signal Generator - создает (генерирует) непрерывный колебательный сигнал одной из волновых форм на выбор - синусоидальный, прямоугольный, треугольный или случайный;
Step - генерирует сигнал в виде одиночной ступеньки (ступенчатый сигнал) с заданными параметрами (начала ступеньки и ее высоты);
Ramp - создает линейно восходящий (или нисходящий) сигнал;
Sine Wave - генерирует гармонический сигнал;
Repeating Sequence - генерирует периодическую последовательность;
Discrete Pulse Generator - генератор дискретных импульсных сигналов;
Pulse Generator - генератор непрерывных прямоугольных импульсов;
Chirp Signal - генератор гармонических колебаний с частотой, которая линейно изменяется с течением времени;
Clock (Часы) - источник непрерывного сигнала, пропорционального модельному времени;
Digital clock (Цифровые часы) - формирует дискретный сигнал, пропорциональный времени;
Random Number - источник дискретного сигнала, значения которого являются случайной величиной, распределенной по нормальному (гауссовому) закону;
Uniform Random Number - источник дискретного сигнала, значения которого являются случайной равномерно распределенной величиной;
Band-Limited White Noise - генератор белого шума с ограниченной полосой частот.
Оставшиеся два блока из раздела Sources обеспечивают использование в модели данных, полученных раньше. Первый из них - From File - предназначен для введения в S-модель данных, которые сохраняются на диске в МАТ-файле. Второй - From Workspace - обеспечивает введения в модель данных непосредственно из рабочего простора MatLAB. Напомним, что структура данных в МАТ-файле является многомерным массивом с переменным количеством строк, которое определяется количеством регистрируемых переменных. Элементы первой строки содержат последовательные значения модельного времени, элементы в других строках - значения переменных, соответствующие отдельным моментам времени.
Как и другие блоки библиотеки SimuLink, блоки-источники могут настраиваться пользователем, за исключением блока Clock, работа которого основана на использовании аппаратного таймера компьютера.
Блок Constant
Блок предназначен для генерирования процессов, который являются неизменными во времени, т. е. имеют постоянное значение. Он имеет один параметр настраивания (см. рис. 7.13) - Constant value, который может быть введен и как вектор-строка из нескольких элементов по общим правилам MatLAB. Пример его использования приведен ранее при рассмотрении блока Display.
7.1. Общая характеристика пакета SimuLink |
323 |
|
|
|
|
Блок Signal Generator
Окно настраивания этого блока выглядит так, как показано на рис. 7.18. Как видно, в параметры настраивания входят:
Wave form - форма волны - позволяет выбрать одну из таких форм периодического процесса
1)Sine - синусоидальные волны;
2)Square - прямоугольные волны;
3)Sawtooth - треугольные волны;
4)Random - случайные колебания;
Рис. 7.18
Amplitude - определяет значения амплитуды колебаний, которые генерируются;
Frequency - задает частоту колебаний;
Units - позволяет выбрать одну из единиц измерения частоты с помощью нисходящего меню - Hertz (в Герцах) и Rad/Sec (в радианах в секунду).
Рис. 7.19
7.1. Общая характеристика пакета SimuLink |
324 |
|
|
|
|
На рис. 7.19 показана простейшая блок-схема S-модели, которая состоит из блока Signal Generator и блока отображения XY Graph. Содержимое блока отображения после проведения моделирования при таких параметрах настраивания: вид колебаний - Sine; амплитуда - 1; частота - 1 радиан/сек отображено на рис. 7.10.
На рис. 7.20.. 7.22 представлены результаты, отображаемые в окне XYGraph в случае выбора соответственно прямоугольных, треугольных и случайных колебаний при тех же значениях остальных параметров настраивания.
Рис. 7. 20
Рис. 7. 21
7.1. Общая характеристика пакета SimuLink |
325 |
|
|
|
|
Рис. 7.22
Блок Step
Блок обеспечивает формирование сигнала в форме ступеньки (или, как говорят, - ступенчатого сигнала).
Рис. 7. 23
Блок имеет 3 параметра настраивания (рис. 7.23):
Step time - время начала ступеньки (момент скачка сигнала) - определяет момент времени, в который происходит скачкообразное изменение величины сигнала; по умолчанию принимается равным 1;
7.1. Общая характеристика пакета SimuLink |
326 |
|
|
|
|
Initial value - начальное значение - задает уровень сигнала до скачка; значение по умолчанию - 0;
Final value - конечное значение - задает уровень сигнала после скачка;
значение его по умолчанию - 1.
Рассмотрим пример использования блока. Перетянем в окно блок-схемы из окна библиотеки источников блоки Step и Сlock, а из окна библиотеки приемников - блок XY Graph и соединим их (рис. 7.24)
Рис. 7.24
Установим такие параметры настраивания блока: Step time - 3,5, Initial value - (-2), Final value – 4.5. После активизации моделирования (Simulation/Start) получим в окне Scope картину, представленную на рис. 7.25.
Рис. 7.25
Блок Ramp
Блок формирует непрерывно нарастающий сигнал и имеет такие параметры настраивания (рис. 7.26):
Slope - значение скорости нарастания сигнала;
7.1. Общая характеристика пакета SimuLink |
327 |
|
|
|
|
Start time - время начала нарастания сигнала;
Initial output - значение сигнала до момента начала его нарастания.
Рис. 7. 26
Рис. 7.27
На рис. 7.27 приведен пример результата применения блока Ramp при таких значениях параметров: Slope = 1; Start time = 3; Initial output = -3.
Блок Sine Wave
Блок Sine Wave имеет такие настройки (рис. 7.28):
Amplitude - определяет амплитуду синусоидального сигнала;
Frequensy (rad/sec) - задает частоту колебаний в радианах в секунду;
Phase (rad) - позволяет установить начальную фазу в радианах;
Sample time - определяет величину дискрета времени задания значений синусоидального сигнала.
7.1. Общая характеристика пакета SimuLink |
328 |
|
|
|
|
Результат применения блока (при значениях параметров настраивания: амплитуда - 4,5; частота - 1 радиан в секунду и начальная фаза - π./2 радиан) показан на рис. 7.29.
Рис. 7. 28
Рис. 7.29
Отличия этого блока от генератора синусоидальных колебаний в блоке Signal Generator состоят в следующем:
1)в анализируемом блоке можно устанавливать произвольную начальную фазу;
2)в нем нельзя задать частоту в Герцах.
Блок Repeating Sequence
Этот блок содержит две настройки (рис. 7.30):
7.1. Общая характеристика пакета SimuLink |
329 |
|
|
|
|
Time values - вектор значений времени, в которые заданы значения исходной величины;
Output values - вектор значений исходной величины, которые она должна принять в указанные в первом векторе соответствующие моменты времени.
Блок обеспечивает генерирование колебаний с периодом, равным различию между последним значением вектора Time values и значением первого его элемента. Форма волны внутри периода является ломаной, проходящей через точки с указанными в векторах Time values и Output values координатами.
В качестве примера на рис. 7.31 приведено изображение процесса, сгенерированного блоком Repeating Sequence при параметрах настраивания, указанных на рис. 7.30.
Рис. 7. 30
Рис. 7.31
Блок Diskret Pulse Generator
Блок генерирует последовательности прямоугольных импульсов. В число настраиваемых параметров этого блока входят (рис. 7.32):
амплитуда сигнала (Amplitude), т. е. высота прямоугольного импульса;
7.1. Общая характеристика пакета SimuLink |
330 |
|
|
|
|
размер периода сигнала (Period), который отсчитывается в целых числах - количестве дискретов времени;
ширина импульса (Pulse width), тоже в дискретах времени;
размер задержки импульса относительно t=0 (Phase delay) - в дискретах времени;
размер дискрета времени (Sample time).
Рис. 7. 32
Рис. 7.33
Установление параметров этого блока целесообразно начинать с дискрета времени. Размер шага можно указать как в форме константы, так и в форме вычисляемого выражения.
7.1. Общая характеристика пакета SimuLink |
331 |
|
|
|
|
Пример применения этого блока при значениях параметров, указанных на рис. 7.32, приведен на рис. 7.33.
Блок Pulse Generator
Блок Pulse Generator осуществляет практически ту же функцию, что и блок Disсret Pulse Generator. Но параметры импульсов задаются иначе (рис. 7.34).
Здесь требуют задания такие параметры:
Period - период прохождения импульсов;
Duty cycle (% of period) - продолжительность прямоугольного импульса (в процентах от периода);
Amplitude - амплитуда (высота) импульса;
Start time - начальный момент времени первого из импульсов.
Рис. 7.34
Результат применения блока при значениях параметров, указанных на рис. 7.34, можно увидеть на рис. 7.35.
7.1. Общая характеристика пакета SimuLink |
332 |
|
|
|
|
Рис. 7.35
Блок Chirp Signal
Этот блок генерирует синусоидальный сигнал единичной амплитуды переменной частоты, причем значения частоты колебаний изменяется с течением времени по линейному закону. Соответственно этому в нем предусмотрены такие параметры настраивания (рис. 7.36):
Initial frequency (Hz) - начальное значение (при t=0) частоты в герцах;
Target time (secs) - второй (положительная величина) момент времени (в секундах);
Frequency at target time (Hz) - значение частоты в этот второй момент времени.
Рис. 7.37 демонстрирует результат использования блока при параметрах, указанных на рис. 7.36.
Рис. 7.36
7.1. Общая характеристика пакета SimuLink |
333 |
|
|
|
|
Рис. 7.37
7.1. Общая характеристика пакета Simulink |
333 |
|
|
|
|
Блок Random Number
Блок Random Number обеспечивает формирование сигналов, значения которых в отдельные моменты времени являются случайной величиной, распределенной по нормальному (гауссовому) закону с заданными параметрами.
Блок имеет четыре параметра настраивания (рис. 7.38). Первые два - Mean и Variance - являются средним и среднеквадратичным отклонением от этого среднего, третий - Initial seed - задает начальное значение базы для инициализации генератора последовательности случайных чисел. При фиксированном значении этого параметра генератор всегда вырабатывает одну и ту же последовательность. Четвертый параметр (Sample time), как и ранее, задает величину дискрета времени. Рис. 7.39 показывает результат использования блока при значениях параметров, приведенных на рис. 7.38.
Рис. 7.38
Рис. 7.39
7.1. Общая характеристика пакета Simulink |
334 |
|
|
|
|
Блок Uniform Random Number
Этот блок формирует сигналы, значения которых в отдельные моменты времени являются случайной величиной, равномерно распределенной в заданном интервале. В число параметров настраивания блока входят (рис. 7.40):
Рис. 7.40
Minimum - нижний предел случайной величины;
Maximum - верхний предел;
Initial seed - начальное значение базы генератора случайных чисел;
Sample time - дискрет времени.
Рис. 7.41
Пример процесса, сгенерированного блоком по параметрам, указанным на рис. 7.40, приведен на рис. 7.41
7.1. Общая характеристика пакета Simulink |
335 |
|
|
|
|
Блок Band-Limited White Noise
Этот блок формирует процесс в виде частотно-ограниченного белого шума. Параметры настраивания у него такие (рис. 7.42):
Noise power - значения интенсивности белого шума;
Sample time - значения дискрета времени (определяет верхнее значение частоты процесса);
Seed - начальное значение базы генератора случайной величины.
Рис. 7.42
Ниже (рис. 7.43) приведен пример реализации процесса с помощью блока Band-Limited White Noise при параметрах, указанных на рис. 7.42.
Рис. 7.43