160 likes | 367 Views
Solving Fractional Optimal Control Problems using RIOTS. Christophe TRICAUD FOC Reading Group 04/02/2008. Fractional Optimal Control Problem?. Oustaloup Recursive Approximation. A fractional order transfer function can be approximated using a rational transfer function
E N D
Solving Fractional Optimal Control Problems using RIOTS Christophe TRICAUD FOC Reading Group 04/02/2008
Oustaloup Recursive Approximation • A fractional order transfer function can be approximated using a rational transfer function • Several steps give us a state-space realization
RIOTS Files • clear all • global N A B C D • alpha=1; • w_L=1e-2; • w_H=1e2; • N=4; • tgrid=0:0.01:1; • [A,B,C,D] = ssdata(ora_foc(-alpha,N,w_L,w_H)); • x0 = 1; • x0 = [x0;zeros(length(C')-1,1)]/(C*[x0;zeros(length(C')-1,1)]); • u0 = zeros(1, length(tgrid)); • parameters = [alpha, w_L, w_H, N]; • [u_openloop_optimal,x_ol_optml,f] = riots(x0, u0, tgrid, [], [], parameters, [100, 0, 1], 4); • function xdot = sys_h(neq,t,x,u) • global sys_params A B C D • % xdot must be a column vector with n rows. • %%%%%%%%%%%%%%%%%%%%%%%%%%%% • xdot = A*x + B*(-(C*x+D*u)+u); • % xdot = A*x + B*((C*x+D*u).*t+u); • function J = sys_g(neq,t,x0,xf) • global sys_params A B C D • % J is a scalar. • %%%%%%%%%%%%%%%%%%%%%%%%%%%% • J = 0*C*xf; • function z = l(neq,t,x,u) • global sys_params A B C D • % z is a scalar. • %%%%%%%%%%%%%%%%%%%%%%%%%%%% • z = C*x*x'*C' + D*u*u'*D' + u*u';
LTI FOCP – statesComparison With [Agrawal07] State variable x(t) as a function of time for different values of alpha (Δ = 0.5, O=0.75, +=0.95, X=1.0)
LTI FOCP – control Comparison With [Agrawal07] Control variable u(t) as a function of time for different values of alpha (Δ = 0.5, O=0.75, +=0.95, X=1.0)
LTI FOCP – states Comparison With [Agrawal08] State variable x(t) as a function of time for different values of alpha ( x = 0.6, O=0.7, Δ=0.8, +=0.9, □=1.0)
LTI FOCP – control Comparison With [Agrawal08] Control variable u(t) as a function of time for different values of alpha ( x = 0.6, O=0.7, Δ=0.8, +=0.9; □=1.0)
LTV FOCP – states Comparison With [Agrawal07] State variable x(t) as a function of time for different values of alpha (Δ = 0.5, O=0.75, +=0.95, X=1.0)
LTV FOCP – control Comparison With [Agrawal07] Control variable u(t) as a function of time for different values of alpha (Δ = 0.5, O=0.75, +=0.95, X=1.0)
LTV FOCP – states Comparison With [Agrawal08] State variable x(t) as a function of time for different values of alpha ( x = 0.6, O=0.7, Δ=0.8, +=0.9; □=1.0)
LTV FOCP – control Comparison With [Agrawal08] Control variable u(t) as a function of time for different values of alpha ( x = 0.6, O=0.7, Δ=0.8, +=0.9; □=1.0)