~ubuntu-branches/ubuntu/lucid/octave-nlwing2/lucid

« back to all changes in this revision

Viewing changes to inst/liftanalyze.m

  • Committer: Bazaar Package Importer
  • Author(s): Rafael Laboissiere
  • Date: 2009-05-24 18:48:42 UTC
  • Revision ID: james.westby@ubuntu.com-20090524184842-bgxoav6c0rjd0isr
Tags: upstream-1.1.1
ImportĀ upstreamĀ versionĀ 1.1.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
% Copyright (C) 2008  VZLU Prague, a.s., Czech Republic
 
2
 
3
% Author: Jaroslav Hajek <highegg@gmail.com>
 
4
 
5
% This file is part of NLWing2.
 
6
 
7
% NLWing2 is free software; you can redistribute it and/or modify
 
8
% it under the terms of the GNU General Public License as published by
 
9
% the Free Software Foundation; either version 3 of the License, or
 
10
% (at your option) any later version.
 
11
 
12
% This program is distributed in the hope that it will be useful,
 
13
% but WITHOUT ANY WARRANTY; without even the implied warranty of
 
14
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
15
% GNU General Public License for more details.
 
16
 
17
% You should have received a copy of the GNU General Public License
 
18
% along with this software; see the file COPYING.  If not, see
 
19
% <http://www.gnu.org/licenses/>.
 
20
 
21
 
 
22
% -*- texinfo -*-
 
23
% @deftypefn{Function File} {[a0, amax, clmax] =} liftanalyze (al, cl)
 
24
% analyzes a lift curve. Searches for a zero-lift and max-lift
 
25
% angle.
 
26
% @end deftypefn
 
27
 
 
28
function [a0, amax, clmax] = liftanalyze (al, cl, pn = '')
 
29
  if (pn)
 
30
    wpref = strcat ("liftanalyze (", pn, "): ");
 
31
  else
 
32
    wpref = "liftanalyze: ";
 
33
  endif
 
34
  if (cl(1) > 0)
 
35
    warning ([wpref, "polar starts at positive lift"]);
 
36
    warned = true;
 
37
  endif
 
38
  [clmin, imin] = min (cl);
 
39
  [clmax, imax] = max (cl);
 
40
  if (any (cl(imin+1:imax) < cl(imin:imax-1)))
 
41
    warning ([wpref, "multimodal lift curve"]);
 
42
    warned = true;
 
43
  endif
 
44
  if (imax == length (cl))
 
45
    warning ([wpref, "maximum lift at end of lift curve"]);
 
46
    warned = true;
 
47
  endif
 
48
  a0 = interp1 (cl(imin:imax), al(imin:imax), 0, "extrap");
 
49
  amax = al(imax);
 
50
endfunction