В этом примере показано, как создать двумерный (2-D) массив передаточных функций с помощью for
циклы. Один параметр передаточной функции изменяется в каждой размерности массива.
Можно использовать метод этого примера, чтобы создать более размерные массивы с изменениями большего количества параметров. Такие массивы полезны для изучения эффектов многопараметрических изменений на отклик системы.
Передаточная функция второго порядка с одним входом и одним выходом (SISO)
зависит от двух параметров: коэффициент затухания, и естественную частоту, . Если оба и варьируйте, вы получаете несколько передаточных функций формы:
где и представление различных измерений или выборочных значений параметров переменной. Можно собрать все эти передаточные функции в одной переменной, чтобы создать двумерный массив моделей.
Предварительно выделите память для массива моделей. Предварительное выделение памяти является необязательным шагом, который может повысить эффективность расчетов. Чтобы предварительно выделить, создайте массив моделей необходимого размера и инициализируйте его значения в нуле.
H = tf(zeros(1,1,3,3));
В этом примере существует три значения для каждого параметра в передаточной функции H. Поэтому эта команда создает массив 3х3 с одним входом, одним выходом (SISO) нуля передаточных функций.
Создайте массивы, содержащие значения параметров.
zeta = [0.66,0.71,0.75]; w = [1.0,1.2,1.5];
Создайте массив путем закольцовывания всех комбинаций значений параметров.
for i = 1:length(zeta) for j = 1:length(w) H(:,:,i,j) = tf(w(j)^2,[1 2*zeta(i)*w(j) w(j)^2]); end end
H
является массивом передаточных функций 3 на 3. изменяется при перемещении от модели к модели вдоль одного столбца H
. Параметр изменяется при перемещении вдоль одной строки.
Постройте график переходной характеристики H
чтобы увидеть, как изменение параметра влияет на переходную характеристику.
stepplot(H)
Можно задать SamplingGrid
свойство массива моделей, чтобы помочь отслеживать, какой набор значений параметров соответствует какой записи в массиве. Для этого создайте сетку значений параметров, которая совпадает с размерностями массива. Затем присвойте эти значения H.SamplingGrid
с именами параметров.
[zetagrid,wgrid] = ndgrid(zeta,w); H.SamplingGrid = struct('zeta',zetagrid,'w',wgrid);
Когда вы отображаете H
, значения параметров в H.SamplingGrid
отображаются вместе с каждой передаточной функцией в массиве.