Создайте настраиваемую поверхность, которая представляет скалярное усиление билинейной зависимостью от двух переменных планирования. Предположим, что переменными планирования является alpha
, в пределах от 0-15 градусов и V
, в пределах от 300-600 м/с. Настраиваемая поверхность покрывает линейно расположенную с интервалами сетку в этом рабочем диапазоне.
Обычно, вы используете GS0
параметрировать запланированное усиление и настроить поверхностные коэффициенты с systune. В данном примере вместо настройки, вручную устанавливает коэффициенты на ненулевые значения.
Сгенерируйте код MATLAB, который вычисляет скалярное усиление в зависимости от планирования переменных.
code =
'function Gain_ = fcn(alpha_,V_)
%#codegen
% Type casting
ZERO = zeros(1,1,'like',alpha_+V_);
alpha_ = cast(alpha_,'like',ZERO);
V_ = cast(V_,'like',ZERO);
% Tuned gain surface coefficients
Coeffs = cast([100 28 40 10],'like',ZERO);
Offsets = cast([7.5 450],'like',ZERO);
Scalings = cast([7.5 150],'like',ZERO);
% Normalization
alpha_ = (alpha_ - Offsets(1))/Scalings(1);
V_ = (V_ - Offsets(2))/Scalings(2);
% Compute weighted sum of terms
Y = [ alpha_ , V_ , alpha_*V_ ];
Gain_ = Coeffs(1);
for i=1:numel(Y)
Gain_ = Gain_ + Coeffs(i+1) * Y(i);
end
'
Получившийся код является функцией, fcn
, это берет две переменные планирования и возвращает скалярное усиление. Функция включает %#codegen
директива, так, чтобы это могло использоваться для дальнейшей генерации кода, такой как реализация настроенного расписания усиления в оборудовании.
Функция включает четыре раздела. Первый раздел гарантирует, что переменные планирования брошены к тому же типу. Второй раздел кодирует коэффициенты усиления и смещения и масштабирования, которые программное обеспечение извлекает из GS
. Эти значения трудно закодированы в fcn
, который может вычислить поверхность усиления независимо от GS
. Третий раздел использует эти значения, чтобы вычислить нормированные переменные планирования. (См. tunableSurface
для получения дополнительной информации о нормализации.)
Последний раздел вычисляет усиление путем подведения всех условий в многочленном выражении для поверхности усиления.