PROPT Flow in a Channel: Difference between revisions

From TomWiki
Jump to navigationJump to search
No edit summary
No edit summary
Line 81: Line 81:
<pre>
<pre>
Problem type appears to be: lpcon
Problem type appears to be: lpcon
Time for symbolic processing: 0.103 seconds
Time for symbolic processing: 0.095156 seconds
Starting numeric solver
Starting numeric solver
===== * * * =================================================================== * * *
===== * * * =================================================================== * * *
Line 96: Line 96:


FuncEv    1 ConstrEv  11 ConJacEv  11 Iter    9 MinorIter  91
FuncEv    1 ConstrEv  11 ConJacEv  11 Iter    9 MinorIter  91
CPU time: 0.031200 sec. Elapsed time: 0.031000 sec.  
CPU time: 0.015600 sec. Elapsed time: 0.029000 sec.  


</pre>
</pre>

Revision as of 09:04, 8 November 2011

Notice.png

This page is part of the PROPT Manual. See PROPT Manual.

Benchmarking Optimization Software with COPS Elizabeth D. Dolan and Jorge J. More ARGONNE NATIONAL LABORATORY

Problem Formulation

Find u(t) over t in [0; 1 ] to minimize

subject to:

After some transformation we get this problem:

% Copyright (c) 2007-2008 by Tomlab Optimization Inc.

Problem setup

toms t
p = tomPhase('p', t, 0, 1, 30);
setPhase(p);

tomStates x1 x2 x3 x4

x0 = icollocate({x1 == 3*t.^2 - 2*t.^3
    x2 == 2*t - 6*t.^2
    x3 == t - 12*t
    x4 == -12});

% Boundary constraints
cbnd = {initial({x1 == 0; x2 == 0})
    final({x1 == 1; x2 == 0})};

% Various constants and expressions
R = 10;

% ODEs and path constraints
ceq = collocate({dot(x1) == x2
    dot(x2) == x3; dot(x3) == x4
    dot(x4) == R*(x2.*x3-x1.*x4)});

% Objective
objective = 1; %(feasibility problem)

Solve the problem

options = struct;
options.name = 'Flow in a Channel Steering';
solution = ezsolve(objective, {cbnd, ceq}, x0, options);

% Extract optimal states and controls from solution
t  = subs(collocate(t),solution);
x1 = subs(collocate(x1),solution);
x2 = subs(collocate(x2),solution);
x3 = subs(collocate(x3),solution);
x4 = subs(collocate(x4),solution);
Problem type appears to be: lpcon
Time for symbolic processing: 0.095156 seconds
Starting numeric solver
===== * * * =================================================================== * * *
TOMLAB - TOMLAB Development license  999007. Valid to 2011-12-31
=====================================================================================
Problem: ---  1: Flow in a Channel Steering     f_k       1.000000000000000000
                                       sum(|constr|)      0.000000000018584877
                              f(x_k) + sum(|constr|)      1.000000000018584900
                                              f(x_0)      0.000000000000000000

Solver: snopt.  EXIT=0.  INFORM=1.
SNOPT 7.2-5 NLP code
Optimality conditions satisfied

FuncEv    1 ConstrEv   11 ConJacEv   11 Iter    9 MinorIter   91
CPU time: 0.015600 sec. Elapsed time: 0.029000 sec. 

Plot result

figure(1)
plot(t,x2,'*-');
legend('x2');
title('Flow in a Channel state variables');

ChannelFlow 01.png