Dynamic-Calibration/utils/YALMIP-master/modules/robust/deriveBilinearizing.m

32 lines
702 B
Matlab
Executable File

function [BilinearizeringConstraints,failure] = deriveBilinearizing(Fi,w,order)
if nargin < 3
order = 1;
end
BilinearizeringConstraints = ([]);
failure = 0;
Fi = sdpvar(Fi);
if is(Fi,'hermitian')
Fi = Fi(find(triu(ones(length(Fi)))));
end
Fi = Fi(:);
for i = 1:length(Fi)
pij = Fi(i);
[c,v] = coefficients(pij,w);
c = clean(c,1e-12);
for k = 1:length(c)
if degree(v(k)) > order
if isa(c(k),'double')
if abs(c(k))>0
failure = 1;
return
end
else
BilinearizeringConstraints = BilinearizeringConstraints + (c(k) == 0);
end
end
end
end