Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Основные элементы языка программирования MATLAB




ТЕОРИЯ АВТОМАТИЧЕСКОГО УПРАВЛЕНИЯ

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

 

 

МОДЕЛИРОВАНИЕ САУ В СИСТЕМЕ MATLAB

 

Казань 2007

 


Содержание

 

1. Общие сведения. 3

1.1. Понятие о файлах-сценариях и файлах-функциях. 3

1.2. Основные элементы языка программирования MATLAB.. 5

1.3. Определение моделей линейных непрерывных систем в MATLAB.. 10

2. Экспериментальная часть. 19

Список литературы.. 21

 


Цель работы: овладение методикой моделирования систем автоматического управления (САУ) в системе инженерных и научных расчетов MATLAB.

 



Общие сведения

 

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

Ниже приводятся основные минимальные сведения по системе MATLAB для решения задач моделирования САУ. Более подробное описание системы MATLAB и пакетов ее расширения содержится в [1-3].

 

Понятие о файлах-сценариях и файлах-функциях

 

При загрузке системы MATLAB на мониторе появляется основное окно системы, в котором можно выделить окно команд (Command Window).

После появления символа “ >> " система готова к проведению вычислений и созданию программ в командном режиме. Для этого можно на языке MATLAB записывать программы. Операторы заканчиваются символом « ; » – точка с запятой. Временно точка с запятой блокирует вывод численного значения результата этого оператора в окне команд. В одной строке можно записать несколько операторов, а сами строки автоматически нумеруются при нажатии клавиши Enter. Если программа полностью записана, то после нажатия клавиши Enter она выполняется. Ниже программы появляется ее результат. В таком режиме выполнять решения задач нецелесообразно, т.к. исправить возможные ошибки после нажатия клавиши Enter уже нельзя. Поэтому записывать программы, их редактировать и отлаживать необходимо в так называемых М-файлах.

М-файл создается при выполнении команды New меню File. Для ускорения этой команды выведена специальная пиктограмма в виде белой странички с загнутым уголком на панели инструментов. Щелкнув по пиктограмме стрелкой мышки, получаем окно М-файла, на котором можно записывать, редактировать и отлаживать любые программы решения научных и инженерных задач. Данный М-файл по умолчанию имеет название Untitled(Безымянный). Чтобы дать ему имя, необходимо в меню этого окна File выполнить команду Save as и в другом окне указать папку и имя этого файла (также как и имена переменных, описанных ниже). После указания имени и сохранения М-файла он готов для выполнения записанной программы. Для этого необходимо щелкнуть мышкой по пиктограмме Run (выполнить), обозначенной в виде страницы со стрелкой . Результат выполнения программы или сообщения об ошибках появится в окне команд.

Описанный процесс называется созданием М-файла сценария сессии. Файл-сценарий, именуемый также Script - файлом, имеет весьма простую структуру:

% Комментарий, если необходимо.

Тело программы с любыми выражениями.

Важными являются следующие свойства Script- файлов:

1. Они не имеют входных и выходных аргументов.

2. Работают с данными из рабочей области.

3. В процессе выполнения не компилируются.

4. Представляют собой последовательность операций, аналогичную той, что используется в сессии.

Кроме Script - файла, в MATLAB существует М-файл функция.

Отличие М-файла функции от сценария состоит в том, что он является аналогом подпрограммы типа function в языке Pascal.

Структура М-файла функции с одним выходным параметром имеет вид:

function var = fname (Список параметров)

% Комментарий, если необходимо.

Тело программы с любыми выражениями.

var = выражение

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

1. Он начинается с ключевого слова function, после которого указывается имя переменной var - выходного параметра, имя самой функции fname и список ее входных параметров, отделенных запятой.

Внимание: имя М-файла функции должно совпадать с самой fname (именем самой функции). MATLAB автоматически присваивает данное имя при выполнении команды Save as.

2. Результат выполнения М-файла функции присваивается имени функции, которое может использоваться в математических выражениях подобно функциям sin(x), log(x) и т. п.

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

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

5. При обнаружении файла-функции он компилируется и затем исполняется.

 

Основные элементы языка программирования MATLAB

Алфавит языка программирования. В MATLAB, как и в других системах, используются все буквы латинского алфавита от А до Z и арабские цифры от 0 до 9. При этом большие и малые буквы это разные переменные и константы. Кроме букв латинского алфавита используются все специальные символы клавиатуры компьютера.

Арифметические операторы.Число арифметических операторов в MATLAB значительно расширено и включает в себя матричные и арифметические операции. В таблице 1.1 приводится список арифметических операторов.

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

Таблица 1.1

Функция Обозначение (синтаксис)
Сложение + (М1+М2)
Вычитание – (М1–М2)
Матричное умножение * (М1*М2)
Поэлементное умножение массивов .* (М1.*М2)
Возведение матрицы в степень ^(M^x)
Поэлементное возведение массива в степень .^ (M.^x)
Деление матриц слева направо / (Ml / М2)
Поэлементное деление массивов слева направо ./ (Ml ./ М2)
Деление матриц справа налево \ (Ml \ M2)
Поэлементное деление массивов справа налево .\ (Ml .\ M2)

 

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

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

Для задания переменным определенных значений используется оператор присваивания, вводимый знаком равенства =

Имя переменной = Выражение;

Типы переменных заранее не декларируются. Они определяются выражением, значение которого присваивается переменной. Имя переменной может содержать сколько угодно символов, но идентифицируется только 31 начальный символ. Имя любой переменной должно быть уникальным. Имя должно начинаться с буквы, может содержать буквы, цифры и символ подчеркивания « _ ». Недопустимо включать в имена пробелы и специальные знаки.

Ввод и вывод данных. В языке MATLAB нет явных операторов ввода вывода данных. Эта проблема решается для ввода данных оператором присваивания и использованием системных констант. Вывод данных осуществляется еще проще. Для этого необходимо после математического выражения не ставить символ « ; » - точку с запятой. К системным константам относятся: pi= 3.1415 – число "пи"; i или j – мнимые единицы; NaN – неопределенность в виде ; Inf – бесконечность типа ; ans – результат последней операции и др.

Формирование векторов и матриц.Описанные правила вычислений распространяются и на более сложные вычисления, которые при использовании обычных языков программирования (типа Pascal) требуют составления специальных программ. MATLAB специально предназначен для проведения сложных вычислений с векторами и матрицами. При этом по умолчанию предполагается, что каждая переменная - это вектор или матрица. Например, если задано х = 1.56 (ставится точка вместо запятой), то это значит, что х - это вектор с одним элементом, равным 1,56. Если надо задать вектор-строку из трех элементов, то их значения надо перечислить в квадратных скобках, разделяя пробелами.

>> v=[2.36 -0.1 -3]

 

v =

 

2.36 -0.1 -3

 

Если разделить элементы точкой с запятой, то получим вектор-столбец:

>> v=[2.36;-0.1;-3]

 

v =

 

2.36

-0.1

-3

 

Задание матрицы требует указания несколько строк. Для разграничения строк используется точка с запятой:

>> M=[1 2 3;4 5 6;7 8 9]

 

M =

 

1 2 3

4 5 6

7 8 9

 

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

>> v(2), M(1,3)

 

ans =

 

1

 

ans =

 

3

 

Наряду с операциями над отдельными элементами матриц и векторов MATLAB позволяет производить арифметические операции сразу над всеми элементами. Для этого перед знаком операции ставится точка.

Имеются также ряд особых функций для задания векторов и матриц. Отметим функции ones и zeros. Эти функции служат для создания одномерных и многомерных массивов. Функция ones создает массив с единичными элементами

>> a=ones(2,3)

 

a =

 

1 1 1

1 1 1

 

Функция zeros создает массив с нулевыми элементами

>> b=zeros(2,3)

 

b =

 

0 0 0

0 0 0

Оператор двоеточие. Достаточно часто необходимо выполнить формирование упорядоченных числовых последовательностей. Такие последовательности нужны для создания векторов или значений аргументов х при построении графиков. В MATLAB для этого используется оператор двоеточие « : », который представляется следующим образом:

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

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

>> x=-1:0.5:1

 

x =

 

-1.0000 -0.5000 0 0.5000 1.0000

 

Оператор цикла. Оператор for ... end используется для организации цикла с фиксированным числом повторений. Он имеет вид:

for var = Выражение

Операторы

end;

Здесь var – счетчик цикла - любая переменная. Выражение записывается в виде s : d : е, где s — начальное значение счетчика цикла var, d - шаг изменения и е - конечное значение var. Возможна и запись в виде s : е, тогда d = 1. Список операторов завершается ключевым словом end.

Возможны вложенные циклы

  for i=1:3 for j=1:3 a(i,j)=i*j; end;end

 

В результате выполнения этого цикла формируется матрица a

>> a

 

a =

 

1 2 3

2 4 6

3 6  9

 

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

Таблица 2.

Функция Обозначение (синтаксис)
Определитель матрицы det ( det(A))
Ранг матрицы rank ( rank(A) )
Обратная матрица  ( inv(A) )
Матричная экспонента  ( expm(A) )
Собственные значения матрицы  (eig(A) )

 

Для получения справочных данных о команде и операторе, например, eig, необходимо ввести команду

>> help eig










Последнее изменение этой страницы: 2018-05-10; просмотров: 230.

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