Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Начала прогаммирования в среде MatLab / Начала программирования в среде MatLab.pdf
Скачиваний:
254
Добавлен:
02.05.2014
Размер:
5.66 Mб
Скачать

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 построение на комплексной плоскости карты расположения нулей

иполюсов системы

6.3. Анализ системы

293

 

 

 

rlocus - расчет и вывод в виде графиков в графическое окно траектории движения на комплексной плоскости корней полинома

H(s) = D(s) + k * N(s) = 0,

где D(s) - знаменатель передаточной функции, N(s) - ее числитель, при изменении положительного вещественного числа k от 0 до бесконечности.

Далее приводятся примеры применения этих функций и результаты: pole(sys)

ans =

-4.8653 + 8.5924i -4.8653 - 8.5924i -0.3847 + 0.6040i -0.3847 - 0.6040i

sysz=zpk(sys)

Zero/pole/gain from input " Момент сил" to output "Угол рыскания": 0.25 (s^2 + 10s + 100)

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

(s^2 + 0.7693s + 0.5128) (s^2 + 9.731s + 97.5)

[z,p,k]=zpkdata(sysz,'v') 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

Wc= gram(sssys,'c')

Wc =

0.0129 0.0000 -0.0083 -0.0000

0.0000 0.0334 -0.0000 -0.0175 -0.0083 -0.0000 0.0701 -0.0000 -0.0000 -0.0175 -0.0000 0.1372

Wo=gram(sssys,'o')

Wo =

0.3334 0.2188 0.5469 0.3906

0.2188 0.1442 0.3605 0.2726

0.5469 0.3605 0.9011 0.6805

0.3906 0.2726 0.6805 0.8545 pzmap(sys) - результат см. рис. 6.10.

damp(sys)

 

 

Eigenvalue

Damping

Freq. (rad/s)

-3.85e-001

+ 6.04e-001i

5.37e-001

7.16e-001

-3.85e-001

- 6.04e-001i

5.37e-001 7.16e-001

-4.87e+000

+ 8.59e+000i

4.93e-001

9.87e+000

-4.87e+000

- 8.59e+000i

4.93e-001

9.87e+000

rlocus(sys) - результат - на рис. 6.11.

6.3. Анализ системы

294

 

 

 

 

 

 

 

 

Рис. 6.10

Рис. 6.11