]> Creatis software - CreaPhase.git/blobdiff - octave_packages/control-2.3.52/WestlandLynx.m
Add a useful package (from Source forge) for octave
[CreaPhase.git] / octave_packages / control-2.3.52 / WestlandLynx.m
diff --git a/octave_packages/control-2.3.52/WestlandLynx.m b/octave_packages/control-2.3.52/WestlandLynx.m
new file mode 100644 (file)
index 0000000..d200301
--- /dev/null
@@ -0,0 +1,103 @@
+## -*- texinfo -*-
+## @deftypefn{Function File} {@var{sys} =} WestlandLynx ()
+## Model of the Westland Lynx Helicopter about hover.
+## @example
+## @group
+## INPUTS
+## main rotor collective
+## longitudinal cyclic
+## lateral cyclic
+## tail rotor collective
+## @end group
+## @end example
+## @example
+## @group
+## STATES
+## pitch attitude           theta       [rad]
+## roll attitude            phi         [rad]
+## roll rate (body-axis)    p           [rad/s]
+## pitch rate (body-axis)   q           [rad/s]
+## yaw rate                 xi          [rad/s]
+## forward velocity         v_x         [ft/s]
+## lateral velocity         v_y         [ft/s]
+## vertical velocity        v_z         [ft/s]
+## @end group
+## @end example
+## @example
+## @group
+## OUTPUTS
+## heave velocity           H_dot       [ft/s]
+## pitch attitude           theta       [rad]
+## roll attitude            phi         [rad]
+## heading rate             psi_dot     [rad/s]
+## roll rate                p           [rad/s]
+## pitch rate               q           [rad/s]
+## @end group
+## @end example
+## @example
+## @group
+## Reference:
+## Skogestad, S. and Postlethwaite I.
+## Multivariable Feedback Control: Analysis and Design
+## Second Edition
+## Wiley 2005
+## http://www.nt.ntnu.no/users/skoge/book/2nd_edition/matlab_m/matfiles.html
+## @end group
+## @end example
+## @end deftypefn
+
+## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
+## Created: January 2010
+## Version: 0.1
+
+function sys = WestlandLynx ()
+
+  if (nargin)
+    print_usage ();
+  endif
+
+  a01 = [                 0                  0                  0   0.99857378005981;
+                          0                  0   1.00000000000000  -0.00318221934140;
+                          0                  0 -11.57049560546880  -2.54463768005371;
+                          0                  0   0.43935656547546  -1.99818229675293;
+                          0                  0  -2.04089546203613  -0.45899915695190;
+         -32.10360717773440                  0  -0.50335502624512   2.29785919189453;
+           0.10216116905212  32.05783081054690  -2.34721755981445  -0.50361156463623;
+          -1.91097259521484   1.71382904052734  -0.00400543212891  -0.05741119384766];
+
+  a02 = [  0.05338427424431                  0                  0                  0;
+           0.05952465534210                  0                  0                  0;
+          -0.06360262632370   0.10678052902222  -0.09491866827011   0.00710757449269;
+                          0   0.01665188372135   0.01846204698086  -0.00118747074157;
+          -0.73502779006958   0.01925575733185  -0.00459562242031   0.00212036073208;
+                          0  -0.02121581137180  -0.02116791903973   0.01581159234047;
+           0.83494758605957   0.02122657001019  -0.03787973523140   0.00035400385968;
+                          0   0.01398963481188  -0.00090675335377  -0.29051351547241];
+
+  a0 = [a01 a02];
+
+  b0 = [                  0                  0                  0                  0;
+                          0                  0                  0                  0;
+           0.12433505058289   0.08278584480286  -2.75247764587402  -0.01788876950741;
+          -0.03635892271996   0.47509527206421   0.01429074257612                  0;
+           0.30449151992798   0.01495801657438  -0.49651837348938  -0.20674192905426;
+           0.28773546218872  -0.54450607299805  -0.01637935638428                  0;
+          -0.01907348632812   0.01636743545532  -0.54453611373901   0.23484230041504;
+          -4.82063293457031  -0.00038146972656                  0                  0];
+
+  c0 = [  0        0         0         0         0    0.0595   0.05329  -0.9968;
+        1.0        0         0         0         0         0         0        0;
+          0      1.0         0         0         0         0         0        0;
+          0        0         0  -0.05348       1.0         0         0        0;
+          0        0       1.0         0         0         0         0        0;
+          0        0         0       1.0         0         0         0       0];
+
+  d0 = zeros (6, 4);
+
+  inname = {"main_coll", "long_cyc", "lat_cyc", "tail_coll"};
+  stname = {"theta", "phi", "p", "q", "xi", "v_x", "v_y", "v_z"};
+  outname = {"H_dot", "theta", "phi", "psi_dot", "p", "q"};
+
+  sys = ss (a0, b0, c0, d0, "inname", inname, "stname", stname, "outname", outname);
+
+endfunction