который содержит коэффициенты числителя и знаменателя передаточной функции. Аналогичным образом могут быть получены объекты подклассов zpk и ss. При совместном использовании объектов различных подклассов в одной операции результат будет:
объектом подкласса ss, если по крайней мере один операнд принадлежит подклассу ss;
объектом подкласса zpk, если отсутствуют операнды подкласса ss и по крайней мере один из операндов принадлежит подклассу zpk;
объектом подкласса tf, если все операнды относятся к подклассу tf. Исходя их вышеизложенного следует, что операторы tf, zpk и ss могут
быть использованы как для получения соответствующей формы представления lti-объекта, так и для преобразования объекта из одной формы в другую. Например, оператор sys = zpk(sys) преобразует объект sys в подкласс zpk независимо от его предыдущей формы.
Следует иметь ввиду, что преобразование моделей является неоднозначной операцией и может привести к неверному результату моделирования.
3.2. Извлечение информации об lti-объектах
Для извлечения параметров объекта из его представления используются следующие операторы:
num, den, Ts |
tfdata sys ; |
z, p, k, Ts zpkdata sys ; |
|
a, b, c, d, d, Ts |
ssdata sys . |
Выходные аргументы num и den оператора tfdata и z, р оператора zpkdata всегда являются массивами ячеек. Они имеют число строк, равное числу выходов, и число столбцов, равное числу входов, а их элементы hij определяют передаточную функцию от j-го входа к i-му выходу.
Например, оператор
» H=[tf([1 -1],[1 2 10]), tf(1, [1 0])]
формирует передаточную функцию многомерной системы с одним выходом и двумя входами:
Transfer function from input 1 to output:
s - 1
--------------
s^2 + 2 s + 10
Transfer function from input 2 to output:
1
-
s
»
Чтобы получить (извлечь) данные о числителе и знаменателе системы sys следует применить оператор
» [num,den,Ts]=tfdata(H)
num = |
|
[1x3 double] |
[1x2 double] |
den = |
|
[1x3 double] |
[1x2 double] |
Ts = |
|
0. |
|
Для непосредственного получения цифровых значений следует прменить форму
»H.den{1} ans =
12 10
»H.den{2} ans =
1 0.
Аналогично работают операторы zpkdata и ssdata.
В процессе работы с lti-объектом может понадобиться изменить его структуру или некоторые цифровые параметры. Это можно выполнить либо создав объект заново командами tf, zpk или ss, либо присвоением отдельным элементам структуры объекта других значений. Следующий пример показывает, как можно изменить знаменатель передаточной функции системы H от входа 1 к выходу:
» H.den{1}(2)=5
Transfer function from input 1 to output:
s - 1
--------------
s^2 + 5 s + 10
Transfer function from input 2 to output:
1
-
s
».
3.3. Родовые свойства lti-объекта
Рассмотрим свойства, которые являются общими для всех трех подклассов lti-объектов.
Свойство |
Описание |
Тип данных |
|
|
|
|
|
|
InputName |
Названия входов |
Массив ячеек |
OutputName |
Названия выходов |
Массив ячеек |
Ts |
Период дискретности |
Скаляр |
Td |
Запаздывание на входе |
Вектор |
Userdata |
Дополнительные данные |
Произвольные |
Свойства InputName и OutputName предназначены для того, чтобы описать назначение входов и выходов системы; для их представления используются массивы ячеек, содержащих строки символов вида: 'мощность', 'скорость'; 'угол атаки' и т. п.
Свойство объекта Ts хранит информацию о периоде дискретности модели, измеряемом в секундах; значения 0 и -1 используются соответственно для непрерывных моделей и дискретных моделей с неспецифицированным периодом дискретности.
Свойство запаздывания на входе Td доступно только для непрерывных систем, его представление - вектор запаздываний для каждого входного канала, измеренных в секундах; по умолчанию используется нулевое значение (отсутствие запаздывания).
Свойство Userdata может содержать числовые данные о модели, описываемые произвольными типами данных. По умолчанию это поле является пустым.
Отметим некоторые особенности используемых свойств lti-объектов. Свойство Variable для объектов подклассов tf и zpk задает способ отображения переменной при выводе передаточных функций на экран. По умолчанию такими переменными являются 's' (переменная преобразования Лапласа) для непрерывных систем и 'z' (переменная Z-преобразования) для дискретных систем. Альтернативными значениями переменной могут быть 'р' для 's' и 'q' или 'z -1 для z. Отметим, что команда tf дает тот же результат, что и команда flit, когда свойство Variable имеет значение 'z -1' или 'q'. Матрица при производных Е по умолчанию равна пустой матрице [ ]. Свойство StateName позволяет присвоить имена переменным состояния.
При работе с ППП Control System Toolbox перечень свойств lti-объекта может быть просмотрен с помощью команд set(ss), set(tf), set(zpk).
3.4. Чтение и установка значений
Каждое свойство lti-объекта задается парой аргументов {свойство
(PropertyName), значение (Property Value)}:
PropertyName - строка, определяющая название свойства; она может быть собственно именем свойства или его сокращением, достаточным для
идентификации имени. Например, сокращение 'user' достаточно для определения свойства Userdata;
PropertyValue - значение, приписываемое свойству; этот формат также поддерживается функциями tf, zpk и ss.
Поэтому значения свойств системы можно определить с помощью команды get:
PropertyValue = get(sys, PropertyName),
где строка PropertyName - либо полное название свойства, либо некоторое сокращение с числом символов, достаточным для однозначной идентификации этого свойства.
Пример:
Последовательность операторов
» H=tf(100,[1 5 100],'input','Напряжение','notes','Электрическая цепь')
set(h,'output','Toк')
get(h, 'notes')
выводит на экран следующую информацию
Transfer function from input "Напряжение" to output:
100
---------------
s^2 + 5 s + 100
ans = 'Электрическая цепь'
Для вывода на экран всех свойств, следует использовать команду
get(h)
num = {[0 0 100]}
den = {[1 5 100]}
Variable = 's'
Ts = 0
Td = 0
InputName = {'Напряжение'}
OutputName = {'Ток'}
Notes = {'Электрическая цепь'}
UserData = []
Существует три способа для установки значений свойств lti-объекта:
при создании lti-объектов с помощью команд tf, zpk или ss;
изменение значений свойств существующей lti-модели с помощью команды set;
присваивание значений элементам структуры.
Первый способ установки значений заключается в том, чтобы расширить список входных переменных этих функций парами {свойство, значение}.
Пример:
Сформировать одномерную стационарную систему в tf-форме с входной переменной 'тяга', выходной переменной 'скорость' и с использованием в качестве символа переменной передаточной функции 'р'.
» sys=tf(1,[1 10],'input','Тяга','output','Скорость','variable','p')
Transfer function from input "Тяга" to output "Скорость":
1
------
p + 10
Второй способ состоит в том, чтобы сначала сформировать модель, а затем изменять отдельные ее свойства.
Пример:
Сформировать одномерную стационарную систему в tf-форме. » h=tf(1,[1 10])
Transfer function:
1
------