1 / 16

Solving Fractional Optimal Control Problems using RIOTS

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

zanthe
Download Presentation

Solving Fractional Optimal Control Problems using RIOTS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Solving Fractional Optimal Control Problems using RIOTS Christophe TRICAUD FOC Reading Group 04/02/2008

  2. Fractional Optimal Control Problem?

  3. Oustaloup Recursive Approximation • A fractional order transfer function can be approximated using a rational transfer function • Several steps give us a state-space realization

  4. FOCP Reformulation

  5. Illustrative Example

  6. Illustrative Example

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

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

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

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

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

  12. Illustrative Example

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

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

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

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

More Related