Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

12 / 2 семестр / Лекция 5

.doc
Скачиваний:
19
Добавлен:
10.06.2015
Размер:
235.01 Кб
Скачать

MATLAB – одна из старейших, тщательно проработанных и проверенных временем систем автоматизации математических расчетов, построенная на расширенном представлении и применении матричных операций. это нашло отражение в названии системы MATrix Laboratory – матричная лаборатория. Применение матриц, как основных объектов системы, способствует уменьшению числа циклов, которые очень распространены при выполнении матричных вычислений на обычных языках программирования высокого уровня, и облегчению реализации параллельных вычислений.

Система была разработана Молером и с конца 70-х годов широко используется на ЭВМ. В начале 80-х Джон Литл разработал версию для компьютеров класса IBM PC, VAX, Macintosh.

Одной из основных задач системы MATLAB всегда было предоставление пользователям мощного языка программирования, ориентированного на технические и математические расчеты и способного превзойти возможности традиционных языков программирования, которые многие годы использовались для реализации численных методов. При этом особое внимание уделялось как повышению скорости вычислений, так и адаптации системы к решению самых разнообразных задач пользователей.

Важным достоинством системы являются ее открытость и расширяемость. Большинство команд и функций системы реализованы в виде m-файлов текстового формата (с расширением m.)и файлов на языке Си, причем все файлы доступны для модификации. Пользователю дана возможность создать не только отдельные файлы, но и библиотеки файлов для реализации специфических задач. Такие файлы можно готовить как в простом и удобном редакторе m-файлов системы MATLAB, так и в любом другом текстовом редакторе. Более того, такие файлы можно перенести с помощью буфера в командную строку MATLAB и тут же исполнить.

Легкость модификации системы и возможность ее адаптации к решению специфических задач науки и техники привели к созданию десятков пакетов прикладных программ (Toolbox), намного расширивших сферы применения системы.

Новые свойства системе MATLAB придала ее интеграция с программной системой Simulink, созданной для моделирования блочно-заданных динамических систем и устройств. Базируясь на принципах визуально-ориентированного программирования, Simulink, позволяет выполнять моделирование сложных устройств с высокой степенью достоверности и прекрасными средствами представления результатов. Помимо естественной интеграции с пакетами расширения Symbolic Math и Simulink, MATLAB интегрируется с десятками мощных пакетов расширения.

Система MATLAB выполняет сложные и трудоемкие операции над векторами и матрицами даже в режиме прямых вычислений без какого либо программирования. Ею можно пользоваться как калькулятором, в котором наряду с обычными арифметическими и алгебраическими действиями, могут использоваться такие сложные операции, как инвертирование матрицы, вычисление ее собственных значений и принадлежащих им векторов, решение систем линейных уравнений, вывод графиков двухмерных и трехмерных функций и многое другое.

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

Дополнительный уровень развития системы образуют ее пакеты расширения. Они позволяют быстро ориентировать систему на решение задач в той или иной предметной области: в специальных разделах математики, физики, астрономии, проектировании и.т.д. Благодаря этому MATLAB обеспечивает высочайший уровень адаптации к решению задач конечного пользователя.

Система MATLAB может решать множество задач без программирования в командном режиме. Однако система изначально создавалась одновременно и как мощный, ориентированный на технические вычисления, язык программирования высокого уровня.

MATLAB имеет входной язык. Запись программ в системе традиционна и потому привычна для большинства пользователей компьютеров. К тому же система дает возможность редактировать программы с помощью любого, привычного для пользователя текстового редактора. Имеет она и собственный редактор с отладчиком.

Система MATLAB состоит из многих тысяч файлов, находящихся в множестве папок. Полезно иметь представление о содержании основных папок, поскольку это позволяет быстро оценить возможности системы – например, узнать какие операторы функции или графические команды входят в систему.

В MATLAB особое значение имеют файлы двух типов – с расширением mat. и m. Первые являются бинарными файлами, в которых хранятся значения переменных, а вторых уже упоминалось, они представляют собой текстовые файлы, содержащие внешние программы, определение команд и функций системы. Именно к ним относится большая часть команд функций, в том числе задаваемых пользователем для решения своих специфических задач. Нередко встречаются файлы с расширением (коды на языке Си) файлы откомпилированные кодами MATLAB с расширением . mex и другие.

Система MATLAB создана таким образом, что любые вычисления можно выполнять в режиме прямых вычислений, то есть без подготовки программы. Можно почти мгновенно задать и вывести графики различных функций – от простой синусоиды до сложной трехмерной фигуры.

Работа с системой в режиме прямых вычислений носит диалоговый характер и происходит по правилу «задал вопрос – получил ответ». Пользователь набирает на клавиатуре вычисляемое выражение, редактирует его в командной строке и завершает ввод нажатием клавиши ENTER.

В качестве примера рассмотрим простейшие вычисления:

Даже из таких простых примеров можно сделать некоторые выводы:

  • для указания ввода данных используется символ >>;

  • данные вводятся с помощью простейшего строчного редактора;

  • для блокировки результата вычислений некоторого выражения после него надо устанавливать знак ; (точка с запятой);

  • если не указана переменная для значений результата вычислений, то MATLAB назначает такую переменную с именем ans;

  • знаком присвоения является привычный математикам знак равенства (=)ж

  • встроенные функции (например cos) записывается строчными буквами и их аргументы указываются в круглых скобках cos(х);

  • результат вычислений выводится в строках вывода (без знака>>);

  • диалог происходит в стиле «задал вопрос – получил ответ».

Сеанс работы с MATLAB принято именовать сессией. Сессия, в сущности, является текущим документом, отражающим работу пользователя с системой MATLAB. В ней имеются строки ввода, вывода и сообщения об ошибках.

В большинстве математических систем вычисление sin(V) или exp(V), где – V вектор, сопровождалось бы выдачей ошибки, поскольку функции sin и exp должны иметь аргумент в виде скалярной величины. Однако MATLAB – матричная система, а вектор является разновидностью матрицы с размером 1 х n или n x 1. Поэтому в нашем случае результат вычисления будет вектором того же размера, что и аргумент V, но элементы возвращаемого вектора будут синусами или экспонентами от элементов вектора V.

рисунок2

Матрица задается в виде векторов, представляющих ее строки и заключенных в квадратные скобки. Для разделения элементов векторов используются пробел или запятая, а для отделения одного вектора от другого – точка с запятой.

Для выделения отдельного элемента матрицы M используется выражение вида M(j,i), где M – имя матрицы, j – номер строки, i – номер столбца.

Примеры

Обратите внимание что программа чувствительна к высоте букв в отличии от DELPHI или PASKALY.

Обратите внимание на форму ответов при выполнении простых операций без указания переменной, которой присваивается результат. В таких случаях MATLAB сам назначает переменную ans, которой присваивается результат и значение которой, затем выводится на экран.

Перенос строки в сессии.

В некоторых случаях вводимое математическое выражение может оказаться настолько длинным, что для него не хватит одной строки. В этом случае часть выражения можно перенести на новую строку с помощью знака многоточия «. . .» (3 или более точек), например

s= 1-1/2+1/3-1/4…

1/8+1/9-1/10

Максимальное число символов в одной строке командного режима – 4096, а в m-файле – не ограничено, но столь длинными строками работать неудобно.

Текстовые комментарии

Поскольку MATLAB используется для достаточно сложных вычислений, важное значение имеет наглядность их описания. Она достигается, в частности, с помощью текстовых комментариев. Текстовые комментарии вводятся с помощью %, например так:

% It is factorial function

Не нужно забывать, что программа MATLAB является англоязычной программой, поэтому все комментарии следует вводить на английском языке.

Операторы и функции

Оператор – это специальное обозначение для определенной операции над данными операндами

Например, простейшими арифметически операторами являются знаки суммы +, вычитания -, умножения* и деления/. Операторы используются совместно с операндами.

Например, в выражении 2+3 знак + является оператором сложения, а числа 2 и 3 – операндами.

Следует отметить, что большинство операторов относятся к матричным операциям, что может служить причиной серьезных недоразумений. Например, операторы умножения * и деления / вычисляют произведение и частное от деления двух массивов, векторов или матриц. Есть ряд специальных операторов, например оператор \ означает деление справа налево, а .* и ./ означают поэлементное умножение или поэлементное деление массивов.

Функции – это имеющие уникальные имена объекты, выполняющие определенные преобразования своих аргументов и при этом возвращающие результаты этих преобразований.

Применение оператора (двоеточие)

Очень часто необходимо произвести формирование упорядоченных числовых последовательностей. Для этого в MATLAB используется оператор (двоеточие) в виде:

Начальное значение: Шаг: Конечное значение

Данная конструкция порождает возрастающую последовательность чисел, которая начинается с начального значения, идет с заданным шагом и завершается конечным значением.

Если шаг не задан, то он принимает значение 1. Если конечное значение указано меньше начального – выдается сообщение об ошибке.

Например:

Принадлежность MATLAB к матричным системам вносит коррективы в назначение операторов и приводит к казусам. Например

Вычисление массива косинусов прошло корректно. А вот вычисление массива sin(x)/x дает неожиданный результат вместо 6 значений одно.

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

Как видите и тут не обошлось без особенностей. Так, при х=0 значение sin(x)/x дает устранимую неопределенность вида 0/0=1. MATLAB указывает на ошибку и вместо численного значения выводится константа NaN, означающая, что неопределенность 0/0 – это все же не обычное число.

Пакет расширения Simulink служит для имитационного моделирования систем, состоящих из блоков с заданными свойствами (параметрами). Компоненты моделей, в свою очередь, являются графическими блоками и моделями, которые содержатся в ряде библиотек (имена библиотек имеют постфикс Blockset) и с помощью мыши могут переноситься в основное окно и соединяться друг с другом необходимыми связями. В состав моделей могут включаться источники сигналов различного вида, виртуальные регистрирующие приборы, графические средства анимации. Двойной щелчок мышью на блоке модели выводит окно со списком его параметров, которые пользователь может менять. При прогоне модели обеспечивается ее математическое моделирование с наглядным визуальным представлением результатов.

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

В последних версиях Simulink изменен набор и размещение доступных пользователю компонент:

  • Часть компонент, имеющих аналоги в других библиотеках, удалена.

  • Компоненты разных библиотек сгруппированы в подбиблиотеки по функциональному назначению.

  • Добавлены новые библиотеки. Для телекоммуникационных систем это набор радиочастотных блоков - RF Blockset.

  • Из компонент сходного назначения выбраны наиболее современные.

Ниже рассмотрены компоненты Simulink 5, входящего в MATLAB 7.01, используемую с 2004 года.

Свойства блоков Simulink

В Simulink определены блоки разного типа:

  • обычные,

  • подсистемы, включающие в себя вложенные блоки.

  • управляемые подсистемы, поведение которых задается внешним воздействием.

Отображение обычного блока иллюстрируется на Error: Reference source not found. Обычный блок отображается в модели как прямоугольник, у которого:

  • Внутри отображается надпись, описывающая выполняемую им функцию.

  • Входы блока помечаются стрелками, входящими в блок.

  • Выходы блока помечаются стрелками, исходящими из блока.

Отображение обычного блока в модели

Обычный блок имеет свойства и методы, влияющие на его представление:

  • Внешняя надпись (имя), описывающая блок.

  • Функция «Показать имя» (или «Скрыть имя»)..

  • Функция «Переместить имя». Она меняет расположение имени, когда оно отображается.

  • Функция «Перевернуть блок». Она меняет местами расположение входов и выходов блока.

  • Функция «Повернуть блок». Она поворачивает блок на 900..

  • Параметры блока, определяющие правила его работы и задающие количественные значения. Их можно регулировать в окне параметров, которое вызывается двойным щелчком левой кнопки мыши по блоку.

    1. Основные библиотеки Simulink

В пакете Simulink используются две основные библиотеки: Главная – Simulink, Библиотека расширений - Simulink Extras.

На Error: Reference source not found показано окно браузера (обозревателя) главной библиотеки Simulink. Оно состоит из двух панелей. В левой панели отображается иерархически организованное оглавление библиотеки. Оно отображается в традиционном стиле: значок «+» слева от имени компонента означает, что внутри есть вложенные компоненты. При открытии компонента (щелчком мыши по нему) ниже отображается список вложенных компонентов. Значок при этом меняется на «-». Выбор компонента в левой панели щелчком мышью по нему приводит к выделению этого компонента цветом и отображению в правой панели компонент, входящих в его состав. На Error: Reference source not found выделена основная библиотека Simulink, содержащая подбиблиотеки, перечисленные в Error: Reference source not found. Компоненты в правой панели отображаются текстовыми именами и значком слева от имени, который внешним видом подсказывает функциональное назначение компонента. Компонент в правой панели можно выбрать аналогично. В поле над полями выводится текстовое описание выбранного компонента. Компоненты из библиотеки можно мышью переносить в окно модели.

Основная библиотека Simulink

Основная библиотека Simulink, подбиблиотека Continuous

Соседние файлы в папке 2 семестр