Анализ среды программы Matrix Laboratory

Особенности решения задач с помощью системы Matrix Laboratory. Конструирование интерфейса (флаги и рамки), взаимодействие приложений и реализация алгоритмов в виде m-файлов. Принципы программирования событий, изменение и управление свойствами объектов.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 30.03.2015
Размер файла 40,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://allbest.ru

Содержание

matrix laboratory программирование интерфейс

Введение

1. Решение задач с помощью системы MATLAB

2. Конструирование интерфейса, взаимодействие приложения со средой MATLAB

Список используемой литературы

Введение

Системы автоматического регулирования (САР) применяются для регулирования отдельных параметров (температура, давление, уровень, расход и т.д.) в объекте управления. В современных системах автоматического управления (САУ) системы автоматического регулирования являются подсистемами САУ и их применяют для регулирования различных параметров при управлении объектом или процессом.

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

Для осуществления автоматического регулирования к регулируемому объекту подключается автоматический регулятор, вырабатывающий управляющее воздействие на регулирующий орган. Это управляющее воздействие вырабатывается регулятором в зависимости от разности между текущим значением регулируемой величины (температуры, давления, уровня жидкости и т. д.), измеряемой датчиком, и желаемым её значением, устанавливаемым задатчиком. Регулируемый объект и автоматический регулятор вместе образуют систему автоматического регулирования.

Основным признаком САР, является наличие главной обратной связи, по которой регулятор контролирует значение регулируемого параметра.

Название MATLAB является сокращением от Matrix Laboratory, и первоначально пакет MATLAB разрабатывался как средство доступа к библиотекам программ LINPACK и EISPACK, предназначенных для матричных вычислений. Пакет MATLAB создан компанией Math Works около двадцати лет назад. Работа сотен ученых и программистов направлена на постоянное расширение его возможностей и совершенствование заложенных алгоритмов.

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

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

MATLAB (сокращение от англ. «Matrix Laboratory», в русском языке произносится как Матламб) -- пакет прикладных программ для решения задач технических вычислений и одноимённый язык программирования, используемый в этом пакете. MATLAB используют более 1 000 000 инженерных и научных работников, он работает на большинстве современных операционных систем, включая Linux,Mac OS, Solaris (начиная с версии R2010b поддержка Solaris прекращена[3]) и Microsoft Windows[4

MATLAB как язык программирования был разработан Кливом Моулером (англ. Cleve Moler) в конце 1970-х годов когда он был деканом факультета компьютерных наук в Университете Нью-Мексико. Целью разработки служила задача дать студентам факультета возможность использования программных библиотек Linpack и EISPACK без необходимости изучения Фортрана.

Вскоре новый язык распространился среди других университетов и был с большим интересом встречен учёными, работающими в области прикладной математики. До сих пор в Интернете можно найти версию 1982 года, написанную на Фортране, распространяемую с открытым исходным кодом. Инженер Джон Литтл (англ. John N. (Jack) Little) познакомился с этим языком во время визита Клива Моулера в Стэндфордский университет в 1983 году. Поняв, что новый язык обладает большим коммерческим потенциалом, он объединился с Кливом Моулером и Стивом Бангертом (англ. Steve Bangert).

Совместными усилиями они переписали MATLAB на C и основали в 1984 компанию The MathWorks для дальнейшего развития. Эти переписанные на С библиотеки долгое время были известны под именем JACKPAC. Первоначально MATLAB предназначался для проектирования систем управления (основная специальность Джона Литтла), но быстро завоевал популярность во многих других научных и инженерных областях. Он также широко использовался и в образовании, в частности, для преподавания линейной алгебры и численных методов. Основные средства программирования Итак, программами в системе MATLAB являются m-файлы текстового формата, содержащие запись программ в виде программных кодов. Язык программирования системы MATLAB имеет следующие средства:

-процедурного;

-операторного;

-функционального;

-логического;

-структурного (модульного);

-объектно-ориентированного;

-визуально-ориентированного

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

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

1. Решение задач с помощью системы MATLAB

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

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

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

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

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

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

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

Полный перечень встроенных математических функций можно найти в справочной системе MATLAB.

При работе с командной строкой следует помнить следующие особенности:

- при наборе выражения без символа «;» в конце результат вычислений запишется в оперативную память в виде значения соответствующей переменной и будет выведен на экран, в противном случае результат вычислений запишется в оперативную память, но на экран выводиться не будет;

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

При вычислении выражения А = 32 * 25; результат был сохранен в переменной А и выведен на экран, поскольку в конце выражения отсутствовал символ «;».

При вычислении выражения В = ехр; результат был сохранен в переменной В, но не выведен на экран, поскольку в конце выражения присутствовал символ «;». Для вывода результата на экран в командной строке было введено имя переменной В и нажата клавиша <Enter>.

При вводе выражений А - В и А/В использовались значения переменных, найденные в предыдущих операциях, а результат вычисления выражения был помещен по умолчанию в специальную переменную ans и выведен на экран. Переменная ans также может использоваться в процессе вычислений, как это показано в примере ans + ans^0.5.При этом результат вычислений вновь помещается в переменную ans.

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

По умолчанию результаты вычислений выводятся на экран с округлением до четвертого знака после десятичной точки в так называемом формате Short.

Если при выводе слишком большого или слишком малого числа результат не укладывается в формат Short, вывод осуществляется в экспоненциальной форме .Например, результат 0.0000033333 будет выведен на экран в виде 3.3333е-6, что эквивалентно 3.3333Ч10-6.

При необходимости результат вычислений может быть выведен в ином формате. Для этого следует активизировать команду Preferences меню File.

На экране появится диалоговое окно Preferences, и позволяющее выбрать требуемый формат из списка.

Например, при выборе формата Long результаты всех последующих вычислений будут выводиться с 14 знаками после десятичной точки, а числа, не укладывающиеся в этот формат, будут выводиться в экспоненциальной форме (формат Long E).

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

- поэлементный ввод матриц осуществляется в виде последовательности элементов, заключенной в квадратные скобки […]. Разделителями элементов в строке матрицы являются пробелы, разделителями строк матрицы являются символы «;»;

- ввод матриц в виде последовательности монотонно возрастающих или убывающих значений элементов;

- ввод матриц специального вида (матрицы с нулевыми элементами, матрицы с единичными элементами и др.

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

Приведенные выше способы ввода матриц в командном окне могут комбинироваться в любых сочетаниях.

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

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

Реализация алгоритмов в виде m-файлов. В среде программирования системы MATLAB исходные файлы про грамм по умолчанию сохраняются с расширением *.m. Поэтому их принято называть m-файлами.

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

Ниже приведен один из вариантов m-файла для численного решения уравнения с граничными условиями на координатной сетке.

В MATLAB строки, начинающиеся символом «%», являются комментариями.

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

В данном варианте программы предусмотрен ввод исходных данных с клавиатуры с помощью функции input. Данная функция выводит на экран строку символов, являющуюся ее входным аргументом, позволяет пользователю ввести с клавиатуры произвольный набор символов и после нажатия клавиши <Enter> записывает введенные символы в специальную переменную ans, о которой упоминалось выше. Далее в m-файле предусмотрен оператор присвоения значения переменной ans другой переменной с определенным именем.

Решение системы линейных алгебраических уравнений (СЛАУ), заданной матрицей коэффициентов а и вектором свободных членов b и полученной в результате дискретизации уравнения Пуассона на равномерной координатной сетке х, производится путем деления вектора-строки b на транспонированную матрицу а. Операция транспонирования матрицы обозначается символом апострофа после имени матрицы.

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

Функции xlabel, ylabel позволяют вывести на экран наименования осей координат. Функция grid позволяет включить или отключить отображение координатной сетки на графике (при помощи параметров on и off соответственно).

Для создания m-файла необходимо активизировать команду New меню File и выбрать в ниспадающем меню команду M-file. При этом на экране появится рабочее окно встроенного текстового редактора MATLAB, в котором следует набрать приведенный выше текст программы и сохранить его с произвольным именем. Расширение *.m будет присвоено файлу по умолчанию. Также по умолчанию файл будет сохранен в подкаталоге WORK корневого каталога MATLAB. При задании имени файла следует использовать только буквы латинского алфавита.

Для вызова m-файла на выполнение необходимо в командном окне MATLAB набрать имя файла без расширения и нажать клавишу <Enter>.

Например, при запуске m-файла и вводе исходных данных

x0=0;

xn=5;

n=60;

f='2*sin(x.^2)+cos(x.^2)';

v1=1;

g1=0;

v2=1;

g2=-0.5;

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

Результаты вычисляются и выводятся в нормированном (безразмерном) виде.

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

Для построения трехмерных графиков в частных производных в вычислительной системе MatLab имеется очень удобная система pdetool. Вызвать окно этой системы можно, набрав данную опцию или задав в командном окне область решения конкретной задачи командой pderect([x1 x2 y1 y2]) - построение прямоугольника {x1xx2, y1yy2}, pdecirc(x0,y0,R) - построение круга с центром (x0,y0) и радиусом R.

После набора в командном окне одной из данных опций на экране появляется окно.

В качестве примера работы данной системы рассмотрим решение следующей задачи. Найти решение уравнения Лапласа

Du = uхх + uуу= 0

в прямоугольнике

D = {(x,y)| 0xa, 0yb},

удовлетворяющее следующим краевым условиям:

.

Для определенности выберем значение параметров а = b = a = 1.

Опцией pderect задаем прямоугольник с координатами ([0 1 0 1]). Открывается окно PDE Toolbox, в котором заданный треугольник выделен серым цветом. Можно также задавать область решения непосредственно в данном окне в виде прямоугольника, круга, эллипса и многоугольника, выбирая соответствующие кнопки слева в нижнем ряду панели меню. В нижней части окна при различных действиях появляется краткая информация о данном действии.

MatLab решает двумерные задачи, используя метод конечных элементов. При этом расчетная область (в данном случае прямоугольник) разбивается на конечное число элементарных подмножеств стандартной формы (которые и называются конечными элементами). В системе MatLab конечные элементы представляют собой криволинейные треугольники. Чтобы задать первоначальное разбиение области решения на конечные элементы в окне PDE Toolbox достаточно в меню окна нажать кнопку D . Сделать исходное разбиение более мелким можно при помощи кнопки, стоящей рядом справа. После задания исходного разбиения переходим к заданию граничных условий с помощью кнопки ¶W. При этом границы области решения выделяются однонаправленными стрелками красного цвета. Щелчком левой кнопки мыши на каждой из стрелок открываем окно задания граничных условий Boundary Condition. Если на данном отрезке границы заданы условия Дирихле, этот отрезок выделяется красным цветом, условия Ньюмена - синим цветом, смешанные условия - зеленым цветом. Таким образом, после задания граничных условий мы по цвету граничных отрезков сразу можем определить тип условия, заданного на конкретном отрезке границы. Для нашей задачи на левой и правой границах прямоугольника заданы условия Дирихле с h = 1 и r = 1 и у, соответственно. На нижней и верхней границах заданы условия Ньюмана

С*g = q = 0.

В верхней части окна при этом отображается вид граничного условия.

После задания граничных условий задаем вид ДУ с помощью кнопки PDE. В открывшемся окне PDE Specification в данном случае выбираем опцию Еlliptic, а значения коэффициентов - с = 1, a = f = 0. Закрыв окно, нажимаем кнопку решателя =. Полученное решение отображается в исходном прямоугольнике в виде различно окрашенных областей. Цвет и интенсивность окраски соответствуют различным числовым значениям полученной функции.

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

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

Граничные условия при использовании данной опции могут быть представлены в виде функции переменных х и у, однако если эта функция задана в виде степенного ряда с нелинейными членами, задание граничных условий становится более сложным. Это связано с тем, что все данные MatLab воспринимает как матрицы, поэтому возведение матрицы-столбца в степень воспринимается как некорректная задача. Чтобы этого избежать, необходимо степенные члены выражения задавать с точкой, что означает поэлементное действие.

В качестве примера рассмотрим предыдущую задачу с граничными условиями вида

.

При решении нелинейное граничное условие задаем в виде y-y.^2. График полученного решения показан на рис.6.

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

.

Точное решение данного уравнения

.

Программа определяет область решения в виде круга единичного радиуса с нулевыми условиями на границе и точечным источником в центре круга. Точечный источник задан в виде d -функции, которая аппроксимируется следующим образом: в пределах криволинейного треугольника, содержащего начало координат, функция принимается равной 1/S, где S - площадь треугольника; во всех остальных фрагментах функция принимается равной нулю.

2. Конструирование интерфейса, взаимодействие приложения со средой MATLAB

Среда системы Matlab это совокупность интерфейсов, через которые пользователь поддерживают связь этой системой. Это: диалог посредством командной строки или графического интерфейса, просмотр рабочей области, редактор и отладчик М-файлов, работа с файлами и оболочкой DOS, экспорт и импорт данных, интерактивный доступ к справочной информации, динамическое взаимодействие с внешними системами Microsoft Word, Microsoft Excel и др. Реализуются эти интерфейсы через командное окно, инструментальную панель, системы просмотра рабочей области и путей доступа, редактор / отладчик М-файлов, специальные меню.

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

В системе Matlab существует два вида м-файлов:

- скрипты - представляют последовательности команд (представляют собой процедуры);

- function - представляют собой функции с входными аргументами и выходными параметрами (значениями функции).

Но далее возникает необходимость многократного запуска файла программы при других, изменённых параметрах решаемой задачи. Возникает неудобство: в постоянном редактировании исходного текста программы и повторном или очередном её запуске. При этом важен механизм управления переменными, который бы обеспечивал удобный интерфейс между программой и пользователем. При решении других задач могут возникнуть трудности с визуализацией какого-либо процесса, то есть некоторая переменная изменяться динамически в процессе решения поставленной задачи.

Все эти и другие трудности, возможно, решить при использовании графического интерфейса пользователя. (GUI - Graphical User Interface)

Основные принципы построения графического интерфейса

Использование графического интерфейса позволяет пользователю сделать программу более универсальной.

Как и любой процесс проектирования, процесс построения графического интерфейса пользователя можно разбить на следующие этапы:

1. Постановка задачи,

2. Создание формы интерфейса и создание на неё элементов управления.

3. Написание кода программы и кода обработки событий.

Этапы построения графического интерфейса пользователя

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

2. На втором этапе создаётся форма графического интерфейса и на ней создаются и размещаются элементы управления. Здесь же описываются их свойства.

Задавать расположение и выравнивать элементы на форме описывать их свойства можно 'вручную', но для удобства и быстроты используют редактор выравнивания объектов (The Alignment Tool) и редактора свойств (The Property Editor).

Существует два способа создания формы и элементов управления, а так же задания или изменения их свойств:

- использование команды WORKSPACE (то есть использование команды операционной среды MATLAB).

- использование средств панели инструментов - совокупности средств для быстрого создания GUI (The Control Panel).

При построении элементов управления первым способом удобно использовать скрипт-файл, в котором последовательно с помощью команд WARKSPACE описывается создание элементов управления и устанавливаются их свойства.

Эти команды можно использовать как для написания кода, создающего графический интерфейс пользователя, так и использовать для управления свойствами элементов управления из тела m-файлов. Благодаря чему мы можем получить визуализацию нашего процесса вычисления.

На практике всё более склоняются ко второму способу создания графического интерфейса с элементами управления. Это объясняется тем, что при использовании панели управления с её редакторами свойств, событий, выравнивания очень удобно работать, и создавать GUI значительно быстрее, чем в первом случае.

3. На третьем этапе создания графического интерфейса пользователя (GUI) пишется код основной программы вычисления и код для обработки событий.

Код основной программы вычисления, пишется на языке программирования операционной среды Matlab, в виде m-файла. Созданные m-файлы закрепляются за событием какого-нибудь элемента управления или формы.

При описании свойств элементов управления события описываются в m-файле:

а) либо при создании каждого элемента управления описываем его свойства и сразу описываем действие событие;

б) либо описываем обработку события для каждого элемента при помощи редактора событий (The Property Editor).

Начало выполнения действий по созданию графического интерфейса

Редактор GUIDE (руководство) вызывается командой guide из командного окна или путем выполнения цепочки команд главного меню File (Файл) - New (Новый) - GUI (Графический Интерфейс).

Принципы создания приложений с GUI

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

Рассмотрим основные принципы создания приложений в MATLAB 6.x.

Среда GUIDE

Перейдите в среду GUIDE, выполнив guide в командной строке. В появившемся окне выберите Blank GUI и нажмите OK. Появится редактор окна приложения, заголовок которого untitled.fig означает, что в нем открыт новый файл.

Редактор приложения содержит:

- строку меню;

- панель инструментов управления приложением;

- заготовку окна приложения с нанесенной сеткой;

- вертикальную и горизонтальную линейки;

- панель инструментов для добавления элементов интерфейса на окно приложения.

Редактор приложения MATLAB 6.x позволяет разместить различные элементы интерфейса. Требуется нажать соответствующую кнопку на панели инструментов и поместить выбранный объект щелчком мыши в требуемое место заготовки окна приложения. Другой способ состоит в задании прямоугольной области объекта перемещением мыши по области заготовки окна с удержанием левой кнопки. Размер и положение добавленных объектов изменяются при помощи мыши. Перед изменением размера следует выбрать режим выделения объектов и сделать объект текущим, щелкнув по нему клавишей мыши.

Приложение в данный момент находится в режиме редактирования. Любой объект можно удалить из окна при помощи <Delete>, предварительно его выделив. Запуск приложения производится при помощи кнопки Run либо выбором соответствующего пункта меню Tools. Появляется диалоговое окно GUIDE, которое сообщает о необходимости сохранить приложение. Нажмите Yes и сохраните приложение в файле с расширением fig.

Приложение запускается в отдельном окне с заголовком Untitled. Пользователь может нажимать на кнопки, устанавливать флаги, переключатели, обращаться к спискам. При этом ничего полезного пока не происходит.

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

Программирование событий

Приложение в MATLAB 6.x хранится в двух файлах с расширениями fig и m, первый из них содержит информацию о размещенных в окне приложения объектах, а второй является М-файлом с основной функцией и подфункциями. Добавление элемента интерфейса из редактора приложения приводит к автоматическому созданию соответствующей подфункции. Данную подфункцию следует наполнить содержимым - операторами, которые выполняют обработку события, возникающего при обращении пользователя к элементу интерфейса.

Создадим приложение, окно которого содержит оси и две кнопки, предназначенные для построения графика функции и очистки осей.

Перейдите в среду создания приложения командой guide. На кнопке автоматически размещается надпись PushButton. Кнопка является элементом интерфейса, ей следует дать имя, которое уникальным образом идентифицировало бы ее среди всех объектов окна приложения.

Выделите кнопку PushButton и вызовите редактор свойств Property Inspector при помощи панели инструментов управления приложением. Появляется окно редактора свойств, в котором содержится таблица названий свойств кнопки и их значений. Занесите в свойство Tag значение btnPlot, щелкните мышью по строке справа от названия свойства, наберите требуемое значение и нажмите <Enter>. btnPlot теперь является именем кнопки PushButton. Удобно задавать имена, часть которых определяет тип элемента управления (btn соответствует button - кнопке). Аналогичным образом дайте осям имя axMain. Выберите в меню File редактора приложения пункт Save as, создайте папку MyFirstGui и сохраните приложение в файле mygui.fig. При этом открывается редактор М-файлов, содержащий файл mygui.m.

Приложение mygui содержит одну кнопку PushButton. Когда пользователь нажимает на Push Button в работающем приложении, то происходит событие Callback данного элемента управления. Вызывается подфункция btnPlot_Callback. Сейчас она не содержит операторов. Имя подфункции образовано названием кнопки и события. Очень важно задавать имена объектам в свойстве Tag сразу после их добавления на окно приложения в редакторе приложений, иначе генерируемая подфункция получит имя, которое сохранится при последующем изменении значения Tag и повлечет ошибки при выполнении приложения. Завершающий этап состоит в программировании действий, которые выполняются при нажатии пользователем на кнопку PushButton.

Приложение mygui содержит одну кнопку PushButton. Когда пользователь нажимает на Push Button в работающем приложении, то происходит событие Callback данного элемента управления. Вызывается подфункция btnPlot_Callback. Сейчас она не содержит операторов. Имя подфункции образовано названием кнопки и события. Очень важно задавать имена объектам в свойстве Tag сразу после их добавления на окно приложения в редакторе приложений, иначе генерируемая подфункция получит имя, которое сохранится при последующем изменении значения Tag и повлечет ошибки при выполнении приложения. Завершающий этап состоит в программировании действий, которые выполняются при нажатии пользователем на кнопку PushButton.

Конструирование интерфейса. Управление свойствами объектов.

Разработка приложения сопряжена с изменением свойств объектов, которые они получают по умолчанию при размещении их на заготовке окна. Некоторые из свойств, например надпись на кнопке или ее размер, устанавливаются при создании объекта в режиме редактирования. Другие свойства могут изменяться программно в работающем приложении.

Установка свойств при редактировании.

Продолжите работу над приложением mygui, окно которого было изображено на рис. 4. Очевидно, что следует подписать кнопки, например Построить и Очистить. Кнопки являются графическими объектами с определенными свойствами, среди которых имеется свойство, отвечающее за надпись на кнопке. Сделайте левую кнопку приложения mygui текущей и вызовите редактор свойств Property Inspector. Установите свойство String левой кнопки в значение Построить

Значение свойства string соответствует надписи на кнопке, a Tag - имени или тегу кнопки, как объекта. Имена объектов используются для изменения их свойств в ходе работы приложения при выполнении блоков обработки событий от других элементов интерфейса. Перейдите теперь к свойствам правой кнопки и установите String в Очистить.

Доступ к редактору свойств выделенного объекта производится либо из панели инструментов управления приложением, либо из меню View редактора приложений, либо при помощи пункта Property Inspector всплывающего меню.

Значение свойства string сразу отображается на кнопке приложения, находящегося в режиме редактирования. Запустите приложение.

Программное изменение свойств

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

Решение поставленной задачи требует привлечения свойства Enable. Свойство Enable объекта отвечает за возможность доступа к нему пользователем, значение on разрешает доступ, a off, соответственно, запрещает. Установка значений свойствам объектов в программе производится при помощи функции set.

Функция set вызывается с тремя входными аргументами - указателем на объект, названием свойства и его значением, последние два аргумента заключаются в апострофы. Свойства одного объекта должны изменяться в блоке операторов обработки события Сallback другого объекта. Следовательно, должна иметься возможность доступа к указателю на любой существующий объект. Аргументы hObject и handles подфункций, которые обрабатывают события элементов управления, содержат требуемые указатели. В hObject хранится указатель на тот объект, событие которого обрабатывается в данный момент, a handles является структурой указателей. Поля структуры совпадают со значениями свойств Tag существующих элементов интерфейса. Например, handles.btnPlot является указателем на кнопку Построить с именем btnPlot. Доступ к Очистить должен быть запрещен в начале работы приложения, пока пользователь не нажмет Построить Установите в редакторе свойств для кнопки Очистить свойство Enable в off, используйте кнопку со стрелкой в строке со значением свойства. Остальные изменения значения Enable кнопок должны происходить в ходе работы приложения. Для разрешения и запрещения доступа к кнопкам нужно внести дополнения в обработку их событий Callback.

Программирование элементов интерфейса. Флаги и рамки.

Флаги позволяют произвести одну или несколько установок, определяющих ход работы приложения. Продолжите работу над mygui, предоставив пользователю возможность наносить линии сетки на график. Окно приложения должно содержать два флага с названиями сетка по х и сетка по у. Если пользователь нажимает кнопку Построить, то на оси наносится сетка по выбранным координатам. Нажатие на Очистить должно приводить не только к исчезновению графика функции, но и скрытию сетки.

Обычно несколько элементов управления со схожим назначением группируются и помещаются внутри рамки. Измените размеры осей, освободив справа место для рамки. Нанесите рамку на окно приложения при помощи соответствующей кнопки. В рамку добавьте два флага. Разместите поясняющие подписи рядом с флагами и дайте им имена. Задайте свойству Tag верхнего флага значение chbxGridx, а свойству string, отвечающему за подпись флага, значение Сетка по х.

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

Осталось сделать так, чтобы при нажатии пользователем кнопки Построить происходило отображение линий сетки в зависимости от установленных флагов, а нажатие на Очистить приводило к скрытию сетки. Блок обработки события Callback кнопки Построить следует дополнить проверкой состояния флагов. Свойство флага value принимает значение логической единицы при включении флага пользователем, и, соответственно, равно нулю, если флаг выключен. Указатели на флаги содержатся в полях chbxGridX и chbxGridY структуры handles. Состояние флагов определяет значение свойств XGrid и YGrid осей.

Список используемой литературы

1. Ануфриев И.Е. Самоучитель Matlab 5.3/6.x - СПб.: БХВ-Петербург, 2003. - 736 с.: ил.

2. В.П. Дьяконов MATLAB 6.5 SPI/7 + Simulink 5/6 в математике и моделировании. Серия «Библиотека профессионала». - М.: СОЛОН-Пресс, 2005. - 576 с.: ил.

3. Ануфриев И.Е., Смирнов А.Б., Смирнова Е.Н. MathLab 7. - СПб.: БХВ-Петербург, 2005. - 1104 с.: ил.

Размещено на Allbest.ru

...

Подобные документы

  • Принципы создания приложений с GUI. Панель инструментов для добавления элементов интерфейса. Расположение кнопки и осей в окне приложения. Управление свойствами объектов. Установка свойств при редактировании. Программное изменение свойств. Флаги и рамки.

    методичка [1,1 M], добавлен 06.07.2009

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

    курсовая работа [415,8 K], добавлен 08.09.2013

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

    курсовая работа [61,1 K], добавлен 25.07.2012

  • Особливості пошуку ейлеревого ланцюгу, основне призначення. Загальна характеристика теорії графів. Етапи розробки загального алгоритму обходу. Розгляд розроблених функцій: int translate, void destroy matrix, void show matrix. Аналіз теореми Ейлера.

    курсовая работа [251,2 K], добавлен 17.10.2012

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

    курсовая работа [637,7 K], добавлен 14.01.2015

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

    методичка [1,0 M], добавлен 01.05.2014

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

    курсовая работа [564,9 K], добавлен 26.09.2014

  • Основы программирования на 32-битном Ассемблере, разработка с его помощью программы, демонстрирующей работу одного из разделов ОС Windоws. Описание используемых АРI-функций как интерфейса программирования приложений. Листинг программы, результаты работы.

    курсовая работа [164,5 K], добавлен 18.05.2014

  • Особенности разработки и реализации обучающей программы и схемы алгоритмов на языке программирования С++. Понятие равномерной и неравномерной дискретизации. Представление информации (составление кода) в виде таблицы перекодировки или многочлена.

    курсовая работа [704,6 K], добавлен 06.03.2013

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

    лекция [136,3 K], добавлен 11.03.2010

  • Особенности разработки приложений для операционной системы с помощью императивного, структурированного, объектно-ориентированного языка программирования Delphi. Формальное начало программы. Выделение конца программного блока. Листинг и описание программы.

    курсовая работа [1,2 M], добавлен 04.08.2014

  • Возможности современных компьютерных технологий решения задач в средах MS Excel, MS Word. Область программирования в офисных пакетах. Применение ЭВМ в решении математических задач. Разработка программного обеспечения. Разработка приложений с помощью VBA.

    дипломная работа [742,2 K], добавлен 29.01.2009

  • Постановка задачи линейного программирования. Решение системы уравнений симплекс-методом. Разработка программы для использования симплекс-метода. Блок-схемы основных алгоритмов. Создание интерфейса, инструкция пользователя по применению программы.

    курсовая работа [1,7 M], добавлен 05.01.2015

  • Классификация систем управления базами данных. Выбор операционной системы, языка программирования, среды разработки (IDE) и дополнительных компонент. Разработка интерфейса и функций программы по управлению складом, её тестирование и исходный код файлов.

    курсовая работа [487,3 K], добавлен 25.12.2015

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

    курсовая работа [153,9 K], добавлен 18.02.2013

  • Практические навыки моделирования задач линейного программирования и их решения графическим и симплекс-методом с использованием прикладной программы SIMC. Моделирование транспортных задач и их решение методом потенциалов с помощью программы TRAN2.

    контрольная работа [199,8 K], добавлен 15.06.2009

  • Преимущество построения Web-приложений для поддержки стандартных функций браузера. Настройка проекта Web-приложения. Создание и изменение исходных файлов. Изменение файла JavaServer Pages по умолчанию. Основные проблемы при выполнении Web-приложений.

    контрольная работа [362,8 K], добавлен 10.11.2013

  • Характеристика форматов файлов wav и mp3. Построение диаграмм прецедентов, разработка графического интерфейса и архитектуры приложения. Разработка алгоритмов работы программы: метод TrimWavFile, TrimMp3, ChangeVolume, speedUpX1_2, speedDownX1_2.

    курсовая работа [2,7 M], добавлен 20.12.2013

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

    курсовая работа [56,3 K], добавлен 05.07.2008

  • Реализация алгоритма Гомори на языке программирования Object Pascal при использовании среды разработки Borland Delphi 7. Рассмотрение основных способов компьютерного осуществления решения задач целочисленного программирования симплексным методом.

    курсовая работа [1,8 M], добавлен 28.03.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.