Матричная лаборатория MatLab

Система MATLAB предлагается разработчиками (фирма Math Works, Inc.) как лидирующий на рынке, в первую очередь в системе военно-промышленного комплекса, в аэрокосмической отрасли и автомобилестроении, язык программирования высокого уровня для технических вычислений с большим числом стандартных пакетов.прикладных программ. Система MATLAB вобрала в себя не только передовой опыт развития и компьютерной реализации численных методов, накопленный за последние три десятилетия, но и весь опыт становления математики за всю историю человечества. Около миллиона легально зарегистрированных пользователей уже применяют эту систему. Ее охотно используют в своих научных проектах ведущие университеты и научные центры мира. Популярности системы способствует ее мощное расширение Simulink, предоставляющее удобные и простые средства, в том числе визуальное объектно-ориентированное программирование, для моделирования линейных и нелинейных динамических систем, а также множество других пакетов расширения системы.
К сожалению, в России неоправданно мало публикаций по системе MATLAB. Помимо обзоров и первой книги по этой системе, в течение ряда лет серьезных изданий, посвященных MATLAB, практически не было. Наконец, в 1997-1999 гг. появились книги, содержащие перевод части фирменных справочников по системе MATLAB 4.0/5.2. При этом книга описывает лишь отдельные средства упрощенной студенческой версии системы MATLAB 5.0. Стали появляться и книги по пакетам расширения этой системы, и учебные курсы по системе MATLAB. Между тем за рубежом системе MATLAB посвящены сотни книг (их список можно найти на Web-узле фирмы Math Works, Inc., разработавшей эту систему), и еще сотни книг посвящены системе Maple V Release 5, ядро которой входит в состав пакетов расширения MATLAB 6.
Таким образом, интерес к системе MATLAB остается у нас неудовлетворенным. Особенно это относится к учебной литературе по новейшим реализациям системы MATLAB, в первую очередь MATLAB 6. Система MATLAB 6.0 появилась в конце 2000 г., а система MATLAB 6.1 (в которой весьма существенно переработаны пакеты расширения, но в ядро системы добавлены лишь две команды для работы со звуком и команда strfind, дополняющая возможности подробно описанной в книге функции findstr) — в июле 2001 г. MATLAB 6 является последней (на момент подготовки рукописи этой книги) реализацией системы MATLAB. В новой реализации системы не только расширены ее возможности, но и радикально переработан и улучшен интерфейс пользователя, существенно обновился состав пакетов расширений.

Введение

Отличия новой реализации MATLAB 6 от предшествующих версий 5.* настолько значительны, что вряд ли стоит пользоваться настоящим изданием для знакомства с предшествующими версиями MATLAB. Читателям, использующим MATLAB 5.*, в том числе любителям Macintosh, VAX/micro VAX и SunOS, можно рекомендовать уже упомянутую ранее изданную литературу по этим системам, все еще верой и правдой служащим многим пользователям.

Знакомство с матричной лабораторией MATLAB
Современная компьютерная математика предлагает целый набор интегрированных программных систем и пакетов программ для автоматизации математических расчетов: Eureka, Gauss, TK Solver!, Derive, Mathcad, Mathematica, Maple V и др. Возникает вопрос: «А какое место занимает среди них система MATLAB?» MATLAB — одна из старейших, тщательно проработанных и проверенных временем систем автоматизации математических расчетов, построенная на расширенном представлении и применении матричных операций. Это нашло отражение в названии системы — MATrix LABoratory — матричная лаборатория. Однако синтаксис языка программирования системы продуман настолько тщательно, что эта ориентация почти не ощущается теми пользователями, которых не интересуют непосредственно матричные вычисления. Матрицы широко применяются в сложных математических расчетах, например при решении задач линейной алгебры и математического моделирования статических и динамических систем и объектов. Они являются основой автоматического составления и решения уравнений состояния динамических объектов и систем. Примером может служить расширение MATLAB — Simulink. Это существенно повышает интерес к системе MATLAB, вобравшей в себя лучшие достижения в области быстрого решения матричных задач.

Установка системы и первые навыки работы
Мы рассматриваем систему, ориентированную на IBM PC (Intel80X86/ Pentium) — совместимые компьютеры под управлением Microsoft Windows как наиболее распространенные. Math Works рекомендует графические видеокарты Accel Eclipse фирмы Accel Graphics для аппаратной поддержки новых, введенных в MATLAB 6, эффектов трехмерной графики (расчет сцены и рендеринг Open GL) на этой платформе. Но наряду с ними MathWorks тщательно протестировала чисто программные драйверы операционных систем Windows. Если ваш графический ускоритель, аппаратно поддерживающий Open GL, другого типа, фирма MathWorks, Inc. его не протестировала со своей обычной легендарной скрупулезностью. Но это не значит, что искажения трехмерной графики неизбежны. Если у вас будут сомнения, вы всегда сможете программно отключить аппаратную поддержку Open GL, прежнему эффективно используя свой графический ускоритель для обработки шгонов, и задействовать только тщательно проверенное MathWorks программное обеспечение Open GL.

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

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

Пользовательский интерфейс MATLAB
Как видно из материалов предыдущих уроков, в новой версии MATLAB в полной мере сохранен командный интерактивный режим работы. Это старый фасад дворца MATLAB. Командный режим остается одним из наиболее удобных и проверенных методов работы с системой. Имеются и типовые средства приложений Windows 95/98/Me/2000/NT4 — меню и панель инструментов. Но они по-прежнему выглядят намного скромнее, чем у большинства современных приложений Windows. Видимо, так и должно быть — чем серьезнее математическая система, тем меньше она нуждается в использовании всевозможных кнопок на панели инструментов и тем скромнее может быть ее главное меню.

Обычная графика MATLAB
Функции одной переменной у(х) находят широкое применение в практике математических и других расчетов, а также в технике компьютерного математического моделирования. Для отображения таких функций используются графики в декартовой (прямоугольной) системе координат. При этом обычно строятся две оси — горизонтальная X и вертикальная Y, и задаются координаты х и у, определяющие узловые точки функции у(х). Эти точки соединяются друг с другом отрезками прямых, т. е. при построении графика осуществляется линейная интерполяция для промежуточных точек. Поскольку MATLAB — матричная система, совокупность точек у(х) задается векторами X и Y одинакового размера.

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

Операторы и функции
Начиная с этого урока мы переходим к изучению математических и логических возможностей системы MATLAB. Их изучение мы начнем с операторов и функций — тех кирпичиков, из которых строятся математические выражения. Вычисления математических выражений составляют главную цель любой системы, предназначенной для численных расчетов. Здесь мы рассмотрим полный набор операторов входного языка системы MATLAB 6.0 и соответствующих им функций. Напомним, что полный список операторов выводится командой help ops. Операторы и специальные символы системы MATLAB можно разделить на ряд категорий, которые рассматриваются ниже.

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

Операции с векторами и матрицами
Матрицы представляют собой самые распространенные объекты системы MATLAB. Ниже описываются основные операции с матрицами. По обилию матричных операторов и функций MATLAB является лидером среди массовых систем компьютерной математики.

Матричные операции линейной алгебры
Линейная алгебра — область, в которой наиболее часто используются векторы и матрицы. Наряду с операциями общего характера, рассмотренными выше, применятся функции, решающие наиболее характерные задачи линейной алгебры. Они и рассмотрены в данном уроке.

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

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



Массивы структур
Структуры относятся к сложным типам данных. В предшествующих версиях MATLAB они именовались записями, что приводило к конфликтам в терминологии MATLAB и систем управления базами данных. Этот тип данных стал именоваться структурами после того, как широкое распространение получили средства MATLAB для работы с базами данных с использованием языка запросов Sequential Query Language (SQL).. Структуры MATLAB и их поля в отличие от полей записей баз данных не являются объектами SQL, но зато обращения к структурам могут быть откомпилированы и к ним возможен прямой доступ, минуя сложные и медленные механизмы систем управления базами данных.

Массивы ячеек
Массив ячеек — наиболее сложный тип данных в системе MATLAB. Это массив, элементами которого являются ячейки, содержащие любые типы массивов, включая массивы ячеек. Отличительным атрибутом массивов ячеек является задание содержимого последних в фигурных скобках {}. Создавать массивы ячеек можно с помощью оператора присваивания.

Численные методы
В этом большом уроке описываются функции системы MATLAB, предназначенные для реализации алгоритмов типовых численных методов решения прикладных задач и обработки данных. Наряду с базовыми операциями решения систем линейных и нелинейных уравнений рассмотрены функции вычисления конечных разностей, численного дифференцирования, численного интегрирования, триангуляции, аппроксимации Лапласиана и, наконец, прямого и обратного преобразования Фурье. Отдельные разделы посвящены работе с полиномами и численным методам решения обыкновенных дифференциальных уравнений. Этот большой урок стоит разбить на две-три части или изучать выборочно.

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

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

Работа с файлами
Файлы — это довольно распространенные объекты системы MATLAB. О некоторых типах файлов уже говорилось в предшествующих главах. В этом уроке рассматриваются свойства файлов, которые не зависят от их типа и относятся к любым файлам.

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

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

Поддержка звуковой системы
Этот небольшой урок посвящен довольно экзотической возможности математической системы МАТLАВ — работе со звуком. Стоит напомнить, что для этого компьютер должен быть оснащен звуковой картой и звуковыми колонками. Средства поддержки звука в МАТLАВ имеют рудиментарный характер, но все же они есть и позволяют разнообразить выполнение некоторых примеров.

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

Микроконтроллеры

Основное преимущество PIC-контроллеров заключается в их низком потреблении при высоком быстродействии, что очень полезно в приборах с автономным питанием. Еще большей экономии энергии можно достичь при использовании дежурного режима. При этом основное время микроконтроллер находится в режиме sleep, при котором приостанавливается выполнение программы, выключается тактовый генератор, но может продолжать свою работу Watch Dog таймер и некоторые периферийные устройства. Выход из этого режима может производиться по-разному, в зависимости от типа контроллера.
Например, можно запрограммировать Watch Dog таймер («собаку») на определенный период, при срабатывании которого контроллер «проснется», опросит свои входы и, если нужно, перейдет к процедуре обработки. Если никаких действий совершать не нужно, он выполнит команду SLEEP и будет находиться в этом состоянии до следующего срабатывания таймера. При выполнении процедуры обработки следует периодически сбрасывать «собаку» для предотвращения те повторного срабатывания. Используя подобную методику, можно "строить приборы, не требующие выключателя питания, различные сигнализирующие и контрольные приборы.

Программирование PIC процессора 16F84
Здесь инфорормация для тех, кто не имеет опыта работы с PIC процессорами. Для транслирования исходного текста программы в машинный код процессора используется широко распространенный, бесплатный ассемблер MPASM, для программирования - программатор PIX, также бесплатный и доступный на многих серверах.

Микроконтроллер AT90S2313
AT90S2313 - экономичный 8 битовый КМОП микроконтроллер, построенный с использованием расширенной RISC архитектуры AVR. Исполняя по одной команде за период тактовой частоты, AT90S2313 имеет производительность около 1MIPS на МГц, что позволяет разработчикам создавать системы оптимальные по скорости и потребляемой мощности.

Аппаратные средства микроконтроллеров серии PIC
Микроконтроллеры семейств PIC (Peripheral Interface Controller) компании Microchip объединяют все передовые технологии микроконтроллеров: электрически программируемые пользователем ППЗУ, минимальное энергопотребление, высокую производительность, хорошо развитую RISC-архитектуру, функциональную законченность и минимальные размеры.

Программирование микроконтроллеров MCS-51
Программная модель МК 8051 содержит резидентную память данных, регистры специальных функций, резидентную память программ и программный счетчик PC.

Микроконтролеры AVR с нуля

Микроконтролеры AVR с нуля на языке Си - Курс для начинающих
Ответы на вопросы о микроконтроллерах MCS-51, Atmel AVR, PIC, Ubicom, ST10
Отладка управляющих программ микроконтроллеров
Микроконтроллер. ...и что с ним делать
AVR-микроконтроллеры
Предварительный усилитель с микроконтроллерной системой управления
Некоторые аспекты практического применения микроконтроллера КР1878ВЕ1