Особенности создания м файлов в matlab реферат

Обновлено: 18.05.2024

2 -е занятие по MATLAB

ЛАБОРАТОРНАЯ РАБОТА №2

Создание М-файлов в виде М-функций.

Элементы программирования в MATLAB .

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

1. Формат заголовка М - функции:

function [список выходных переменных] = ( ); % список выходных переменных может быть условным, т.е просто символ.

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

Пример 1 на создание М-функции. Создать М-файл для вычисления следующего выражения: , где — числа или матрицы одинаковой размерности.

В текстовом редакторе MATLAB создаем следующий М-файл в виде М-функции:

% Применение точки означает массивное озведение в квадрат.

% Созданную М-функцию сохраним под именем , которому редактор MATLAB добавит расширение " .m " .

% Обращение к функции fun 1 может быть выполнено или в командном окне или в М-сценарии.

Для примера 1 сначала в командном окне выполним следующие действия:

Ø fun 1(3,4) % в качестве аргументов выбраны значения a =3, b =4

5 % результат выполнения М-функции fun 1 с входными аргументами 3 и 4

Ø % другой способ использования созданной функции fun 1:

Ø % с присвоением результата, например, через z 1

Ø z1=fun1(a,b)

Пример 2. Вычисление факториалов: , где — количество сомножителей.

Создадим следующую М-функцию под именем fact 1. m :

% Вычисление n -факториал:

function f 1= fact 1( n )

f 1= prod (1: n );

% максимальное число n =170

% функция prod в свою очередь является встроенной функцией MATLAB .

Для примера вычислим :

Пример 3. Создадим функцию для подсчета суммы натуральных чисел как положительных, так и отрицательных.

function s 1= sum 1( n , k ) % n — количество членов ряда, k —любое число, большее или % меньшее нуля, n , k — входные аргументы

Для проверки примера 3 в командном окне следует набрать sum 1 с конкретными n и k , например, n =5, k =1.333 и для отрицательной суммы n =5, k =-6.78.

Пример 4. Закодируем функцию в виде М-функции, где — действительное число.

Создадим следующую М-функцию под именем graf1.m:

function y = zet1(t,k)

% t — входной аргумент , который должен быть определен как вектор чисел

% Созданную М - функцию следует сохранить под именем zet1 .

% Для проверки примера 3 в командном окне MATLAB набрать:

Ø k=3; % число k можно задавать произвольно

Ø z1=graf1(t,k);

Ø polar(t,z1,'r*'),grid

Ø % Должен получиться график в полярной системе координат.

z1 будет означать y1 = 3 + 3(1+sint) . Если клавишей Enter запустить на выполнение, то будут выводиться все значения функции z1. Если же в конце строки стояла точка с запятой, то результат выводится не будет.

Построить график z1 в декартовой системе координат. Для этого в командной строке набрать plot(t,z1),grid . Откроется окно с графиком синусоиды по оси ординат от +3 до + 9 и по оси абсцисс от 0 до 10.

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

Пример 5. Контроль количества входных аргументов.

function y=test1(a,b)

if (nargin==1) % nargin — ключевое слово для проверки количества входных аргументов

elseif (nargin==2) % Двойное равенство"= MsoNormal"> % отношения

% Операторы условия if, elseif (ранее встречалось else) имеют следующие форматы записи:

ISBN

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

УДК 519.95 (075.8)

ББК 22.18 я 73

ISBN М.К.Хаджинов, 2013

ISBN © БГУИР, 2013

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

ПРОГРАММИРОВАНИЕ В СРЕДЕ MATLAB. ИЗУЧЕНИЕ ХАРАКТЕРИСТИК ОДНОКОНТУРНЫХ СИСТЕМ.

Цель работы: научиться составлять программы на языке Matlab в виде М-файлов для исследования одноконтурных систем с типовыми регуляторами. Освоить методику расчёта ПИД-регулятора.

Краткие теоретические сведения:

Система Matlab является интерактивной системой для выполнения инженерных и научных расчетов, которая ориентирована на матричные вычисления. Matlab – это одновременно и операционная среда, и язык программирования. Пользователь может сам написать специализированные функции и программы, которые оформляются в виде М-файлов. Накопление родственных функций приводит к концепции пакетов прикладных программ, каждый из которых решает определенную задачу или проблему. Операционная среда Matlab – это множество интерфейсов, которые поддерживают связь этой системы с внешним миром через командное окно, инструментальную панель, подсистемы просмотра рабочей области и путей доступа, редактор / отладчик М-файлов, специальные меню.

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

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

Управление путями доступа(включение рабочего каталога work в список путей доступа Matlab).

Для поиска М-файлов используют механизм путей доступа. В процессе сеанса работы можно вывести на терминал или внести изменения в список путей доступа, используя следующие функции:

addpath d:\work – добавляет каталог d:\work в список путей доступа;

rmpath d:\work – удаляет путь к d:\work из списка.

path – выводит на экран список путей доступа.

Создание М-файлов в среде Matlab.

В языке Matlab имеются программы двух типов с расширением *.m.

· Script-файлы( файлы-сценарии или управляющие программы)

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

Главным внешним отличием текстов этих двух видов файлов является то, что файл-функции имеют первую строку вида:

function [перечень выходных величин] = имя процедуры (перечень входных величин).

Например, создадим функцию, вычисляющую значения квадратичного полинома:

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

%Формат вызова: example(x,a,b,c)

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

Некоторые особенности записи текста программы на языке Matlab:

· Любой оператор, записанный в командной строке исполняется при нажатии клавиши Enter.

· Несколько операторов в одной строке разделяются символами “ ; ” или “ , ”. Пробел является разделителем только элементов массива внутри квадратных скобок.

· Длинный оператор можно записать в несколько строк, используя знак переноса - три точки (…).

· Если оператор не заканчивается символом “ ; ”, то результат его действия при выполнении программы будет выведен в командное окно.

· Строка программы или её часть, начинающаяся с символа “ % ” не выполняется, она воспринимается системой как комментарий.

· Строки комментария, предшествующие первому выполняемому оператору, воспринимаются как описание программы и выводятся в командное окно по команде help .

· Операторы начала и окончания текста программы отсутствуют, т.е. начало и конец программы никак не маркируются.

· Переменные не описываются и не объявляются. Любое новое имя воспринимается системой как имя матрицы, размер которой устанавливается при предварительном вводе значений ее элементов.

· Имена переменных могут содержать лишь буквы латинского алфавита или цифры и должны начинаться с буквы. Общее число символов - не более 19.

· В именах переменных могут использоваться как прописные, так и строчные буквы с учетом того, что система Matlab их различает.

Создание программы на языке Matlab осуществляется при помощи текстового редактора, который вызывается автоматически при открытии m-файлов командами New, Open из меню File. Запуск m-файлов на выполнение производится из командной строки по имени файла без расширения.

Получение справочной информации (команды работы с Help).Получить информацию о функциях Matlab можно командой help:

Список каталогов выводит на экран команда help без аргументов. Список команд каталога выводится на экран командой help . Основной и наиболее быстрый способ выяснить синтаксис и особенности применения М-функции – это использовать команду help .

Порядок выполнения работы:

1. Подключить к Матлабу команды addpath рабочий каталог trenag с программами и электронными тренажёрами.

2. Освоить методику расчёта интегральных регуляторов с помошью электронного тренажёра (tr_PID) и получить параметры ПИД-регулятора для конкретного объекта.

3. Написать программу исследования одноконтурной системы управления.

Блок схема программы:

1. Ввод модели объекта управления.

1.1. Запись ss-формы модели по передаточной функции tf-формы (test_ssmodel).

1.2. Преобразование форм моделей в tf, zpk, ss-формы.

1.3. Запись передаточной функции по ЛАХ (test_LAXmodel).

2. Ввод регулятора.

3. Формирование и исследование разомкнутого контура управления.

3.1. ЛАХ (bode).

3.2. Запасы устойчивости (margin, wc_ph).

3.3. АФЧХ (nyquist).

4. Замыкание контура управления (feedback, connect).

5. Исследование характеристик замкнутого контура управления.

5.1. Переходных характеристик (step, khar_sysz).

5.2. Показателя колебательности АЧХ (norm).

5.3. Карты нулей и полюсов (pzmap).

5.4. Интегральных оценок (khar_sysz).

В скобках указаны имена функций, программ или электронных тренажёров.

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

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

1. Чем отличаются друг от друга переменные Script-файла и m-функции в использовании рабочего пространства системы?

2. Как воспользоваться справочной информацией?

3. Объяснить физический смысл переходной характеристики, передаточной функции, амплитудно- и фазо-частотной характеристик.

4. В чем отличие точной ЛАХ от асимптотической?

5. Что такое коэффициент затухания, как он влияет на вид переходной характеристики колебательного звена?

6. Что такое физическая реализуемость звеньев? Сформулируйте условие физической реализуемости звена для его передаточной функции.

7. Как реализуются и используются дифференциальные звенья на практике?

8. Как определить передаточную функцию звена по виду его логарифмической амплитудно-частотной характеристики?

9. Как строятся ЛАХ по передаточным функциям элементарных звеньев САУ?

10. Как различаются ЛАХ непрерывных и дискретных звеньев?

11. При разделении звеньев на дифференцирующие, позиционные и интегрирующие какая часть характеристик step определяет тип звена?

12. На каких частотах характеристик bode, nyquist определяется тип звена?

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

М-файл-функция имеет следующие свойства:

  • он начинается с объявления function, после которого указывается имя переменной van – выходного параметра, имя самой функции и список ее входных параметров;
  • функция возвращает свое значение и может использоваться в виде name (Список_параметров) в математических выражениях;
  • все переменные, имеющиеся в теле файла-функции, являются локальными, т. е. действуют только в пределах тела функции;
  • файл-функция является самостоятельным программным модулем, который общается с другими модулями через свои входные и выходные параметры;
  • правила вывода комментариев те же, что у файлов-сценариев;
  • файл-функция служит средством расширения системы MATLAB;
  • при обнаружении файла-функции он компилируется и затем исполняется, а созданные машинные коды хранятся в рабочей области системы MATLAB.

Последняя конструкция vаг=выражение вводится, если требуется, чтобы функция возвращала результат вычислений.

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

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

После его применения переменные выхода var1, var2,… становятся определенными и их можно использовать в последующих математических выражениях и иных сегментах программы. Если функция используется в виде nаmе(Список_параметров), то возвращается значение только первого выходного параметра – переменной var1.



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

Матлаб и решит уравнение, и аппроксимирует, и построит график функции. Понимаете, что это значит, друзья?

Это значит, что MATLAB – один из мощнейших на сегодняшний день пакетов обработки данных. Название расшифровывается как Matrix Laboratory. Матричная Лаборатория, если по-русски. Возможности программы покрывают практически все области математики. Так, пользуясь матлабом, Вы сможете:

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


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

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

MATLAB как язык программирования


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


MATLAB - серьезное средство для серьезных ребят

Основной рабочий файл программы – М-файл. Это бесконечный текстовый файл, и именно в нем происходит непосредственно программирование вычислений. Кстати, пусть Вас не пугает это слово – для того, чтобы работать в MATLAB, вовсе не нужно быть профессиональным программистом.

М-файлы делятся на

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

Строка определения функции сообщает системе MATLAB, что файл является М-функцией, а также определяет список входных аргументов. Так, строка определения функции average имеет вид:
function y = average(x)
Где:

  1. function - ключевое слово, определяющее М-функцию;
  2. y - выходной аргумент;
  3. average - имя функции;
  4. x - входной аргумент.

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

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

Недостатки работы с MATLAB


MATLAB - хорошо, но тяжело

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

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

И напоследок. Если Вы не знаете, почему все в Вашей жизни пошло так, а не иначе, спросите об этом у матлаба. Просто наберите в командной строке “why” (почему). Он ответит. Попробуйте!

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

Читайте также: