No BSD License  

Highlights from
OCTool

from OCTool by Tim Farajian
This is a graphical interface for optimizing the time-delayed open/closed-loop control ...

oolp(sys,modal)
function [sys OPTp Et Po Pc] = oolp(sys,modal)
%OOLP	Computes the optimum open loop performance and parameters of a
%given OCCD system.
%
%	 [OSYS,P,Et,Po,Pc] = OOLP(SYS) where SYS is the structure array (as
%    if created by OCSET), returns:
%		OSYS is the same as SYS, but now with the optimal open-loop
%        parameters.
%		P is the optimal open loop performance.
%		Et is the terminal energy term.
%		Po is the open-loop energy term.
%		Pc is the closed-loop energy term.
%
%    [OSYS,OPTp,Et,Pctr,Po] = OOLP(SYS, modal) returns the performance in
%    each mode rather than total performance.

if nargin<2
    modal = false;
end

if sys.T > 0
    % Call delayed subfunctin
    [sys OPTp Et Po Pc]=delOOLP(sys,modal);
    return
end

if any(sys.Type==[0 4 5 6])
    %Type without OL control
    sys.a=0*sys.xo;sys.b=sys.a;
else
    %Extract values from structure
    u1 = sys.uu(1); u2 = sys.uu(2); u3 = sys.uu(3);
    u4 = sys.uu(4); u5 = sys.uu(5);
    To = sys.To;
    xo = sys.xo; vo = sys.vo;
    a = sys.a; b = sys.b;
    cp = sys.cp; cd = sys.cd;
    N = 1:length(sys.xo);

    [R u Ro uo] = ComputeRu;
    ComputePartials %Compute partial derivatives

    %Compute optimum open loop parameters
    anum = Pbb.*Pa0-Pab.*Pb0;
    bnum= Paa.*Pb0-Pab.*Pa0;
    abden = Pab.^2-Paa.*Pbb;
    sys.a=anum./abden;
    sys.b=bnum./abden;
end
%Compute optimum open loop performance
[OPTp Et Po Pc] = performance(sys,modal);

    function [R u Ro uo] = ComputeRu
        wo = (N*pi).^2*sys.Alpha;
        R = -sys.Gamma*wo - cd/2;
        u = sqrt(wo.^2 + cp - R.^2);
        % Compute open loop relations
        if sys.IOL
            Ro = -sys.Gamma*wo;
            uo = sqrt(wo.^2 - Ro.^2);
        else
            Ro = R;
            uo = u;
        end
    end

    function ComputePartials
        X = u.^2+R.^2;
        Paa=(((-1./32.*u4.*cp.^2.*(2.*u.^9.*R.^3+4.*u.^7.*R.^5+2.*u.^5.*R.^...
            7)./u.^6./R.^3./X.^3+1./4.*u2.*R./u+1./2.*u5.*cd.^2.*(1./8.*(2.*u.^4.*...
            R.^6+2.*u.^8.*R.^2+4.*u.^6.*R.^4)./X.^3./u.^5-1./16.*(-2.*u.^9.*R.^2+2.*...
            u.^7.*R.^4-2.*u.^11+2.*u.^5.*R.^6)./X.^3./u.^6)).*To.^2-1./32.*u4.*cp.^...
            2.*(-u.^7.*R.^3+3.*u.^5.*R.^5)./u.^6./R.^3./X.^3+1./2.*u5.*cd.^2.*(1./...
            8.*(u.^8-3.*R.^2.*u.^6)./X.^3./u.^5-1./16.*(u.^5.*R.^4+3.*u.^9-4.*u.^7.*...
            R.^2)./X.^3./u.^6)+1./4.*u3.*u./X+(-1./32.*u4.*cp.^2.*(-4.*u.^7.*R.^4-...
            4.*u.^5.*R.^6)./u.^6./R.^3./X.^3+1./2.*u5.*cd.^2.*(-1./16.*(8.*u.^9.*R+...
            8.*u.^7.*R.^3)./X.^3./u.^6+1./8.*(4.*R.*u.^8+4.*R.^3.*u.^6)./X.^3./u.^...
            5)+1./4.*u2./u).*To).*sin(2.*u.*To)+1./2.*u5.*cd.^2.*(1./16./R.^3+1./...
            16./R./u.^2)+((-1./32.*u4.*cp.^2.*(2.*u.^8.*R.^4+2.*u.^4.*R.^8+4.*u.^6.*...
            R.^6)./u.^6./R.^3./X.^3+1./8.*u2+(-1./8.*u1-1./8.*u2.*R.^2)./u.^2+1./2.*...
            u5.*cd.^2.*(1./8.*(-4.*u.^7.*R.^3-2.*u.^9.*R-2.*u.^5.*R.^5)./X.^3./u.^5-...
            1./16.*(-2.*u.^8.*R.^3-2.*R.*u.^10+2.*u.^6.*R.^5+2.*u.^4.*R.^7)./X.^3./...
            u.^6)).*To.^2+(-1./32.*u4.*cp.^2.*(-2.*u.^4.*R.^7+2.*u.^8.*R.^3)./u.^6./...
            R.^3./X.^3+1./2.*u5.*cd.^2.*(-1./16.*(6.*u.^8.*R.^2-2.*u.^10+10.*u.^6.*...
            R.^4+2.*u.^4.*R.^6)./X.^3./u.^6+1./8.*(2.*u.^5.*R.^4-2.*u.^9)./X.^3./u.^...
            5)-1./4.*u2.*R./u.^2).*To-1./8.*u2./u.^2-1./32.*u4.*cp.^2.*(u.^4.*R.^6-...
            3.*u.^6.*R.^4)./u.^6./R.^3./X.^3+1./2.*u5.*cd.^2.*(1./8.*(-R.^3.*u.^5+...
            3.*u.^7.*R)./X.^3./u.^5-1./16.*(u.^4.*R.^5+7.*R.*u.^8)./X.^3./u.^6)+1./...
            4.*u3.*R./X).*cos(2.*u.*To)+(-1./32.*u4.*cp.^2.*(-6.*u.^8.*R.^4-2.*u.^...
            10.*R.^2-2.*u.^4.*R.^8-6.*u.^6.*R.^6)./u.^6./R.^3./X.^3+1./8.*u2+2.*(1./...
            16.*u1+1./16.*u2.*R.^2)./u.^2+1./2.*u5.*cd.^2.*(1./8./R+1./8.*R./u.^...
            2)).*To.^2-1./32.*u4.*cp.^2.*(-u.^4.*R.^6-u.^10-3.*u.^8.*R.^2-3.*u.^6.*...
            R.^4)./u.^6./R.^3./X.^3+1./4.*u3.*(u.^2.*R.^2+u.^4)./u.^2./X./R+1./8.*...
            u2./u.^2+(-1./32.*u4.*cp.^2.*(6.*u.^8.*R.^3+2.*R.*u.^10+6.*u.^6.*R.^5+...
            2.*u.^4.*R.^7)./u.^6./R.^3./X.^3+1./2.*u5.*cd.^2.*(-1./8./R.^2+1./8./u.^...
            2)+1./4.*u2.*R./u.^2).*To).*exp(2.*R.*To)-1./32.*u4.*cp.^2.*(u.^10+3.*...
            u.^8.*R.^2+6.*u.^6.*R.^4)./u.^6./R.^3./X.^3+1./4.*u3.*(-2.*u.^2.*R.^2-...
            u.^4)./u.^2./X./R+1./2.*u5.*cd.^2.*(1./8.*(-3.*u.^7.*R+R.^3.*u.^5)./X.^...
            3./u.^5-1./16./R.^3-1./16.*(-7.*R.*u.^8-u.^4.*R.^5)./X.^3./u.^6-1./16./...
            R./u.^2);
        Pbb=(((-1./32.*u4.*cp.^2.*(-4.*u.^5.*R.^5-2.*u.^3.*R.^7-2.*u.^7.*...
            R.^3)./u.^6./R.^3./X.^3-1./4.*u2.*R./u.^3+1./2.*u5.*cd.^2.*(1./8.*(-2.*...
            R.^2.*u.^6-4.*u.^4.*R.^4-2.*u.^2.*R.^6)./X.^3./u.^5-1./16.*(2.*u.^9+2.*...
            u.^7.*R.^2-2.*u.^3.*R.^6-2.*u.^5.*R.^4)./X.^3./u.^6)).*To.^2-1./32.*u4.*...
            cp.^2.*(5.*R.^3.*u.^5+R.^5.*u.^3)./u.^6./R.^3./X.^3+1./2.*u5.*cd.^2.*...
            (1./8.*(R.^6+2.*u.^4.*R.^2-u.^2.*R.^4)./X.^3./u.^5-1./16.*(-3.*u.^3.*R.^...
            4+2.*u.^5.*R.^2+2.*u.*R.^6-u.^7)./X.^3./u.^6)-1./4.*u3./u./X+(-1./32.*...
            u4.*cp.^2.*(4.*u.*R.^8+8.*u.^5.*R.^4+12.*u.^3.*R.^6)./u.^6./R.^3./X.^3+...
            1./2.*u5.*cd.^2.*(1./8.*(-2.*R.*u.^6-2.*R.^7-2.*R.^3.*u.^4-2.*R.^5.*u.^...
            2)./X.^3./u.^5-1./16.*(8.*R.^3.*u.^5+8.*R.^5.*u.^3)./X.^3./u.^6)+2.*(-...
            1./8.*u1-1./8.*u2.*R.^2)./u.^5).*To).*sin(2.*u.*To)+1./2.*u5.*cd.^2.*...
            (1./8.*R./u.^6-1./16./R./u.^4+1./16./R.^3./u.^2)+((-1./32.*u4.*cp.^2.*(-...
            2.*u.^2.*R.^8-2.*u.^6.*R.^4-4.*u.^4.*R.^6)./u.^6./R.^3./X.^3+2.*(1./16.*...
            u1+1./16.*u2.*R.^2)./u.^4-1./8.*u2./u.^2+1./2.*u5.*cd.^2.*(1./8.*(2.*R.^...
            5.*u.^3+2.*u.^7.*R+4.*R.^3.*u.^5)./X.^3./u.^5-1./16.*(2.*R.*u.^8-2.*u.^...
            4.*R.^5+2.*R.^3.*u.^6-2.*u.^2.*R.^7)./X.^3./u.^6)).*To.^2+(-1./32.*u4.*...
            cp.^2.*(-2.*u.^2.*R.^7-6.*R.^3.*u.^6-8.*u.^4.*R.^5)./u.^6./R.^3./X.^3+...
            1./2.*u5.*cd.^2.*(1./8.*(-2.*u.^5.*R.^2+2.*u.*R.^6)./X.^3./u.^5-1./16.*...
            (2.*u.^8+2.*R.^2.*u.^6+6.*u.^2.*R.^6+6.*u.^4.*R.^4)./X.^3./u.^6)-1./4.*...
            u2.*R./u.^4).*To+2.*(-1./16.*u2.*R.^2-1./16.*u1)./u.^6-1./32.*u4.*cp.^...
            2.*(2.*R.^8+9.*u.^4.*R.^4+7.*u.^2.*R.^6)./u.^6./R.^3./X.^3+1./2.*u5.*...
            cd.^2.*(1./8.*(u.^3.*R.^3-u.^5.*R-2.*u.*R.^5)./X.^3./u.^5-1./16.*(-R.*...
            u.^6+2.*R.^7+6.*R.^3.*u.^4+R.^5.*u.^2)./X.^3./u.^6)-1./4.*u3.*R./u.^2./...
            X).*cos(2.*u.*To)+(-1./32.*u4.*cp.^2.*(-6.*u.^4.*R.^6-6.*u.^6.*R.^4-2.*...
            u.^8.*R.^2-2.*u.^2.*R.^8)./u.^6./R.^3./X.^3+1./8.*u2./u.^2+2.*(1./16.*...
            u1+1./16.*u2.*R.^2)./u.^4+1./2.*u5.*cd.^2.*(1./8.*R./u.^4+1./8./R./u.^...
            2)).*To.^2-1./32.*u4.*cp.^2.*(-7.*u.^2.*R.^6-u.^8-9.*u.^4.*R.^4-5.*R.^...
            2.*u.^6-2.*R.^8)./u.^6./R.^3./X.^3+1./4.*u3./u.^2./R+2.*(1./16.*u1+1./...
            16.*u2.*R.^2)./u.^6+(-1./32.*u4.*cp.^2.*(6.*u.^4.*R.^5+6.*R.^3.*u.^6+2.*...
            u.^2.*R.^7+2.*R.*u.^8)./u.^6./R.^3./X.^3+1./2.*u5.*cd.^2.*(-1./8./R.^2./...
            u.^2+1./8./u.^4)+1./4.*u2.*R./u.^4).*To).*exp(2.*R.*To)-1./32.*u4.*cp.^...
            2.*(5.*R.^2.*u.^6+u.^8)./u.^6./R.^3./X.^3-1./4.*u3./X./R+1./2.*u5.*cd.^...
            2.*(1./8.*(u.^5.*R-u.^3.*R.^3+2.*u.*R.^5)./X.^3./u.^5-1./16./R.^3./u.^2-...
            1./8.*R./u.^6+1./16./R./u.^4-1./16.*(-R.^5.*u.^2-2.*R.^7-6.*R.^3.*u.^4+...
            R.*u.^6)./X.^3./u.^6);
        Pab=(((-1./64.*u4.*cp.^2.*(-4.*u.^4.*R.^7-8.*u.^6.*R.^5-4.*u.^8.*...
            R.^3)./u.^6./R.^3./X.^3-1./4.*u2.*R./u.^2+1./2.*u5.*cd.^2.*(1./16.*(-2.*...
            u.^7.*R.^2+2.*u.^3.*R.^6+2.*u.^5.*R.^4-2.*u.^9)./X.^3./u.^5-1./32.*(16.*...
            u.^6.*R.^4+8.*u.^4.*R.^6+8.*u.^8.*R.^2)./X.^3./u.^6)).*To.^2+(-1./64.*...
            u4.*cp.^2.*(4.*u.^2.*R.^8+16.*u.^4.*R.^6+12.*u.^6.*R.^4)./u.^6./R.^3./...
            X.^3+1./2.*u5.*cd.^2.*(1./16.*(4.*u.^7.*R-4.*R.^5.*u.^3)./X.^3./u.^5-1./...
            32.*(12.*R.^3.*u.^6+4.*u.^2.*R.^7+4.*u.^4.*R.^5+12.*R.*u.^8)./X.^3./u.^...
            6)+(-1./8.*u1-1./8.*u2.*R.^2)./u.^4-1./8.*u2./u.^2).*To-1./8.*u2.*R./u.^...
            4-1./64.*u4.*cp.^2.*(4.*R.^3.*u.^6-6.*u.^4.*R.^5-2.*u.^2.*R.^7)./u.^6./...
            R.^3./X.^3+1./2.*u5.*cd.^2.*(1./16.*(u.^7+3.*u.^3.*R.^4-4.*u.^5.*R.^2)./...
            X.^3./u.^5-1./32.*(10.*u.^4.*R.^4-6.*R.^2.*u.^6+2.*u.^2.*R.^6+2.*u.^8)./...
            X.^3./u.^6)-1./4.*u3./X).*cos(2.*u.*To)+1./2.*u5.*cd.^2.*(1./16./u.^4-...
            1./16./R.^2./u.^2)+(-1./64.*u4.*cp.^2.*(-4.*u.^2.*R.^8-12.*u.^6.*R.^4-...
            4.*u.^8.*R.^2-12.*u.^4.*R.^6)./u.^6./R.^3./X.^3+1./2.*u5.*cd.^2.*(1./8.*...
            R./u.^4+1./8./R./u.^2)+1./8.*u2./u.^2+(1./8.*u1+1./8.*u2.*R.^2)./u.^4).*...
            To-1./64.*u4.*cp.^2.*(6.*u.^4.*R.^5+6.*R.^3.*u.^6+2.*u.^2.*R.^7+2.*R.*...
            u.^8)./u.^6./R.^3./X.^3+1./8.*u2.*R./u.^4+((-1./64.*u4.*cp.^2.*(8.*u.^...
            5.*R.^6+4.*u.^3.*R.^8+4.*u.^7.*R.^4)./u.^6./R.^3./X.^3+1./8.*u2./u+(-1./...
            8.*u1-1./8.*u2.*R.^2)./u.^3+1./2.*u5.*cd.^2.*(1./16.*(2.*R.*u.^8-2.*u.^...
            4.*R.^5+2.*R.^3.*u.^6-2.*u.^2.*R.^7)./X.^3./u.^5-1./32.*(8.*u.^5.*R.^5+...
            16.*u.^7.*R.^3+8.*u.^9.*R)./X.^3./u.^6)).*To.^2+1./2.*u5.*cd.^2.*(1./...
            16.*(-R.^5.*u.^2+4.*R.^3.*u.^4-3.*R.*u.^6)./X.^3./u.^5-1./32.*(12.*R.^...
            3.*u.^5-4.*u.^7.*R)./X.^3./u.^6)+(-1./64.*u4.*cp.^2.*(8.*u.^7.*R.^3+8.*...
            u.^5.*R.^5)./u.^6./R.^3./X.^3+1./2.*u5.*cd.^2.*(1./16.*(-2.*R.^2.*u.^6-...
            2.*u.^4.*R.^4+2.*u.^2.*R.^6+2.*u.^8)./X.^3./u.^5-1./32.*(4.*u.^3.*R.^6+...
            4.*u.^9-4.*u.^7.*R.^2-4.*u.^5.*R.^4)./X.^3./u.^6)).*To-1./64.*u4.*cp.^...
            2.*(-2.*u.^3.*R.^6-10.*u.^5.*R.^4)./u.^6./R.^3./X.^3+1./4.*u3.*R./u./...
            X).*sin(2.*u.*To)).*exp(2.*R.*To)-1./64.*u4.*cp.^2.*(-2.*R.*u.^8-10.*R.^...
            3.*u.^6)./u.^6./R.^3./X.^3+1./2.*u5.*cd.^2.*(1./16.*(4.*u.^5.*R.^2-3.*...
            u.^3.*R.^4-u.^7)./X.^3./u.^5-1./32.*(-2.*u.^2.*R.^6+6.*R.^2.*u.^6-10.*...
            u.^4.*R.^4-2.*u.^8)./X.^3./u.^6+1./16./R.^2./u.^2-1./16./u.^4)+1./4.*u3./X;
        Pa0=(((((-1./4.*u1-1./4.*u2.*R.^2)./u.^2+1./4.*u2-1./64.*u4.*cp.^...
            2.*(16.*u.^6.*R.^6+8.*u.^4.*R.^8+8.*u.^8.*R.^4)./u.^6./R.^3./X.^3+1./2.*...
            u5.*cd.^2.*(-1./32.*(-8.*u.^8.*R.^3+8.*u.^6.*R.^5-8.*R.*u.^10+8.*u.^4.*...
            R.^7)./X.^3./u.^6+1./16.*(-8.*u.^5.*R.^5-8.*u.^9.*R-16.*u.^7.*R.^3)./X.^...
            3./u.^5)).*vo-1./64.*u4.*cp.^2.*(-8.*u.^4.*xo.*R.^9+8.*u.^8.*xo.*R.^5+...
            8.*u.^10.*xo.*R.^3-8.*u.^6.*xo.*R.^7)./u.^6./R.^3./X.^3+(1./4.*u1.*R.*...
            xo+1./4.*u2.*R.^3.*xo)./u.^2+1./4.*u2.*R.*xo+1./2.*u5.*cd.^2.*(1./16.*...
            (4.*u.^5.*R.^6.*xo+12.*u.^7.*R.^4.*xo+4.*u.^11.*xo+12.*u.^9.*xo.*R.^2)./...
            X.^3./u.^5-1./32.*(-8.*u.^4.*xo.*R.^8-8.*xo.*u.^10.*R.^2-24.*xo.*u.^6.*...
            R.^6-24.*xo.*u.^8.*R.^4)./X.^3./u.^6)).*To+(1./2.*u5.*cd.^2.*(-1./32.*...
            (4.*u.^4.*R.^6+12.*u.^8.*R.^2+20.*u.^6.*R.^4-4.*u.^10)./X.^3./u.^6+1./...
            16.*(4.*u.^5.*R.^4-4.*u.^9)./X.^3./u.^5)-1./64.*u4.*cp.^2.*(-4.*u.^4.*...
            R.^7+4.*u.^8.*R.^3)./u.^6./R.^3./X.^3-1./4.*u2.*R./u.^2).*vo-1./64.*u4.*...
            cp.^2.*(-8.*xo.*u.^6.*R.^6-12.*xo.*u.^8.*R.^4+4.*u.^4.*xo.*R.^8)./u.^6./...
            R.^3./X.^3+1./4.*u2.*xo+1./4.*u2.*R.^2.*xo./u.^2+1./2.*u5.*cd.^2.*(1./...
            16.*(-4.*u.^5.*xo.*R.^5-4.*u.^9.*R.*xo-8.*u.^7.*xo.*R.^3)./X.^3./u.^5-...
            1./32.*(-4.*u.^4.*xo.*R.^7-20.*xo.*u.^6.*R.^5-12.*R.*xo.*u.^10-28.*xo.*...
            u.^8.*R.^3)./X.^3./u.^6)).*cos(2.*u.*To)+(((1./2.*u2.*R./u-1./64.*u4.*...
            cp.^2.*(16.*u.^7.*R.^5+8.*u.^9.*R.^3+8.*u.^5.*R.^7)./u.^6./R.^3./X.^3+...
            1./2.*u5.*cd.^2.*(-1./32.*(-8.*u.^11-8.*u.^9.*R.^2+8.*u.^5.*R.^6+8.*u.^...
            7.*R.^4)./X.^3./u.^6+1./16.*(16.*u.^6.*R.^4+8.*u.^4.*R.^6+8.*u.^8.*R.^...
            2)./X.^3./u.^5)).*vo-1./64.*u4.*cp.^2.*(-16.*u.^5.*xo.*R.^8-32.*u.^7.*...
            xo.*R.^6-16.*u.^9.*xo.*R.^4)./u.^6./R.^3./X.^3-1./4.*u2.*xo.*u+(1./4.*...
            u1.*xo-1./4.*u2.*R.^2.*xo)./u+1./2.*u5.*cd.^2.*(1./16.*(-4.*u.^4.*xo.*...
            R.^7-12.*xo.*u.^6.*R.^5-12.*xo.*u.^8.*R.^3-4.*R.*xo.*u.^10)./X.^3./u.^5-...
            1./32.*(-24.*u.^7.*R.^5.*xo-24.*u.^9.*xo.*R.^3-8.*u.^5.*R.^7.*xo-8.*u.^...
            11.*xo.*R)./X.^3./u.^6)).*To+(-1./64.*u4.*cp.^2.*(-8.*u.^7.*R.^4-8.*u.^...
            5.*R.^6)./u.^6./R.^3./X.^3+1./4.*u2./u+1./2.*u5.*cd.^2.*(-1./32.*(16.*...
            u.^7.*R.^3+16.*u.^9.*R)./X.^3./u.^6+1./16.*(8.*R.^3.*u.^6+8.*R.*u.^8)./...
            X.^3./u.^5)).*vo+1./2.*u5.*cd.^2.*(1./16.*(-2.*u.^10.*xo+2.*xo.*u.^4.*...
            R.^6+2.*xo.*u.^6.*R.^4-2.*xo.*u.^8.*R.^2)./X.^3./u.^5-1./32.*(-8.*u.^...
            11.*xo-16.*u.^9.*xo.*R.^2-8.*u.^7.*R.^4.*xo)./X.^3./u.^6)-1./64.*u4.*...
            cp.^2.*(-4.*u.^9.*xo.*R.^3+8.*u.^7.*R.^5.*xo+12.*u.^5.*R.^7.*xo)./u.^6./...
            R.^3./X.^3).*sin(2.*u.*To)+(1./4.*u2.*R./u.^2+1./2.*u5.*cd.^2.*(-1./8./...
            R.^2+1./8./u.^2)-1./64.*u4.*cp.^2.*(12.*u.^8.*R.^3+4.*u.^4.*R.^7+4.*R.*...
            u.^10+12.*u.^6.*R.^5)./u.^6./R.^3./X.^3).*vo+((1./4.*u2+(1./4.*u1+1./4.*...
            u2.*R.^2)./u.^2-1./64.*u4.*cp.^2.*(-24.*u.^8.*R.^4-24.*u.^6.*R.^6-8.*u.^...
            10.*R.^2-8.*u.^4.*R.^8)./u.^6./R.^3./X.^3+1./2.*u5.*cd.^2.*(1./4./R+1./...
            4.*R./u.^2)).*vo-1./64.*u4.*cp.^2.*(24.*u.^6.*xo.*R.^7+24.*u.^8.*xo.*R.^...
            5+8.*u.^10.*xo.*R.^3+8.*u.^4.*xo.*R.^9)./u.^6./R.^3./X.^3-1./4.*u2.*R.*...
            xo+(-1./4.*u2.*R.^3.*xo-1./4.*u1.*R.*xo)./u.^2+1./2.*u5.*cd.^2.*(-1./4.*...
            xo-1./4.*R.^2.*xo./u.^2)).*To+1./2.*u5.*cd.^2.*(-1./8./R.*xo-1./8.*R.*...
            xo./u.^2)-1./64.*u4.*cp.^2.*(-4.*xo.*u.^10.*R.^2-4.*u.^4.*xo.*R.^8-12.*...
            xo.*u.^8.*R.^4-12.*xo.*u.^6.*R.^6)./u.^6./R.^3./X.^3-1./4.*u2.*R.^2.*...
            xo./u.^2-1./4.*u2.*xo).*exp(2.*R.*To)+(-1./64.*u4.*cp.^2.*(-16.*u.^8.*...
            R.^3-12.*u.^6.*R.^5-4.*R.*u.^10)./u.^6./R.^3./X.^3+1./2.*u5.*cd.^2.*(-...
            1./8./u.^2-1./32.*(-4.*u.^4.*R.^6-20.*u.^6.*R.^4-12.*u.^8.*R.^2+4.*u.^...
            10)./X.^3./u.^6+1./16.*(-4.*u.^5.*R.^4+4.*u.^9)./X.^3./u.^5+1./8./R.^...
            2)).*vo+1./2.*u5.*cd.^2.*(1./16.*(4.*u.^9.*R.*xo+4.*u.^5.*xo.*R.^5+8.*...
            u.^7.*xo.*R.^3)./X.^3./u.^5+1./8.*R.*xo./u.^2-1./32.*(4.*u.^4.*xo.*R.^7+...
            12.*R.*xo.*u.^10+20.*xo.*u.^6.*R.^5+28.*xo.*u.^8.*R.^3)./X.^3./u.^6+1./...
            8./R.*xo)-1./64.*u4.*cp.^2.*(4.*xo.*u.^10.*R.^2+24.*xo.*u.^8.*R.^4+20.*...
            xo.*u.^6.*R.^6)./u.^6./R.^3./X.^3;
        Pb0=(((((-1./4.*u1-1./4.*u2.*R.^2)./u.^3+1./4.*u2./u-1./64.*u4.*...
            cp.^2.*(8.*u.^3.*R.^8+8.*u.^7.*R.^4+16.*u.^5.*R.^6)./u.^6./R.^3./X.^3+...
            1./2.*u5.*cd.^2.*(1./16.*(4.*R.*u.^8+4.*R.^3.*u.^6-4.*u.^2.*R.^7-4.*u.^...
            4.*R.^5)./X.^3./u.^5-1./32.*(16.*u.^5.*R.^5+32.*u.^7.*R.^3+16.*u.^9.*...
            R)./X.^3./u.^6)).*vo-1./64.*u4.*cp.^2.*(-8.*u.^5.*R.^7.*xo+8.*u.^9.*xo.*...
            R.^3-8.*u.^3.*R.^9.*xo+8.*u.^7.*R.^5.*xo)./u.^6./R.^3./X.^3+(1./4.*u1.*...
            R.*xo+1./4.*u2.*R.^3.*xo)./u.^3+1./4.*u2.*R.*xo./u+1./2.*u5.*cd.^2.*(-...
            1./32.*(-24.*u.^7.*R.^4.*xo-8.*u.^11.*xo-24.*u.^9.*xo.*R.^2-8.*u.^5.*R.^...
            6.*xo)./X.^3./u.^6+1./16.*(12.*xo.*u.^6.*R.^4+12.*xo.*u.^4.*R.^6+4.*xo.*...
            u.^8.*R.^2+4.*xo.*u.^2.*R.^8)./X.^3./u.^5)).*To+(-1./64.*u4.*cp.^2.*(4.*...
            u.^3.*R.^7+12.*u.^7.*R.^3+16.*u.^5.*R.^5)./u.^6./R.^3./X.^3+1./4.*u2.*...
            R./u.^3+1./2.*u5.*cd.^2.*(-1./32.*(-8.*u.^7.*R.^2+8.*u.^3.*R.^6)./X.^3./...
            u.^6+1./16.*(2.*u.^8+2.*R.^2.*u.^6+6.*u.^2.*R.^6+6.*u.^4.*R.^4)./X.^3./...
            u.^5)).*vo-1./64.*u4.*cp.^2.*(-28.*u.^7.*R.^4.*xo-12.*u.^3.*R.^8.*xo-...
            40.*u.^5.*R.^6.*xo)./u.^6./R.^3./X.^3+1./4.*u1.*xo./u.^3+1./2.*u5.*cd.^...
            2.*(1./16.*(2.*xo.*R.^3.*u.^6+2.*xo.*u.^8.*R-2.*xo.*R.^5.*u.^4-2.*xo.*...
            R.^7.*u.^2)./X.^3./u.^5-1./32.*(-8.*u.^3.*xo.*R.^7-16.*u.^5.*xo.*R.^5-...
            8.*u.^7.*xo.*R.^3)./X.^3./u.^6)).*sin(2.*u.*To)+(-1./64.*u4.*cp.^2.*...
            (24.*xo.*u.^8.*R.^4+8.*u.^4.*xo.*R.^8+24.*xo.*u.^6.*R.^6+8.*xo.*u.^10.*...
            R.^2)./u.^6./R.^3./X.^3-1./4.*u2.*xo+(-1./4.*u1.*xo-1./4.*u2.*R.^2.*...
            xo)./u.^2+1./2.*u5.*cd.^2.*(-1./4.*R.*xo./u.^2-1./4./R.*xo)).*To+((1./...
            4.*u1+1./4.*u2.*R.^2)./u.^4+1./8.*u5.*cd.^2.*R./u.^4-1./64.*u4.*cp.^2.*...
            (-8.*u.^2.*R.^8-24.*u.^4.*R.^6-24.*u.^6.*R.^4-8.*u.^8.*R.^2)./u.^6./R.^...
            3./X.^3).*vo+(((-1./2.*u2.*R./u.^2-1./64.*u4.*cp.^2.*(-8.*u.^8.*R.^3-8.*...
            u.^4.*R.^7-16.*u.^6.*R.^5)./u.^6./R.^3./X.^3+1./2.*u5.*cd.^2.*(1./16.*(-...
            4.*u.^9+4.*u.^5.*R.^4+4.*u.^3.*R.^6-4.*u.^7.*R.^2)./X.^3./u.^5-1./32.*...
            (32.*u.^6.*R.^4+16.*u.^8.*R.^2+16.*u.^4.*R.^6)./X.^3./u.^6)).*vo-1./64.*...
            u4.*cp.^2.*(16.*xo.*u.^8.*R.^4+16.*u.^4.*xo.*R.^8+32.*xo.*u.^6.*R.^6)./...
            u.^6./R.^3./X.^3+(-1./4.*u1.*xo+1./4.*u2.*R.^2.*xo)./u.^2+1./4.*u2.*xo+...
            1./2.*u5.*cd.^2.*(-1./32.*(-24.*xo.*u.^6.*R.^5-8.*R.*xo.*u.^10-8.*u.^4.*...
            xo.*R.^7-24.*xo.*u.^8.*R.^3)./X.^3./u.^6+1./16.*(-4.*u.^3.*xo.*R.^7-12.*...
            u.^5.*xo.*R.^5-12.*u.^7.*xo.*R.^3-4.*u.^9.*R.*xo)./X.^3./u.^5)).*To+(1./...
            2.*u5.*cd.^2.*(1./16.*(-8.*R.^5.*u.^3-8.*R.^3.*u.^5)./X.^3./u.^5-1./32.*...
            (8.*R.*u.^8+8.*u.^2.*R.^7+8.*u.^4.*R.^5+8.*R.^3.*u.^6)./X.^3./u.^6)-1./...
            64.*u4.*cp.^2.*(24.*u.^4.*R.^6+8.*u.^2.*R.^8+16.*u.^6.*R.^4)./u.^6./R.^...
            3./X.^3+(-1./4.*u1-1./4.*u2.*R.^2)./u.^4).*vo-1./64.*u4.*cp.^2.*(12.*...
            xo.*u.^8.*R.^3-8.*u.^2.*xo.*R.^9-20.*u.^4.*xo.*R.^7)./u.^6./R.^3./X.^3+...
            1./4.*u2.*R.*xo./u.^2+(1./4.*u1.*R.*xo+1./4.*u2.*R.^3.*xo)./u.^4+1./2.*...
            u5.*cd.^2.*(-1./32.*(-20.*xo.*u.^4.*R.^6-20.*xo.*u.^6.*R.^4-8.*xo.*u.^...
            2.*R.^8-4.*u.^10.*xo-12.*xo.*u.^8.*R.^2)./X.^3./u.^6+1./16.*(4.*u.^3.*...
            xo.*R.^6+4.*u.^7.*xo.*R.^2+8.*u.^5.*xo.*R.^4)./X.^3./u.^5)).*cos(2.*u.*...
            To)-1./4.*u2.*R.*xo./u.^2+(-1./4.*u2.*R.^3.*xo-1./4.*u1.*R.*xo)./u.^4+...
            1./2.*u5.*cd.^2.*(1./8./R.^2.*xo-1./4.*R.^2.*xo./u.^4-1./8.*xo./u.^2)-...
            1./64.*u4.*cp.^2.*(-4.*xo.*u.^8.*R.^3+20.*u.^4.*xo.*R.^7-4.*R.*xo.*u.^...
            10+8.*u.^2.*xo.*R.^9+12.*xo.*u.^6.*R.^5)./u.^6./R.^3./X.^3).*exp(2.*R.*...
            To)-1./64.*u4.*cp.^2.*(-8.*xo.*u.^8.*R.^3-12.*xo.*u.^6.*R.^5+4.*R.*xo.*...
            u.^10)./u.^6./R.^3./X.^3+(-1./64.*u4.*cp.^2.*(8.*u.^6.*R.^4+8.*u.^8.*R.^...
            2)./u.^6./R.^3./X.^3+1./2.*u5.*cd.^2.*(-1./32.*(-8.*R.*u.^8-8.*u.^2.*R.^...
            7-8.*R.^3.*u.^6-8.*u.^4.*R.^5)./X.^3./u.^6-1./4.*R./u.^4+1./16.*(8.*R.^...
            3.*u.^5+8.*R.^5.*u.^3)./X.^3./u.^5)).*vo+1./2.*u5.*cd.^2.*(1./8.*xo./u.^...
            2+1./4.*R.^2.*xo./u.^4-1./8./R.^2.*xo+1./16.*(-8.*u.^5.*xo.*R.^4-4.*u.^...
            7.*xo.*R.^2-4.*u.^3.*xo.*R.^6)./X.^3./u.^5-1./32.*(20.*xo.*u.^6.*R.^4+...
            4.*u.^10.*xo+8.*xo.*u.^2.*R.^8+20.*xo.*u.^4.*R.^6+12.*xo.*u.^8.*R.^2)./...
            X.^3./u.^6);
    end
end


%%% DELAYED SUBFUNCTION


function [sys,Pt,Et,Pctr,Po]=delOOLP(sys,modal)

da=1e6;db=da; % Differential elements
a=repmat([-da 0 da],length(sys.xo));b=a;
for aa =1:3
    sys.a=a(:,aa);
    for bb=1:3
        sys.b=b(:,bb);
        P(:,aa,bb)= performance(sys,1);
    end
end
Paa=(P(:,3,2)+P(:,1,2)-2*P(:,2,2))/da^2;
Pbb=(P(:,2,3)+P(:,2,1)-2*P(:,2,2))/db^2;
Pab=(P(:,3,3)+P(:,1,1)-P(:,1,3)-P(:,3,1))/4/da/db;
Pa0=(P(:,3,2)-P(:,1,2))/2/da;
Pb0=(P(:,2,3)-P(:,2,1))/2/db;
sys.b=(Paa.*Pb0-Pab.*Pa0)./(Pab.^2-Paa.*Pbb);
sys.a=(Pbb.*Pa0-Pab.*Pb0)./(Pab.^2-Paa.*Pbb);
[Pt,Et,Pctr,Po] = performance(sys,modal);
end

Contact us at files@mathworks.com