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

Лабораторная работа №1

Знакомство с пакетом MATLAB 7.2.


1. Структура пакета и принципы работы
MATLAB – система многоцелевого назначения, которая вышла на рынок
программных продуктов почти двадцать лет назад и с тех пор непрерывно
совершенствовалась фирмой MathWorks. Но первоначально ее основу
составляли алгоритмы решения систем линейных уравнений и задач на
собственные значения, откуда и произошло ее название «матричная
лаборатория» (MATrix LABoratory). Затем система была расширена за счет
специальных приложений, таких как Simulink (для моделирования ИС), Wavelet
(для применения вэйвлетов), Symbolic Math Toolbox (для проведения символьных
вычислений) и пр.
Среда MATLAB включает интерпретатор команд на языке высокого уровня,
графическую систему, пакеты расширений и реализована на языке C. Вся работа
организуется через командное окно (Command Window), которое появляется при
запуске программы matlab.exe. В процессе работы данные располагаются в
памяти (Workspace), для изображения кривых, поверхностей и других графиков
создаются графические окна. В командном окне в режиме диалога проводятся
вычисления. Пользователь вводит команды или запускает на выполнение файлы
с текстами на языке MATLAB. Интерпретатор обрабатывает введенное и выдает
результаты: числовые и строковые данные, предупреждения и сообщения об
ошибках. Строка ввода помечена знаком >>. В командном окне показываются
вводимые с клавиатуры числа, переменные, а также результаты вычислений.
Инструментальная панель командного окна позволяет выполнять
требуемые действия простым нажатием на соответствующую кнопку.
Большинство кнопок имеют стандартный вид и выполняют стандартные,
подобные другим программам действия. Следует обратить внимание на кнопку
Path Browser, которая позволяет прокладывать пути к разным директориям и
делать необходимую директорию текущей, а также на кнопку Workspace Browser,
позволяющую просматривать и редактировать переменные в рабочей области.
Принято работать с включенными помимо консоли окнами Command History и
Workspace; включить их можно, расставив галочки в раскрытом меню Desktop, а
упорядочить – проведя докировку (кривая стрелка около стандартного крестика
закрытия окна). Если вы нарушили порядок следования окон, то воспользуйтесь
командой Desktop/Desktop Layout/Default.
Все значения переменных, вычисленные в течение текущего сеанса
работы, сохраняются в специально зарезервированной области памяти
компьютера, называемой рабочим пространством системы MATLAB (Workspace).
После окончания сеанса работы с системой MATLAB все ранее вычисленные
переменные теряются. Чтобы сохранить в файле на диске компьютера
содержимое рабочего пространства системы MATLAB, нужно выполнить команду
меню File / Save Workspace As. По умолчанию расширение имени файла mat,
поэтому такие файлы принято называть МАТ-файлами. Для загрузки в память
компьютера ранее сохраненного на диске рабочего пространства нужно
выполнить команду меню: File / Load Workspace. Обе операции можно
реализовать в режиме командной строки в формате, например, save
<имя_файла> (без расширения .mat).
Команда help <имя_функции> позволяет получить на экране справку по
конкретной функции. Например, команда help eig позволяет получить
оперативную справку по функции eig - функции вычисления собственных
значений матрицы. С некоторыми возможностями системы можно познакомиться
с помощью команды demo. В окне MATLAB помимо собственно команд MATLAB
можно использовать системные команды DOS. Удобным свойством системы
является возможность использовать клавиши-стрелки ↑↓ для доступа к стеку с
ранее введенными командами. Командой clc можно стереть содержимое
командного окна, однако это не затронет содержимого рабочего пространства.
Когда исчезает необходимость в хранении ряда переменных в текущем сеансе
работы, их можно стереть из памяти компьютера командой clear или clear(имя1,
имя2, …). Первая команда удаляет из 6 памяти все переменные, а вторая –
переменные с именами имя1 и имя2. Командой who (или более сильной whos)
можно вывести список всех переменных, входящих в данный момент в рабочее
пространство системы. Для просмотра значения любой переменной из текущего
рабочего пространства системы достаточно набрать ее имя и нажать клавишу
Enter. Для целей программирования важно знать, что часть строки, следующая за
знаком %, является комментарием.
Легче всего протокол сессии получить с помощью команды diary. Вызов
команды diary <имя_файла> приведет к тому, что все появившееся далее на
экране (кроме графики) будет записано в файл <имя_файла>. Несколько
последовательно набранных команд могут быть сохранены в M-файле (т.е. *.m),
который с точки зрения операционных систем представляет аналог BAT-файла, а
сточки зрения программирования – зародыш будущей программы. Самый простой
путь для этого – в окне Command History выделить нужные команды, исполнить
команду Create M-file контекстного меню; при этом откроется редактор М-файлов.

Пример:

Для получения информации о магическом квадрате наберем в консоли


lookfor magic, получим, подождав некоторое время (для прерывания поиска
использовать DOS-овскую комбинацию Ctrl+C):

>> lookfor magic


MAGIC Magic square.
TWEBMAGIC Example standalone test of webmagic function.
WEBMAGIC Magic squares into HTML table.

Затем получим справку о команде MAGIC:

>> help magic


MAGIC Magic square.
MAGIC(N) is an N-by-N matrix constructed from the integers
1 through N^2 with equal row, column, and diagonal sums.
Produces valid magic squares for all N > 0 except N = 2.

Reference page in Help browser


doc magic

Щелкнем по ссылке, открыв окно помощи. Построим уже реальный


магический квадрат, набрав в консоли для N=10:

>> XMag=magic(10)
XMag =

92 99 1 8 15 67 74 51 58 40
98 80 7 14 16 73 55 57 64 41
4 81 88 20 22 54 56 63 70 47
85 87 19 21 3 60 62 69 71 28
86 93 25 2 9 61 68 75 52 34
17 24 76 83 90 42 49 26 33 65
23 5 82 89 91 48 30 32 39 66
79 6 13 95 97 29 31 38 45 72
10 12 94 96 78 35 37 44 46 53
11 18 100 77 84 36 43 50 27 59

Подсчитаем, сколько занимает в памяти переменная XMag:

>> whos XMag


Name Size Bytes Class
XMag 10x10 800 double array
Grand total is 100 elements using 800 bytes

10 100 Выберем закладку Workspace


9 90 («рабочее пространство»), в контекстном
8 80 меню исполним команду countour. При этом
7 70 появится специальное окно, где MATLAB
6 60 позволяет редактировать графические
5 50 объекты – в частности, добавим
4 40 расшифровку цветов (пиктограмма Insert
3 30 ColorBar). Обратим внимание, что наши
2 20 манипуляции не остались незамеченными
1 10
средой, и в консоли появилась команда:
1 2 3 4 5 6 7 8 9 10

>> contour (XMag, 'DisplayName', 'XMag',


'ZDataSource', 'XMag'); figure(gcf)

Очистим рабочую область командой clear, затем консоль – clc. При этом
история команд по-прежнему доступна; выделим шапку со списком сегодняшней
даты и запишем в M-файл, вызвав контекстное (с выделенным) меню.
lookfor MAGIC
help magic
XMag=magic(10)
whos XMag
contour (XMag, 'DisplayName', 'XMag', 'ZDataSource', 'XMag'); figure(gcf)
clear
clc
Задание:
1. Запустить MATLAB и установите текущий каталог. Получить справку по
команде diary. Начать запись дневника в файл.
2. В справочной системе, начав с консоли, получить информацию о
гиперболическом котангенсе, а также переводу угла из радианной меры в
градусную (и наоборот).
3. Вычислить sin(3.3a+b*cth(a+b)) для a=150, b=230 (предварительно проведя
расчет для нулевых a и b).
4. В справочной системе найти информацию о том, какую функцию следует
вызывать для вычисления ближайшего к Х целого. Предварительно следует
показать преподавателю таблицу простейших функций вещественного
переменного (перенеся ее в MS Word).
Примечание: необходимо иметь навык работы с HELP-системами (уходя от консоли, вызов, как
обычно, по клавише F1 или командой Help– MatLab Help главного меню). Существует две
стратегии поиска: по ключевым словам (индексу) или по дереву содержания (закладка Content
окна помощи). Вторая стратегия предпочтительнее, но ее использование требует некоторого
эвристического опыта. Разумеется, знание английского языка более чем необходимо.
5. Сформировать матрицу из случайных элементов размера 10*10. Используя
пользовательские средства Workspace, построить ее 3D-график, сохранить
картинку средствами MATLAB.
6. Записать текущую сессию в mat-файл. Сохранить историю команд в m-файл.
7. Очистить экран и переменные. Закрыть MATLAB.
8. Показать преподавателю все сохраненные файлы. Открыть MATLAB и с
консоли загрузить последний mat-файл.
9. Завершить работу в MATLAB окончательно.

Лабораторная работа № 2

СТРУКТУРНЫЕ МОДЕЛИ ДИНАМИЧЕСКИХ ПРОЦЕССОВ

Цель работы: изучение методов построения структурных моделей


динамических процессов и знакомство со средой визуального имитационного
моделирования SIMULINK 4.0.

Прикладные методы исследования систем автоматического управления


базируются, как правило, на использовании структурных моделей
протекающих в них динамических процессов. Структурная схема
представляет собой графическое изображение математической модели
системы в виде соединений звеньев и дает наглядное представление о связях
между звеньями, прохождении и преобразовании сигналов в системе. На
построении структурных схем основан метод имитационного моделирования
динамических процессов в системах автоматического управления.
Достоинствами имитационного моделирования в среде Simulink
являются простота и наглядность. От пользователя не требуется знания
каких-либо языков программирования.
Рассмотрим подробнее построение структурных моделей на примере
активного колебательного RLC-контура (рис. 1.1). Ниже приводится полное
уравнение, описывающее электрические процессы в этом контуре.
2
d U ВЫХ dU ВЫХ
LC + RC +U ВЫХ =KU ВХ
dt
2 dt (1.1)

Рис. 1.1. Активный колебательный контур


На рис. 1.2 показан контур как единое колебательное звено.
При необходимости исследования
процессов в элементах данного контура, а также
с целью разложения преобразования сигналов в
Рис. 1.2. Структурная схема контуре на простейшие вычислительные
колебательного звена операции (суммирование, умножение,
интегрирование) структурную схему следует
изобразить более подробно (рис. 1.3).

Рис. 1.3. Структурная модель колебательного звена


В данной модели разность напряжений Uвх и на конденсаторе Uс
определяет суммарное напряжение на индуктивности и сопротивлении
UL+UR (сумматор 1). Если из суммарного напряжения вычесть величину
напряжения на сопротивлении UR, то останется напряжение на
индуктивности UL (сумматор 2). Путем интегрирования по времени
напряжения на индуктивности получим потокосцепление  (интегратор 3), а
делением последнего на величину индуктивности – ток i (усилитель 4).
di
U L=L
Обычно используется форма двух последних преобразований: dt .
Ток i создает падение напряжения на сопротивлении UR=iR
(усилитель 5). Интегрирование тока по времени позволяет рассчитать заряд
конденсатора q (интегратор 6), а деление заряда на величину емкости —
напряжение на конденсаторе UC (усилитель 7). Последние два
dU C
i=C
преобразования записываются в такой форме: dt .
Путем умножения напряжения на конденсаторе на коэффициент
усиления К найдем выходное напряжение Uвых (усилитель 8).
Аналогичную структурную модель колебательного контура можно
вычислить, не рассматривая математическое описание отдельных элементов,
а используя полное уравнение контура (1.1). Для этого в уравнении нужно
выделить старшую производную выходной величины:
2
d U ВЫХ R dU ВЫХ 1
=− + ( KU ВХ −U ВЫХ )
dt
2 L dt LC (1.2)
В соответствии с полученным уравнением построим структурную
d 2 U ВЫХ
схему, начиная с величины dt 2 (рис. 1.4). Дважды проинтегрировав эту
dU ВЫХ
величину, рассчитаем dt и Uвых (интеграторы 5 и 6). Путем умножения
Uвх на К (усилитель 1) и вычитания Uвых (сумматор 2), а затем с помощью
1
умножения результирующего сигнала на LC (усилитель 3) найдем
1
( KU ВХ −U ВЫХ )
LC . Вычтя из данной величины сформированный с помощью
R dU ВЫХ
усилителя 7 сигнал L dt (сумматор 4), согласно уравнению (1.2)
d 2 U ВЫХ
получим величину dt 2 .

Рис. 1.4. Преобразованная структурная модель колебательного звена


Используя правила преобразования структурных схем, можно доказать
эквивалентность моделей, показанных на рис. 1.3 и 1.4. В них применяются
лишь различные внутренние переменные. Важно отметить, что все подобные
структурные модели строятся на базе интеграторов, масштабных усилителей
и сумматоров. При этом возможно аналоговое (с помощью аналоговых
вычислительных машин) и цифровое моделирование.
Разработка моделей средствами Simulink (в дальнейшем S-моделей)
основана на использовании технологии Drag-and-Drop. В качестве элементов
для построения S-модели используются модули (или блоки), хранящиеся в
библиотеке Simulink.
Блоки, включаемые в создаваемую модель, могут быть связаны друг с
другом как по информации, так и по управлению. Тип связи зависит от типа
блока и логики работы модели. Данные, которыми обменивются блоки,
могут быть скалярными величинами, векторами или матрицами
произвольной размерности.
Любая S-модель может иметь иерархическую структуру, то есть
состоять из моделей более низкого уровня, причем число уровней иерархии
практически не ограничено. Это делает модель более наглядной и упрощает
анализ работы и отладку системы в целом.
Наряду с другими параметрами моделирования пользователь может
задавать способ изменения модельного времени (с постоянным или
переменным шагом), а также условия окончания моделирования.
В ходе моделирования имеется возможность наблюдать за процессами,
происходящими в системе. Для этого используются специальные «смотровые
окна», входящие в состав библиотеки Simulink. Интересующие пользователя
характеристики системы могут быть представлены как в числовой, так и в
графической форме. Кроме того, существует возможность включения в
состав модели средств анимации.
Еще одно важное достоинство Simulink заключается в том, что он
является открытой системой: состав библиотеки может быть пополнен
пользователем за счет разработки собственных блоков.
Запуск Simulink

Сначала необходимо запустить MATLAB любым способом,


предусмотренном в Windows (например, через Пуск/ Программы/ MATLAB/
MATLAB R12). После запуска появляется основное окно системы MATLAB.
В панели инструментов нажать кнопку Simulink . В результате
открывается окно интегрированного браузера библиотек Simulink, показанное
на рис 1.5.

Рис. 1.5. Окно браузера библиотек Simulink


В окне браузера библиотек содержится дерево компонентов библиотек
Simulink. Для просмотра раздела библиотеки нужно выделить его мышью – в
правой части окна появится набор пиктогармм компонентов активного раздела
библиотеки.
С помощью меню браузера или кнопок и его панели
инструментов можно открыть окно для создания новой панели или открыть
существующую.

Задание

1. Запустить браузер Simulink. Нажать кнопку «Создать» панели


инструментов. Открыть библиотеку источников входных воздействий Sources

. Перетащить мышью в окно новой модели источники синусоидального

и единичного ступенчатого сигналов. Из раздела библиотеки Sinks

извлечь осциллоскоп . Для одновременного наблюдения нескольких

сигналов на одном осциллоскопе необходим мультиплексор ,

находящийся в разделе библиотеки Signals & Systems .


Собрать схему, как показано на рис 1.6 а., соединяя мышью входы и
выходы элементов, при необходимости изменяя их размеры при помощи
«ручек», появляющихся на углах элемента при его выделении.

а) б)
Рис. 1.6. Схема исследования генераторов сигналов
Для настройки параметров элемента схемы дважды щелкнуть его
мышью и в открывшемся окне произвести необходимые изменения.
Запустить моделирование, нажав кнопку панели инструментов. Для
просмотра результатов открыть окно осциллоскопа двойным щелчком.
2. Ввести в синусоидальный сигнал постоянную составляющую,
используя источник постоянного сигнала Constant из библиотеки Sources и
сумматор Sum из библиотеки Math, как показано на рис. 1.6 б. Запустить
моделирование и посмотреть результат в окне осциллоскопа.
3. Для исследования
интегрирования и
дифференцирования собрать
схему, показанную на
рис. 1.7, используя
элементы Discrete Pulse
Generator из библиотеки Рис. 1.7. Модели для исследования работы
Cources, Derivative и элементов библиотеки Simulink
Integrator из библиотеки
Continuous. Объяснить полученный результат.
4. Изменить время моделирования и точность интегрирования.
Выполнить пункт 3 с новыми параметрами. Установка параметров
моделирования выполняется командой Simulation Parameters в меню
Simulation окна Simulink. При этом открывается окно установки параметров
моделирования. Это окно имеет ряд вкладок с довольно большим числом
параметров. Рассмотрим вкладку, открытую по умолчанию – Solver
(Решатель). Эта вкладка позволяет установить параметры решающего
устройства системы моделирования Simulink.
К числу важнейших параметров решателя относится время
моделирования – Simulation time. Оно задается начальным временем Start
time (обычно 0) и конечным временем Stop time (по умолчанию 10 с).
Равенство Stop time бесконечности (inf) означает, что моделирование будет
происходить бесконечно долго, пока не прервать его. Однако в этом случае
трудно получить различимые осциллограммы работы устройства, поэтому
рекомендуется задавать конечные значения Stop time.
Время моделирования – величина условная. Точного соответствия
между временем моделирования в секундах и заданным значением нет.
Реальное время моделирования сильно зависит от быстродействия
компьютера, на котором выполняется моделирование.
Первостепенное значение имеют две опции решателя в поле Solver
options: тип решения и метод решения. Возможны два типа решения:
– Variable-step solvers – решение с переменным шагом;
– Fixed-step solvers – решение с фиксированным шагом.
Как правило, лучшие результаты дает решение с переменным шагом
(обычно по времени, но не всегда). В этом случае шаг автоматически
уменьшается, если скорость изменения результатов в процессе решения
возрастает. И напротив, если результаты меняются слабо, шаг решения
автоматически увеличивается. Это исключает (опять-таки, как правило)
расхождение решения, которое нередко случается при фиксированном шаге.
Метод с фиксированным шагом стоит применять только тогда, когда
фиксированный шаг обусловлен спецификой решения задачи, например, если
ее цель заключается в получении таблицы результатов с фиксированным
шагом. Этот метод дает неплохие результаты, если поведение системы
описывается почти монотонными функциями. Вторая из указанных опций –
выбор метода моделирования. Для решения дифференциальных уравнений
можно выбрать следующие методы: discrete (дискретный), ode45, ode23 (три
варианта, включая метод Розенброка), rk45 (метод Дорманда-Принса), ode113
(метод Адамса) и ode15s. Методы, в наименовании которых имеется слово
stiff, служат для решения жестких систем дифференциальных уравнений.
Следующие три параметра обычно задаются автоматически (значения
опции Auto):
– Max step sise – максимальный шаг интегрирования системы
однородных дифференциальных уравнений;
– Min step sise – минимальный шаг интегрирования;
– Initial step sise – начальный шаг интегрирования.
Важным параметром является и точность интегрирования:
– Relative tolerance – относительная погрешность интегрирования;
– Absolute tolerance – абсолютная погрешность интегрирования.
По умолчанию они имеют значения 10 -3 и 10-6 соответственно.
Уменьшение погрешности приводит к увеличению времени вычисления;
увеличение погрешности может привести к фрагментированию графиков
результатов моделирования.

Контрольные вопросы

1. Что называется структурной схемой и каковы достоинства


структурных моделей, используемых при исследовании систем
автоматического управления?
2. Какие свойства колебательного контура отражают внутренние
обратные связи в его структурной модели?
3. Сформулировать основные правила преобразования структурных
схем.
4. В чем заключаются преимущества и недостатки аналогового
моделирования по сравнению с цифровым?

Вам также может понравиться