- •Начала программирования в среде 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 |
308 |
|
|
|
|
7. Моделирование нелинейных систем
(пакет SimuLink)
7.1. Общая характеристика пакета SimuLink
Одной из наиболее привлекательных особенностей системы MatLAB является наличие в ее составе наиболее наглядного и эффективного средства составления программных моделей – пакета визуального программирования
SimuLink.
Пакет SimuLink позволяет осуществлять исследование (моделирование во времени) поведения динамических нелинейных систем, причем введение характеристик исследуемых систем осуществлять в диалоговом режиме, путем графической сборки схемы соединений элементарных (стандартных или пользова-
тельских) звеньев. В результате такого составления получается модель исследуемой системы, которую в дальнейшем будем называть S-моделью и которая сохраняется в файле с розширением .mdl. Такой процесс образования вычислительных программ принято называть визуальным программированием.
Создание моделей в пакете SimuLink основывается на использовании технологии Drag-and-Drop (Перетяни и оставь). В качестве "кирпичиков" при построении S-модели используются визуальные блоки (модули), которые сохраняются в библиотеках SimuLink. S-модель может иметь иерархическую структуру, т. е. состоять из моделей более низкого уровня, причем количество уровней иерархии практически не ограничено. На протяжении моделирования есть возможность наблюдать за процессами, которые происходят в системе. Для этого используются специальные блоки ("обзорные окна"), входящие в состав библиотек SimuLink. Состав библиотек SimuLink может быть пополнен пользователем за счет разработки собственных блоков.
7.1.1. Запуск SimuLink
Запуск SimuLink можно осуществить из командного окна MatLAB или избрав команду New Model ("Новая модель") в меню File, или нажав соответствующую пиктограмму в линейке инструментов.
При запуске SimuLink открываются два окна (рис. 3.3):
пустое окно untitled (окно, куда будет выводиться схемное представление моделируемой системы, новой S-модели, MDL-файла );
окно Simulink Library Browser, которое содержит перечень основных
библиотек SimuLink (рис. 7.1).
Начнем со знакомства с библиотеками SimuLink.
В окне Simulink Library Browser представлен перечень SimuLinkбиблиотек, входящих в состав установленной конфигурации системы MatLAB. Из них главной является библиотека SimuLink, расположенная в первой строке
7.1. Общая характеристика пакета SimuLink |
309 |
|
|
|
|
браузера. Другие библиотеки не являются обязательными. Они включаются в состав общей библиотеки в зависимости от вкусов пользователя.
Рис. 7.1
Вторым и более наглядным представлением библиотеки является окно Library: simulink3, которое вызовется, если в командном окне MatLAB набрать команду simulink3
Рис. 7.2
После нажатия клавиши <Enter> на экране возникает окно, представленное на рис. 7.2, в котором отображенные главные разделы лишь основной библиотеки, а именно библиотеки SimuLink.
7.1. Общая характеристика пакета SimuLink |
310 |
|
|
|
|
Окно блок-схемы модели (рис. 7.3) содержит строку меню, панель инструментов (версии MatLAB 5.2 и 5.3) и рабочее поле.
Рис. 7.3
Меню File (Файл) содержит команды работы с MDL-файлами, меню Edit (Редактирование) - команды редактирования блок-схемы, а меню View (Представление) (начиная из версии 5.2) - команды изменения внешнего вида окна. В меню Simulation (Моделирование) содержатся команды управления моделированием, а в меню Format (Формат) - команды редактирования формата (т. е. внешнего изображения) блоков схемы и блок-схемы в целом. Меню Tools (Инструменты) содержит некоторые дополнительные сервисные средства работы с Simulinkмоделью.
7.1.2. Библиотека модулей (блоков)
Библиотека блоков SimuLink является набором визуальных объектов, используя которые, можно, соединяя отдельные модули между собою линиями функциональных связей, составлять функциональную блок-схему любого устройства.
Библиотека SimuLink блоков (рис. 7.2) состоит из 9 разделов. Восемь из них являются главными и не могут изменяться пользователем:
Sources (Источники);
Sinks (Приемники);
Continuous (Непрерывные элементы);
Discrete (Дискретные элементы);
Math (Математические блоки);
Functions & Tables (Функции и таблицы)
Nonlinear (Нелинейные элементы);
Signals & Systems (Сигналы и системы).
Девятый раздел - Blocksets & Toolboxes (Наборы блоков и инструменты) -
содержит дополнительные блоки, включенные в рабочую конфигурацию пакета.
7.1. Общая характеристика пакета SimuLink |
311 |
|
|
|
|
Блоки, которые входят в раздел Sources (Источники), предназначены для формирования сигналов, которые обеспечивают роботу S-модели в целом или отдельных ее частей при моделировании. Все блоки-источники имеют по одному выходу и не имеют входов.
Блоки, собранные в разделе Sinks (Приемники), имеют только входы и не имеют выходов. Условно их можно разделить на 3 вида:
блоки, которые используются как обзорные окна при моделировании;
блоки, обеспечивающие сохранение промежуточных и исходных результатов моделирования;
блок управления моделированием, который позволяет перерывать моделирование при выполнении тех или других условий.
Раздел Continuous (непрерывные элементы) содержит блоки, которые можно условно поделить на три группы:
блоки общего назначения (интеграторы, дифференциатори);
блоки задержки сигнала;
блоки линейных стационарных звеньев.
Враздел Discrete (дискретные элементы) входят блоки, с помощью которых
вмодели может быть описано поведение дискретных систем. Различают два основных типа таких систем: системы с дискретным временем и системы с дискретными состояниями. Блоки, которые входят в раздел Discrete обеспечивают моделирование систем с дискретным временем.
Раздел Math (математические элементы) - наибольший по составу. Он содержит 20 блоков, которые можно разделить на несколько групп:
блоки, реализующие элементарные математические операции (умножения, суммирования разных математических объектов);
блоки, реализующие элементарные математические функции;блоки, обеспечивающие логическую обработку входных сигналов;
блоки, которые преобразуют комплекснозначный сигнал в два действительных и наоборот тем или другим способом;
блок, который реализует отыскание нуля алгебраической функции.
Вразделе Functions & Tables (функции и таблицы) сосредоточены блоки двух видов:
-блоки, формирующие выходный сигнал по входному в соответствии с заданной таблицей соответствий, осуществляя линейную интерполяцию по этим значениям;
-блоки, позволяющие пользователю создавать собственные блоки с произвольными функциями.
Раздел Nonlinear (нелинейные элементы) содержит 10 элементов, из
которых 7 блоков реализуют разного вида кусочно-линейные зависимости выхода от входа, а три осуществляют разного вида переключения сигнала.
Большинство блоков раздела Signals & Systems (сигналы и системы) предназначено для разработки сложных S-моделей, содержащих модели более