- •Начала программирования в среде 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.5. Создание библиотек S-блоков пользователя |
401 |
|
|
|
|
Рис. 1.113 |
Рис. 1.114 |
Рис. 7.115 |
Рис. 7.116 |
В итоге всего этого будем иметь новую библиотеку из трех новых собственных S-блоков. Запишем ее пока что как untitled1 (рис. 7.117).
Рис. 7.117
7.5.2. Маскировка блоков
7.5. Создание библиотек S-блоков пользователя |
402 |
|
|
|
|
Теперь рассмотрим процесс маскировки блока, т. е. образования окна настраивания блока, которое является более удобным механизмом оперирования с блоком.
Прежде всего, нужно выделить тот блок в библиотеке, для которого желательно образовать маску. Пусть это будет блок S_DUE новой библиотеки. Выделим его, щелкнув мышкой на его изображении.
Теперь нужно перейти в меню Edit окна библиотеки, в которой расположен выделенный блок. При этом возникнет перечень команд этого меню (рис. 7.118).
Рис. 7.118 |
Рис. 7.119 |
В этом перечне следует выбрать команду Mask S-Function. Тогда на экране возникнет окно редактора маски, представленное на рис. 7.119.
Примечание. При повторном вызове вашей библиотеки возможно, что эта команда не является активной. Тогда обратите внимание на предпоследнюю команду в перечне меню. Она должна быть активной и иметь такой вид Unlock Library. Нажмите на нее мышью. Вид перечня меню изменится, и команда Mask S-Function должна стать активной.
Окно Mask Editor (рис. 7.119) имеет три вкладки:
-Icon – для создания и редактирования изображений на пиктограмме блока;
-Initialization – для создания и редактирования диалоговой части (введения параметров) окна настраивания;
-Documentation – для оформления и редактирования текстовой части окна настраивания блока и справочной части маски.
Перейдем (с помощью мыши) к важнейшей из них – Initialization, - так как
именно она, собственно, образовывает маску, ее главную часть, - окно настраивания. Она имеет вид, приведенный на рис. 7.119.
7.5. Создание библиотек S-блоков пользователя |
403 |
|
|
|
|
Укажем, что из рассмотрения окон настраивания (масок) стандартных S- блоков вытекает, что эти окна имеют, в общем случае, три части:
-первая (верхняя) часть содержит справочную информацию о назначении блока, его главных параметрах и правилах, которыми следует пользоваться при введении параметров блока и его использовании;
-вторая (нижняя) часть по имени Parameters содержит окошка введения параметров блока и надписи над этими окошками, которые объясняют содержание этих параметров;
-третья, самая нижняя, стандартная часть содержит стандартные кнопки OK,
Cancel, Help и Apply.
Редактор маски предназначен для оформления первых двух частей окна на-
страивания, а также создания справки, которая вызовется при нажатии кнопки Help в этом окне.
Рассматривая вкладку Initialization, можно сделать вывод, что с ее помощью можно сконструировать вторую, важнейшую, часть маски, - ее диалоговую часть.
Сконструируем диалоговую часть маски избранного блока. В нем всего два параметра, значения которых нужно вводить – матрица моментов инерции тела J размером (3*3) и вектор UgSk0 начальных значений трех проекций угловой скорости тела. Поэтому нужно создать два окошка введения значений этих параметров и создать надписи на них.
Рис. 7.120 |
Рис. 7.121 |
Сначала в верхнем окошке введения Mask type вкладки введем имя блока
S_DUE.
Введение очередного окошка в маску осуществляется нажатием мышью кнопки Add по левую сторону от наибольшего окна вкладки, где отображаются результаты редактирования. При этом надпись <<end of parameter list>> в этом окне перемещается на одну строку вниз, освобождая верхнюю строку для отобра-
7.5. Создание библиотек S-блоков пользователя |
404 |
|
|
|
|
жения надписи над создаваемым окошком введения. Сама запись этой надписи осуществляется в окошке с надписью Prompt.
Запишем в это окошко такую строку
UgSk0 (вектор начальных значений угловой скорости).
Ниже в окошко с надписью Variable записывается имя идентификатора, содержащего этот параметр в правой части обращения к соответствующей S- функции (UgSk0).
Результат этих действий показан на рис. 1.120.
Снова нажмем кнопку Add и введем в окошко с надписью Prompt строку J (матрица моментов инерции), а в окошко Variable введем имя J. В результате окно редактора маски приобретет вид, представленный на рис. 1.121.
Теперь можно перейти к вкладке Documentation (рис. 7.122). В окно Mask type следует ввести имя блока. В окно Block description записывается информация, которую бы вы желали иметь в верхней (справочной) части окна настраивания блока, а в окне Block Help записывается дополнительная справочная информация, которая вызовется, если в окне маски нажать кнопку Help.
Рис.7.122 |
Рис. 7.123 |
Если теперь завершить редактирование маски нажатием кнопки <OK> в окне редактора маски, перейти в окно библиотеки и дважды щелкнуть на изображении блока S_DUE, то возникнет не окно черт. 7.111 (которое возникало, когда блок не был маскирован), а окно маски блока, изображенное на рис. 7.123.