Вы находитесь на странице: 1из 12

1

Лекция 1. Знакомство с системой MATLAB


1. Система MATLAB.
2. Состав MATLAB.
3. Средства моделирования в MATLAB.
4. Основные преимущества MATLAB.
5. Интерфейс MATLAB.
6. Система помощи MATLAB.
7. Режим прямых вычислений. Основные объекты языка MATLAB.
8. Рабочая область памяти и сохранение результатов текущей сессии.
1.1. Система MATLAB
Система (пакет программ) MATLAB (или коротко MATLAB) — это интерактивная
система, предназначенная для компьютерного моделирования практически в любой
области науки и техники. Она была создана в США компанией The MathWorks, Inc.,
и впервые представлена в начале 80-х годов.
В настоящее время MATLAB — общепризнанный универсальный мировой стандарт
в области компьютерных технологий.
Аббревиатура MATLAB расшифровывается как matrix laboratory, что определяет
основополагающую специфику данной системы: по умолчанию все переменные
воспринимаются как матрицы.
В следующем семестре будет изучаться дисциплина "Цифровая обработка сигналов"
(ЦОС) — обработка цифровых сигналов средствами цифровой вычислительной
техники. Технология ЦОС предполагает моделирование методов и алгоритмов в
MATLAB и их последующую реализацию на цифровом устройстве (ЦПОС, ПЛИС)
также средствами MATLAB.
1.2. Состав MATLAB
Мощный программный комплекс MATLAB состоит из трех компонентов:
□ MATLAB:
□ Simulink;
□ Toolbox.
Компонент MATLAB представляет собой ядро системы — ядро MATLAB.
Компонент Simulink является подсистемой (расширением) MATLAB,
предназначенной для блочного моделирования. Этот компонент часто воспринимают
как самостоятельную систему и называют ядром Simulink. Слово "simulink"
образовано из комбинации первых четырех букв слова "simulation" (моделирование)
и "link" (соединение).
Компоненты Toolbox (Набор инструментов) — это пакеты расширения MATLAB и
Simulink, сгруппированные по специализированным приложениям.
MATLAB включает в себя около 40 специализированных Toolbox. В табл.1
представлены некоторые из них.

Таблица 1. Основные пакеты расширения MATLAB

Название пакета Назначение пакета


Communications Toolbox Системы связи
Control System Toolbox Системы управления
Curve Fitting Toolbox Приближение кривых и данных
Filter Design Toolbox Проектирование цифровых фильтров
Image Processing Toolbox Обработка изображений
Neural Network Toolbox Нейронные сети
Optimization Toolbox Методы оптимизации
Signal Processing Toolbox Обработка сигналов
2

Spline Toolbox Сплайн-функции


Statistics Toolbox Методы математической статистики
Symbolic Math Toolbox Обработка символьных данных
System Identification Toolbox Методы идентификации
Wavelet Toolbox Вейвлет-функции

1.3. Средства моделирования MATLAB


Для моделирования объектов и/или процессов в MATLAB предусмотрены
следующие средства:
1. Программные средства.
Моделирование программными средствами, под которыми понимают средства
алгоритмического языка MATLAB (или коротко языка MATLAB).
На рис. 1 приведен пример программы на языке MATLAB.

Рис.1. Пример программы на языке MATLAB


Программные средства универсальны, и остальные средства разработаны на их
основе.
2. Стандартные программы GUI (Graphic User Interface — Графический интерфейс
пользователя).
Моделирование средствами GUI выполняется в режиме интерактивного общения
в среде конкретного GUI.
Средства GUI позволяют исключить использование языка MATLAB в явном виде,
что существенно упрощает технологию моделирования.
3

На рис. 2 приведен пример GUI для синтеза и анализа цифровых фильтров.

Рис.2. Пример GUI для синтеза и анализа цифровых фильтров


3. Средства Simulink.
Моделирование в Simulink, выполняется средствами блочного моделирования.
Средства Simulink также позволяют исключить использование языка MATLAB в
явном виде, что существенно упрощает технологию моделирования.
Технология моделирования в Simulink заключается в построении модели из
стандартных блоков, включая блоки средств наблюдения за поведением модели,
например, осциллограф.
На рис. 3 приведен пример Simulink-модели и результаты визуального
наблюдения сигналов с помощью осциллографов.
4

Рис. 3. Пример Simulink-модели


1.4. Основные преимущества MATLAB
Широкое распространение системы MATLAB обусловлено ее следующими
основными преимуществами перед другими пакетами программ:
1. алгоритмическим языком "сверхвысокого" уровня за счет матричной обработки
данных;
2. колоссальной библиотекой стандартных функций с возможностью ее
расширения функциями пользователя;
3. огромным разнообразием графических средств;
4. широким набором программных средств общего (ядро MATLAB) и
специального назначения (пакеты расширения Toolbox);
5. наличием разнообразных средств GUI;
6. широким набором средств Simulink общего (ядро Simulink) и специального
назначения (пакеты расширения Toolbox).
7. наличием средств для программной или аппаратной реализации Simulink-модели
на базе конкретного цифрового устройства.
В качестве альтернативы MATLAB часто называют другой общепризнанный
мировой стандарт в области компьютерных технологий — среду графического
программирования LabVIEW.
Действительно, широкий круг задач по моделированию ЦОС можно решать и в
MATLAB, и в LabVIEW. Однако в вопросе о предпочтении, в первую очередь,
необходимо учитывать специфику данных технологий.
"Виртуальная лаборатория" LabVIEW ориентирована на разработку аппаратуры и
обеспечивает сопряжение "железа" (плат и модулей) с программной средой. Это
позволяет тестировать программную имитацию системы с помощью виртуальных
приборов на реальных сигналах.
"Матричная лаборатория" MATLAB, в первую очередь, ориентирована на создание
программных продуктов на основе математических моделей и содержит для этого
существенно более мощные средства, чем LabVIEW.
Поэтому технологии компьютерного моделирования в MATLAB и LabVIEW следует
рассматривать, скорее, как дополняющие друг друга, а не конкурирующие.
1.5. Интерфейс MATLAB
5

По завершении установки MATLAB на рабочем столе автоматически создается


ярлык MATLAB. Для запуска MATLAB достаточно щелкнуть на этом ярлыке.
После появления фирменной заставки автоматически открывается окно MATLAB.
Интерфейс MATLAB образуют следующие окна (рис. 1.4):
• Command Window (Командное окно) — основное окно интерактивной системы
MATLAB с активизированной командной строкой
>>
• Current Folder (Текущая папка) — в этом окне выводится содержимое папки,
имя которой отображается в раскрывающемся списке Current Folder на панели
инструментов окна MATLAB;
В версиях до 2010 года текущей папкой предназначенной для хранения файлов и
папок пользователя, была папка со стандартным именем work. В более поздних
версиях это папка MATLAB
Внутри этих папок создаются собственные папки пользователя.
• Workspace (Рабочая область памяти) — в этом окне выводится список текущих
переменных, сохраняемых в рабочей области памяти Workspace, о которой
пойдет речь далее;
• Command History (История команд) — в этом окне выводится построчный
список объектов языка MATLAB, вводимых в ходе текущей и предшествующих
сессий.
Текущей сессией называется сеанс работы в MATLAB до выхода из MATLAB.
Пользователь может произвольно менять состав активных окон с помощью команд
пункта меню Desktop (Стол). Восстановление исходного окна MATLAB
осуществляется по команде Desktop | Desktop Layout | Default.

Рис. 4. Окно MATLAB


6

1.6. Система помощи MATLAB


Система помощи MATLAB представляет собой совокупность следующих средств:
1. электронные справочные системы:
• встроенная справочная система — наиболее краткая, формируется
автоматически при установке системы MATLAB;
• справочная система в формате HTML (Hyper Text Markup Language —
язык гипертекстовой маркировки) — более полная, автономна по
отношению к системе MATLAB, содержится на отдельном CD-диске;
• справочная система в формате PDF (Portable Document Format — формат
переносного документа) — наиболее полная, автономна по отношению к
системе MATLAB, доступна на сайте www.mathworks.com.
2. демонстрационные примеры (Demos) — автономны по отношению к системе
MATLAB, содержатся в справочной системе в формате HTML.
Обращение к встроенной справочной системе выполняется по команде help в окне
Command Window, рядом с которой указывается имя объекта. Например, справка о
встроенной функции синус:
>> help sin
SIN Sine of argument in radians.
SIN(X) is the sine of the elements of X.:
Обращение к справочной система в формате HTML и демонстрационным
примерам выполняется по команде меню Help | Product Help:
Открывается окно Help с двумя вкладками на левой панели (рис. 5):
□ Contents (Содержание) — на этой вкладке выводится дерево, узлами которого
являются разделы справочной системы MATLAB. На правой панели выводится
справка по выделенному разделу (рис. 5);

Рис. 5. Окно Help с открытой вкладкой Contents


7

□ Search Results (Результаты поиска) — на этой вкладке можно получить справку


по ключевому слову (фразе), которое набирается на левой панели в верхнем поле
ввода, после чего нужно нажать клавишу <Enter>. На этой вкладке отобразится
список разделов, где набранное слово (фраза) встречается в справочной системе
MATLAB. На правой панели выводится справка по выделенному разделу
(рис. 6).

Рис. 6. Окно Help с открытой вкладкой Окно Help с открытой вкладкой Search
Results
1.7. Режим прямых вычислений. Основные объекты языка
MATLAB
Программные средства MATLAB используются для работы в двух режимах:
□ режиме прямых вычислений;
□ режиме программирования.
Режим прямых вычислений (командный режим) предназначен для вычислений,
которые выполняются без составления программы.
Режим программирования предназначен для создания программ пользователя.
Сначала рассмотрим правила работы в режиме прямых вычислений.
Объекты языка MATLAB вводятся построчно в командной строке окна Command
Window с соблюдением следующих правил:
□ символ ";" (точка с запятой) в конце строки блокирует автоматический вывод
результата;
□ символ "..." (многоточие) в конце строки является признаком продолжения
предыдущей строки;
□ символ "%" (процент) в начале строки соответствует комментарию.
К базовым объектам языка MATLAB относятся:
• команды;
8

• операторы;
• константы;
• переменные;
• функции;
• выражения.
Командой — это объект языка MATLAB со стандартным именем, предназначенный
для взаимодействия с системой MATLAB и имеющий формат:
<команда> <содержательная часть>
В конце команды символ ";" не ставится, а <содержательная часть> может
отсутствовать. В табл. 2 приводятся примеры простейших команд.

Таблица 2. Примеры команд

Команда Назначение
сlc Очистка окна Command Window
сlear Удаление объектов из Workspace (без содержательной части — очистка
Workspace)
help Справка по стандартному объекту MATLAB
format Установка формата вывода данных
load Загрузка файла с диска в Workspace
save Сохранение на диске объекта Workspace

Оператор — это объект языка MATLAB со стандартным именем, предназначенный


для разработки программ.
Операторы, как правило, предназначены для работы в режиме программирования,
хотя большинство из них также допустимо в режиме прямых вычислений.
Исключение — оператор присваивания, не имеющий стандартного имени и
предназначенный для работы в обоих режимах.
Различают две разновидности оператора присваивания:
• оператор явного присваивания с форматом:
<имя переменной> = <выражение>
• оператор неявного присваивания с форматом:
<выражение>
В этом случае значение выражения присваивается переменной со стандартным
именем ans.
В одной строке допускается размещать несколько операторов присваивания,
вводимых через запятую ',' с автоматическим выводом результатов, или точку с
запятой ';' – с блокированием вывода.
Константа — это объект языка MATLAB, имеющий в процессе вычислений
неизменное значение.
Различают следующие типы констант:
□ численные:
• целые;
• вещественные;
• комплексные;
□ логические;
□ символьные.
Ввод численных констант зависит от формы их представления:
9

□ обычной 1200; 5,7; –0,18 и т.п.;


□ алгебраической 12·102; 0,057·102; –1,8·10-1 и т.п.
Как и во всех алгоритмических языках в MATLAB целая часть от дробной отделяется
точкой.
Ввод числе, представленных в обычной форме:
>> 1200
ans =
1200
>> 5.7
ans =
5.7000
>> -0.8
ans =
-0.8000
Показательную форму представления числа в MATLAB называют формой E, т. к.
основание — число 10 — обозначается буквой e:
>> 12e2
ans =
1200
>> 0.057e2
ans =
5.7000
>> -1.8e-1
ans =
-0.1800
Комплексные константы ξ + jη вводятся в алгебраической форме. Мнимая единица
вводится как i или j, но выводится всегда как i:
>> 5+3.7i
ans =
5.0000 + 3.7000i
>> 5+3.7j
ans =
5.0000 + 3.7000i
Вещественная и/или мнимая части комплексного числа могут вводиться в форме E.
По умолчанию выводятся четыре значащих цифры после запятой. Изменить
количество значащих цифр можно с помощью команды format.
Логические константы — это константы, принимающие значения 1 (true — истина)
или 0 (false — ложь).
Символьные константы — это любые последовательности символов, заключенные в
апострофы:
>> 'Test'
ans =
Test
Переменная — это объект языка MATLAB, который в процессе вычислений может
менять свое значение.
Переменные представляются своими именами (идентификаторами).
Имя переменной составляется из последовательности латинских букв, цифр и
символа подчеркивания и начинается с буквы. В MATLAB прописные и строчные
буквы различаются.
Особенностью MATLAB является то, что любая переменная по умолчанию является
матрицей с нижней границей индексов, равной единице.
Представим алгебраическую запись матрицы A размером m×n (m строк, n столбцов):
10

 a11 a12 ... a1n 


a a22 ... a2 n 
A =  21
 ... ... ... ... 
 
 am1 am 2 ... amn 

Вектор-строка представляет собой матрицу A размером 1×n, вектор-столбец —

матрицу A размером m×1, а скаляр — матрицу A размером 1×1.


Матрица вводится построчно в квадратных скобках, элементы строки отделяются
пробелом (или запятой), а сами строки — точкой с запятой:
>> A = [1 2 3;5 6 7;8 9 7]
A =
1 2 3
5 6 7
8 9 7
Соответственно, элементы вектора-строки вводится через пробел (или запятую):
>> A = [1 4 5 7 8]
A =
1 4 5 7 8
а элементы вектора-столбца через точку с запятой:
>> A = [1;4;5]
A =
1
4
5
Скаляр можно вводить без квадратных скобок:
>> A = 5.8
A =
5.8000
Функции в MATLAB представлены двумя разновидностями:
• встроенные;
• внешние.
Встроенная функция (по умолчанию функция) — это объект языка MATLAB со
стандартным именем и аргументом (аргументами, следующими через запятую) в
круглых скобках:
>> x = 3.14; y = sin(x)
y =
0.0016
Внешняя функция — это объект языка MATLAB, создаваемый пользователем с
именем, присеваемым пользователем.
Выражение — это объект языка MATLAB, представляющий собой имеющую смысл
совокупность констант, переменных и функций, объединенных символами операций.
К основным типам выражений относятся арифметические и логические выражения.
Арифметическим выражением называют имеющую математический смысл
совокупность констант, переменных и функций, объединенных символами (или
функциями) арифметических операций:
>> x = 3.14; a = 5.8; b = 3.7;
>> y = sin(x)+cos(a+b)
y =
-0.9956
Приоритет операций в арифметических выражениях устанавливается с помощью
круглых скобок и старшинства операций внутри них, а именно:
11

• вычисление функций;
• возведение в степень;
• умножение и деление;
• сложение и вычитание.
Операции одного ранга выполняются слева направо.
Логическим выражением называют имеющую математический смысл совокупность
арифметических выражений, объединенных символами (или функциями) операций
отношения и логических операций.
Результатом вычисления логического выражения будет логическая константа 1
(true) или 0 (false).
Простейшим логическим выражением является отношение:
>> (a+b) > c
ans =
0
Приоритет операций в логических выражениях устанавливается с помощью круглых
скобок и старшинства операций внутри них, а именно:
• вычисление арифметических выражений;
• операции отношения;
• логические операции (И, ИЛИ и др.) слева направо.
Операции одного ранга выполняются слева направо.
1.8. Рабочая область памяти и сохранение результатов текущей
сессии
В MATLAB все переменные текущей сессии хранятся в рабочей области памяти,
называемой Workspace, и при выходе из MATLAB не сохраняются.
Для того чтобы воспользоваться переменными в следующих сессиях, их необходимо
сохранить на диске по команде:
save <имя файла> <список переменных>
где:
<имя файла> — имя файла с расширением mat — mat-файла;
<список переменных> — список сохраняемых переменных, указываемых через
пробел.
Созданные mat-файлы сохраняются в текущей папке. Например:
>> n = 1:100; x = sin(0.5*pi.*n); y = cos(0.5*pi.*n);
>> save sigx n x y
Значения переменных n, x, y будут сохранены в файле sigx.mat в текущей папке.
Обратная процедура — загрузка данных из mat-файла в Workspace — выполняется по
команде:
load <имя файла>
Например:
>> load sigx
Загружаемые переменные отобразятся в окне Workspace (рис.7).
12

Рис. 7. Окно Workspace со списком загруженных данных


Для систематизации сохраняемых файлов с различным назначением и расширением
удобно создавать собственные папки.