Файл функция в матлабе

Файл функция в матлабе

МЕТОДИЧЕСКОЕ ПОСОБИЕ

к лабораторным работам по курсу «Компьютерное проектирование систем автоматического управления» для студентов специальности 53 01 07 «Информационные технологии и управление в технических системах»

М54

Хаджинов М.К.

методическое пособие к лабораторным работам по курсу «Компьютерное проектирование систем автоматического управления» д для студентов специальности 53 01 07 «Информационные технологии и управление в технических системах» / М.К.Хаджинов. – Мн.: БГУИР, 2013.-22 с.

ISBN

Проведено описание и порядок выполнения лабораторных работ по курсу «Компьютерное проектирование систем автоматического управления». Содержание работ определено рабочей программой курса в соответствии с учебными планами специальности 53 01 07 «Информационные технологии и управление в технических системах».

По каждой работе изложены краткие теоретические сведения, представлены варианты заданий, приведены примеры программ в 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-файлов на выполнение производится из командной строки по имени файла без расширения.

Читайте также:  Dexp wfa 601 драйвер

Получение справочной информации (команды работы с 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 определяется тип звена?

13. В каком месте плоскости pzmap искать признаки типа звена?

14. Каковы признаки типа звена в zpk-модели?

Лабораторная работа N2

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: На стипендию можно купить что-нибудь, но не больше. 9137 — | 7300 — или читать все.

91.146.8.87 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

Отключите adBlock!
и обновите страницу (F5)

очень нужно

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

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

М-файлы представляют собой обыкновенные текстовые файлы, содержащие
команды программы MATLAB. Вы можете создавать и модифицировать эти файлы,
используя любой текстовый редактор или текстовый процессор, который
способен сохранять файлы в виде простого текста в формате ASCII. (Это такие
редакторы, как Notepad и WordPad в системе Windows, и emacs и vi — в системах
UNIX.) Для большего удобства вы можете использовать встроенный модуль Editor
(Редактор), который можно запустить с помощью команды edit, сам по себе
(для редактирования нового файла), или выбрав имя существующего М-файла в
текущем каталоге. Для запуска модуля Editor (Редактор) вы можете также
использовать меню File (Файл) или два крайних слева значка на панели
инструментов, как для создания нового М-файла, так и для открытия уже
существующего. Двойной щелчок мышью на М-файле в окне Current Directory
(Текущий каталог) также откроет выбранный файл в модуле Editor (Редактор).

М-файлы-сценарии

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

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

Читайте также:  Сервис поиск решения в excel 2010

Вы можете заставить программу MATLAB запустить (или выполнить) этот
сценарий, введя команду taski в окне Command Window (Командное окно). (Вам не
следует вводить здесь расширение .m; программа MATLAB автоматически
добавляет расширение, когда производит поиск файлов.) Вывод результатов (но не
команд, с помощью которых вычисляется результат) будет отображен в окне
Command Window (Командное окно). Теперь последовательность команд может
быть легко изменена путем модификации М-файла task1.m. Например, если вы
хотите вычислить также sin(0.0001)/ 0.0001, вы можете модифицировать М-файл:

format long
х = [0.1, 0.01, 0.001, 0.0001];
у = sin(x)./x

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

  • Некоторые переменные, задаваемые при запуске М-файлов-сценариев, будутсохраняться, как если бы вы ввели эти переменные в окне Command Window (Командное окно) напрямую. Например, программа, рассмотренная выше, послужит причиной того, что в будущем все числовые результаты будут отображаться с точностью до 15 знака. Чтобы вернуться к формату с 5 знаками, следует ввести команду format short.

Режим ячейки

Новые возможности программы MATLAB 7 позволяют разделять М-файл —
сценарий на части (элементы), которые называются ячейками. Это особенно полезно,
если ваш М-файл длинный или если вы собираетесь его публиковать (последняя
тема рассматривается в разделе «Публикация М-файлов»). Чтобы запустить
новую ячейку, вставьте строку комментария (которая послужит в качестве
заголовка ячейки), начав эту строку двумя знаками процента %%. Если вы откроете
М-файл в модуле Editor (Редактор) и выберете команду меню Cell => Enable Cell
Mode (Ячейка => Включить режим ячейки), в этом случае под первой панелью
инструментов будет отображена вторая панель. Когда вы щелкнете мышью на
какой-нибудь строке в М-файле, ячейка, которой принадлежит эта строка, будет
выделена бледно-желтым цветом. Вы можете произвести вычисление этой
ячейки, выбрав команду меню Cell => Evaluate Current Cell (Ячейка => Вычислить
текущую ячейку) или щелкнув мышью на значке Evaluate cell (Вычислить ячейку).
Это может быть весьма полезным, если вы внесли изменения только в одну
ячейку и не хотите снова полностью запускать весь сценарий. Имеются также элемент
меню и значок для выполнения операции Evaluate cell and advance
(Вычислить ячейку и далее). Так как вы включили режим ячейки, вы можете также
создать дополнительные ячейки, выбрав команду меню Cell => Insert Cell Divider
(Ячейка => Вставить разделитель ячеек) или щелкнув мышью на значке %+ .

Инициализация М-файлов-сиенариев

Чтобы результаты М-файла-сценария были воспроизводимы, сценарий должен
быть автономным, независимым от других переменных, которые вы можете
задать где-либо в течение сессии программы MATLAB, оставшейся от предыдущих
вычислений графика должна быть также удалена. Например, если вы зададите
переменную с именем sin в окне Command Window (Командное окно), а затем
запустите сценарий task1.m, вы получите сообщение об ошибке, так как в
текущий момент sin будет представлять переменную, а не обычную встроенную
функцию. Помня об этом, вы можете ввести строку clear all в начало М-файла-
сценария, чтобы быть уверенным, что предыдущие настройки переменных не
повлияют на результаты. Вы можете также ввести строку close all в начале
М-файла-сценария, создающего графику, чтобы закрыть все окна изображений и
начать «с чистого листа».
Как отмечалось ранее, команды в М-файле-сценарии не будут автоматически
отображаться в окне Command Window (Командное окно). Если вы хотите, чтобы
команды отображались вместе с результатами, добавьте команду echo on в
начало сценария (нелишним будет также добавить команду echo off в конец
сценария). Тогда и любые комментарии в М-файле будут также отражены. При запуске
длинного М-файла-сценария подобная операция полезна, чтобы отслеживать:
какой вывод какому вводу соответствует.

Ниже представлена версия файла task1.m с более подробными комментариями, в
которой отображается как ввод, так и вывод.

clear all % remove old variable definitions
echo on % display the input in the command window
format long % turn on 15 digit display
x = [0.1, 0.01, 0.001]; % define the x values
у = sin(x)./x % compute the desired quotients
% These values illustrate the fact that the limit of
% sin(x)/x as x approaches 0 is equal to 1.
echo off

Автозагрузка М-файла

При запуске программа MATLAB производит поиск в пути по умолчанию на
предмет М-файла-сценария с именем startup.m. Если вы создадите такой файл, то
команды, которые он содержит, будут запускаться каждый раз, когда запускается
программа MATLAB. Вы можете использовать этот файл для сохранения настроек,
которые переходят из одной сессии в другую, например, изменения текущего
каталога или пути. (Кроме команд cd и addpath, рассмотренных выше, вы
можете использовать команду rmpath для удаления каталогов из пути.)

М-файлы-функиии

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

Читайте также:  Kwork магазин фриланс услуг

Давайте вернемся к рассмотренной выше задаче, в которой мы вычисляли
некоторые значения sin(x) /х, где х = 10^b при некоторых значениях b. Кроме
того, предположим, что вы хотите найти наименьшее значение b, для которого
sin(10^b)/ (10^b), и чтобы результат был равен 1 с точностью до 15 знаков.

Ниже представлен М-файл-функция с именем sinelimit.m, составленный с целью
выяснения этого вопроса:

function у = sinelimit (с)
% SINELIMIT computes sin (x)/x for x = 10^(-b)
% where b = 1, . с.
Format long
b = 1:c;
x = 10.^(-b);
у = (sin (x)./x) ‘ ;

Первая строка файла начинается со слова function, которое идентифицирует
файл как М-файл-функцию. (В модуле Editor (Редактор) это зарезервированное
слово выделяется синим цветом.) Первая строка М-файла задает имя функции и
описывает как входящие аргументы (или параметры), так и исходящие значения.
В этом примере функция называется sinelimit. Имя файла (за исключением
расширения .т) и имя функции должны совпадать. Когда вы создаете этот новый
М-файл-функцию в безымянном окне редактора и выбираете команду Save
(Сохранить), модуль Editor (Редактор) сам присваивает файлу имя sinelimit.m.
Функция в нашем примере имеет для ввода один элемент, который внутри М-файла
обозначен как с. В качестве результата возвращается тоже один элемент —
значение у, появляющееся в конце выполнения функции.
Неплохой практикой является снабжать первую строку М-файла-функции одной
или более строками комментариев, разъясняющих, что делает М-файл. При этом
команда help автоматически извлечет данную информацию. Например:

SINELIMIT computes sin (x)/x for x = 10^(-b)
where b = 1, . . . , с.

Остальные строки М-файла определяют функцию. В данном примере b задается в
качестве строчного вектора, состоящего из целых чисел от 1 до с, затем х
вычисляется из Ь, и, наконец, у определяется из х.

  • Переменные, которые используются в М-файле функции, такие как b, x и у в файле sinelimit.m, являются локальными переменными. Это означает, что, в отличие от переменных, заданных в М-файле-сценарии, эти переменные не связаны с любыми другими переменными с такими же именами, которые вы могли использовать в окне Command Window (Командное окно). Программа MATLAB не запоминает значения этих переменных после того, как М-файл-функция будет выполнен. Для получения более полных сведений обратитесь к разделу «Переменные в М-файлах- функциях» в главе 4.

Обратите внимание, что строки, задающие b, x и у, заканчивается точкой с
запятой. Использование точки с запятой в конце строк определяет отсутствие
вывода результатов для этих строк, то есть результат работы этих строк не будет
отображаться в окне Command Window (Командное окно). Несмотря на то, что
отображение результатов промежуточных вычислений может быть полезным
для отладки, в основном вам следует пресекать весь вывод в М-файле-функции.
Ниже представлен пример, показывающий, как используется функция sinelimit:

» sinelimit (5)
ans =
0.99833416646828
0.99998333341667
0.99999983333334
0.99999999833333
0.99999999998333

Ни одно из значений b от первого до пятого не приводит к желаемому
результату, 1 с точностью до 15 знака. Судя по выведенному результату, можно надеяться
найти ответ на ранее поставленный вопрос, введя команду sinelimit A0).
Попробуйте!

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

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

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

Начало работы

Изучите основы MATLAB

Основы языка

Синтаксис, индексация и обработка массива, типы данных, операторы

Импорт и анализ данных

Импорт и экспорт данных, в том числе и больших файлов; предварительная обработка данных, визуализация и исследования

Математика

Линейная алгебра, дифференцирование и интегрирование, преобразования Фурье и прочая математика

Графика

2D и 3D графики, изображения, анимация

Программирование

Скрипты, функции и классы

Создание приложений

Разработка приложений с помощью App Designer, программируемого рабочего процесса или GUIDE

Инструменты разработки программного обеспечения

Отладка и тестирование, организация крупных проектов, интеграция с системой контроля версий, упаковка тулбоксов

Внешние интерфейсы языка

Внешние интерфейсы к языкам и библиотекам, включая Python ® , Java ® , C, C++.NET и веб-сервисы

Среда и настройки

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

Ссылка на основную публикацию
Adblock detector