Главная страница

Учебное пособие для студентов высших учебных заведений


Скачать 5.41 Mb.
НазваниеУчебное пособие для студентов высших учебных заведений
Дата10.03.2022
Размер5.41 Mb.
Формат файлаpdf
Имя файлаmatlab.pdf
ТипУчебное пособие
#390741
страница31 из 44
1   ...   27   28   29   30   31   32   33   34   ...   44
filt
полностью аналогична процедуре
tf
с добавлением в конец списка входных параметров записи 'Variable','z^-1'.
Те же процедуры
ss
,
dss
,
tf
и
zpk
применяются также для преобразования моделей из одной из указанных выше форм в другую. Первая и вторая применя- ются для преобразования модели в пространство состояния, третья - в передаточ- ную функцию, а четвертая - в нули-полюсы-коэффициент передачи.
Модель, заданную как
непрерывная, можно перевести в дискретную
фор- му, воспользовавшись процедурой
c2d
в соответствии со схемой: sysd =
c2d
(sys, Ts, method).
Здесь sys - исходная непрерывная заданная модель, sysd - получаемая в ре- зультате работы процедуры дискретный аналог исходной системы, Ts - задавае- мое значение шага дискретизации, method - параметр, определяющий метод дис- кретизации. Последний параметр может принимать одно из таких значений:

6.1. Ввод и преобразования модели
281
„
'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 - 0.009696
--------------------- z^2 - 1.97 z + 0.9802
Sampling time: 0.01

6.1. Ввод и преобразования модели
282
Процедура
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 , а затем введем задержку по входу, равную 3 Ts. Получим:
kd2=d2d(k d1,[],3)
Transfer function:
0.09352 z - 0.06018
----------------------------- z^5 - 0.9854 z^4 + 0.8187 z^3
Sampling time: 0.1
Для создания модели нужно предварительно либо привести уравнения всей системы к форме уравнений пространства состояний, либо найти передаточные функции системы. В общем случае это довольно сложная и громоздкая задача. В то же время реальные системы автоматического управления (САУ) состоят из со- единенных между собой отдельных блоков (динамических звеньев), уравнения поведения которых обычно достаточно просты. Поэтому в практике проектирова- ния САУ принято использовать структурные методы, когда САУ задается как оп- ределенная схема соединения отдельных элементарных динамических звеньев, и фактически проектируется одно или несколько из этих звеньев таким образом, чтобы обеспечить заданное качество всей системы. В соответствии с этим в
MatLAB предусмотрена возможность "набирать" программно "схему" САУ путем предварительного ввода моделей звеньев, составляющих САУ, и последующего

6.1. Ввод и преобразования модели
283
"соединения" этих звеньев в единую структуру. К процедурам, осуществляющих расчет характеристик соединений отдельных звеньев, относятся:
„ plus (minus)
- осуществляет "параллельное соединение" указанных при обращении звеньев, т. е. определяет характеристики модели системы из параллельно соединенных звеньев; особенностью является то что вызов этих процедур может быть осуществлен не только обычным путем - ука- зания имени процедуры и перечисления (в скобках после имени) иденти- фикаторов соединяемых звеньев, - но и простым указанием идентифика- торов звеньев, которые должны быть объединены, с простановкой между ними знаков '+' (при суммировании выходных сигналов звеньев) или '-'
(при вычитании выходных сигналов);
„ parallel
- осуществляет ту же процедуру параллельного соединения звеньев; в отличие от предыдущей процедуры может использоваться для многомерных систем и осуществления параллельного соединения лишь по некоторым входам и выходам;
„ mtimes
- (или знак '*' между именами звеньев) - осуществляет последова- тельное соединение звеньев, имена которых указаны; применяется для одномерных систем;
„ series
- последовательное частичное соединение многомерных систем;
„ feedback
- такое соединение двух звеньев, когда второе указанное звено составляет цепь отрицательной обратной связи для первого звена;
„ append
- формальное объединение не связанных между собой систем (до- бавление выходов и входов второй системы к выходам и входам первой);
„ connect
- установление соединений выходов и входов многомерной сис- темы, созданной предварительно формальным объединением процедурой
append
; схема соединений задается матрицей Q соединений, указываемой как один из входных параметров процедуры
„ inv
- рассчитывает САУ, обратную указанной, т. е. такую, у которой вы- ходы и входы поменены местами;
„ vertcat
производит так называемую вертикальную конкатенацию (сцепле- ние) систем (звеньев), т. е. такое их объединение, когда входы их стано- вятся общими, а выходы остаются независимыми; для такого объедине- ния необходимо, чтобы число входов объединяемых систем было одина- ковым; тогда число входов в результирующей системе останется таким же, как и каждой из объединяемых систем, а число выходов равно сумме выходов объединяемых систем;
„ horzcat
- осуществляет "горизонтальное сцепление" указанных систем, при котором выходы становятся общими, а входы добавляются.
Проиллюстрируем применение некоторых из этих процедур. Создадим мо- дель углового движения торпеды вокруг вертикали в виде последовательно со- единенных двух звеньев: апериодического звена, характеризующего влияние мо- мента внешних сил относительно вертикали на угловую скорость торпеды
Torsk = tf(25,[100 50])
Transfer function:

6.1. Ввод и преобразования модели
284
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

6.1. Ввод и преобразования модели
285
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 + 8000 s + 5000 .
Конечно, несравненно
более простым и удобным средством "создания"
(точнее - "набора") сложных систем из отдельных блоков является рассмотрен-
ная в главе 7 интерактивная система SIMULINK
После того как система сформирована, можно ввести при помощи процеду- ры
set
некоторые символьные ее описания. В частности, дать названия входам и выходам системы, дать краткий комментарий к самой системе, например:
set(sys,'Input Name',' Момент сил','OutputName','Угол рыскания')
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
InputName = {' Момент сил'}
OutputName = {'Угол рыскания'}
Notes = {'Угловое движение торпеды'}
UserData = []

6.2. Получение информации о модели
286
В заключение приведем примеры использования процедур конкатенации:
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
6.2. Получение информации о модели
Чтобы получить отдельные характеристики (матрицы и векторы, описывающие пространство состояния, коэффициенты числителя и знаменателя передаточной функции и т. п.) полученной модели, можно использовать одну из следующих процедур: tfdata (для получения векторов числителя и знаменателя передаточной функции системы), ssdata (для получения значений матриц уравнений пространства состояния) и zpkdata (для получения векторов значений полюсов и нулей системы), например:
[nom,den]=tfdata(sys,'v')
nom =
0 0 25 250 2500 den =
100 1050 10550 8000 5000
sssys=ss(sys)
[
A,B,C,D] = ssdata(sssys)
A =
-10.5000 -6.5938 -1.2500 -0.7813 16.0000 0 0 0 0 4.0000 0 0 0 0 1.0000 0
B =
0.5000 0
0 0
C =
0 0.0313 0.0781 0.7813
D = 0
[z,p,k] = zpkdata(sys,'v')

6.2. Получение информации о модели
287
z =
-5.0000 + 8.6603i
-5.0000 - 8.6603i p =
-4.8653 + 8.5924i
-4.8653 - 8.5924i
-0.3847 + 0.6040i
-0.3847 - 0.6040i k = 0.2500
Процедура get дает возможность получить полную характеристику модели, включая имена входов и выходов, примечания, значения шага дискретизации и т. п. Например:
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
Td = 0
InputName = {' Момент сил'}
OutputName = {'Угол рыскания'}
Notes = {'Угловое движение торпеды'}
UserData = []
get(ssys)
Continuous-time system. a = [4x4 double] b = [4x1 double] c = [0 0.0313 0.0781 0.781] d = 0 e = []
StateName = {4x1 cell}
Ts = 0
Td = 0
InputName = {' Момент сил'}
OutputName = {'Угол рыскания'}
Notes = {'Угловое движение торпеды'}
UserData = []
О числе входов и выходов системы можно узнать, обратившись к процедуре
size:
size(sys)
Transfer function with 1 input(s) and 1 output(s).
size(ssys)
State-space model with 1 input(s), 1 output(s), and 4 state(s).

6.3. Анализ системы
288
6.3. Анализ системы
Пакет СONTROL предоставляет широкий набор процедур, осуществляю- щих анализ САУ с самых различных точек зрения и, прежде всего, определение откликов системы на внешние воздействия как во временной, так и в частотной областях.
Для нахождения временных откликов системы на внешние воздействия не- которых видов предусмотрены функции:
„ impulse - нахождение отклика системы на единичное импульсное входное воздействие;
„ step - нахождение реакции системы на единичный скачок входного воз- действия;
„ initial - определение собственного движения системы при произвольных начальных условиях;
„ lsim - определение реакции системы на входное воздействие произволь- ной формы, задаваемое в виде вектора его значений во временит.
Рассмотрим применение этих процедур на примере движения торпеды, па- раметры которой как САУ приведены ранее.
Применяя процедуру step к созданной модели:
step(sys)
можно получить график, представленный на рис. 6.1.
Рис. 6.1
Аналогично, использование процедуры
impulse(sys)
приведет к появлению в графическом окне графика рис. 6.2.
Чтобы применить процедуру initial, необходимо в число входных парамет- ров включить, во-первых, полный вектор всех начальных условий по перемен- ным состояния, а во-вторых, момент времени окончания процесса интегрирова- ния. Например:
initial(ssys,[0 0 0 1],20).

6.3. Анализ системы
289
Рис. 6.2
Получим в графическом окне картину, показанную на рис. 6.3.
Рис. 6.3
Для применения процедуры lsim необходимо предварительно задать вектор 't' значений времени, в которых будут заданы значения входного воздействия, а затем и задать соответствующий вектор 'u' значений входной величины в указан- ные моменты времени
t = 0:0.01:40; u = sin(t); lsim(ssys,u,t);grid
Результат изображен на рис. 6.4.

6.3. Анализ системы
290
Рис. 6.4
Следующая группа процедур представляет в частотной области реакцию системы на внешние гармонические воздействия. К таким процедурам относятся:
„ bode - строит графики АЧХ и ФЧХ (диаграмму Боде) указанной системы;
„ nyquist - строит в комплексной плоскости график Амплитудно-Фазовой
Характеристики (АФХ) системы в полярных координатах;
„ nichols - строит карту Николса системы, т. е. график АФХ разомкнутой системы в декартовых координатах;
„ sigma - строит графики зависимости от частоты сингулярных значений системы; обычно совпадает с АЧХ системы;
„ margin строит диаграмму Боде с указанием запасов по амплитуде и по
фазе.
Рис. 6.5
Приведем примеры.
bode(sys)
- результат приведен на рис. 6.5;

6.3. Анализ системы
291
nyquist(sys); grid -
результат - на рис. 6.6;
nichols(sys); grid -
результат показан на рис. 6.7;
sigma(sys) -
см. рис. 6.8;
margin(ssys); grid -
см. рис. 6.9.
Рис. 6.6
Рис. 6.7

6.3. Анализ системы
292
Рис. 6.8
Рис. 6.9
Теперь рассмотрим процедуры, вычисляющие отдельные характеристики и графически показывающие расположение полюсов и нулей системы. К ним мож- но отнести
„ pole - расчет полюсов системы;
„ zpkdata - расчет полюсов, нулей и коэффициента передачи системы;
„ gram - вычисление граммианов системы - матрицы управляемости (при указании в качестве последнего входного параметра процедуры флага 'c') и матрицы наблюдаемости системы (при указании флага 'o');
„ damp - вычисление собственных значений матрицы состояния системы и, на этой основе - значений собственных частот (Frequency) незатухающих колебаний системы и относительных коэффициентов демпфирования
(Damping)
„ pzmap построение на комплексной плоскости карты расположения нулей и полюсов системы

1   ...   27   28   29   30   31   32   33   34   ...   44


написать администратору сайта