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 ...

performance(sys, modal)
function [P,Et,Po,Pc] = performance(sys, modal)
%PERFORMANCE	Computes the terminal performance of a given OCCD system.
%
%	 [P,Et,Po,Pc] = PERFORMANCE(sys) where SYS is the structure array as
%    given by OCSET, returns:
%		P is the terminal performance.
%		Et is the terminal energy term.
%		Po is the open-loop energy term.
%		Pc is the closed-loop energy term.
%
%    [P,Et,Po,Pc] = PERFORMANCE(SYS, modal) if modal is true, returns
%    the performance in each mode rather than total performance.

if nargin<2
    modal = false;
end

if sys.T > 0
    % Compute the delayed performance function
    [P,Et,Po,Pc] = del_performance(sys, modal);
    return
end
%Extract parameters from structure
Nt = length(sys.To); % Number of discrete time terms
Nx = length(sys.xo); % Number of initial modes specified
%%Adjust inputs to size Nt-by-Nx
n = 1:Nx;
To = repmat(sys.To(:), 1, Nx);
xo = repmat(sys.xo(:)', Nt, 1);
vo = repmat(sys.vo(:)', Nt, 1);
a = repmat(sys.a(:)', Nt, 1);
b = repmat(sys.b(:)', Nt, 1);
N = repmat(n, Nt, 1);
cp = sys.cp; cd = sys.cd;
u1 = sys.uu(1); u2 = sys.uu(2); u3 = sys.uu(3);
u4 = sys.uu(4); u5 = sys.uu(5);
Pc1=0;Pc2=0;
[R u] = ComputeRu; % Compute dependent open-loop relations
[tt ww dww zz dzz] = response(sys);
ComputeEt % Terminal energy
ComputePc % Closed-loop control energy
ComputePo % Open-loop control energy
P = real(Po+Pc+Et); % Modal performance

if ~modal && Nx>1
    P = sum(P, 2); % Total performance
    Pc = sum(Pc, 2);
    Po = sum(Po, 2);
    Et = sum(Et, 2);
end

    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 ComputeEt

        Et=((((1./4.*u1.*R.*xo+1./4.*u2.*R.^3.*xo+(-1./4.*u1-1./4.*u2.*R.^2).*...
            vo).*b./u.^3+(-1./8.*u1-1./8.*u2.*R.^2).*b.^2./u.^5-1./4.*u2.*xo.*a.*u+...
            ((1./4.*u2.*vo+1./4.*u2.*R.*xo).*b+1./8.*u2.*a.^2+(1./2.*u2.*R.*vo+1./...
            4.*u1.*xo-1./4.*u2.*R.^2.*xo).*a)./u).*To-1./2.*u2.*xo.*vo.*u+(1./4.*...
            u2.*R.*vo+1./4.*u1.*xo).*b./u.^3+((1./8.*u2.*a.*b+1./8.*u2.*R.*a.^2)./u+...
            (-1./8.*u2.*R.*b.^2+(-1./8.*u1-1./8.*u2.*R.^2).*a.*b)./u.^3).*To.^2+...
            ((1./2.*u1.*xo-1./2.*u2.*R.^2.*xo).*vo+1./2.*u2.*R.*vo.^2-1./2.*u1.*xo.^...
            2.*R+1./4.*u2.*vo.*a)./u).*sin(2.*u.*To)+(1./4.*u2.*xo.*a+((1./16.*u1+...
            1./16.*u2.*R.^2).*b.^2./u.^4+1./16.*u2.*a.^2+((-1./16.*u2.*R.^2-1./16.*...
            u1).*a.^2-1./4.*u2.*R.*a.*b-1./16.*u2.*b.^2)./u.^2).*To.^2+((-1./4.*u1-...
            1./4.*u2.*R.^2).*vo.^2+1./4.*u2.*R.*xo.*b+(1./2.*u1.*R.*xo+1./2.*u2.*R.^...
            3.*xo).*vo-1./16.*u2.*a.^2-1./4.*u1.*R.^2.*xo.^2+(1./4.*u2.*R.^2.*xo-1./...
            4.*u2.*R.*vo).*a-1./4.*u2.*R.^4.*xo.^2)./u.^2+1./4.*u1.*xo.^2-1./4.*u2.*...
            xo.^2.*u.^2+1./2.*u2.*R.*xo.*vo+((-1./8.*u2.*R.*b.^2+(-1./8.*u1-1./8.*...
            u2.*R.^2).*a.*b)./u.^4+((-1./8.*u2.*a-1./2.*u2.*R.*vo-1./4.*u1.*xo+1./...
            4.*u2.*R.^2.*xo).*b-1./8.*u2.*R.*a.^2+(1./4.*u1.*R.*xo+1./4.*u2.*R.^3.*...
            xo+(-1./4.*u1-1./4.*u2.*R.^2).*vo).*a)./u.^2+1./4.*u2.*xo.*b+(1./4.*u2.*...
            vo+1./4.*u2.*R.*xo).*a).*To+1./4.*u2.*vo.^2+(-1./8.*u2.*R.*a+(-1./4.*u1-...
            1./4.*u2.*R.^2).*vo+1./4.*u2.*R.^3.*xo+1./4.*u1.*R.*xo).*b./u.^4-1./2.*...
            u2.*R.^2.*xo.^2+(-1./16.*u2.*R.^2-1./16.*u1).*b.^2./u.^6).*cos(2.*u.*...
            To)+(1./16.*u2.*a.^2+((1./16.*u1+1./16.*u2.*R.^2).*a.^2+1./16.*u2.*b.^...
            2)./u.^2+(1./16.*u1+1./16.*u2.*R.^2).*b.^2./u.^4).*To.^2-1./4.*u2.*xo.*...
            a+((1./4.*u1+1./4.*u2.*R.^2).*vo.^2-1./4.*u2.*R.*xo.*b+(-1./2.*u1.*R.*...
            xo-1./2.*u2.*R.^3.*xo).*vo+1./16.*u2.*a.^2+1./4.*u1.*R.^2.*xo.^2+(-1./...
            4.*u2.*R.^2.*xo+1./4.*u2.*R.*vo).*a+1./4.*u2.*R.^4.*xo.^2)./u.^2+(-1./...
            4.*u2.*xo.*b+(1./4.*u2.*vo-1./4.*u2.*R.*xo).*a+((-1./4.*u1.*xo-1./4.*...
            u2.*R.^2.*xo+1./8.*u2.*a).*b+1./8.*u2.*R.*a.^2+(-1./4.*u1.*R.*xo-1./4.*...
            u2.*R.^3.*xo+(1./4.*u1+1./4.*u2.*R.^2).*vo).*a)./u.^2+(1./8.*u2.*R.*b.^...
            2+(1./8.*u1+1./8.*u2.*R.^2).*a.*b)./u.^4).*To+(1./16.*u1+1./16.*u2.*R.^...
            2).*b.^2./u.^6+1./4.*u1.*xo.^2+1./4.*u2.*xo.^2.*u.^2-1./2.*u2.*R.*xo.*...
            vo+1./4.*u2.*vo.^2+(1./8.*u2.*R.*a+(1./4.*u1+1./4.*u2.*R.^2).*vo-1./4.*...
            u2.*R.^3.*xo-1./4.*u1.*R.*xo).*b./u.^4+1./2.*u2.*R.^2.*xo.^2).*exp(2.*...
            R.*To);

    end

    function ComputePc
        if sum(sys.Type==[0 7])==0
            Pc1=((-1./64.*u4.*cp.^2.*(-6.*u.^6.*R.^4-2.*u.^8.*R.^2-6.*u.^4.*R.^...
                6-2.*u.^2.*R.^8)./u.^6./(R.^2+u.^2).^3./R.^3.*b.^2-1./64.*u4.*cp.^2.*(-...
                6.*u.^8.*R.^4-6.*u.^6.*R.^6-2.*u.^10.*R.^2-2.*u.^4.*R.^8)./u.^6./(R.^2+...
                u.^2).^3./R.^3.*a.^2).*To.^2+(-1./64.*u4.*cp.^2.*(8.*xo.*u.^7.*R.^5+12.*...
                xo.*u.^5.*R.^7-4.*xo.*u.^9.*R.^3)./u.^6./(R.^2+u.^2).^3./R.^3.*a+((-1./...
                64.*u4.*cp.^2.*(8.*u.^7.*R.^3+8.*u.^5.*R.^5)./u.^6./(R.^2+u.^2).^3./R.^...
                3.*a-1./64.*u4.*cp.^2.*(8.*xo.*u.^9.*R.^3-8.*xo.*u.^5.*R.^7+8.*xo.*u.^...
                7.*R.^5-8.*u.^3.*xo.*R.^9)./u.^6./(R.^2+u.^2).^3./R.^3).*b-1./64.*u4.*...
                cp.^2.*(8.*u.^5.*R.^4+12.*u.^3.*R.^6+4.*u.*R.^8)./u.^6./(R.^2+u.^2).^3./...
                R.^3.*b.^2-1./64.*u4.*cp.^2.*(-16.*R.^8.*xo.*u.^5-32.*R.^6.*xo.*u.^7-...
                16.*R.^4.*xo.*u.^9)./u.^6./(R.^2+u.^2).^3./R.^3.*a+(-1./64.*u4.*cp.^2.*...
                (8.*u.^9.*R.^3+8.*u.^5.*R.^7+16.*u.^7.*R.^5)./u.^6./(R.^2+u.^2).^3./R.^...
                3.*a-1./64.*u4.*cp.^2.*(16.*u.^5.*R.^6+8.*u.^7.*R.^4+8.*u.^3.*R.^8)./u.^...
                6./(R.^2+u.^2).^3./R.^3.*b).*vo-1./64.*u4.*cp.^2.*(-4.*u.^5.*R.^6-4.*u.^...
                7.*R.^4)./u.^6./(R.^2+u.^2).^3./R.^3.*a.^2).*To-1./64.*u4.*cp.^2.*(-u.^...
                7.*R.^3+3.*u.^5.*R.^5)./u.^6./(R.^2+u.^2).^3./R.^3.*a.^2-1./64.*u4.*cp.^...
                2.*(8.*u.^9.*R.^3+8.*u.^5.*R.^7+16.*u.^7.*R.^5)./u.^6./(R.^2+u.^2).^3./...
                R.^3.*vo.^2+(-1./64.*u4.*cp.^2.*(4.*u.^7.*R.^4+8.*u.^5.*R.^6+4.*u.^3.*...
                R.^8)./u.^6./(R.^2+u.^2).^3./R.^3.*a.*b-1./64.*u4.*cp.^2.*(-2.*u.^7.*R.^...
                3-4.*u.^5.*R.^5-2.*u.^3.*R.^7)./u.^6./(R.^2+u.^2).^3./R.^3.*b.^2-1./64.*...
                u4.*cp.^2.*(2.*u.^5.*R.^7+2.*u.^9.*R.^3+4.*u.^7.*R.^5)./u.^6./(R.^2+u.^...
                2).^3./R.^3.*a.^2).*To.^2+(-1./64.*u4.*cp.^2.*(-40.*xo.*u.^5.*R.^6-28.*...
                xo.*u.^7.*R.^4-12.*u.^3.*xo.*R.^8)./u.^6./(R.^2+u.^2).^3./R.^3-1./64.*...
                u4.*cp.^2.*(-10.*u.^5.*R.^4-2.*u.^3.*R.^6)./u.^6./(R.^2+u.^2).^3./R.^3.*...
                a).*b-1./64.*u4.*cp.^2.*(u.^3.*R.^5+5.*u.^5.*R.^3)./u.^6./(R.^2+u.^2).^...
                3./R.^3.*b.^2+(-1./64.*u4.*cp.^2.*(16.*u.^5.*R.^5+4.*u.^3.*R.^7+12.*u.^...
                7.*R.^3)./u.^6./(R.^2+u.^2).^3./R.^3.*b-1./64.*u4.*cp.^2.*(-32.*R.^4.*...
                xo.*u.^9-64.*R.^6.*xo.*u.^7-32.*R.^8.*xo.*u.^5)./u.^6./(R.^2+u.^2).^3./...
                R.^3-1./64.*u4.*cp.^2.*(-8.*u.^5.*R.^6-8.*u.^7.*R.^4)./u.^6./(R.^2+u.^...
                2).^3./R.^3.*a).*vo-1./64.*u4.*cp.^2.*(-8.*xo.^2.*u.^11.*R.^3+24.*R.^9.*...
                xo.^2.*u.^5+40.*xo.^2.*u.^7.*R.^7+8.*xo.^2.*u.^9.*R.^5)./u.^6./(R.^2+u.^...
                2).^3./R.^3).*sin(2.*u.*To)-1./64.*u4.*cp.^2.*(-32.*xo.^2.*u.^6.*R.^8-...
                8.*xo.^2.*u.^12.*R.^2-32.*xo.^2.*u.^10.*R.^4-8.*R.^10.*xo.^2.*u.^4-48.*...
                xo.^2.*u.^8.*R.^6)./u.^6./(R.^2+u.^2).^3./R.^3-1./64.*u4.*cp.^2.*(-9.*...
                u.^4.*R.^4-5.*u.^6.*R.^2-7.*u.^2.*R.^6-2.*R.^8-u.^8)./u.^6./(R.^2+u.^...
                2).^3./R.^3.*b.^2-1./64.*u4.*cp.^2.*(-12.*xo.*u.^8.*R.^4-12.*xo.*u.^6.*...
                R.^6-4.*xo.*u.^10.*R.^2-4.*xo.*u.^4.*R.^8)./u.^6./(R.^2+u.^2).^3./R.^3.*...
                a+(-1./64.*u4.*cp.^2.*(-4.*xo.*u.^8.*R.^3-4.*R.*xo.*u.^10+8.*xo.*u.^2.*...
                R.^9+12.*xo.*u.^6.*R.^5+20.*xo.*u.^4.*R.^7)./u.^6./(R.^2+u.^2).^3./R.^3-...
                1./64.*u4.*cp.^2.*(2.*R.*u.^8+6.*u.^6.*R.^3+2.*u.^2.*R.^7+6.*u.^4.*R.^...
                5)./u.^6./(R.^2+u.^2).^3./R.^3.*a).*b-1./64.*u4.*cp.^2.*(-8.*u.^10.*R.^...
                2-24.*u.^8.*R.^4-8.*u.^4.*R.^8-24.*u.^6.*R.^6)./u.^6./(R.^2+u.^2).^3./...
                R.^3.*vo.^2+(-1./64.*u4.*cp.^2.*(9.*u.^4.*R.^4+7.*u.^2.*R.^6+2.*R.^8)./...
                u.^6./(R.^2+u.^2).^3./R.^3.*b.^2+((-1./64.*u4.*cp.^2.*(4.*u.^2.*R.^8+...
                16.*u.^4.*R.^6+12.*u.^6.*R.^4)./u.^6./(R.^2+u.^2).^3./R.^3.*a-1./64.*...
                u4.*cp.^2.*(16.*xo.*u.^8.*R.^4+32.*xo.*u.^6.*R.^6+16.*xo.*u.^4.*R.^8)./...
                u.^6./(R.^2+u.^2).^3./R.^3).*b-1./64.*u4.*cp.^2.*(-2.*u.^2.*R.^7-8.*u.^...
                4.*R.^5-6.*u.^6.*R.^3)./u.^6./(R.^2+u.^2).^3./R.^3.*b.^2-1./64.*u4.*cp.^...
                2.*(-8.*xo.*u.^4.*R.^9-8.*xo.*u.^6.*R.^7+8.*xo.*u.^10.*R.^3+8.*xo.*u.^...
                8.*R.^5)./u.^6./(R.^2+u.^2).^3./R.^3.*a+(-1./64.*u4.*cp.^2.*(16.*u.^6.*...
                R.^6+8.*u.^4.*R.^8+8.*u.^8.*R.^4)./u.^6./(R.^2+u.^2).^3./R.^3.*a-1./64.*...
                u4.*cp.^2.*(-16.*u.^6.*R.^5-8.*u.^8.*R.^3-8.*u.^4.*R.^7)./u.^6./(R.^2+...
                u.^2).^3./R.^3.*b).*vo-1./64.*u4.*cp.^2.*(-2.*u.^4.*R.^7+2.*u.^8.*R.^...
                3)./u.^6./(R.^2+u.^2).^3./R.^3.*a.^2).*To-1./64.*u4.*cp.^2.*(-8.*xo.*u.^...
                6.*R.^6+4.*xo.*u.^4.*R.^8-12.*xo.*u.^8.*R.^4)./u.^6./(R.^2+u.^2).^3./R.^...
                3.*a+(-1./64.*u4.*cp.^2.*(-8.*u.^6.*R.^5-4.*u.^8.*R.^3-4.*u.^4.*R.^7)./...
                u.^6./(R.^2+u.^2).^3./R.^3.*a.*b-...
                1./64.*u4.*cp.^2.*(-2.*u.^2.*R.^8-4.*u.^4.*R.^6-   2.*u.^6.*R.^...
                4)./u.^6./(R.^2+u.^2).^3./R.^3.*b.^2-1./64.*u4.*cp.^2.*(2.*u.^4.*R.^8+...
                2.*u.^8.*R.^4+4.*u.^6.*R.^6)./u.^6./(R.^2+u.^2).^3./R.^3.*a.^2).*To.^2-...
                1./64.*u4.*cp.^2.*(-3.*u.^6.*R.^4+u.^4.*R.^6)./u.^6./(R.^2+u.^2).^3./R.^...
                3.*a.^2+(-1./64.*u4.*cp.^2.*(24.*u.^4.*R.^6+16.*u.^6.*R.^4+8.*u.^2.*R.^...
                8)./u.^6./(R.^2+u.^2).^3./R.^3.*b-1./64.*u4.*cp.^2.*(-16.*xo.*u.^4.*R.^...
                9+16.*xo.*u.^8.*R.^5+16.*xo.*u.^10.*R.^3-16.*xo.*u.^6.*R.^7)./u.^6./(R.^...
                2+u.^2).^3./R.^3-1./64.*u4.*cp.^2.*(-4.*u.^4.*R.^7+4.*u.^8.*R.^3)./u.^...
                6./(R.^2+u.^2).^3./R.^3.*a).*vo+(-1./64.*u4.*cp.^2.*(-20.*xo.*u.^4.*R.^...
                7-8.*xo.*u.^2.*R.^9+12.*xo.*u.^8.*R.^3)./u.^6./(R.^2+u.^2).^3./R.^3-1./...
                64.*u4.*cp.^2.*(-2.*u.^2.*R.^7+4.*u.^6.*R.^3-6.*u.^4.*R.^5)./u.^6./(R.^...
                2+u.^2).^3./R.^3.*a).*b-1./64.*u4.*cp.^2.*(16.*u.^6.*R.^6+8.*u.^4.*R.^8+...
                8.*u.^8.*R.^4)./u.^6./(R.^2+u.^2).^3./R.^3.*vo.^2-1./64.*u4.*cp.^2.*(-...
                40.*xo.^2.*u.^8.*R.^6+8.*R.^10.*xo.^2.*u.^4-24.*xo.^2.*u.^10.*R.^4-8.*...
                xo.^2.*u.^6.*R.^8)./u.^6./(R.^2+u.^2).^3./R.^3).*cos(2.*u.*To)-1./64.*...
                u4.*cp.^2.*(-3.*u.^6.*R.^4-u.^4.*R.^6-3.*u.^8.*R.^2-u.^10)./u.^6./(R.^2+...
                u.^2).^3./R.^3.*a.^2+((-1./64.*u4.*cp.^2.*(-4.*u.^8.*R.^2-12.*u.^6.*R.^...
                4-4.*u.^2.*R.^8-12.*u.^4.*R.^6)./u.^6./(R.^2+u.^2).^3./R.^3.*a-1./64.*...
                u4.*cp.^2.*(24.*xo.*u.^8.*R.^4+8.*xo.*u.^4.*R.^8+24.*xo.*u.^6.*R.^6+8.*...
                xo.*u.^10.*R.^2)./u.^6./(R.^2+u.^2).^3./R.^3).*b-1./64.*u4.*cp.^2.*(2.*...
                R.*u.^8+6.*u.^6.*R.^3+2.*u.^2.*R.^7+6.*u.^4.*R.^5)./u.^6./(R.^2+u.^2).^...
                3./R.^3.*b.^2-1./64.*u4.*cp.^2.*(24.*xo.*u.^6.*R.^7+24.*xo.*u.^8.*R.^5+...
                8.*xo.*u.^4.*R.^9+8.*xo.*u.^10.*R.^3)./u.^6./(R.^2+u.^2).^3./R.^3.*a-1./...
                64.*u4.*cp.^2.*(-8.*u.^10.*R.^2-24.*u.^8.*R.^4-8.*u.^4.*R.^8-24.*u.^6.*...
                R.^6)./u.^6./(R.^2+u.^2).^3./R.^3.*a.*vo-1./64.*u4.*cp.^2.*(6.*u.^8.*R.^...
                3+6.*u.^6.*R.^5+2.*u.^10.*R+2.*u.^4.*R.^7)./u.^6./(R.^2+u.^2).^3./R.^3.*...
                a.^2).*To+(-1./64.*u4.*cp.^2.*(48.*xo.*u.^8.*R.^5+48.*xo.*u.^6.*R.^7+...
                16.*xo.*u.^4.*R.^9+16.*xo.*u.^10.*R.^3)./u.^6./(R.^2+u.^2).^3./R.^3-1./...
                64.*u4.*cp.^2.*(12.*u.^6.*R.^5+4.*u.^4.*R.^7+4.*u.^10.*R+12.*u.^8.*R.^...
                3)./u.^6./(R.^2+u.^2).^3./R.^3.*a-1./64.*u4.*cp.^2.*(-8.*u.^8.*R.^2-24.*...
                u.^4.*R.^6-8.*u.^2.*R.^8-24.*u.^6.*R.^4)./u.^6./(R.^2+u.^2).^3./R.^3.*...
                b).*vo).*exp(2.*R.*To)-1./64.*u4.*cp.^2.*(8.*u.^6.*R.^6+8.*u.^10.*R.^2+...
                16.*u.^8.*R.^4)./u.^6./(R.^2+u.^2).^3./R.^3.*vo.^2-1./64.*u4.*cp.^2.*...
                (u.^10+6.*u.^6.*R.^4+3.*u.^8.*R.^2)./u.^6./(R.^2+u.^2).^3./R.^3.*a.^2-...
                1./64.*u4.*cp.^2.*(24.*xo.*u.^8.*R.^4+20.*xo.*u.^6.*R.^6+4.*xo.*u.^10.*...
                R.^2)./u.^6./(R.^2+u.^2).^3./R.^3.*a+(-1./64.*u4.*cp.^2.*(-12.*xo.*u.^...
                6.*R.^5+4.*R.*xo.*u.^10-8.*xo.*u.^8.*R.^3)./u.^6./(R.^2+u.^2).^3./R.^3-...
                1./64.*u4.*cp.^2.*(-10.*u.^6.*R.^3-2.*R.*u.^8)./u.^6./(R.^2+u.^2).^3./...
                R.^3.*a).*b+(-1./64.*u4.*cp.^2.*(8.*u.^6.*R.^4+8.*u.^8.*R.^2)./u.^6./...
                (R.^2+u.^2).^3./R.^3.*b-1./64.*u4.*cp.^2.*(-32.*xo.*u.^6.*R.^7-32.*xo.*...
                u.^10.*R.^3-64.*xo.*u.^8.*R.^5)./u.^6./(R.^2+u.^2).^3./R.^3-1./64.*u4.*...
                cp.^2.*(-16.*u.^8.*R.^3-4.*u.^10.*R-12.*u.^6.*R.^5)./u.^6./(R.^2+u.^2).^...
                3./R.^3.*a).*vo-1./64.*u4.*cp.^2.*(u.^8+5.*u.^6.*R.^2)./u.^6./(R.^2+u.^...
                2).^3./R.^3.*b.^2-1./64.*u4.*cp.^2.*(8.*xo.^2.*u.^12.*R.^2+40.*xo.^2.*...
                u.^6.*R.^8+88.*xo.^2.*u.^8.*R.^6+56.*xo.^2.*u.^10.*R.^4)./u.^6./(R.^2+...
                u.^2).^3./R.^3;
            Pc2=((1./2.*u5.*cd.^2.*(1./16./R+1./16.*R./u.^2).*a.^2+1./2.*u5.*...
                cd.^2.*(1./16.*R./u.^4+1./16./R./u.^2).*b.^2).*To.^2+((1./2.*u5.*cd.^2.*...
                (1./16.*(-2.*R.^3.*u.^4-2.*u.^6.*R-2.*R.^7-2.*R.^5.*u.^2)./(R.^2+u.^2).^...
                3./u.^5-1./32.*(8.*u.^3.*R.^5+8.*u.^5.*R.^3)./(R.^2+u.^2).^3./u.^6).*b.^...
                2+(1./2.*u5.*cd.^2.*(-1./32.*(-4.*u.^7.*R.^2+4.*u.^9-4.*u.^5.*R.^4+4.*...
                u.^3.*R.^6)./(R.^2+u.^2).^3./u.^6+1./16.*(-2.*u.^4.*R.^4+2.*u.^8-2.*u.^...
                6.*R.^2+2.*u.^2.*R.^6)./(R.^2+u.^2).^3./u.^5).*a+1./2.*u5.*cd.^2.*(-1./...
                32.*(-24.*xo.*u.^7.*R.^4-24.*u.^9.*xo.*R.^2-8.*xo.*u.^5.*R.^6-8.*u.^11.*...
                xo)./(R.^2+u.^2).^3./u.^6+1./16.*(12.*xo.*u.^4.*R.^6+4.*xo.*u.^8.*R.^2+...
                12.*xo.*u.^6.*R.^4+4.*xo.*u.^2.*R.^8)./(R.^2+u.^2).^3./u.^5)).*b+(1./2.*...
                u5.*cd.^2.*(-1./32.*(8.*u.^5.*R.^6+8.*u.^7.*R.^4-8.*u.^9.*R.^2-8.*u.^...
                11)./(R.^2+u.^2).^3./u.^6+1./16.*(16.*u.^6.*R.^4+8.*u.^4.*R.^6+8.*u.^8.*...
                R.^2)./(R.^2+u.^2).^3./u.^5).*a+1./2.*u5.*cd.^2.*(-1./32.*(16.*u.^9.*R+...
                32.*u.^7.*R.^3+16.*u.^5.*R.^5)./(R.^2+u.^2).^3./u.^6+1./16.*(4.*R.*u.^8-...
                4.*u.^2.*R.^7-4.*u.^4.*R.^5+4.*u.^6.*R.^3)./(R.^2+u.^2).^3./u.^5).*b).*...
                vo+1./2.*u5.*cd.^2.*(1./16.*(4.*u.^6.*R.^3+4.*R.*u.^8)./(R.^2+u.^2).^3./...
                u.^5-1./32.*(8.*u.^7.*R.^3+8.*u.^9.*R)./(R.^2+u.^2).^3./u.^6).*a.^2+1./...
                2.*u5.*cd.^2.*(-1./32.*(-24.*xo.*u.^9.*R.^3-8.*u.^11.*xo.*R-24.*xo.*u.^...
                7.*R.^5-8.*xo.*u.^5.*R.^7)./(R.^2+u.^2).^3./u.^6+1./16.*(-4.*R.*xo.*u.^...
                10-12.*xo.*u.^6.*R.^5-12.*xo.*u.^8.*R.^3-4.*xo.*u.^4.*R.^7)./(R.^2+u.^...
                2).^3./u.^5).*a).*To+1./2.*u5.*cd.^2.*(1./16.*(2.*xo.*u.^4.*R.^6-2.*u.^...
                10.*xo+2.*xo.*u.^6.*R.^4-2.*xo.*u.^8.*R.^2)./(R.^2+u.^2).^3./u.^5-1./...
                32.*(-8.*xo.*u.^7.*R.^4-8.*u.^11.*xo-16.*u.^9.*xo.*R.^2)./(R.^2+u.^2).^...
                3./u.^6).*a+1./2.*u5.*cd.^2.*(-1./32.*(8.*u.^5.*R.^6+8.*u.^7.*R.^4-8.*...
                u.^9.*R.^2-8.*u.^11)./(R.^2+u.^2).^3./u.^6+1./16.*(16.*u.^6.*R.^4+8.*u.^...
                4.*R.^6+8.*u.^8.*R.^2)./(R.^2+u.^2).^3./u.^5).*vo.^2+(1./2.*u5.*cd.^2.*...
                (-1./32.*(16.*u.^7.*R.^3+16.*u.^9.*R)./(R.^2+u.^2).^3./u.^6+1./16.*(8.*...
                u.^6.*R.^3+8.*R.*u.^8)./(R.^2+u.^2).^3./u.^5).*a+1./2.*u5.*cd.^2.*(1./...
                16.*(6.*u.^4.*R.^4+2.*u.^6.*R.^2+2.*u.^8+6.*u.^2.*R.^6)./(R.^2+u.^2).^...
                3./u.^5-1./32.*(-8.*u.^7.*R.^2+8.*u.^3.*R.^6)./(R.^2+u.^2).^3./u.^6).*b+...
                1./2.*u5.*cd.^2.*(-1./32.*(-16.*xo.*u.^5.*R.^7-16.*u.^11.*xo.*R-48.*xo.*...
                u.^9.*R.^3-48.*xo.*u.^7.*R.^5)./(R.^2+u.^2).^3./u.^6+1./16.*(-8.*xo.*u.^...
                4.*R.^7-24.*xo.*u.^6.*R.^5-24.*xo.*u.^8.*R.^3-8.*R.*xo.*u.^10)./(R.^2+...
                u.^2).^3./u.^5)).*vo+(1./2.*u5.*cd.^2.*(1./16.*(-3.*u.^6.*R+4.*R.^3.*u.^...
                4-R.^5.*u.^2)./(R.^2+u.^2).^3./u.^5-1./32.*(-4.*u.^7.*R+12.*u.^5.*R.^...
                3)./(R.^2+u.^2).^3./u.^6).*a+1./2.*u5.*cd.^2.*(-1./32.*(-8.*u.^3.*xo.*...
                R.^7-16.*u.^5.*xo.*R.^5-8.*u.^7.*xo.*R.^3)./(R.^2+u.^2).^3./u.^6+1./16.*...
                (-2.*xo.*u.^4.*R.^5-2.*xo.*u.^2.*R.^7+2.*xo.*u.^6.*R.^3+2.*xo.*u.^8.*...
                R)./(R.^2+u.^2).^3./u.^5)).*b+(1./2.*u5.*cd.^2.*(1./16.*(2.*R.*u.^8-2.*...
                u.^2.*R.^7+2.*u.^6.*R.^3-2.*u.^4.*R.^5)./(R.^2+u.^2).^3./u.^5-1./32.*...
                (8.*u.^5.*R.^5+16.*u.^7.*R.^3+8.*u.^9.*R)./(R.^2+u.^2).^3./u.^6).*a.*b+...
                1./2.*u5.*cd.^2.*(-1./32.*(2.*u.^7.*R.^4-2.*u.^11-2.*u.^9.*R.^2+2.*u.^...
                5.*R.^6)./(R.^2+u.^2).^3./u.^6+1./16.*(2.*u.^4.*R.^6+4.*u.^6.*R.^4+2.*...
                u.^8.*R.^2)./(R.^2+u.^2).^3./u.^5).*a.^2+1./2.*u5.*cd.^2.*(1./16.*(-2.*...
                u.^2.*R.^6-2.*u.^6.*R.^2-4.*u.^4.*R.^4)./(R.^2+u.^2).^3./u.^5-1./32.*...
                (2.*u.^7.*R.^2+2.*u.^9-2.*u.^5.*R.^4-2.*u.^3.*R.^6)./(R.^2+u.^2).^3./u.^...
                6).*b.^2).*To.^2+1./2.*u5.*cd.^2.*(1./16.*(R.^6+2.*R.^2.*u.^4-R.^4.*u.^...
                2)./(R.^2+u.^2).^3./u.^5-1./32.*(2.*u.^5.*R.^2-u.^7-3.*u.^3.*R.^4+2.*u.*...
                R.^6)./(R.^2+u.^2).^3./u.^6).*b.^2+1./2.*u5.*cd.^2.*(-1./32.*(-4.*u.^7.*...
                R.^2+3.*u.^9+u.^5.*R.^4)./(R.^2+u.^2).^3./u.^6+1./16.*(-3.*u.^6.*R.^2+...
                u.^8)./(R.^2+u.^2).^3./u.^5).*a.^2-1./64.*u5.*cd.^2.*(8.*u.^13.*xo.^2+...
                32.*u.^11.*xo.^2.*R.^2+48.*u.^9.*xo.^2.*R.^4+32.*u.^7.*xo.^2.*R.^6+8.*...
                u.^5.*xo.^2.*R.^8)./(R.^2+u.^2).^3./u.^6).*sin(2.*u.*To)+(1./2.*u5.*cd.^...
                2.*(-1./16./R.^2./u.^2+1./16./u.^4).*b.^2+(1./2.*u5.*cd.^2.*(1./8./R./...
                u.^2+1./8.*R./u.^4).*a+1./2.*u5.*cd.^2.*(-1./4.*xo.*R./u.^2-1./4./R.*...
                xo)).*b+1./2.*u5.*cd.^2.*(1./4./R+1./4.*R./u.^2).*a.*vo+1./2.*u5.*cd.^...
                2.*(-1./16./R.^2+1./16./u.^2).*a.^2+...
                1./2.*u5.*cd.^2.*(-1./4.*xo-1./4.*R.^2.*xo./u.^2).*a).*To+1./2.*...
                u5.*cd.^2.*(1./32./R.^3+1./32./R./u.^2).*a.^2+1./2.*u5.*cd.^2.*(-1./8.*...
                xo.*R./u.^2-1./8./R.*xo).*a+1./2.*u5.*cd.^2.*(-1./32./R./u.^4+1./16.*R./...
                u.^6+1./32./R.^3./u.^2).*b.^2+1./2.*u5.*cd.^2.*(1./4./R+1./4.*R./u.^2).*...
                vo.^2+(1./2.*u5.*cd.^2.*(-1./32.*(8.*u.^4.*R.^7-8.*u.^8.*R.^3+8.*u.^6.*...
                R.^5-8.*u.^10.*R)./(R.^2+u.^2).^3./u.^6+1./16.*(-8.*u.^5.*R.^5-8.*u.^9.*...
                R-16.*u.^7.*R.^3)./(R.^2+u.^2).^3./u.^5).*vo.^2+(1./2.*u5.*cd.^2.*(1./...
                16.*(4.*u.^5.*R.^4-4.*u.^9)./(R.^2+u.^2).^3./u.^5-1./32.*(4.*u.^4.*R.^6+...
                12.*u.^8.*R.^2+20.*u.^6.*R.^4-4.*u.^10)./(R.^2+u.^2).^3./u.^6).*a+1./2.*...
                u5.*cd.^2.*(-1./32.*(8.*R.*u.^8+8.*u.^6.*R.^3+8.*u.^2.*R.^7+8.*u.^4.*R.^...
                5)./(R.^2+u.^2).^3./u.^6+1./16.*(-8.*u.^5.*R.^3-8.*u.^3.*R.^5)./(R.^2+...
                u.^2).^3./u.^5).*b+1./2.*u5.*cd.^2.*(-1./32.*(-48.*xo.*u.^8.*R.^4-16.*...
                xo.*u.^4.*R.^8-48.*xo.*u.^6.*R.^6-16.*xo.*u.^10.*R.^2)./(R.^2+u.^2).^3./...
                u.^6+1./16.*(8.*xo.*u.^5.*R.^6+8.*u.^11.*xo+24.*u.^9.*xo.*R.^2+24.*xo.*...
                u.^7.*R.^4)./(R.^2+u.^2).^3./u.^5)).*vo+(1./2.*u5.*cd.^2.*(1./16.*(3.*...
                u.^3.*R.^4+u.^7-4.*u.^5.*R.^2)./(R.^2+u.^2).^3./u.^5-1./32.*(2.*u.^2.*...
                R.^6+10.*u.^4.*R.^4+2.*u.^8-6.*u.^6.*R.^2)./(R.^2+u.^2).^3./u.^6).*a+1./...
                2.*u5.*cd.^2.*(-1./32.*(-8.*xo.*u.^2.*R.^8-4.*u.^10.*xo-20.*xo.*u.^4.*...
                R.^6-12.*xo.*u.^8.*R.^2-20.*xo.*u.^6.*R.^4)./(R.^2+u.^2).^3./u.^6+1./...
                16.*(8.*u.^5.*xo.*R.^4+4.*u.^7.*xo.*R.^2+4.*u.^3.*R.^6.*xo)./(R.^2+u.^...
                2).^3./u.^5)).*b+1./2.*u5.*cd.^2.*(-1./32.*(2.*R.^7+R.^5.*u.^2-u.^6.*R+...
                6.*R.^3.*u.^4)./(R.^2+u.^2).^3./u.^6+1./16.*(u.^3.*R.^3-2.*u.*R.^5-u.^...
                5.*R)./(R.^2+u.^2).^3./u.^5).*b.^2-1./64.*u5.*cd.^2.*(8.*xo.^2.*u.^4.*...
                R.^9+8.*R.*xo.^2.*u.^12+32.*xo.^2.*u.^6.*R.^7+48.*xo.^2.*u.^8.*R.^5+32.*...
                xo.^2.*u.^10.*R.^3)./(R.^2+u.^2).^3./u.^6+(1./2.*u5.*cd.^2.*(1./16.*(2.*...
                u.^3.*R.^6+2.*u.^5.*R.^4-2.*u.^7.*R.^2-2.*u.^9)./(R.^2+u.^2).^3./u.^5-...
                1./32.*(16.*u.^6.*R.^4+8.*u.^4.*R.^6+8.*u.^8.*R.^2)./(R.^2+u.^2).^3./u.^...
                6).*a.*b+1./2.*u5.*cd.^2.*(-1./32.*(2.*u.^6.*R.^5-2.*u.^10.*R+2.*u.^4.*...
                R.^7-2.*u.^8.*R.^3)./(R.^2+u.^2).^3./u.^6+1./16.*(-2.*u.^9.*R-4.*u.^7.*...
                R.^3-2.*u.^5.*R.^5)./(R.^2+u.^2).^3./u.^5).*a.^2+1./2.*u5.*cd.^2.*(1./...
                16.*(2.*u.^3.*R.^5+2.*u.^7.*R+4.*u.^5.*R.^3)./(R.^2+u.^2).^3./u.^5-1./...
                32.*(2.*R.*u.^8-2.*u.^2.*R.^7+2.*u.^6.*R.^3-2.*u.^4.*R.^5)./(R.^2+u.^...
                2).^3./u.^6).*b.^2).*To.^2+1./2.*u5.*cd.^2.*(1./16.*(-u.^5.*R.^3+3.*u.^...
                7.*R)./(R.^2+u.^2).^3./u.^5-1./32.*(7.*R.*u.^8+u.^4.*R.^5)./(R.^2+u.^...
                2).^3./u.^6).*a.^2+(1./2.*u5.*cd.^2.*(1./16.*(-2.*u.^5.*R.^2+2.*u.*R.^...
                6)./(R.^2+u.^2).^3./u.^5-1./32.*(6.*u.^4.*R.^4+2.*u.^6.*R.^2+2.*u.^8+6.*...
                u.^2.*R.^6)./(R.^2+u.^2).^3./u.^6).*b.^2+(1./2.*u5.*cd.^2.*(-1./32.*...
                (12.*u.^6.*R.^3+4.*u.^2.*R.^7+12.*R.*u.^8+4.*u.^4.*R.^5)./(R.^2+u.^2).^...
                3./u.^6+1./16.*(-4.*u.^3.*R.^5+4.*u.^7.*R)./(R.^2+u.^2).^3./u.^5).*a+1./...
                2.*u5.*cd.^2.*(-1./32.*(-8.*xo.*u.^4.*R.^7-24.*xo.*u.^6.*R.^5-24.*xo.*...
                u.^8.*R.^3-8.*R.*xo.*u.^10)./(R.^2+u.^2).^3./u.^6+1./16.*(-12.*u.^7.*...
                xo.*R.^3-4.*u.^9.*R.*xo-12.*u.^5.*xo.*R.^5-4.*u.^3.*xo.*R.^7)./(R.^2+u.^...
                2).^3./u.^5)).*b+(1./2.*u5.*cd.^2.*(-1./32.*(8.*u.^4.*R.^7-8.*u.^8.*R.^...
                3+8.*u.^6.*R.^5-8.*u.^10.*R)./(R.^2+u.^2).^3./u.^6+1./16.*(-8.*u.^5.*R.^...
                5-8.*u.^9.*R-16.*u.^7.*R.^3)./(R.^2+u.^2).^3./u.^5).*a+1./2.*u5.*cd.^2.*...
                (-1./32.*(16.*u.^4.*R.^6+32.*u.^6.*R.^4+16.*u.^8.*R.^2)./(R.^2+u.^2).^...
                3./u.^6+1./16.*(-4.*u.^7.*R.^2-4.*u.^9+4.*u.^5.*R.^4+4.*u.^3.*R.^6)./...
                (R.^2+u.^2).^3./u.^5).*b).*vo+1./2.*u5.*cd.^2.*(1./16.*(2.*u.^5.*R.^4-...
                2.*u.^9)./(R.^2+u.^2).^3./u.^5-1./32.*(10.*u.^6.*R.^4+2.*u.^4.*R.^6+6.*...
                u.^8.*R.^2-2.*u.^10)./(R.^2+u.^2).^3./u.^6).*a.^2+1./2.*u5.*cd.^2.*(-1./...
                32.*(-24.*xo.*u.^8.*R.^4-8.*xo.*u.^4.*R.^8-24.*xo.*u.^6.*R.^6-8.*xo.*u.^...
                10.*R.^2)./(R.^2+u.^2).^3./u.^6+1./16.*(12.*u.^9.*xo.*R.^2+4.*u.^11.*xo+...
                4.*xo.*u.^5.*R.^6+12.*xo.*u.^7.*R.^4)./(R.^2+u.^2).^3./u.^5).*a).*To+1./...
                2.*u5.*cd.^2.*(-1./32.*(-20.*xo.*u.^6.*R.^5-12.*R.*xo.*u.^10-4.*xo.*u.^...
                4.*R.^7-28.*xo.*u.^8.*R.^3)./(R.^2+u.^2).^3./u.^6+1./16.*(-4.*u.^9.*R.*...
                xo-8.*u.^7.*xo.*R.^3-4.*u.^5.*xo.*R.^5)./(R.^2+u.^2).^3./u.^5).*a).*...
                cos(2.*u.*To)+...
                (1./2.*u5.*cd.^2.*(1./8./u.^2-1./8./R.^2).*a+1./8.*u5.*cd.^2.*...
                R./u.^4.*b+1./2.*u5.*cd.^2.*(-1./2.*xo-1./2.*R.^2.*xo./u.^2)).*vo+1./2.*...
                u5.*cd.^2.*(1./2.*xo.^2.*R+1./4.*R.^3.*xo.^2./u.^2+1./4./R.*xo.^2.*u.^...
                2)+(1./2.*u5.*cd.^2.*(-1./16./R.^2./u.^2+1./16./u.^4).*a+1./2.*u5.*cd.^...
                2.*(-1./8.*xo./u.^2-1./4.*R.^2.*xo./u.^4+1./8.*xo./R.^2)).*b).*exp(2.*...
                R.*To)+1./2.*u5.*cd.^2.*(-1./32.*(-8.*u.^6.*R.^5+8.*u.^8.*R.^3+8.*u.^...
                10.*R-8.*u.^4.*R.^7)./(R.^2+u.^2).^3./u.^6-1./4.*R./u.^2+1./16.*(8.*u.^...
                5.*R.^5+16.*u.^7.*R.^3+8.*u.^9.*R)./(R.^2+u.^2).^3./u.^5-1./4./R).*vo.^...
                2+(1./2.*u5.*cd.^2.*(-1./32.*(-4.*u.^4.*R.^6+4.*u.^10-12.*u.^8.*R.^2-...
                20.*u.^6.*R.^4)./(R.^2+u.^2).^3./u.^6+1./16.*(-4.*u.^5.*R.^4+4.*u.^9)./...
                (R.^2+u.^2).^3./u.^5+1./8./R.^2-1./8./u.^2).*a+1./2.*u5.*cd.^2.*(1./16.*...
                (8.*u.^3.*R.^5+8.*u.^5.*R.^3)./(R.^2+u.^2).^3./u.^5-1./4.*R./u.^4-1./...
                32.*(-8.*u.^6.*R.^3-8.*u.^2.*R.^7-8.*R.*u.^8-8.*u.^4.*R.^5)./(R.^2+u.^...
                2).^3./u.^6).*b+1./2.*u5.*cd.^2.*(1./16.*(-24.*xo.*u.^7.*R.^4-24.*u.^9.*...
                xo.*R.^2-8.*xo.*u.^5.*R.^6-8.*u.^11.*xo)./(R.^2+u.^2).^3./u.^5-1./32.*...
                (48.*xo.*u.^6.*R.^6+48.*xo.*u.^8.*R.^4+16.*xo.*u.^10.*R.^2+16.*xo.*u.^...
                4.*R.^8)./(R.^2+u.^2).^3./u.^6+1./2.*R.^2.*xo./u.^2+1./2.*xo)).*vo+1./...
                2.*u5.*cd.^2.*(-1./32.*(20.*xo.*u.^6.*R.^5+4.*xo.*u.^4.*R.^7+12.*R.*xo.*...
                u.^10+28.*xo.*u.^8.*R.^3)./(R.^2+u.^2).^3./u.^6+1./16.*(8.*u.^7.*xo.*R.^...
                3+4.*u.^9.*R.*xo+4.*u.^5.*xo.*R.^5)./(R.^2+u.^2).^3./u.^5+1./8./R.*xo+...
                1./8.*xo.*R./u.^2).*a+1./2.*u5.*cd.^2.*(1./16.*(u.^5.*R+2.*u.*R.^5-u.^...
                3.*R.^3)./(R.^2+u.^2).^3./u.^5-1./16.*R./u.^6-1./32.*(-6.*R.^3.*u.^4+u.^...
                6.*R-2.*R.^7-R.^5.*u.^2)./(R.^2+u.^2).^3./u.^6-1./32./R.^3./u.^2+1./32./...
                R./u.^4).*b.^2+(1./2.*u5.*cd.^2.*(1./16.*(-3.*u.^3.*R.^4+4.*u.^5.*R.^2-...
                u.^7)./(R.^2+u.^2).^3./u.^5+1./16./R.^2./u.^2-1./16./u.^4-1./32.*(-10.*...
                u.^4.*R.^4+6.*u.^6.*R.^2-2.*u.^2.*R.^6-2.*u.^8)./(R.^2+u.^2).^3./u.^6).*...
                a+1./2.*u5.*cd.^2.*(-1./8.*xo./R.^2-1./32.*(8.*xo.*u.^2.*R.^8+4.*u.^10.*...
                xo+20.*xo.*u.^4.*R.^6+20.*xo.*u.^6.*R.^4+12.*xo.*u.^8.*R.^2)./(R.^2+u.^...
                2).^3./u.^6+1./16.*(-8.*u.^5.*xo.*R.^4-4.*u.^7.*xo.*R.^2-4.*u.^3.*R.^6.*...
                xo)./(R.^2+u.^2).^3./u.^5+1./8.*xo./u.^2+1./4.*R.^2.*xo./u.^4)).*b+1./...
                2.*u5.*cd.^2.*(-1./32.*(-u.^4.*R.^5-7.*R.*u.^8)./(R.^2+u.^2).^3./u.^6-...
                1./32./R.^3-1./32./R./u.^2+1./16.*(u.^5.*R.^3-3.*u.^7.*R)./(R.^2+u.^2).^...
                3./u.^5).*a.^2+1./2.*u5.*cd.^2.*(-1./4.*R.^3.*xo.^2./u.^2-1./4./R.*xo.^...
                2.*u.^2-1./2.*xo.^2.*R-1./32.*(-8.*xo.^2.*u.^4.*R.^9-48.*xo.^2.*u.^8.*...
                R.^5-32.*xo.^2.*u.^10.*R.^3-32.*xo.^2.*u.^6.*R.^7-8.*R.*xo.^2.*u.^12)./...
                (R.^2+u.^2).^3./u.^6);
            Pc=Pc1+Pc2;
        else
            Pc = zeros(size(Et));
        end
    end

    function ComputePo
        if sum(sys.Type==[0 4 5 6])==0,
            %Open loop control energy
            Po=(1./8.*u3./u.^2./R.*b.^2+(-1./8.*u3./u./(R.^2+u.^2).*b.^2+1./4.*...
                u3.*R./u./(R.^2+u.^2).*a.*b+1./8.*u3.*u./(R.^2+u.^2).*a.^2).*sin(2.*u.*...
                To)+(-1./8.*u3.*R./u.^2./(R.^2+u.^2).*b.^2-1./4.*u3./(R.^2+u.^2).*a.*b+...
                1./8.*u3.*R./(R.^2+u.^2).*a.^2).*cos(2.*u.*To)+1./8.*u3.*(u.^2.*R.^2+u.^...
                4)./u.^2./(R.^2+u.^2)./R.*a.^2).*exp(2.*R.*To)+1./4.*u3./(R.^2+u.^2).*...
                a.*b+1./8.*u3.*(-2.*u.^2.*R.^2-u.^4)./u.^2./(R.^2+u.^2)./R.*a.^2-1./8.*...
                u3./(R.^2+u.^2)./R.*b.^2;
        else
            Po = zeros(size(Et));
        end
    end
end


%%% DELAYED SUBFUNCTION


function [P,E,Po,Pc] = del_performance(sys, modal)

[t W dW Z dZ] = response(sys);
n = (1:length(sys.xo)).';
%Compute dependent and IOL relations
N = 1:length(sys.xo);
wo = (N*pi).^2*sys.Alpha;
R = -sys.Gamma*wo - sys.cd/2;
u = sqrt(wo.^2 + sys.cp - R.^2);
lambda = -2*sys.Gamma*wo;

% Compute open loop relations
if sys.IOL
    Ro = -sys.Gamma*wo;
    uo = sqrt(wo.^2 - Ro.^2);
else
    Ro = R;
    uo = u;
end

%Generating Terminal Energy
z2 = Z.^2;
dz2 = dZ.^2;
E = (sys.uu(1)*z2(end,:) + sys.uu(2)*dz2(end,:))/2;
%%Adjust inputs to correct length
Nt = length(t); % Number of discrete time terms
Nx = length(sys.xo); % Number of initial modes specified
tt= t(:)';
if Nx>1
    sys.a = repmat(sys.a(:), 1, Nt);
    sys.b = repmat(sys.b(:), 1, Nt);
    u = repmat(u(:), 1, Nt);
    R = repmat(R(:), 1, Nt);
    uo = repmat(uo(:), 1, Nt);
    Ro = repmat(Ro(:), 1, Nt);
    t = repmat(tt, Nx, 1);
end
if sys.IOL
    Q2 = (exp(R.*t).*(sys.b./u.*sin(u.*t)+sys.a.*cos(u.*t))).^2;%Integrand
else
    Q2 = (exp(Ro.*t).*(sys.b./uo.*sin(uo.*t) + sys.a.*cos(uo.*t))).^2;%Integrand
end
Po = sys.uu(3)/2*trapz(tt, Q2,2)';%Integration
%Generating Closed-Loop Energy
Pc = sys.uu(4)/2*sys.cp.^2.*trapz(tt(tt>sys.T), Z(tt>sys.T,:).^2,1);%Integration;
Pc = Pc + sys.uu(5)/2*sys.cd.^2.*trapz(tt(tt>sys.T), dZ(tt>sys.T,:).^2,1);%Integration;
%Total Energy
P = E + Po + Pc;
if ~modal && Nx>1,
    P = sum(P, 2);
    E = sum(E, 2);
    Po = sum(Po, 2);
    Pc = sum(Pc, 2);
end
end

Contact us at files@mathworks.com