Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2017 ТАУ ПРАКТИКА.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
358.91 Кб
Скачать

Министерство образования и науки Российской Федерации

Федеральное агентство по образованию

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ

(ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)

« МАИ »

ФАКУЛЬТЕТ N 1

КАФЕДРА 106

Маркин Н.Н.

Методическое пособие для проведения практических занятий по дисциплине «Теория автоматического управления»

М о с к в а

2017

Введение.

1.Исследование линейных стационарных систем

(пакет Control Toolbox)

1.1 Ввод и преобразование моделей.

Ввод модели линейной стационарной системы (ЛСС) в среду пакета CONTROL возможен в трех формах – в форме матриц пространства состояния, в виде коэффициентов числителей и знаменателей передаточных функций и в форме задания нулей, полюсов и коэффициента передачи системы.

К процедурам создания LTI-моделей относятся:

ss Создает модель пространства состояния по заданным матрицам A. B, C, D уравнений состояния системы

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

tf Создает модель по заданным передаточным функциям системы

zpk Создает модель по заданным нулям, полюсам и коэффициентам передачи системы

filt Создает модель по дискретным передаточным функциям, записанным в форме полиномов от z-1

set Присваивает значения некоторым другим полям LTI-объекта (названиям входов и выходов, названиям систем и.т.п.)

Указанные процедуры позволяют создавать как непрерывные модели , так и дискретные. В последнем случае к числу входных параметров процедуры следует добавить в конце значение параметра Ts – шага дискретизации, а вводимые значения коэффициентов уже должны задавать параметры дискретных передаточных функций (для функций tf и zpk) либо матрицы конечно-разностных уравнений пространства состояния – при использовании процедур ss и dss. При использовании процедуры filt должны задаваться векторы коэффициентов числителя и знаменателя дискретной передаточной функции, представленной в виде отношения полиномов z-1. Ниже приведено несколько примеров.

» kzv1 = tf([1 4], [1 2 100])

Transfer function:

s + 4

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

s^2 + 2 s + 100

» kzv2 = tf([1 4], [1 2 100],0.01)

Transfer function:

z+ 4

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

z^2 + 2 z + 100

Sampling time: 0.01

» kzv3 = tf([1 4], [1 2 100],’Variable’,’z^-1’)

Transfer function:

1 + 4 z^-1

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

1 + 2 z^-1 + 100 z^-2

Sampling time: unspecified

» kzv4 = filt([1 4], [1 2 100])

Transfer function:

1 + 4 z^-1

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

1 + 2 z^-1 +100 z^-2

Sampling time: unspecified

Как следует из примеров, процедура filt полностью аналогична процедуре tf с добавлением в конец списка входных параметров записи ‘Variable’,’z^-1’.

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

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

sysd = c2d(sys, Ts, method)

Здесь sys – исходная непрерывная заданная модель, sysd – получаемый в результате работы процедуры дискретный аналог исходной системы, Ts – задаваемое значение шага дискретизации, method – параметр, определяющий метод дискретизации. Последний параметр может принимать одно из значений:

‘zoh’ Соответствует применению экстраполятора нулевого порядка: внутри интервала дискретизации сигналы аппроксимируются постоянной величиной, равной значению сигнала в начале интервала дискретизации

‘foh’ Соответствует применению экстраполятора первого порядка: внутри интервала дискретизации сигналы аппроксимируются отрезками прямых, проходящих через концы кривой сигнала в интервале дискретизации

‘tustin’ Билинейная аппроксимация Тастина внутри интервала дискретизации

‘prevarp’ Та же аппроксимация Тастина с заданной частотой предыскривления

‘matched’ Метод согласования нуля и полюса

Далее приведены примеры перевода введенного ранее непрерывного колебательного звена kzv1 в дискретные звенья разными методами:

» KZVd1= c2d(kzv1,0.01)

Transfer function:

0.01008 z – 0.009687

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

z^2 – 1.97 z + 0.9802

Sampling time: 0.01

» KZVd2= c2d(kzv1,0.01,’zoh’)

Transfer function:

0.01008 z – 0.009687

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

z^2 – 1.97 z + 0.9802

Sampling time: 0.01

» KZVd3= c2d(kzv1,0.01,’foh’)

Transfer function:

0.005029 z^2 + 0.0002308 z – 0,004864

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

z^2 – 1.97 z + 0.9802

Sampling time: 0.01

» KZVd4= c2d(kzv1,0.01,’tustin’)

Transfer function:

0.005037 z^2 + 0.0001975 z – 0.00484

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

z^2 – 1.97 z + 0.9802

Sampling time: 0.01

» KZVd5= c2d(kzv1,0.01,’prewarp’,50)

Transfer function:

0.005145 z^2 + 0.000206 z – 0.004939

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

z^2 – 1.97 z + 0.9798

Sampling time: 0.01

» KZVd6= c2d(kzv1,0.01,’matched’)

Transfer function:

0.01009 z^2 – 0.009696

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

z^2 – 1.97 z + 0.9802

Sampling time: 0.01

Процедура d2c осуществляет обратную операцию – переводит дискретную систему в непрерывную:

» k1= d2c(KZVd1)

Transfer function:

s + 4

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

s^2 + 2 s + 100

» k2= d2c(KZVd4,’tustin’)

Transfer function:

s + 4

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

s^2 + 2 s + 100

Как можно убедиться, указанные операции являются взаимообратными.

Процедура d2d позволяет переопределить дискретную систему, либо меняя шаг дискретизации:

sys1 = d2d(sys,Ts)

либо вводя групповые задержки Nd (целое, в количестве шагов дискретизации):

sys1=d2d(sys,[ ],Nd)

Приведем пример. Вначале изменим шаг дискретизации Ts=0.1 для системы KZVd1:

» kd1=d2d(KZVd1,0.1)

Transfer function:

0.09352 z – 0.06018

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

z^2 – 0.9854 z + 0.8187

Sampling time: 0.1

Затем введем задержку по входу, равную 3Ts. Получим:

» kd2=d2d(kd1,[ ],3)

Transfer function:

0.09352 z – 0.06018

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

z^5 – 0.9854 z^4 + 0.8187 z^3

Sampling time: 0.1

Для создания модели нужно предварительно либо привести уравнения всей системы к форме уравнений пространства состояний, либо найти передаточные функции системы. В общем случае это довольно сложная и громоздкая задача. В то же время реальные системы автоматического управления (САУ) состоят из соединенных между собой отдельных блоков (динамических звеньев), уравнения поведения которых юбычно достаточно просты. Поэтому в практике проектирования САУ принято использовать структурные методы, когда САУ задается как определенная схема соединения отдельных элементарных динамических звеньев, и фактически проектируется одно или несколько из этих звеньев таким образом, чтобы обеспечить заданное качество всей системы. В соответствии с этим в MatLAB предусмотрена возможность «набирать» программно «схему» САУ путем предварительного ввода моделей звеньев, составляющих САУ, и последующего «соединения» этих звеньев в единую структуру. К процедурам, осуществляющим расчет характеристик соединений отдельных звеньев, относятся:

  • plus(minus) – выполняет «параллельное соединение» указанных при обращении звеньев, т.е. определяет характеристики модели системы из параллельно соединенных звеньев; особенностью является то, что вызов этих процедур может быть осуществлен не только обычным способом: путем указания имени процедуры и перечисления (в скобках после имени) идентификаторов соединяемых звеньев, но и простым указанием идентификаторов звеньев, которые должны быть объединены, с простановкой между ними знака «+» (при суммировании выходных сигналов звеньев или «-» (при вычитании выходных сигналов);

  • parallel – осуществляет ту же процедуру параллельного соединения звеньев; в отличие от предыдущей процедуры может использоваться для многомерных схем и осуществления параллельного соединения лишь по некоторым входам и выходам;

  • mtimes (или знак «*» между именами звеньев) – осуществляет последовательное соединение звеньев, имена которых указаны; применяется для одномерных систем;

  • series – последовательное частичное соединение многомерных систем;

  • feedback – такое соединение двух звеньев, когда второе указанное звено составляет цепь отрицательной обратной связи для первого звена;

  • append – формальное объединение не связанных между собой систем (добавление входов и выходов второй системы к входам и выходам первой);

  • connect – установление соединений выходов и входов многомерной системы, созданной предварительно формальным объединением процедурой append; схема соединений задается матрицей Q соединений, указываемой как один из входных параметров процедуры;

  • inv – рассчитывает САУ, обратную указанной, т.е. такую, у которой выходы и входы поменялись местами;

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

  • horzcat – осуществляет «горизонтальное сцепление» указанных систем, при котором выходы становятся общими, а входы добавляются.

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

» Torsk = tf(25,[100 50])

Transfer function:

25

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

100 s + 50

и интегрирующего звена, описывающего переход от угловой скорости к углу поворота торпеды вокруг вертикали:

» SkUg = tf(1,[1 0]}

Transfer function:

1

-

s

Последовательное соединение этих звеньев можно осуществить двумя способами – применением процедуры series:

» Tor1 = series(Torsk,SkUg)

Transfer function:

25

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

100 s^2 + 50 s

либо простой операцией перемножения моделей:

» Tor = Torsk*SkUg

Transfer function:

25

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

100 s^2 +50 s

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

» GN = tf(2,1)

Transfer function:

2

Static gain.

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

» GT = tf([100 0],[1 10 100])

Transfer function:

100 s

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

s^2 + 10 s + 100

Параллельное соединение этих двух контуров управления можно осуществить тоже двумя способами: либо используя процедуру parallel:

» Izm1= parallel(GN,GT)

Transfer function:

2 s^2 + 120 s + 200

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

s^2 + 10 s + 100

либо применяя операцию «сложения» моделей:

» Izm= GN+GT

Transfer function:

2 s^2 + 120 s +200

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

s^2 + 10 s +100

Теперь найдем модель всей системы автоматического управления угловым движением торпеды, рассматривая цепь отрицательной обратной связи для торпеды и пользуясь для объединения прямой и обратной цепи процедурой feedback:

» sys = feedback(Tor, Izm)

Transfer function:

25 s^2 + 250 s + 2500

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

100 s^4 + 1050 s^3 + 10550 s^2 + 800 s + 5000

Конечно более простым и удобным средством «создания» (точнее, «набора») сложных систем из отдельных блоков является рассмотренная в главе 2 интерактивная система SIMULINK.

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

» set(sys, ’Input Name’,’Момент сил’,’Output Name’,’Угол рыскания’)

» set(sys, ‘Notes’,’Угловое движение торпеды’)

» get sys

num = {[0 0 25 250 2.5e+003]}

den = {[100 1.05e+003 1.06e+004 8e+003 5e+003]}

Variable = ‘s’

Ts = 0

Input Name = {‘Момент сил’)

Output Name = {‘Угол рыскания’}

Notes = {‘Угловое движение торпеды’}

UserData = [ ]

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

» sysvsp1=horzcat(Torsk,SkUg)

Transfer function from input 1 to output:

25

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

100 s + 50

Transfer function from input 2 to output:

1

-

s

» sysvsp2=vertcat(Torsk,SkUg)

Transfer function from input to output:

25

#1: ----------------

100 s + 50

1

#2: -

s