- •Начала программирования в среде 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 |
340 |
|
|
|
|
Sample time, который задает шаг интегрирования в единицах шагов модельного времени.
7.1.7.Раздел Math
Вэтом разделе содержатся блоки, которые реализуют некоторые встроенные математические функции системы MatLAB (рис. 7.47):
Рис. 7.47
- Sum, который осуществляет суммирование сигналов, поступающих в него;
-Product, выполняющий умножение или деление входных сигналов;
-Dot Product - блок, осуществляющий перемножение двух входных величин, если они являются скалярами, или определяещий сумму поэлементных произведений элементов двух входных векторов (одинаковой длины);
-Gain - линейное усилительное звено;
-Slider Gain - звено интерактивного измения коэффициента усиления;
7.1. Общая характеристика пакета Simulink |
341 |
|
|
|
|
-Matrix Gain - матричное усилительное звено для многомерной системы;
-шесть блоков математических стандартных операций (MathFunction,
TrigonometriсFunction, MinMax, Abs, Sign и Rounding function);
-три блока логических операций (Combinatorial Logic, LogicalOperator и Relation Operator );
-четыре блока трансформирования комплексных сигналов в действительные и наоборот (Complex to Magnitude-Angle, Complex to
Real-Imag, Magnitude-Angle to Complex и Real-Imag to Complex); - AlgebraicConstraint – блок решения алгебраических уравнений. Блок Sum может использоваться в двух режимах:
суммирования входных сигналов (в том числе с разными знаками);
суммирования элементов вектора, который поступает на вход блока.
Рис. 7.48
Для управления режимами работы блока используется два параметра настраивания – Icon Shape (Форма изображения) и List of signs (Список знаков) (рис. 7.48). Первый может принимать два значения – round (круглый) и rectangular (прямоугольный). Значения второго параметра могут задаваться одним из трех способов:
в виде последовательности знаков "+" или "-"; при этом количество знаков определяет количество входов блока, а самый знак - полярность соответствующего входного сигнала;
в виде целой положительной и больше 1 константы; значения этой константы определяет количество входов блока, а все входы считаются положительными;
в виде символа "1", который указывает, что блок используется в втором режиме
7.1. Общая характеристика пакета Simulink |
342 |
|
|
|
|
Рис. 7.49
Блок Product выполняет умножение или деление нескольких входных сигналов. В параметры настраивания входят количество входов блока и вид выполняемой операции. Окно настраивания блока содержит лишь один параметр (рис. 7.49) – Number of inputs (количество входов). Если этот параметр (а, значит, количество входов блока) – положительное число, большее 1, то все входные величины перемножаются. Если в качестве значения параметра настраивания блока ввести "1", будет вычисляться произведение элементов входного вектора. При этом на изображении блока выводится символ Р. В случае, когда результат выполнения должен содержать деления на некоторые входные величины, в окошко Number of inputs следует вводить последовательность символов '*' или '/' по числу входов блока в соответствии с тем умножается или делится результат на соответствующую входную величину. Задание значений этих параметров аналогично настраиванию блока Sum из библиотеки Linear.
Блок DotProduct имеет лишь два входа и не имеет параметров настраивания. Его входные сигналы должны быть векторами одинаковой длины. Выходная величина блока в каждый момент времени равна сумме произведений соответствующих элементов этих двух векторов.
Рис. 7.50
Блок Gain осуществляет умножение входного сигнала на постоянную величину, значения которой задается в окне настраивания (рис. 7.50). В случае,
7.1. Общая характеристика пакета Simulink |
343 |
|
|
|
|
когда входной сигнал является вектором длиной N элементов, коэффициент усиления должен быть вектором той же длины.
Блок Slider Gain является одним из элементов взаимодействия пользователя с моделью. Он позволяет в удобной диалоговой форме изменять значение некоторого параметра в процессе моделирования. Блок становится активным после того, как будет перемещен в окно блок-схемы создаваемой модели. Чтобы отворить окно с "ползунковым" регулятором (рис. 7.51), необходимо дважды щелкнуть мышью на изображении блока.
Рис. 7.51
Окно Slider Gain имеет три поля ввода информации:
для указания нижней границы изменения параметра (Low);
для указания верхней границы изменения параметра (High);
для указания текущего значения.
Текущее значение должно располагаться внутри диапазона [Low, High]. Тем не менее при выборе нового диапазона необходимо сначала указать новое значение параметра, а потом изменить границы диапазона.
Блок Matrix Gain осуществляет перемножение входного вектора на постоянную матрицу, указанную в окне настраивания (рис. 7.52). При этом количество строк матрицы усиления должно совпадать с длиной входного вектора. На выходе одержується векторный сигнал длиной, которая равна количеству столбцов матрицы усиления.
Рис. 7.52
Ниже приводятся особенности той части блоков, которая реализует математические функции.
Блок Abs формирует абсолютное значение входного сигнала. Он не имеет параметров настраивания. Блок Trigonometric Function обеспечивает
7.1. Общая характеристика пакета Simulink |
344 |
|
|
|
|
преобразования входного сигнала с помощью одной из таких функций MatLAB: sin, cos, tan, asin, acos, atan, atan2, sinh, cosh, tanh. Избрание необходимой функции осуществляется в окне настраивания блока с помощью ниспадающего меню. Блок Math Function позволяет выбрать для преобразования входного сигнала элементарные не тригонометрические и не гиперболические функции,
такие как exp, log, 10^u, log10, magnitude^2, square, sqrt, pow, reciprocal, hypot, rem, mod. Нужная функция выбирается с помощью выпадающего меню в окне настраивания. Блок Rounding Function содержит разнообразные функции округления, предусмотренные в MatLAB. Он осуществляет округление значений входного сигнала. Выбор конкретного метода округления осуществляется также с помощью выпадающего меню в окне настраивания. Блок MinMax осуществляет поиск минимального или максимального элемента входного вектора. Если входом является скалярная величина, то выходная величина совпадает с входной. Если входов несколько, ищется минимум или максимум среди входов. В число настроек входит выбор метода и количество входов блока. Блок Sign реализует нелинейность типа сигнум-функції. В нем нет параметров настраивания. Блок формирует исходный сигнал, который принимает только три возможных
значения: "+1" - в случае, когда входной сигнал положителен, |
"-1" - |
при |
отрицательном входном сигнале и "0" при входном сигнале, равном нулю. |
|
|
Для указанных выше блоков имя выбранной функции |
выводится |
на |
графическом изображении блока.
Следующую группу образуют блоки, которые обеспечивают логическую обработку входного сигнала. Общим для всех их является то, что выходная величина в них является булевой, то есть может достигать лишь двух значений: "1" ("истина") или "0" ("ложь"). Во многих из них булевыми должны быть и все входные величины.
Блок Relational Operator реализует операции отношения между двумя входными сигналами >, <, ≤, ≥, ==, ~= (соответственно: больше,
меньше, меньше или равно, больше или равно, тождественно равно, не равно). Конкретная операция выбирается при настраивании параметров блока с помощью выпадающего меню. Знак операции выводится на изображении блока.
Блок Logical Operator содержит набор основных логических операций. Входные величины должны быть булевими. Выбор необходимой логической операции осуществляется в окне настраивания блока с помощью выпадающего меню. Вторым параметром настраивания является количество входных величин (портов) блока (Number of input ports), то есть количество аргументов логической операции.
Блок Combinatorial Logic обеспечивает преобразование входных булевых величин в выходную в соответствия с заданной таблицей истинности. Блок имеет единственный параметр настраивания - Truth table (таблица истинности).
Четыре следующих блока осуществляют преобразование комплексного входного сигнала в один или два действительных выходных сигнала, которые являются модулем, аргументом, действительной или мнимой частью входного сигнала (блоки