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передаточная функция первого порядка с полюсами и нулями в шаблоне Баттерворта, чтобы удовлетворить ограничениям. Чем выше порядок N, чем круче переход от низкого к высокому усилению. Чтобы создать функцию взвешивания более высокого порядка в непрерывном времени, используйте Ts = 0.

пример

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

Примеры

свернуть все

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

Например, создайте функцию взвешивания с усилением 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

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Wl, Wh.

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

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

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

bodemag(W)
grid on

Figure contains an axes. The axes contains an object of type line. This object represents W.

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

Создайте функцию взвешивания со шаг расчета 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

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Wl, Wh.

Высокочастотное выравнивание 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

Figure contains an axes. The axes contains 2 objects of type line. These objects represent W3, W1.

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

Чтобы создать функции взвешивания в непрерывном времени более высокого порядка, установите 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

Figure contains an axes. The axes contains 2 objects of type line. These objects represent W3c, W1c.

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

свернуть все

Низкочастотный коэффициент усиления функции взвешивания, заданный как действительное скалярное значение. Выразите коэффициент усиления в абсолютных модулях. Для примера, чтобы задать коэффициент усиления низкой частоты 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передаточная функция первого порядка с полюсами и нулями в шаблоне Баттерворта, чтобы удовлетворить заданным ограничениям усиления. Чем выше порядок 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