X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=octave_packages%2Fcontrol-2.3.52%2FWestlandLynx.m;fp=octave_packages%2Fcontrol-2.3.52%2FWestlandLynx.m;h=d200301b46e7f552da753ae5151a3dd92a4f3bc2;hb=c880e8788dfc484bf23ce13fa2787f2c6bca4863;hp=0000000000000000000000000000000000000000;hpb=1705066eceaaea976f010f669ce8e972f3734b05;p=CreaPhase.git diff --git a/octave_packages/control-2.3.52/WestlandLynx.m b/octave_packages/control-2.3.52/WestlandLynx.m new file mode 100644 index 0000000..d200301 --- /dev/null +++ b/octave_packages/control-2.3.52/WestlandLynx.m @@ -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 +## 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