Щипанов К.А. Использование математического пакета matlab для решения задач автоматического управления - файл n1.doc

Щипанов К.А. Использование математического пакета matlab для решения задач автоматического управления
Скачать все файлы (440.5 kb.)

Доступные файлы (1):
n1.doc441kb.10.01.2014 23:13скачать

n1.doc


Использование математического пакета MatLab для решения задач автоматического управления



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

Общие сведения о пакете MatLab


MATLAB – язык высокого уровня для научно-технических вычислений. Он объединяет в себе численные расчеты, визуализацию и программирование.

MATLAB (Matrix Laboratory) – интерактивная система, в которой основным элементом данных является массив. Основные области применения:

  1. Математические вычисления. Разработка алгоритмов.

  2. Моделирование, анализ данных и визуализация.

  3. Научная и инженерная графика.

  4. Разработка приложений, включающих графический интерфейс пользователя.


Система MATLAB состоит из 5 основных частей.

  1. Язык MATLAB. Это язык матриц и массивов высокого уровня с управлением потоками, функциями, структурами данных, вводом-выводом и с особенностями объектно-ориентированного программирования. Все это позволяет создавать как небольшие программы, так и сложные программные комплексы.

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

  3. Управляемая графика. Это графическая система MATLAB, которая включает в себя команды высокого уровня для визуализации двух- и трехмерных данных, обработки изображений и анимации. Также система содержит средства для создания GUI (графического пользовательского интерфейса).

  4. Библиотека математических функций. Это обширная коллекция вычислительных алгоритмов.

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


Специализированные средства собраны в пакеты, называемые ToolBox – наборы функций для решения различных классов задач. Наиболее популярные из них:

  1. Communications Toolbox – проектирование, моделирование и анализ систем связи и передачи информации.

  2. Control System Toolbox – проектирование, моделирование и анализ систем автоматического управления.

  3. Image Processing Toolbox – цифровая обработка и анализ изображений.

  4. Optimization Toolbox – оптимизация линейных и нелинейных функций.

  5. Partial Differential Equation Toolbox – решение задач математической физики.

  6. Statistics Toolbox – статистические вычисления.

  7. Symbolic Math Toolbox – интегрированная среда для символьных вычислений.

  8. Simulink – интерактивная среда для моделирования и анализа широкого класса динамических систем. Моделирование процесса происходит путем перетаскивания блоков диаграмм на экране и изменения их свойств. Simulink работает с линейными, нелинейными, непрерывными, дискретными, многомерными системами.


Рабочая среда

Рабочая среда MATLAB (рис. 1.1) содержит следующие элементы:


Командное меню Command Window – основной элемент среды, позволяющий оперативно решить большинство предложенных в курсе примеров и задач.



Рис. 1.1. Рабочая среда MATLAB
Основные объекты

Использование переменных

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

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

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

После каждой операции присваивания MATLAB выдает результат.

Пример

>> z = 3.14

z =

3.1400
Для подавления вывода результата необходимо завершить операцию присваивания символом ; (точка с запятой).

Пример

>> z = 3.14;
Именем переменной может быть любая последовательность букв и цифр без пробела, начинающаяся с буквы. Система запоминает и идентифицирует только 31 начальный символ имени переменной. Строчные и прописные буквы различаются (например, Z и z – разные переменные).

MATLAB запоминает значения всех переменных, определенных во время сеанса работы. Если возникает необходимость вывода значения некоторой переменной z, то следует просто набрать z в командной строке и нажать .

Пример

>> z

z =

3.1400

Переменные, определенные ранее, можно использовать в других формулах.

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



Рис. 1.2. Окно просмотра переменных рабочей среды

Для очистки памяти от переменной используется функция clear (рис. 1.2).

clear – удаление всех переменных;

clear z – удаление переменной z;

clear a, b, c – удаление переменных a, b и c.

Также можно воспользоваться кнопкой Delete Selection в окне Workspace.



Рис. 1.3. Удаление переменных

Пример

>> a=1;

>> b=2;

>> c=3;

>> a+b+c

ans =

6

Удаляем переменную a:

>> clear a

Теперь при попытке использовать эту переменную в выражении MATLAB выведет сообщение об ошибке:

>> a+b+c

??? Undefined function or variable 'a'.
Формирование векторов и матриц

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

>> x=[1 2 3]

x =

1 2 3

или

>> x=[1,2,3]

x =

1 2 3

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

Пример

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

M =

1 2 3

4 5 6

7 8 9

Для вывода отдельного элемента вектора или матрицы используйте выражения вида x(I) или M(I,J).

Пример

>> M(2,2)

ans =

5

>> x(1)

ans =

1
Для формирования упорядоченной числовой последовательности в MATLAB используется оператор : (двоеточние).

Начальное_значение:Шаг:Конечное_значение

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

Пример

I=1:1:3

I =

1 2 3

>> J=5:-1:1

J =

5 4 3 2 1
Текстовые комментарии

Текстовые комментарии вводятся с помощью символа %, например, так:

% Это текстовый комментарий
Сохранение и загрузка рабочей сессии

Самый простой способ сохранить значения всех переменных – использовать в меню File пункт Save Workspace As. При этом появляется диалоговое окно, в котором следует указать каталог и имя файла. В следующем сеансе работы для восстановления значений переменных следует открыть сохраненный ранее файл. После этого значения всех переменных станут доступными.

Сохранение и восстановление переменных рабочей среды можно выполнить из командной строки. Для этого служат команды save и load.

Пример

Сохранить рабочую среду

>> save my_work1

Загрузить рабочую среду

>> load my_work1

Библиотека функций Control System ToolBox. Работа с lti-объектами


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

В пакете реализованы:

  1. Обширный набор средств для анализа одномерных и многомерных динамических систем (объектов).

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

  3. Построение частотных характеристик: диаграмм Боде, Найквиста, Николса и др.

  4. Разработка замкнутых систем регулирования.

  5. Проектирование регуляторов.

  6. Определение характеристик моделей

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

Основными вычислительными объектами рассматриваемого пакета являются линейные, инвариантные во времени системы LTI (Linear Time-Invariant Systems), также называемые линейными стационарными системами.

Одним из способов задания математической модели lti-системы является создание tf-формы передаточной функции:

(2.1)
Формирование lti-объектов с помощью функции tf

Одномерная передаточная функция h(s)=num(s)/den(s) задается многочленом числителя num и многочленом знаменателя den. В системе MATLAB многочлены представляются как векторы-строки, составленные из коэффициентов многочлена в порядке убывания степеней переменной. Например, вектор [3 4 5] соответствует многочлену 3s2+4s+5.

Пример

Формирование многочлена числителя передаточной функции:

>> num=[1 2]

num =

1 2

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

>> den = [3 4 5]

den =

3 4 5

Формирование передаточной функции:

>> h=tf(num, den)

Передаточная функция формируется в следующем виде:

Transfer function:

s + 2

---------------

3 s^2 + 4 s + 5
Операции над lti-объектами

К lti-объектам можно применять такие базисные алгебраические операции, как сложение, умножение, объединение моделей.

Сложение и вычитание

Сложение lti-объектов адекватно параллельному соединению соответствующих динамических моделей. Операция sys=sys1+sys2 возвращает lti-модель sys параллельного соединения систем (рис. 1.4).



Рис. 1.4. Параллельное соединение систем

Операции сложения в MATLAB эквивалентна функция parallel.

Пример:

>> h2=tf([5],[10 7 3])

Transfer function:

5

----------------

10 s^2 + 7 s + 3

>> h1=tf([5 4],[4 8 12])

Transfer function:

5 s + 4

----------------

4 s^2 + 8 s + 12

>> h3=h1+h2

Transfer function:

50 s^3 + 95 s^2 + 83 s + 72

---------------------------------------

40 s^4 + 108 s^3 + 188 s^2 + 108 s + 36

>> h4=parallel(h1,h2)

Transfer function:

50 s^3 + 95 s^2 + 83 s + 72

---------------------------------------

40 s^4 + 108 s^3 + 188 s^2 + 108 s + 36

Умножение

Умножение lti-объектов адекватно последовательному соединению соответствующих динамических моделей (рис. 1.5). Операция sys=sys1*sys2 возвращает lti-модель sys последовательного соединения систем.



Рис. 1.5. Последовательное соединение систем
Операции умножения в MATLAB эквивалентна функция series.

Пример

Для h1 и h2 из предыдущего примера получаем

>> h4=series(h1,h2)

Transfer function:

25 s + 20

---------------------------------------

40 s^4 + 108 s^3 + 188 s^2 + 108 s + 36
Соединение lti-моделей обратной связью

Выражение sys=feedback(sys1, sys2) возвращает lti-модель sys, соответствующую соединению lti-моделей sys1 и sys2, в контур с отрицательной обратной связью.

Для того чтобы замкнуть систему положительной обратной связью, следует использовать следующее обращение: sys=feedback(sys1, sys2, +1) – рис. 1.6.



Рис. 1.6. Положительная обратная связь

Пример

Объединить объект управления sys1 и регулятор sys2 в контур с отрицательной обратной связью в соответствии с приведенной выше схемой:

>> sys1=tf([5 4],[4 8 12]);

>> sys2=tf([5],[10 7 3]);

>> sys=feedback(sys1,sys2)


Transfer function:

50 s^3 + 75 s^2 + 43 s + 12

---------------------------------------

40 s^4 + 108 s^3 + 188 s^2 + 133 s + 56
Динамические характеристики lti-моделей

В состав библиотеки Control System ToolBox включены функции для анализа динамических характеристик lti-моделей, таких как полюсы и нули, коэффициент передачи, частотные характеристики и др.

Полюсы и нули

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

  1. Pole – вычислить полюсы lti-модели.

  2. Zero – вычислить нули lti-модели.

  3. Pzmap – отобразить полюсы и нули lti-модели на комплексную плоскость (рис. 1.7).


Пример

>> sys1=tf([5 4],[4 8 12]);

>> pole(sys1)

ans =

-1.0000 + 1.4142i

-1.0000 - 1.4142i
>> zero(sys1)

ans =

-0.8000

>> pzmap(sys1)

>> grid



Рис. 1.7. Отображение полюсов и нулей модели на комплексную плоскость
Частотные характеристики

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

Ниже приведен перечень функций для вычисления и построения частотных характеристик:

  1. Bode – логарифмические амплитудные и фазовые частотные характеристики (диаграммы Боде) – рис. 2.8.

  2. Nyquist – частотный годограф Найквиста (амплитудно-фазовая характеристика).


Рассмотрим применение указанных функций на примере непрерывной lti-модели, заданной своей передаточной функцией:

>> sys=tf([6 -2.207 0.2707],[66.38 25.42 3.362 0.04511])

Transfer function:

6 s^2 - 2.207 s + 0.2707

-----------------------------------------

66.38 s^3 + 25.42 s^2 + 3.362 s + 0.04511
Построим логарифмические амплитудные и фазовые частотные характеристики:

>> bode(sys)



Рис. 1.8. Диаграмма Боде

Для того чтобы построить линейные амплитудные и фазовые частотные характеристики, необходимо кликнуть правой кнопкой мыши на области графика частотной характеристики и выбрать пункт Properties контекстного меню (рис. 1.9).



Рис. 1.9. Выбор свойств диаграммы
В открывшемся диалоговом окне перейти на закладку Units и поменять значение поля using на linear scale (рис. 1.10).


Рис. 1.10. Выбор линейной характеристики
Для того чтобы отобразить амплитуду в абсолютных величинах, необходимо в этом же окне поменять значение поля Magnitude in на absolute (рис. 2.11).



Рис. 1.11. Выбор способа отображения амплитуды
Построим частотный годограф Найквиста (амплитудно-фазовую характеристику) – рис. 1.12 – с нанесенной на него координатной сеткой:

>> nyquist(sys)

>> grid



Рис. 1.12. Амплитудно-фазовая характеристика
Реакция lti-моделей на внешние воздействия

Функции step и impulse библиотеки Control System Toolbox вычисляют реакцию системы на ступенчатый и импульсный входной сигнал и строят графики соответствующих переходных процессов (рис. 2.13).

Пример

Вычислим и построим переходную функцию модели sys:

>> sys=tf([6 -2.207 0.2707],[66.38 25.42 3.362 0.04511])

>> step(sys)



Рис. 1.13. Переходная функция модели

Вычислим и построим импульсную переходную функцию модели sys

>> impulse(sys) – рис. 1.14



Рис. 1.14. Импульсная переходная функция модели


Интерактивная среда моделирования Simulink



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

Simulink является достаточно самостоятельным инструментом MATLAB, и при работе с ним совсем не требуется знать сам MATLAB и остальные его приложения. С другой стороны, доступ к функциям MATLAB и другим его инструментам остается открытым и их можно использовать в Simulink. Часть входящих в состав пакетов имеет инструменты, встраиваемые в Simulink (например, LTI-Viewer приложения Control System Toolbox – пакета для разработки систем управления).

Запуск Simulink производится из основного окна MATLAB путем нажатия кнопки на панели инструментов (рис. 1.15).


Рис. 1.15. Запуск Simulink

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



Рис. 1.16. Браузер библиотек Simulink
Библиотека Simulink содержит следующие основные разделы:

  1. Sinks (приемники) – блоки позволяют визуализировать получаемые при моделировании результаты и проконтролировать правильность работы того или иного блока и системы в целом.

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

  3. Continuous (непрерывные элементы) – содержит блоки, которые реализуют динамические звенья, описываемые линейными дифференциальными уравнениями с постоянными коэффициентами.

  4. Discrete (дискретные элементы) – содержит блоки, с помощью которых в модели может быть описано поведение дискретных систем.

  5. Math Operations (математические операции) – содержит блоки, которые реализуют некоторые встроенные математические функции системы MATLAB.


Основные блоки раздела Continuous (непрерывные элементы)

  1. Integrator – представляет идеальное интегрирующее звено.

  2. Derivative – представляет идеальное дифференцирующее звено.

  3. State-Space – позволяет задать линейное звено путем ввода четырех матриц его пространства состояний.

  4. Transfer Fcn – позволяет задать линейное звено путем ввода его передаточной функции.

  5. Zero-Pole – используется для того, чтобы задать звено посредством указания векторов значений его полюсов и нулей, а также значения коэффициента передачи.

  6. Transport Delay – обеспечивает задержку сигнала на заданное количество шагов модельного времени.


Для того чтобы начать сборку блок-схемы моделируемой системы, необходимо вызвать команду File  New  Model.

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

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



Рис. 1.17. Построение блок-схемы моделируемой системы

Для изменения параметров блоков, заданных по-умолчанию, необходимо дважды щелкнуть левой клавишей мыши, указав курсором на изображение блока (рис. 1.18).


Рис. 1.18. Окно редактирования параметров блока

Для запуска процесса моделирования используется кнопка Start Simulation или команда меню Simulation  Start.


Учебный текст
© perviydoc.ru
При копировании укажите ссылку.
обратиться к администрации