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

В этом примере показано, как создать двумерный (2D) массив передаточных функций с помощью 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)

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

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

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

Смотрите также

Похожие темы