В этом примере показано, как получить доступ или отредактировать значения параметров и метаданные в объектах LTI.
tf, zpk, ss, и frd команды создают объекты LTI, которые хранят данные модели в одной переменной MATLAB®. Эти данные включают параметры модели специфичные (e.g., A, B, C, D матрицы для моделей в пространстве состояний), а также типовые метаданные, таких как имена ввода и вывода. Данные располагаются в фиксированный набор названных свойств полей данных.
Можно получить доступ к данным модели следующими способами:
get команда
Подобная структуре запись через точку
Команды поиска данных
В целях рисунка создайте передаточную функцию (TF) SISO:
G = tf([1 2],[1 3 10],'inputdelay',3)G =
s + 2
exp(-3*s) * --------------
s^2 + 3 s + 10
Continuous-time transfer function.
Видеть все свойства объекта TF GВвод
get(G)
Numerator: {[0 1 2]}
Denominator: {[1 3 10]}
Variable: 's'
IODelay: 0
InputDelay: 3
OutputDelay: 0
Ts: 0
TimeUnit: 'seconds'
InputName: {''}
InputUnit: {''}
InputGroup: [1x1 struct]
OutputName: {''}
OutputUnit: {''}
OutputGroup: [1x1 struct]
Notes: [0x1 string]
UserData: []
Name: ''
SamplingGrid: [1x1 struct]
Первые четыре свойства Numerator, Denominator, IODelay, и Variable характерны для представления TF. Остающиеся свойства характерны для всех представлений LTI. Можно использовать help tf.Numerator получить больше информации о Numerator свойство и так же для других свойств.
Чтобы получить значение конкретного свойства, использовать
G.InputDelay % get input delay valueans = 3
Можно использовать сокращения от имен свойства, пока они однозначны, например:
G.iod % get transport delay valueans = 0
G.var % get variableans = 's'
Можно также получить все параметры модели целиком с помощью tfdata, zpkdata, ssdata, или frdata. Например:
[Numerator,Denominator,Ts] = tfdata(G)
Numerator = 1x1 cell array
{[0 1 2]}
Denominator = 1x1 cell array
{[1 3 10]}
Ts = 0
Обратите внимание на то, что числитель и знаменатель возвращены как массивы ячеек. Это сопоставимо со случаем MIMO где Numerator и Denominator содержите массивы ячеек полинома числителя и полинома знаменателя (с одной записью на пару ввода-вывода). Для передаточных функций SISO можно возвратить числитель и данные о знаменателе как векторы при помощи флага, например:
[Numerator,Denominator] = tfdata(G,'v')Numerator = 1×3
0 1 2
Denominator = 1×3
1 3 10
Можно изменить данные, хранимые в объектах LTI путем редактирования соответствующих значений свойств с set или запись через точку. Например, для передаточной функции G созданный выше,
G.Ts = 1;
изменяет шаг расчета с 0 до 1, который переопределяет модель как дискретную:
G
G =
z + 2
z^(-3) * --------------
z^2 + 3 z + 10
Sample time: 1 seconds
Discrete-time transfer function.
set команда эквивалентна, чтобы отметить точкой присвоение, но также и позволяет вам установить несколько свойств целиком:
G.Ts = 0.1;
G.Variable = 'q';
GG =
q + 2
q^(-3) * --------------
q^2 + 3 q + 10
Sample time: 0.1 seconds
Discrete-time transfer function.
Используя редактирование моделей вместе с поддержкой массивов LTI, можно легко исследовать чувствительность к изменениям параметра. Например, рассмотрите передаточную функцию второго порядка
Можно исследовать эффект параметра затухания zeta на частотной характеристике путем создания трех моделей с различным zeta значения и сравнение их Предвещать ответы:
s = tf('s'); % Create 3 transfer functions with Numerator = s+5 and Denominator = 1 H = repsys(s+5,[1 1 3]); % Specify denominators using 3 different zeta values zeta = [1 .5 .2]; for k = 1:3 H(:,:,k).Denominator = [1 2*zeta(k) 5]; % zeta(k) -> k-th model end % Plot Bode response bode(H) grid
