- •Начала программирования в среде 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.2. Построение блок-схем |
352 |
|
|
|
|
7.2. Построение блок-схем
Рассмотрим операции, которые позволяют образовывать блок-схемы сложных динамических систем.
7.2.1. Выделение объектов
При создании и редактировании S-модели нужно выполнять такие операции, как копирование или изъятие блоков и линий, для чего необходимо сначала выделить одних или несколько блоков и линий (объектов).
Чтобы выделить отдельный объект, нужно щелкнуть на нем один раз. При этом появляются маленькие кружки по углам выделенного блока или в нача-
ле и конце линии. При этом становятся невыделенными все другие перед этим выделенные объекты. Если щелкнуть по блоку второй раз, он становится невыделенным.
На рис. 7.58 справа приведен результат выделения блока Clock (сравните с рисунком слева).
Рис. 7.58
Выделение нескольких объектов по одному осуществляется таким обра-
зом:
нажать клавишу <Shift> и держать ее нажатой;
щелкнуть на каждом из объектов, которые выделяются, не отпуская клавишу <Shift>;
отпустить клавишу <Shift> .
Именно таким способом на рис. 7.59 выделены блоки Signal Generator,
Constant и XYGraph.
Выделить несколько объектов с помощью объединяющего бокса можно следующим чином:
определить стартовый угол прямоугольника-бокса, который будет содержать блоки, которые нужно выделить;
нажать клавишу мыши в этой точке;
7.2. Построение блок-схем |
353 |
|
|
|
|
не отпуская клавишу мыши, переставить ее курсор в противоположный угол бокса; при этом пунктирные линии должны окружить нужные блоки и линии;
отпустить клавишу мыши; блоки и линии внутри бокса будут выделены.
На рис. 7.60 показан результат выделения боксом блоков Signal Generator,
Constant и Clock.
Рис. 7.59 |
Рис. 7.60 |
Выделение всей модели, то есть всех объектов в активном окне блок-схемы, осуществляется одним из двух путей:
1)выбором команды Select All в меню Edit окна блок-схемы;
2)нажатием совокупности клавиша <Ctrl>+<A>.
7.2.2.Оперирование с блоками
Копирование блоков из одного окна в другое
В процессе создания и редактирования модели нужно копировать блоки из библиотеки или другой модели в текущую модель. Для этого достаточно:
открыть нужный раздел библиотеки или окно модели-прототипа;
перетянуть мышкой нужный блок в окно создаваемой (редактируемой)
модели.
Другой способ заключается в следующем:
1)выделить блок, который нужно скопировать;
2)выбрать команду Copy (Копировать) из меню Edit (Редактирование);
3)сделать активным окно, в которое нужно скопировать блок;
4)выбрать в нем команду Paste (Вставить) из меню Edit.
SimuLINK присваивает имя каждому из скопированных блоков. Первой скопированный блок будет иметь то же имя, что и блок в библиотеке. Каждый следующий блок того же типа будет иметь такое же имя с добавлением поряд-
кового номера. Пользователь может переименовать блок (см. далее).
7.2. Построение блок-схем |
354 |
|
|
|
|
При копировании блок получает те же значения настраиваемых параметров, что и блок-оригинал.
Перестановка блоков в модели
Чтобы переставить блок внутри модели с одного места в другое, достаточно перетянуть его в это положение с помощью мыши. SimuLINK автоматически перерисовывает линии связей других блоков с тем, который переставлен.
Переставить несколько блоков одновременно, включая соединительные линии можно так:
выделить блоки и линии (см. предыдущий раздел);
перетянуть мышью один из выделенных блоков на новое место; остальные блоки, сохраняя все относительные расстояния, займут новые
места.
На рис. 7.61 показан результат таких действий с блоками, выделенными на рис. 7. 60.
Рис. 7.61
Дублирование блоков внутри модели
Чтобы скопировать блоки внутри модели нужно сделать следующее:
1)нажать клавишу <Ctrl>;
2)не отпуская клавишу <Ctrl>, установить курсор на блок, что необхо-
димо скопировать и перетянуть его в новое положение.
Того же результата можно достичь, если просто перетянуть мышкой блок в новое положение, но с помощью правой клавиши мыши.
На рис. 7.62 представлен результат копирования блоков Scope и XYGraph.
Задание параметров блока
7.2. Построение блок-схем |
355 |
|
|
|
|
Функции, которые выполняет блок, зависят от значений параметров блока. Установления этих значений осуществляется в окне настраивания блока, которое вызовется, если дважды щелкнуть на изображении блока в блок-схеме.
Удаление блоков
Для удаления ненужных блоков из блок-схемы достаточно выделить эти блоки так, как было указано ранее, и нажать клавишу <Delete> или <Backspace>. Можно также использовать команду Clear или Cut из меню Edit окна блок-схемы. Если использована команда Cut, то в дальнейшем удаленные блоки можно скопировать обратно в модель, если воспользоваться командой Paste того же меню окна схемы.
Рис. 7.62
Отсоединение блока
Для отсоединения блока от соединяющих линий достаточно нажать кла-
вишу <Shift> на изображении блока, и, не отпуская ее, перетянуть блок в некоторое другое место.
Изменение угловой ориентации блока
В обычном изображении блоков сигнал проходит сквозь блок слева направо (по левую сторону размещены входы блока, а по правую сторону - выходы). Что-
бы изменить угловую ориентацию блока нужно:
выделить блок, который нужно повернуть;
избрать меню Format в окне блок-схемы;
в дополнительном меню, которое появится на экране, выбрать команду Flip Block - поворот блока на 180 градусов, или Rotate Block - поворот блока по часовой стрелке на 90 градусов.
На рис. 7.63 показан результат применения команды Rotate Block к блоку
Constant и команд Rotate Block и Flip Block - к блоку SignalGenerator.
Изменение размеров блока
Чтобы изменить размеры блока, нужно сделать следующее: