makeweight

Функция взвешивания с монотонным профилем усиления

Описание

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

пример

W = makeweight(dcgain,[freq,mag],hfgain) создает первый порядок, вес непрерывного времени W (s), удовлетворяющий этим ограничениям:

W(0)=dcgainW(Inf)=hfgain|W(jfreq)|=mag.

Другими словами, усиление W проходит через mag на конечной частоте freq.

пример

W = makeweight(dcgain,[freq,mag],hfgain,Ts) создает первый порядок, вес дискретного времени W (z), удовлетворяющий этим ограничениям:

W(1)=dcgainW(1)=hfgain|W(ejfreqTs)|=mag.

Другими словами, усиление W проходит через mag на частоте freq. Частота freq должен удовлетворить 0 <freq <π/Ts.

пример

W = makeweight(dcgain,[freq,mag],hfgain,Ts,N) использует Nпередаточная функция th-порядка с полюсами и нулями в шаблоне Баттерворта, чтобы соответствовать ограничениям. Выше порядок N, более крутое переход от низко до высокого усиления. Чтобы создать функцию взвешивания высшего порядка непрерывного времени, используйте Ts = 0.

пример

W = makeweight(dcgain,wc,hfgain,___) задает частоту среза усиления wc. Этот синтаксис эквивалентен установке [freq,mag] к [wc,1]. Можно использовать этот синтаксис с любой из предыдущих комбинаций входных аргументов, чтобы создать непрерывное время, дискретное время или функцию взвешивания Баттерворта.

Примеры

свернуть все

Создайте функции взвешивания непрерывного времени путем определения низкочастотного усиления, высокочастотного усиления и величины усиления на некоторой промежуточной частоте.

Например, создайте функцию взвешивания с усилением 40 дБ в низкой частоте, прокручивающейся прочь к-20 дБ на высокой частоте. Укажите далее, что усиление составляет приблизительно 10 дБ на уровне 1 рад/с путем помещения этих значений в векторный [freq,mag]. Задайте все усиления в абсолютных единицах.

Wl = makeweight(100,[1,3.16],0.1);

Создайте функцию взвешивания с усилением-10 дБ в низкой частоте, поднявшись до 40 дБ на высокой частоте. Задайте частоту среза на 0 дБ 10 рад/с. Чтобы задать частоту среза на 0 дБ, можно использовать частоту среза в качестве второго входного параметра вместо векторного [freq,mag].

Wh = makeweight(0.316,10,100);

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

bodemag(Wl,Wh)
legend
grid on

Создайте профиль усиления, который прокручивается прочь на высокой частоте без выравнивания. Задайте усиление 40 дБ в низкой частоте и частоте среза 10 рад/с.

W = makeweight(100,[10 1],0);

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

bodemag(W)
grid on

Создайте функции взвешивания дискретного времени путем определения низкочастотного усиления, высокочастотного усиления, величины усиления на некоторой промежуточной частоте и шага расчета.

Создайте функцию взвешивания с шагом расчета 0,1 с. Задайте усиление 40 дБ в низкой частоте, прокручивающейся прочь к-20 дБ на высокой частоте. Укажите далее, что усиление составляет приблизительно 10 дБ на уровне 0,01 рад/с. Обеспечьте все усиления в абсолютных единицах.

Wl = makeweight(100,[0.01,3.16],0.1,0.1);

Создайте функцию взвешивания с усилением-10 дБ в низкой частоте, поднявшись до 40 дБ на высокой частоте. Задайте частоту среза на 0 дБ 2 рад/с и шаг расчета 0,1 с. Чтобы задать частоту среза на 0 дБ, можно использовать частоту среза в качестве второго входного параметра вместо векторного [freq,mag].

Wh = makeweight(0.316,2,100,0.1);

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

bodemag(Wl,Wh)
grid on

Высокочастотное выравнивание Wh искажен из-за близости его частоты среза к частоте Найквиста.

По умолчанию, makeweight создает функции взвешивания первого порядка. Если вы хотите более резкий переход между низкочастотными и высокочастотными усилениями, можно задать порядок с последним входным параметром. Например, предположите, что вы хотите создать функцию взвешивания с шагом расчета 0,1 с. Функция имеет усиление-10 дБ в низкой частоте, повышаясь до 40 дБ на высокой частоте. Кроме того, усиление проходит через 6 дБ на уровне 1 рад/с. Для сравнения создайте и третий порядок и функцию первого порядка с этими техническими требованиями.

W3 = makeweight(0.316,[1 2],100,0.1,3);
W1 = makeweight(0.316,[1 2],100,0.1);
bodemag(W3,W1)
legend('location','northwest')
grid on

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

Чтобы создать функции взвешивания непрерывного времени высшего порядка, установите Ts = 0. Например, создайте функции взвешивания непрерывного времени с теми же техническими требованиями усиления как W1 и W3.

W3c = makeweight(0.316,[1 2],100,0,3);
W1c = makeweight(0.316,[1 2],100);
bodemag(W3c,W1c)
legend('location','northwest')
grid on

Входные параметры

свернуть все

Низкочастотное усиление функции взвешивания в виде действительного скалярного значения. Опишите усиление в абсолютных единицах. Например, чтобы задать низкочастотное усиление 20 дБ, установите dcgain = 10.

Низкочастотное усиление, высокочастотное усиление и величина должны удовлетворить:

  • |dcgain|> mag > |hfgain| для веса lowpass

  • |dcgain| <mag <|hfgain| для веса высокой передачи

Целевая величина и соответствующая частота в виде двухэлементного вектора. Вы задаете где усиление W переходы между низкочастотными и высокочастотными значениями путем определения целевой величины на особой частоте. Например, если вы устанавливаете [freq,mag] = [10,0.1], затем величина W проходит 0.1 (-10 дБ) на частоте 10 рад/с. Точно так же установка [freq,mag] = [5,1] задает 0 дБ (модульное усиление) частота среза 5 рад/с.

Низкочастотное усиление, высокочастотное усиление и величина должны удовлетворить:

  • |dcgain|> mag > |hfgain| для веса lowpass

  • |dcgain| <mag <|hfgain| для веса высокой передачи

Высокочастотное усиление функции взвешивания в виде действительного скалярного значения. Опишите усиление в абсолютных единицах. Например, чтобы задать высокочастотное усиление-20 дБ, установите dcgain = 0.1.

Низкочастотное усиление, высокочастотное усиление и величина должны удовлетворить:

  • |dcgain|> mag > |hfgain| для веса lowpass

  • |dcgain| <mag <|hfgain| для веса высокой передачи

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

Установка Ts = 0 создает функцию взвешивания непрерывного времени. Это значение полезно, когда это необходимо, чтобы создать передаточные функции непрерывного времени высшего порядка с помощью N входной параметр. Для примера смотрите Функции взвешивания Высшего порядка.

Порядок функции взвешивания в виде положительного целого числа. makeweight использует Nпередаточная функция th-порядка с полюсами и нулями в шаблоне Баттерворта, чтобы соответствовать заданным ограничениям усиления. Выше порядок N, более крутое переход от низко до высокого усиления.

Частота среза функции взвешивания в радианах/секунда в виде значения положительной скалярной величины. Используя входной параметр wc эквивалентно использованию [freq,mag] = [wc,1].

Для функций взвешивания дискретного времени частота среза должна удовлетворить wc*Ts< π.

Выходные аргументы

свернуть все

Функция взвешивания, возвращенная как пространство состояний (ss) модель. Для функций взвешивания непрерывного времени, ответа W удовлетворяет следующему:

W(0)=dcgainW(Inf)=hfgain|W(jfreq)|=mag.

Для функций взвешивания дискретного времени, ответа W удовлетворяет следующему:

W(1)=dcgainW(1)=hfgain|W(ejfreqTs)|=mag.

Представлено до R2006a