Моделируйте массив с изменениями в двух параметрах

В этом примере показано, как создать двумерный (2-D) массив передаточных функций с помощью for циклы. Один параметр передаточной функции изменяется в каждой размерности массива.

Можно использовать метод этого примера, чтобы создать более размерные массивы с изменениями большего количества параметров. Такие массивы полезны для изучения эффектов многопараметрических изменений на отклик системы.

Передаточная функция второго порядка с одним входом и одним выходом (SISO)

H(s)=ω2s2+2ζωs+ω2.

зависит от двух параметров: коэффициент затухания, ζи естественную частоту, ω. Если оба ζ и ω варьируйте, вы получаете несколько передаточных функций формы:

Hij(s)=ωj2s2+2ζiωjs+ωj2,

где ζi и ωj представление различных измерений или выборочных значений параметров переменной. Можно собрать все эти передаточные функции в одной переменной, чтобы создать двумерный массив моделей.

Предварительно выделите память для массива моделей. Предварительное выделение памяти является необязательным шагом, который может повысить эффективность расчетов. Чтобы предварительно выделить, создайте массив моделей необходимого размера и инициализируйте его значения в нуле.

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)

Figure contains an axes. The axes contains 9 objects of type line. This object represents H.

Можно задать SamplingGrid свойство массива моделей, чтобы помочь отслеживать, какой набор значений параметров соответствует какой записи в массиве. Для этого создайте сетку значений параметров, которая совпадает с размерностями массива. Затем присвойте эти значения H.SamplingGrid с именами параметров.

[zetagrid,wgrid] = ndgrid(zeta,w);
H.SamplingGrid = struct('zeta',zetagrid,'w',wgrid);

Когда вы отображаете H, значения параметров в H.SamplingGrid отображаются вместе с каждой передаточной функцией в массиве.

См. также

Похожие темы