(*********************************************************************** Mathematica-Compatible Notebook This notebook can be used on any computer system with Mathematica 3.0, MathReader 3.0, or any compatible application. The data for the notebook starts with the line of stars above. To get the notebook into a Mathematica-compatible application, do one of the following: * Save the data starting with the line of stars above into a file with a name ending in .nb, then open the file inside the application; * Copy the data starting with the line of stars above to the clipboard, then use the Paste menu command inside the application. Data for notebooks contains only printable 7-bit ASCII and can be sent directly in email or through ftp in text mode. Newlines can be CR, LF or CRLF (Unix, Macintosh or MS-DOS style). NOTE: If you modify the data for this notebook not in a Mathematica- compatible application, you must delete the line below containing the word CacheID, otherwise Mathematica-compatible applications may try to use invalid cache data. For more information on notebooks and Mathematica-compatible applications, contact Wolfram Research: web: http://www.wolfram.com email: info@wolfram.com phone: +1-217-398-0700 (U.S.) Notebook reader applications are available free of charge from Wolfram Research. ***********************************************************************) (*CacheID: 232*) (*NotebookFileLineBreakTest NotebookFileLineBreakTest*) (*NotebookOptionsPosition[ 134181, 3746]*) (*NotebookOutlinePosition[ 134978, 3774]*) (* CellTagsIndexPosition[ 134934, 3770]*) (*WindowFrame->Normal*) Notebook[{ Cell[CellGroupData[{ Cell[TextData[StyleBox[ "MODERN CONTROL SYNTHESIS AND ANALYSIS IN A\nMATHEMATICA/CONTROL SYSTEM \ PROFESSIONAL ENVIRONMENT", FontSize->12]], "Title", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextAlignment->Center], Cell["\<\ David J. Dana-Bashian The Boeing Company 3370 Miraloma Avenue Anaheim, CA 92803 Attn.: Dept. 797, M/S DC 27 david.j.dana-bashian@boeing.com (e-mail)\ \>", "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextAlignment->Center], Cell["Copyright, The Boeing Company, All Rights Reserved", "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextAlignment->Center], Cell[TextData[StyleBox["Abstract", FontVariations->{"Underline"->True}]], "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[TextData[{ "For a given plant, an important objective of control theory is to design a \ controller whose corresponding closed-loop system satisfies a given set of \ specifications. Another important objective of control theory is to reduce \ the number of states of a given plant model to be no greater than a \ prespecified positive integer while satisfying a given set of specifications. \ One means to accomplish this task is to transform the specifications into a \ performance index, minimize the index with respect to some measure, and \ compute the resulting controller. One may define either optimization problem \ using ", Cell[BoxData[ StyleBox[\(H\^2\), FontFamily->"Times"]]], ", ", Cell[BoxData[ StyleBox[\(H\^\[Infinity]\), FontFamily->"Times"]]], ", or mixed-norm ", Cell[BoxData[ \(H\^2\)], FontFamily->"Times"], "/", Cell[BoxData[ \(H\^\[Infinity]\)], FontFamily->"Times"], " criteria in a finite-dimensional linear-time-invariant setting. Haddad, \ Bernstein, and others [1]-[5] analyze a number of aspects of each of these \ problems. Please consult the References section." }], "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextAlignment->AlignmentMarker, TextJustification->1], Cell["\<\ In 1996 Wolfram Research, Inc., introduced Control System \ Professional (CSP) to solve a wide range of control problems, including \ classical control design and analysis and introductory modern control design. \ This section describes additions the author has made to CSP, all of which \ harmonize with current CSP conventions and usage.\ \>", "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[TextData[{ "Two major additions are full- and reduced-order ", Cell[BoxData[ StyleBox[\(H\^2\), FontFamily->"Times"]]], ", ", Cell[BoxData[ StyleBox[\(H\^\[Infinity]\), FontFamily->"Times"]]], ", and (1-, 2-) ", Cell[BoxData[ \(H\^2\)], FontFamily->"Times"], "/", Cell[BoxData[ \(H\^\[Infinity]\)], FontFamily->"Times"], " controller design routines and ", Cell[BoxData[ \(H\^2\)], FontFamily->"Times"], " and ", Cell[BoxData[ StyleBox[\(H\^2\), FontFamily->"Times"]]], "/", Cell[BoxData[ \(H\^\[Infinity]\)], FontFamily->"Times"], " model reduction routines. Both sets of routines, based on the optimal \ projection equations of Haddad and Bernstein, are about as close to \ \"no-guesswork\" as possible. Compactness of the routines results from using \ the so-called augmented plant approach, which transparently allows \ cross-coupling and obviates the need for separate computation of estimator \ and regulator gains and assembly of a controller or a reduced-order model. \ Auxilliary routines allow the user to analyze a system for which individual \ states of a system are controllable/uncontrollable, observable/unobservable, \ and/or to prove that a result satisfies 2-norm and/or \[Infinity]-norm \ specifications." }], "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["\<\ Another major addition is incorporation of a numerical time-domain \ simulation routine which is considerably more flexible, efficient, and \ compact than the corresponding CSP routine. The routine takes advantage of \ the form of the input corresponding to the response requested to cut the time \ to compute the response. The routine transparently allows the user to output \ only a uniformly-spaced fraction of the points computed, saving the computer \ both time and space. The routine also obviates the need to add states to \ compute the response to a time-delayed input, thus avoiding output spread \ over many screens' worth of space. All told, the user may choose from 60 \ different types of responses using a single command.\ \>", "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[TextData[StyleBox["Introduction", FontWeight->"Bold", FontVariations->{"Underline"->True}]], "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["\<\ Anyone in the control community has a continuing need to obtain \ controllers which satisfy a given set of specifications and to analyze the \ resulting closed-loop performance to see how well one meets those \ specifications. The development includes code suitable for modern control \ and model reduction and associated analysis.\ \>", "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[TextData[{ "The modern control portion represents a compact method for designing \ controllers satisfying 2-norm and/or \[Infinity]-norm constraints. The \ compactness results from using the so-called augmented plant approach, \ commonplace in modern control papers, for \[OpenCurlyDoubleQuote]building in\ \[CloseCurlyDoubleQuote] a priori specifications. This approach, which also \ transparently allows cross-coupling, obviates the need for separate \ computation of estimator and regulator gains and assembly of the controller. \ Satisfaction of the resulting equations results in corresponding closed-loop \ systems which are guaranteed robustly stable and nominally performing to the \ degree of the desired specifications. The development allows the user to \ design continuous controllers satisfying full- or reduced-order ", Cell[BoxData[ StyleBox[\(H\^2\), FontFamily->"Times"]]], ", ", Cell[BoxData[ StyleBox[\(H\^\[Infinity]\), FontFamily->"Times"]]], ", or (1-, 2-) ", Cell[BoxData[ StyleBox[\(H\^2\), FontFamily->"Times"]]], "/", Cell[BoxData[ StyleBox[\(H\^\[Infinity]\), FontFamily->"Times"]]], " criteria or to design discrete controllers satisfying full- or \ reduced-order ", Cell[BoxData[ StyleBox[\(H\^2\), FontFamily->"Times"]]], " criteria. The model reduction portioin allows the user to reduce \ continuous models satisfying ", Cell[BoxData[ StyleBox[\(H\^2\), FontFamily->"Times"]]], " or ", Cell[BoxData[ StyleBox[\(H\^2\), FontFamily->"Times"]]], "/", Cell[BoxData[ StyleBox[\(H\^\[Infinity]\), FontFamily->"Times"]]], " criteria or discrete models satisfying ", Cell[BoxData[ \(H\^2\)], FontFamily->"Times"], " criteria." }], "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[TextData[ "Other listed additions in the development represent convenient ways to \ analyze systems. Proving a system satisfies 2-norm and/or \[Infinity]-norm \ constraints requires computing these system norms. The 2-norm computation is \ straightforward from the definitions of matrix trace and controllability and \ observability gramians. The \[Infinity]-norm computation uses the \ quadratically convergent method of Boyd and Balakrishnan. The damping \ computation is straightforward. The Popov-Belevitch-Hautus (PBH) rank tests \ provide an alternative means to the Kalman decomposition to compute the \ controllability and observability and corresponding ranks of systems. In \ particular, PBH rank tests also tell which individual states are \ controllable/uncontrollable, observable/unobservable."], "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["\<\ The numerical time-domain simulation routine takes advantage of the \ form of the input corresponding to the response requested to cut the time to \ compute the response. Options for the routine include a numerical plot \ sampling period (if the user wants to output only a uniformly-spaced fraction \ of the points computed), an initial state vector, and a time delay. The \ routine can accommodate time-delayed inputs without adding states to compute \ the response. This feature avoids output spread over many screens' worth of \ space. Computing even the continuous response to a continuous impulse \ presents no difficulties to the development, even if that impulse has a time \ delay, even if the system feedthrough matrix is nonzero. All told, the user \ may choose from 60 different types of responses using a single command: \ (discrete or continuous) x (unforced or impulse or step or ramp or general) x \ (output or state) x (the three aforementioned options).\ \>", "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[TextData[{ StyleBox["I. ", FontVariations->{"Underline"->True}], StyleBox["Mathematica", FontSlant->"Italic", FontVariations->{"Underline"->True}], StyleBox[" Command Synopsis", FontVariations->{"Underline"->True}], " " }], "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}], Cell[TextData[{ "Let a, b, c, d, d1, d2, e1, e2, e1inf, einf, e2inf stand respectively for \ matrices A, B, C, D, ", Cell[BoxData[ StyleBox[\(D\_1\), FontFamily->"Times"]]], ", ", Cell[BoxData[ StyleBox[\(D\_2\), FontFamily->"Times"]]], ", ", Cell[BoxData[ StyleBox[\(E\_1\), FontFamily->"Times"]]], ", ", Cell[BoxData[ StyleBox[\(E\_2\), FontFamily->"Times"]]], ", ", Cell[BoxData[ StyleBox[\(E\_\(1 \[Infinity]\)\), FontFamily->"Times"]]], ", ", Cell[BoxData[ StyleBox[\(E\_\[Infinity]\), FontFamily->"Times"]]], ", ", Cell[BoxData[ StyleBox[\(E\_\(2 \[Infinity]\)\), FontFamily->"Times"]]], ", and let ed and ee stand respectively for the model reduction disturbance \ and estimation weighting matrices ", Cell[BoxData[ StyleBox[\(E\_d\), FontFamily->"Times"]]], " and ", Cell[BoxData[ StyleBox[\(E\_e\), FontFamily->"Times"]]], ", respectively. Let gam stand for the upper bound for the so-called \"\ \[Gamma]-iteration\" of ", Cell[BoxData[ StyleBox[\(H\^\[Infinity]\), FontFamily->"Times"]]], " theory. Let system or systemi stand for any of the CSP constructs for \ its state-space description, such as StateSpace[a,b,c,d] or, if d is zero, \ StateSpace[a,b,c]. Then the general synopsis for the new main commands for \ CSP is as follows." }], "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["H2Controller[system, d1, d2, e1, e2]", "Text", CellMargins->{{36, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[TextData[{ "compute a continuous controller from continuous system meeting ", Cell[BoxData[ \(H\^2\)], FontFamily->"Times"], " specifications only" }], "Text", CellMargins->{{53, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["HinfinityController[system, gam, d1, d2, e1inf, einf, e2inf]", "Text", CellMargins->{{36, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[TextData[{ "compute a continuous controller from continuous system meeting ", Cell[BoxData[ \(H\^\[Infinity]\)], FontFamily->"Times"], " specifications only" }], "Text", CellMargins->{{54, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["Options for HinfinityController:", "Text", CellMargins->{{54, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[TextData[ "Iterate: performs \[Gamma]-iteration with upper bound gam if True; default \ False"], "Text", CellMargins->{{72, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[TextData[ "GammaFractionTolerance: minimum change in \[Gamma]-iteration; default \ 0.01"], "Text", CellMargins->{{72, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[TextData[ "GammaTolerance: minimum change in observer \[Gamma]-iteration; default \ 0.0001"], "Text", CellMargins->{{72, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["\<\ H2HinfinityController[system, d1, d2, e1, e2, e1inf, einf, e2inf]\ \ \>", "Text", CellMargins->{{36, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[TextData[{ "compute a continuous controller from continuous system meeting ", Cell[BoxData[ StyleBox[\(H\^2\), FontFamily->"Times"]]], " and/or ", Cell[BoxData[ StyleBox[\(H\^\[Infinity]\), FontFamily->"Times"]]], " specifications" }], "Text", CellMargins->{{54, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["Options for H2HinfinityController (continuous case):", "Text", CellMargins->{{54, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["Iterate: same as above", "Text", CellMargins->{{71, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["GammaFractionTolerance: same as above", "Text", CellMargins->{{72, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["GammaTolerance: same as above", "Text", CellMargins->{{72, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[TextData[ "Gam: \[Gamma], as one value or as iteration upper bound; default \ Infinity"], "Text", CellMargins->{{72, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["\<\ DbetauTol: minimum change in controller authority; default 1\ \>", "Text", CellMargins->{{72, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["\<\ ControllerOrder: positive integer upper bound for controller; \ default n, the number of states of a\ \>", "Text", CellMargins->{{72, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["\<\ InputFileName: name beginning external file output; default \ \"testfilename\" \ \>", "Text", CellMargins->{{72, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["H2HinfinityController[system, d1, d2, e1, e2]", "Text", CellMargins->{{36, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[TextData[{ "compute a discrete controller from discrete system meeting ", Cell[BoxData[ StyleBox[\(H\^2\), FontFamily->"Times"]]], " specifications" }], "Text", CellMargins->{{54, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["Options for H2HinfinityController (discrete case):", "Text", CellMargins->{{53, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["ControllerOrder: same as above", "Text", CellMargins->{{72, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["InputFileName: save as above", "Text", CellMargins->{{72, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["H2HinfinityReducedOrderModel[system, ed, ee]", "Text", CellMargins->{{35, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[TextData[{ "compute a reduced-order model from continuous system meeting ", Cell[BoxData[ StyleBox[\(H\^2\), FontFamily->"Times"]]], " and optional ", Cell[BoxData[ StyleBox[\(H\^\[Infinity]\), FontFamily->"Times"]]], " specifications" }], "Text", CellMargins->{{54, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[TextData[{ "\t\t\tor from discrete system meeting ", Cell[BoxData[ StyleBox[\(H\^2\), FontFamily->"Times"]]], " specifications" }], "Text", TextJustification->1], Cell["\t\tOptions for H2HinfinityReducedOrderModel:", "Text", TextJustification->1], Cell["\t\t\tIterate: same as above", "Text", TextJustification->1], Cell["\<\ \t\t\tGammaTolerance: same as above (applies only to continuous \ model reduction)\ \>", "Text", TextJustification->1], Cell["\<\ \t\t\tModelOrder: positive integer upper bound less than n for \ reduced model\ \>", "Text", TextJustification->1], Cell["\t\t\tInputFileName: same as above", "Text", TextJustification->1], Cell["NumericalResponse[system, u, ToString[type], timevector]", "Text", CellMargins->{{36, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["compute the type response to system from input u", "Text", CellMargins->{{54, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["\<\ type is of the form XYZ, where X is Discrete or Continuous, Y is \ Unforced or Impulse or Step or Ramp\ \>", "Text", CellMargins->{{54, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["or General, Z is Output or State", "Text", CellMargins->{{72, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["\<\ u is the matrix of inputs if Y is General, the input number \ else\ \>", "Text", CellMargins->{{54, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["system and type must be both Continuous or both Discrete", "Text", CellMargins->{{54, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["\<\ if X is Discrete, then timevector is nonexistent if Y is General, \ {t, tend} else, where t is a symbol, time\ \>", "Text", CellMargins->{{54, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["\<\ ranges between 0 and tend in increments of deltat, where deltat is \ the sampling rate of system,\ \>", "Text", CellMargins->{{72, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["tend being an integral multiple of delta", "Text", CellMargins->{{72, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["\<\ if X is Continuous, then timevector is of the form {t, tend, \ deltat}, where t is a symbol, time ranges\ \>", "Text", CellMargins->{{54, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["\<\ between 0 and tend in increments of deltat, tend being an integral \ multiple of deltat; if in addition \ \>", "Text", CellMargins->{{72, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["Y is General, input u must be consistent with timevector", "Text", CellMargins->{{72, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["Options for NumericalResponse:", "Text", CellMargins->{{54, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["NumericalPlotSampling Period", "Text", CellMargins->{{72, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["outputs a uniformly spaced fraction of points computed", "Text", CellMargins->{{90, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["InitialConditions", "Text", CellMargins->{{72, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["same usage as in CSP", "Text", CellMargins->{{90, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["TimeDelay", "Text", CellMargins->{{72, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["same usage as in CSP", "Text", CellMargins->{{90, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["\<\ The general synopsis for the new auxilliary commands is as follows.\ \ \>", "Text", CellMargins->{{17, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["Norm[matrix, type] or Norm[number]", "Text", CellMargins->{{36, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["\<\ compute the norm of a matrix; the norm of a number is its absolute \ value\ \>", "Text", CellMargins->{{54, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["\<\ choices for type are 1, 2, Infinity, \"Frobenius\"; default type \ 2\ \>", "Text", CellMargins->{{54, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["Grm[a,b] or Grm[Transpose[a],Transpose[c]]", "Text", CellMargins->{{36, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["\<\ compute the controllability Gramian of a and b or the observability \ Gramian of a and c using Laub's method\ \>", "Text", CellMargins->{{54, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["SVD[matrix]", "Text", CellMargins->{{36, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["\<\ compute the \"non-economy size\" singular value decomposition of a \ real matrix\ \>", "Text", CellMargins->{{54, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["\<\ for example, if Dimensions[matrix]={m,n}, m>n, SVD[matrix] produces \ {u,s,v} with Dimensions[u]={m,m}, Dimensions[s]={m,n}, Dimensions[v]={n,n}, \ matrix = u.s.Conjugate[Transpose[v]]; in contrast, {u,s,v} from \ SingularValues[matrix] has the \"economy size\" Dimensions[u]={n,m}, \ Dimensions[s]=n, Dimensions[v]={n,n}\ \>", "Text", CellMargins->{{54, 33}, {Inherited, Inherited}}, TextJustification->1], Cell["SystemNorm[system, norm]", "Text", CellMargins->{{36, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["compute the norm of system, where norm is 2 or Infinity", "Text", CellMargins->{{54, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["DampingRatios[system] or Damping Ratios[a]", "Text", CellMargins->{{36, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["compute the damping ratios of system, which are those of a", "Text", CellMargins->{{54, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["NaturalFrequencies[system] or NaturalFrequencies[a]", "Text", CellMargins->{{36, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["\<\ compute the natural frequencies of system, which are those of \ a\ \>", "Text", CellMargins->{{54, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["Damp[system] or Damp[a]", "Text", CellMargins->{{36, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["\<\ list containing the list of damping ratios and the list of natural \ frequencies\ \>", "Text", CellMargins->{{54, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["PBHRank[system, ToString[type]]", "Text", CellMargins->{{36, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["compute the Popov-Belevitch-Hautus properties of a system", "Text", CellMargins->{{54, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["choices for type: ", "Text", CellMargins->{{54, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["\<\ \t\t\tControllable, Observable, ControllableRank, ObservableRank, \ \ \>", "Text", TextJustification->1], Cell["\<\ \t\t\tUncontrollableStates, UnobservableStates, ControllableStates, \ ObservableStates\ \>", "Text", TextJustification->1], Cell["UnityFeedback[system1, system2]", "Text", CellMargins->{{36, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["\<\ compute the system which results from negatively feeding back the \ negative outputs of system1 followed by system2 (which is not the same as \ positively feeding back the positive outputs of system 1 followed by \ system2), where the gain in the feedback loop is 1 (i.e., unity)\ \>", "Text",\ CellMargins->{{54, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["Sensitivity[system1, system2]", "Text", CellMargins->{{36, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["\<\ compute the sensitivity \ \"Inverse[IdentityMatrix[n]+system1.system2]\"; n=number of states in \ system1.system2\ \>", "Text", CellMargins->{{54, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["\<\ currently, system1 and system2 must both be \ single-input-single-output (i.e., n=1)\ \>", "Text", CellMargins->{{54, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["SimultaneousMargin[system1, system2]", "Text", CellMargins->{{35, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["\<\ compute the minimum distance from the critical point \ -IdentityMatrix[n] to system1.system2, n=dimension of system1.system2; \ better as a measure of nearness to instability than both gain or phase margin\ \ \>", "Text", CellMargins->{{54, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["\<\ currently, system1 and system2 must both be \ single-input-single-output (i.e., n=1)\ \>", "Text", CellMargins->{{54, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["\<\ For demonstration information and sample runs, see the appendices \ which follow.\ \>", "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}] }, Open ]], Cell[CellGroupData[{ Cell[TextData[StyleBox["Appendix A", FontFamily->"Times"]], "Title", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextAlignment->Center, FontSize->12], Cell[TextData[StyleBox["DEMONSTRATION: CONTINUOUS CONTROL DESIGN", FontWeight->"Bold"]], "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, FontVariations->{"Underline"->True}], Cell["\<\ The coupled rotating disk problem [1] is an eight-state, \ one-input-one-output, neutrally stable plant with one pair of nonminimum \ phase zeros. Except for the two pure integrators, the damping of all the \ poles is approximately 0.02. This plant has a fairly significant reputation \ for being very difficult to construct a controller satisfying its \ specifications. As such, this example provides an excellent opportunity to \ observe how relatively easy designing a reduced-order controller can be using \ this program.\ \>", "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[TextData[{ "Step-by-step instructions to construct and compare ", Cell[BoxData[ StyleBox[\(H\^2\), FontFamily->"Times"]]], ", ", Cell[BoxData[ StyleBox[\(H\^\[Infinity]\), FontFamily->"Times"]]], ", and ", Cell[BoxData[ StyleBox[\(H\^2/H\^\[Infinity]\), FontFamily->"Times"]]], " controllers for the coupled rotating disk problem:" }], "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["\<\ Set current location to the desired subdirectory (or folder). One \ should have \"write-access\" to that location. Further, one should have \ access to data file \"handb.m\" as well.\ \>", "Text", CellDingbat->"(A) \[NegativeThinSpace]", CellMargins->{{72, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[TextData[{ "Enter ", StyleBox["Mathematica", FontSlant->"Italic"], "." }], "Text", CellDingbat->"(B) \[NegativeThinSpace]", CellMargins->{{72, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["Type (as indicated)", "Text", CellDingbat->"(C) \[NegativeThinSpace]", CellMargins->{{72, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[BoxData[ \(\($Line = 0; \)\)], "Input", CellOpen->False], Cell[BoxData[ \(<< "\"; << "\"; \)], "Input", CellLabel->"In[1]:="], Cell[BoxData[ \(\($Line = 1; \)\)], "Input", CellOpen->False], Cell[CellGroupData[{ Cell[BoxData[ \(<< "\"; system = StateSpace[a, b, c, d]\)], "Input", CellLabel->"In[2]:="], Cell[BoxData[ RowBox[{"StateSpace", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", StyleBox["0.161000000000000000003`", StyleBoxAutoDelete->True, PrintPrecision->4]}], ",", "1", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", StyleBox["6.00400000000000000008`", StyleBoxAutoDelete->True, PrintPrecision->4]}], ",", "0", ",", "1", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", StyleBox["0.582200000000000000019`", StyleBoxAutoDelete->True, PrintPrecision->4]}], ",", "0", ",", "0", ",", "1", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", StyleBox["9.98350000000000000009`", StyleBoxAutoDelete->True, PrintPrecision->5]}], ",", "0", ",", "0", ",", "0", ",", "1", ",", "0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", StyleBox["0.407299999999999999978`", StyleBoxAutoDelete->True, PrintPrecision->4]}], ",", "0", ",", "0", ",", "0", ",", "0", ",", "1", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", StyleBox["3.98200000000000000005`", StyleBoxAutoDelete->True, PrintPrecision->5]}], ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "1", ",", "0"}], "}"}], ",", \({0, 0, 0, 0, 0, 0, 0, 1}\), ",", \({0, 0, 0, 0, 0, 0, 0, 0}\)}], "}"}], ",", RowBox[{"{", RowBox[{\({0}\), ",", \({0}\), ",", RowBox[{"{", StyleBox["0.00640000000000000000052`", StyleBoxAutoDelete->True, PrintPrecision->2], "}"}], ",", RowBox[{"{", StyleBox["0.00234999999999999999991`", StyleBoxAutoDelete->True, PrintPrecision->3], "}"}], ",", RowBox[{"{", StyleBox["0.071300000000000000001`", StyleBoxAutoDelete->True, PrintPrecision->3], "}"}], ",", RowBox[{"{", StyleBox["1.00019999999999999998`", StyleBoxAutoDelete->True, PrintPrecision->5], "}"}], ",", RowBox[{"{", StyleBox["0.104499999999999999996`", StyleBoxAutoDelete->True, PrintPrecision->4], "}"}], ",", RowBox[{"{", StyleBox["0.995499999999999999993`", StyleBoxAutoDelete->True, PrintPrecision->4], "}"}]}], "}"}], ",", \({{1, 0, 0, 0, 0, 0, 0, 0}}\), ",", \({{0}}\)}], "]"}]], "Output", CellLabel->"Out[2]="] }, Open ]], Cell[BoxData[ \(\($Line = 2; \)\)], "Input", CellOpen->False], Cell["\<\ These statements examine the controllable and observable properties \ of system using the PBHRank tests. Since PBHRank finds system controllable \ and observable, the ranks are full, and all states appear.\ \>", "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[CellGroupData[{ Cell[BoxData[ \({PBHRank[system, "\"], PBHRank[system, "\"], PBHRank[system, "\"], PBHRank[system, "\"]}\)], "Input", CellLabel->"In[3]:="], Cell[BoxData[ \({True, True, 8, 8}\)], "Output", CellLabel->"Out[3]="] }, Open ]], Cell[BoxData[ \(\(\ \($Line = 3; \)\)\)], "Input", CellOpen->False], Cell[CellGroupData[{ Cell[BoxData[ \(PBHRank[system, "\"]\)], "Input", CellLabel->"In[4]:="], Cell[BoxData[ \({\(-0.036984005158833375324`\) + 1.84964638909065778836`\ I, \(-0.036984005158833375324`\) - 1.84964638909065778836`\ I, \(-0.0282159131962002478113`\) + 1.40970038389962225083`\ I, \(-0.0282159131962002478113`\) - 1.40970038389962225083`\ I, \(-0.0153000816449663767904`\) + 0.76484678848157255193`\ I, \(-0.0153000816449663767904`\) - 0.76484678848157255193`\ I, 0.`, 0.`} \)], "Output", CellLabel->"Out[4]="] }, Open ]], Cell[BoxData[ \(\($Line = 4; \)\)], "Input", CellOpen->False], Cell[CellGroupData[{ Cell[BoxData[ \(PBHRank[system, "\"]\)], "Input", CellLabel->"In[5]:="], Cell[BoxData[ \({\(-0.036984005158833375324`\) + 1.84964638909065778836`\ I, \(-0.036984005158833375324`\) - 1.84964638909065778836`\ I, \(-0.0282159131962002478113`\) + 1.40970038389962225083`\ I, \(-0.0282159131962002478113`\) - 1.40970038389962225083`\ I, \(-0.0153000816449663767904`\) + 0.76484678848157255193`\ I, \(-0.0153000816449663767904`\) - 0.76484678848157255193`\ I, 0.`, 0.`} \)], "Output", CellLabel->"Out[5]="] }, Open ]], Cell[BoxData[ \(\($Line = 5; \)\)], "Input", CellOpen->False], Cell[TextData[{ "This statement displays the remaining matrices. For the purposes of this \ demonstration, e2inf will be {{0.},{1.*", Cell[BoxData[ \(10\^\(-4\)\)]], " }}. " }], "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}], Cell[CellGroupData[{ Cell[BoxData[ \(e2inf = {{0. }, {1. *10^\((\(-4\))\)}}; {d1, d2, e1, e2, e1inf, einf, e2inf}\)], "Input", CellLabel->"In[6]:="], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{\({0, 0}\), ",", \({0, 0}\), ",", RowBox[{"{", RowBox[{ StyleBox["0.00640000000000000000052`", StyleBoxAutoDelete->True, PrintPrecision->2], ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{ StyleBox["0.00234999999999999999991`", StyleBoxAutoDelete->True, PrintPrecision->3], ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{ StyleBox["0.071300000000000000001`", StyleBoxAutoDelete->True, PrintPrecision->3], ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{ StyleBox["1.00019999999999999998`", StyleBoxAutoDelete->True, PrintPrecision->5], ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{ StyleBox["0.104499999999999999996`", StyleBoxAutoDelete->True, PrintPrecision->4], ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{ StyleBox["0.995499999999999999993`", StyleBoxAutoDelete->True, PrintPrecision->4], ",", "0"}], "}"}]}], "}"}], ",", \({{0, 1}}\), ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "0", ",", "0", ",", "0", ",", StyleBox["0.00055`", StyleBoxAutoDelete->True, PrintPrecision->2], ",", StyleBox["0.0110000000000000000002`", StyleBoxAutoDelete->True, PrintPrecision->3], ",", StyleBox["0.00131999999999999999993`", StyleBoxAutoDelete->True, PrintPrecision->3], ",", StyleBox["0.0180000000000000000008`", StyleBoxAutoDelete->True, PrintPrecision->3]}], "}"}], ",", \({0, 0, 0, 0, 0, 0, 0, 0}\)}], "}"}], ",", \({{0}, {1}}\), ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "0", ",", "0", ",", "0", ",", StyleBox["0.00055`", StyleBoxAutoDelete->True, PrintPrecision->2], ",", StyleBox["0.0110000000000000000002`", StyleBoxAutoDelete->True, PrintPrecision->3], ",", StyleBox["0.00131999999999999999993`", StyleBoxAutoDelete->True, PrintPrecision->3], ",", StyleBox["0.0180000000000000000008`", StyleBoxAutoDelete->True, PrintPrecision->3]}], "}"}], ",", \({0, 0, 0, 0, 0, 0, 0, 0}\)}], "}"}], ",", \({{0, 0}, {0, 0}}\), ",", \({{0.`}, {0.00010000000000000000001`}}\)}], "}"}]], "Output", CellLabel->"Out[6]="] }, Open ]], Cell[BoxData[ \(\($Line = 0; \)\)], "Input", CellOpen->False], Cell[TextData[{ "The statements below ask for the central ", Cell[BoxData[ StyleBox[\(H\^\[Infinity]\), FontFamily->"Times"]]], " and ", Cell[BoxData[ StyleBox[\(H\^2\), FontFamily->"Times"]]], " controllers. To compute the ", Cell[BoxData[ \(H\^\[Infinity]\)], FontFamily->"Times"], " controller, the program first computes the minimum \[Gamma] for the \ observer equation, then uses this \[Gamma] as a lower bound to find the \ minimum \[Gamma] for the entire augmented plant. Apparently, this \ \[Gamma]-iteration improvement does not appear in any currently publicly \ available software. The letter T signifies a passed test, F a failed test. \ The first controller computed is an ", Cell[BoxData[ StyleBox[\(H\^2\), FontFamily->"Times"]]], " controller (for \[Gamma]=\[Infinity]). The program decreases \[Gamma] if \ all tests pass, increases \[Gamma] if not, by a simple bisection. If there \ is a failed test, all tests beyond that point for the particular \[Gamma] \ have no evaluation (signified I for indeterminate). The iteration continues \ until the increment in \[Gamma] falls below a preset small positive number. \ In this case, all the tests pass for all values of \[Gamma] tried. All \ full-order controllers are unstable for \[Gamma]<0.22. The nonminimum-phase \ plant and unstable controller kinfinity give rise to unusual results for \ closedloophinfinity, later." }], "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[CellGroupData[{ Cell[BoxData[ \(\(kinfinity = HinfinityController[system, Infinity, d1, d2, e1inf, einf, e2inf, Iterate -> True]; \)\)], "Input", CellLabel->"In[7]:="], Cell[BoxData[ \(""\)], "Print"], Cell[BoxData[ InterpretationBox[ \(" minimum gamma = "\[InvisibleSpace]0.119986235843995403516`\), SequenceForm[ " minimum gamma = ", 0.1199862358439954035], Editable->False]], "Print"], Cell[BoxData[ \(" tests: Q P Q*P closedloop overall gamma"\)], "Print"], Cell[BoxData[ \(" "\)], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{ "\<\" \"\>", "\[InvisibleSpace]", "\<\"T\"\>", "\[InvisibleSpace]", "\<\" \"\>", "\[InvisibleSpace]", "\<\"T\"\>", "\[InvisibleSpace]", "\<\" \"\>", "\[InvisibleSpace]", "\<\"T\"\>", "\[InvisibleSpace]", "\<\" \"\>", "\[InvisibleSpace]", "\<\"T\"\>", "\[InvisibleSpace]", "\<\" \"\>", "\[InvisibleSpace]", "\<\"T\"\>", "\[InvisibleSpace]", "\<\" \"\>", "\[InvisibleSpace]", InterpretationBox["\[Infinity]", DirectedInfinity[ 1]]}], SequenceForm[ " ", "T", " ", "T", " ", "T", " ", "T", " ", "T", " ", DirectedInfinity[ 1]], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ \(" "\[InvisibleSpace]"T"\[InvisibleSpace]" \ "\[InvisibleSpace]"T"\[InvisibleSpace]" "\[InvisibleSpace]"T"\ \[InvisibleSpace]" "\[InvisibleSpace]"T"\[InvisibleSpace]" "\ \[InvisibleSpace]"T"\[InvisibleSpace]" \ "\[InvisibleSpace]0.158686047087812573917`\), SequenceForm[ " ", "T", " ", "T", " ", "T", " ", "T", " ", "T", " ", 0.1586860470878125739], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ \(" "\[InvisibleSpace]"T"\[InvisibleSpace]" \ "\[InvisibleSpace]"T"\[InvisibleSpace]" "\[InvisibleSpace]"T"\ \[InvisibleSpace]" "\[InvisibleSpace]"T"\[InvisibleSpace]" "\ \[InvisibleSpace]"T"\[InvisibleSpace]" \ "\[InvisibleSpace]0.139336141465903988717`\), SequenceForm[ " ", "T", " ", "T", " ", "T", " ", "T", " ", "T", " ", 0.1393361414659039887], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ \(" "\[InvisibleSpace]"T"\[InvisibleSpace]" \ "\[InvisibleSpace]"T"\[InvisibleSpace]" "\[InvisibleSpace]"T"\ \[InvisibleSpace]" "\[InvisibleSpace]"T"\[InvisibleSpace]" "\ \[InvisibleSpace]"T"\[InvisibleSpace]" \ "\[InvisibleSpace]0.129661188654949696122`\), SequenceForm[ " ", "T", " ", "T", " ", "T", " ", "T", " ", "T", " ", 0.1296611886549496961], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ \(" "\[InvisibleSpace]"T"\[InvisibleSpace]" \ "\[InvisibleSpace]"T"\[InvisibleSpace]" "\[InvisibleSpace]"T"\ \[InvisibleSpace]" "\[InvisibleSpace]"T"\[InvisibleSpace]" "\ \[InvisibleSpace]"T"\[InvisibleSpace]" \ "\[InvisibleSpace]0.124823712249472549814`\), SequenceForm[ " ", "T", " ", "T", " ", "T", " ", "T", " ", "T", " ", 0.1248237122494725498], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ \(" "\[InvisibleSpace]"T"\[InvisibleSpace]" \ "\[InvisibleSpace]"T"\[InvisibleSpace]" "\[InvisibleSpace]"T"\ \[InvisibleSpace]" "\[InvisibleSpace]"T"\[InvisibleSpace]" "\ \[InvisibleSpace]"T"\[InvisibleSpace]" \ "\[InvisibleSpace]0.122404974046733976665`\), SequenceForm[ " ", "T", " ", "T", " ", "T", " ", "T", " ", "T", " ", 0.1224049740467339767], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ \(" "\[InvisibleSpace]"T"\[InvisibleSpace]" \ "\[InvisibleSpace]"T"\[InvisibleSpace]" "\[InvisibleSpace]"T"\ \[InvisibleSpace]" "\[InvisibleSpace]"T"\[InvisibleSpace]" "\ \[InvisibleSpace]"T"\[InvisibleSpace]" \ "\[InvisibleSpace]0.121195604945364690096`\), SequenceForm[ " ", "T", " ", "T", " ", "T", " ", "T", " ", "T", " ", 0.1211956049453646901], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ \(" "\[InvisibleSpace]"T"\[InvisibleSpace]" \ "\[InvisibleSpace]"T"\[InvisibleSpace]" "\[InvisibleSpace]"T"\ \[InvisibleSpace]" "\[InvisibleSpace]"T"\[InvisibleSpace]" "\ \[InvisibleSpace]"T"\[InvisibleSpace]" \ "\[InvisibleSpace]0.120590920394680046795`\), SequenceForm[ " ", "T", " ", "T", " ", "T", " ", "T", " ", "T", " ", 0.1205909203946800468], Editable->False]], "Print"] }, Open ]], Cell[BoxData[ \(\(\($Line = 7; \)\n\)\)], "Input", CellOpen->False], Cell[BoxData[ \(\(k2 = H2Controller[system, d1, d2, e1, e2]; \)\)], "Input", CellLabel->"In[8]:="], Cell[BoxData[ \(\($Line = 8; \)\)], "Input", CellOpen->False], Cell["\<\ These statements close the loop using the unity feedback \ construction.\ \>", "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[BoxData[ \(\(closedloophinfinity = UnityFeedback[system, kinfinity]; \)\)], "Input",\ CellLabel->"In[9]:="], Cell[BoxData[ \(\($Line = 9; \)\)], "Input", CellOpen->False], Cell[BoxData[ \(\(closedlooph2 = UnityFeedback[system, k2]; \)\)], "Input", CellLabel->"In[10]:="], Cell[BoxData[ \(\($Line = 10; \)\)], "Input", CellOpen->False], Cell["\<\ These statements allow comparison of the eigenvalues of the closed \ loops.\ \>", "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[CellGroupData[{ Cell[BoxData[ \(Eigenvalues[closedloophinfinity[\([1]\)]]\)], "Input", CellLabel->"In[11]:="], Cell[BoxData[ \({\(-290.984731590992670409`\), \(-98.1537947674847796857`\), \(-0.0521803491109386212475`\) + 1.8547557233098234332`\ I, \(-0.0521803491109386212475`\) - 1.8547557233098234332`\ I, \(-0.0133707432006704637905`\) + 1.69509766897885295099`\ I, \(-0.0133707432006704637905`\) - 1.69509766897885295099`\ I, \(-0.056659325000436252407`\) + 1.64105243657743511158`\ I, \(-0.056659325000436252407`\) - 1.64105243657743511158`\ I, \(-0.0951952894264560365439`\) + 1.38110650153294457277`\ I, \(-0.0951952894264560365439`\) - 1.38110650153294457277`\ I, \(-0.0209958524330717486968`\) + 0.89715274538208335843`\ I, \(-0.0209958524330717486968`\) - 0.89715274538208335843`\ I, \(-0.126811856140737358163`\) + 0.773712416233459874311`\ I, \(-0.126811856140737358163`\) - 0.773712416233459874311`\ I, \(-0.451990995737356330251`\), \(-0.0834928504253781387199`\)}\)], "Output", CellLabel->"Out[11]="] }, Open ]], Cell[BoxData[ \(\($Line = 11; \)\)], "Input", CellOpen->False], Cell[CellGroupData[{ Cell[BoxData[ \(Eigenvalues[closedlooph2[\([1]\)]]\)], "Input", CellLabel->"In[12]:="], Cell[BoxData[ \({\(-0.0571560841498516521499`\) + 1.85682786727734642487`\ I, \(-0.0571560841498516521499`\) - 1.85682786727734642487`\ I, \(-0.0369994857958188186211`\) + 1.84963591235557010226`\ I, \(-0.0369994857958188186211`\) - 1.84963591235557010226`\ I, \(-0.0283472769598678095035`\) + 1.40974383305463111699`\ I, \(-0.0283472769598678095035`\) - 1.40974383305463111699`\ I, \(-0.0896632084605294061088`\) + 1.40287898973394326617`\ I, \(-0.0896632084605294061088`\) - 1.40287898973394326617`\ I, \(-0.0862999059724610393176`\) + 0.80954166322334063701`\ I, \(-0.0862999059724610393176`\) - 0.80954166322334063701`\ I, \(-0.016687258082886909284`\) + 0.76523288940458250593`\ I, \(-0.016687258082886909284`\) - 0.76523288940458250593`\ I, \(-0.375286655004096900188`\) + 0.28177413485399994554`\ I, \(-0.375286655004096900188`\) - 0.28177413485399994554`\ I, \(-0.0492313572732512407057`\) + 0.0371322758817845620252`\ I, \(-0.0492313572732512407057`\) - 0.0371322758817845620252`\ I}\)], "Output", CellLabel->"Out[12]="] }, Open ]], Cell[BoxData[ \(\($Line = 12; \)\)], "Input", CellOpen->False], Cell[TextData[ "These statements allow comparison of the 2-norms and \[Infinity]-norms of \ the closed loops."], "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[CellGroupData[{ Cell[BoxData[ \(SystemNorm[closedloophinfinity, 2]\)], "Input", CellLabel->"In[13]:="], Cell[BoxData[ \(18.543169300671838575`\)], "Output", CellLabel->"Out[13]="] }, Open ]], Cell[BoxData[ \(\($Line = 13; \)\)], "Input", CellOpen->False], Cell[CellGroupData[{ Cell[BoxData[ \(SystemNorm[closedloophinfinity, Infinity]\)], "Input", CellLabel->"In[14]:="], Cell[BoxData[ \(162.953225959710596803`\)], "Output", CellLabel->"Out[14]="] }, Open ]], Cell[BoxData[ \(\($Line = 14; \)\)], "Input", CellOpen->False], Cell[CellGroupData[{ Cell[BoxData[ \(SystemNorm[closedlooph2, 2]\)], "Input", CellLabel->"In[15]:="], Cell[BoxData[ \(0.278411748714158650049`\)], "Output", CellLabel->"Out[15]="] }, Open ]], Cell[BoxData[ \(\($Line = 15; \)\)], "Input", CellOpen->False], Cell[CellGroupData[{ Cell[BoxData[ \(SystemNorm[closedlooph2, Infinity]\)], "Input", CellLabel->"In[16]:="], Cell[BoxData[ \(1.33261251002201386295`\)], "Output", CellLabel->"Out[16]="] }, Open ]], Cell[BoxData[ \(\($Line = 16; \)\)], "Input", CellOpen->False], Cell["\<\ These statements compute the damping ratios ([[1]]) and natural \ frequencies ([[2]]) of the open and closed loops.\ \>", "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[CellGroupData[{ Cell[BoxData[ \(Damp[system]\)], "Input", CellLabel->"In[17]:="], Cell[BoxData[ \({{0.0199911801303276544742`, 0.0199911801303276544742`, 0.0200115310040261659457`, 0.0200115310040261659457`, 0.0200001118115718175402`, 0.0200001118115718175402`, \(-1\), \(-1\)}, {1.85001610298767335798`, 1.85001610298767335798`, 1.40998273398089448383`, 1.40998273398089448383`, 0.764999805456784426945`, 0.764999805456784426945`, 0.`, 0.`}}\)], "Output", CellLabel->"Out[17]="] }, Open ]], Cell[BoxData[ \(\($Line = 17; \)\)], "Input", CellOpen->False], Cell[CellGroupData[{ Cell[BoxData[ \(Damp[closedloophinfinity]\)], "Input", CellLabel->"In[18]:="], Cell[BoxData[ \({{1, 1, 0.0281221461277002271776`, 0.0281221461277002271776`, 0.00788764418060022082105`, 0.00788764418060022082105`, 0.0345056521424444004536`, 0.0345056521424444004536`, 0.0687636759979045948144`, 0.0687636759979045948144`, 0.0233963561947566166124`, 0.0233963561947566166124`, 0.161742428949047533735`, 0.161742428949047533735`, 1, 1}, { 290.984731590992670409`, 98.1537947674847796857`, 1.85548958013347133257`, 1.85548958013347133257`, 1.69515040163145382459`, 1.69515040163145382459`, 1.64203026120295412474`, 1.64203026120295412474`, 1.38438336876226455269`, 1.38438336876226455269`, 0.89739839222387768761`, 0.89739839222387768761`, 0.784035809062110204594`, 0.784035809062110204594`, 0.451990995737356330251`, 0.0834928504253781387199`}}\)], "Output", CellLabel->"Out[18]="] }, Open ]], Cell[BoxData[ \(\($Line = 18; \)\)], "Input", CellOpen->False], Cell[CellGroupData[{ Cell[BoxData[ \(Damp[closedlooph2]\)], "Input", CellLabel->"In[19]:="], Cell[BoxData[ \({{0.0307670013670729077231`, 0.0307670013670729077231`, 0.0199996578594974648429`, 0.0199996578594974648429`, 0.020104040976808374725`, 0.020104040976808374725`, 0.0637835713865421921955`, 0.0637835713865421921955`, 0.106002793553857976567`, 0.106002793553857976567`, 0.0218015875150292072611`, 0.0218015875150292072611`, 0.799683692732296956453`, 0.799683692732296956453`, 0.798372087060454955305`, 0.798372087060454955305`}, { 1.85770733611435247337`, 1.85770733611435247337`, 1.850005937889005048`, 1.850005937889005048`, 1.41002880926121615962`, 1.41002880926121615962`, 1.40574142387153322724`, 1.40574142387153322724`, 0.814128600569509710584`, 0.814128600569509710584`, 0.765414815383665588085`, 0.765414815383665588085`, 0.469293870082365550434`, 0.469293870082365550434`, 0.0616646774995821032351`, 0.0616646774995821032351`}}\)], "Output", CellLabel->"Out[19]="] }, Open ]], Cell[BoxData[ \(\($Line = 19; \)\)], "Input", CellOpen->False], Cell[TextData[{ "These statements allow comparison of the time-domain responses of the \ closed loops. The computational software consists of ", StyleBox["Mathematica", FontSlant->"Italic"], " code, together with an Installed time-domain simulation executable. The \ code takes advantage of the form of the input corresponding to the response \ requested to cut the time to compute the response. The notation" }], "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["\<\ \t(1)\t\"ContinuousStepOutput\" signifies the request to compute \ the output response to a continuous unit-step input\ \>", "Text", TextJustification->0], Cell["\<\ \t(2)\t{t,100,1} signifies the computation of the response will be \ from time t = 0 sec to t = 100 sec in uniform \ \>", "Text", TextJustification->0], Cell["\<\ \t\tincrements of 1 sec with the appropriate hold (zero-order hold \ in this case)\ \>", "Text", TextJustification->0], Cell[TextData[{ "\t(3)\tNumericalPlotSamplingPeriod->10 signifies the output back to the ", StyleBox["Mathematica", FontSlant->"Italic"], " session will have" }], "Text", TextJustification->0], Cell["\t\tuniform sampling every 10 sec", "Text", TextJustification->0], Cell["\<\ \t(4)\tTimeDelay->5 signifies the unit-step input will not occur \ until 5 sec after the input initial state vector\ \>", "Text", TextJustification->0], Cell["\<\ \t\t(denoted by Initial Conditions, whose meaning is the same as \ that in CSP)\ \>", "Text", TextJustification->0], Cell["\<\ All told, the user may choose from 60 different types of responses \ using this single command: (discrete or continuous) x (unforced or impulse \ or step or ramp or general) x (output or state) x (the 3 options of \ NumericalPlotSamplingPeriod, InitialConditions, TimeDelay).\ \>", "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[CellGroupData[{ Cell[BoxData[ \(NumericalResponse[closedloophinfinity, "\", {t, 100, 1}, NumericalPlotSamplingPeriod -> 10, TimeDelay -> 5, InitialConditions -> {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}]\)], "Input", CellLabel->"In[20]:="], Cell[BoxData[ RowBox[{"{", RowBox[{"{", RowBox[{"9.`", ",", RowBox[{"-", StyleBox["90.404456341223352004`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["61.620319357605751998`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", StyleBox["340.795741401646639983`", StyleBoxAutoDelete->True, PrintPrecision->17], ",", RowBox[{"-", StyleBox["150.423760850353459999`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["141.746461433993600005`", StyleBoxAutoDelete->True, PrintPrecision->16]}], ",", StyleBox["231.656847275302030003`", StyleBoxAutoDelete->True, PrintPrecision->17], ",", RowBox[{"-", StyleBox["26.3164711959418190002`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["148.096747333835339994`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", StyleBox["105.903806337575470003`", StyleBoxAutoDelete->True, PrintPrecision->17], ",", StyleBox["54.6100169094522490008`", StyleBoxAutoDelete->True, PrintPrecision->17]}], "}"}], "}"}]], "Output", CellLabel->"Out[20]="] }, Open ]], Cell[BoxData[ \(\($Line = 20; \)\)], "Input", CellOpen->False], Cell[CellGroupData[{ Cell[BoxData[ \(NumericalResponse[closedlooph2, "\", {t, 100, 1}, NumericalPlotSamplingPeriod -> 10, TimeDelay -> 5, InitialConditions -> {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}]\)], "Input", CellLabel->"In[21]:="], Cell[BoxData[ RowBox[{"{", RowBox[{"{", RowBox[{"9.`", ",", StyleBox["37.2979127368489640011`", StyleBoxAutoDelete->True, PrintPrecision->17], ",", StyleBox["51.8920916481226730029`", StyleBoxAutoDelete->True, PrintPrecision->17], ",", StyleBox["43.2653257866340720024`", StyleBoxAutoDelete->True, PrintPrecision->17], ",", StyleBox["22.467690334100944001`", StyleBoxAutoDelete->True, PrintPrecision->17], ",", StyleBox["8.41027955653762230008`", StyleBoxAutoDelete->True, PrintPrecision->17], ",", StyleBox["4.9615912429796047`", StyleBoxAutoDelete->True, PrintPrecision->17], ",", StyleBox["4.18257327158207830013`", StyleBoxAutoDelete->True, PrintPrecision->17], ",", StyleBox["1.57909307454373099999`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", RowBox[{"-", StyleBox["0.886214766629787270048`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["1.08503723417810960005`", StyleBoxAutoDelete->True, PrintPrecision->17]}]}], "}"}], "}"}]], "Output", CellLabel->"Out[21]="] }, Open ]], Cell[BoxData[ \(\($Line = 21; \)\)], "Input", CellOpen->False], Cell[TextData[{ "This statement asks for the ", Cell[BoxData[ \(H\^2/H\^\[Infinity]\)], FontFamily->"Times"], " controller. To compute this controller, the program first computes the \ minimum \[Gamma] for the observer (\"Q\") equation, then uses this \[Gamma] \ to improve convergence characteristics of the solution process. The program \ computes the full-order ", Cell[BoxData[ StyleBox[\(H\^2/H\^\[Infinity]\), FontFamily->"Times"]]], " controller by iterating on the ", Cell[BoxData[ StyleBox[\(H\^2\), FontFamily->"Times"]]], " regulator (\"P\") and ", Cell[BoxData[ StyleBox[\(H\^\[Infinity]\), FontFamily->"Times"]]], " regulator (\"", Cell[BoxData[ OverscriptBox[ StyleBox["Q", FontFamily->"Times"], "^"]]], "\") equations until the residual errors P_E and ", Cell[BoxData[ OverscriptBox[ StyleBox["Q", FontFamily->"Times"], "^"]]], "_E are both below their respective prespecified tolerances. A value of 1 \ for \[Beta] (controller authority) indicates an attempt to use all the \ driving term possible using this method. Since \[Gamma] is high enough, the \ resulting controller is stable." }], "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[CellGroupData[{ Cell[BoxData[ \(\(kh2hinfinity = H2HinfinityController[system, d1, d2, e1, e2, e1inf, einf, e2inf, InputFileName -> "\", Gam -> 100, ControllerOrder -> 6]; \)\)], "Input", CellLabel->"In[22]:="], Cell[BoxData[ InterpretationBox[ \(" beta machine tolerance = \ "\[InvisibleSpace]1.0000000000000000001`*^-10\), SequenceForm[ " beta machine tolerance = ", 1.0*^-10], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ \(" Lyapunov machine tolerance = \ "\[InvisibleSpace]1.0000000000000000001`*^-10\), SequenceForm[ " Lyapunov machine tolerance = ", 1.0*^-10], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ \(" Riccati solution tolerance = \ "\[InvisibleSpace]9.99999999999999999913`*^-9\), SequenceForm[ " Riccati solution tolerance = ", 1.0*^-8], Editable->False]], "Print"], Cell[BoxData[ \(" initial Lyapunov equation error tolerances:"\)], "Print"], Cell[BoxData[ InterpretationBox[ \(" "\[InvisibleSpace]1.`*^-6 \[InvisibleSpace]" <= Q_E <= \ "\[InvisibleSpace]0.00010000000000000000001` \[InvisibleSpace]"; "\[InvisibleSpace]1.0000000000000000001`*^-10 \[InvisibleSpace]" <= P_E <= \ "\[InvisibleSpace]9.99999999999999999913`*^-9 \[InvisibleSpace]"; "\[InvisibleSpace]1.0000000000000000001`*^-10 \[InvisibleSpace]" <= Q^_E <= \ "\[InvisibleSpace]9.99999999999999999913`*^-9\), SequenceForm[ " ", 1.0*^-6, " <= Q_E <= ", 0.0001, "; ", 1.0*^-10, " <= P_E <= ", 1.0*^-8, "; ", 1.0*^-10, " <= Q^_E <= ", 1.0*^-8], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" initial beta should be "\[InvisibleSpace]1\), SequenceForm[ " initial beta should be ", 1], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" trying gamma = "\[InvisibleSpace]100\), SequenceForm[ " trying gamma = ", 100], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" trying beta = "\[InvisibleSpace]1\), SequenceForm[ " trying beta = ", 1], Editable->False]], "Print"], Cell[BoxData[ \(" computing full H2 solution"\)], "Print"], Cell[BoxData[ InterpretationBox[ \(" minimum gamma = "\[InvisibleSpace]0.119990766842330492188`\), SequenceForm[ " minimum gamma = ", 0.1199907668423304922], Editable->False]], "Print"], Cell[BoxData[ \(" residual errors in full-order solution process:"\)], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["0.000018725016264980339776`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; P_E = \"\>", "\[InvisibleSpace]", StyleBox["3.62824464531894442056`*^-11", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "6"}], SequenceForm[ " Q^_E = ", 1.872501626498033978*^-5, "; P_E = ", 3.628244645318944421*^-11, "; # eq = ", 6], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["9.83574090963980181018`*^-6", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; P_E = \"\>", "\[InvisibleSpace]", StyleBox["5.69338043106786138511`*^-12", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "8"}], SequenceForm[ " Q^_E = ", 9.835740909639801811*^-6, "; P_E = ", 5.693380431067861385*^-12, "; # eq = ", 8], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["5.38535323046235911773`*^-6", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; P_E = \"\>", "\[InvisibleSpace]", StyleBox["2.07342800510989047906`*^-12", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "10"}], SequenceForm[ " Q^_E = ", 5.385353230462359118*^-6, "; P_E = ", 2.073428005109890479*^-12, "; # eq = ", 10], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["2.21199147272611871986`*^-6", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; P_E = \"\>", "\[InvisibleSpace]", StyleBox["3.31423565033668560803`*^-12", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "12"}], SequenceForm[ " Q^_E = ", 2.21199147272611872*^-6, "; P_E = ", 3.314235650336685608*^-12, "; # eq = ", 12], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["6.81312570892874751074`*^-7", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; P_E = \"\>", "\[InvisibleSpace]", StyleBox["1.81936845504508844396`*^-12", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "14"}], SequenceForm[ " Q^_E = ", 6.813125708928747511*^-7, "; P_E = ", 1.819368455045088444*^-12, "; # eq = ", 14], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["1.57333814696383425882`*^-7", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; P_E = \"\>", "\[InvisibleSpace]", StyleBox["6.3825480239698773109`*^-13", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "16"}], SequenceForm[ " Q^_E = ", 1.573338146963834259*^-7, "; P_E = ", 6.38254802396987731*^-13, "; # eq = ", 16], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["2.72306842073142789709`*^-8", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; P_E = \"\>", "\[InvisibleSpace]", StyleBox["1.59039341363917101626`*^-13", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "18"}], SequenceForm[ " Q^_E = ", 2.723068420731427897*^-8, "; P_E = ", 1.590393413639171016*^-13, "; # eq = ", 18], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["3.52998214301446651235`*^-9", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; P_E = \"\>", "\[InvisibleSpace]", StyleBox["2.89697981322132026588`*^-14", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "20"}], SequenceForm[ " Q^_E = ", 3.529982143014466512*^-9, "; P_E = ", 2.896979813221320266*^-14, "; # eq = ", 20], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ \(" ||full (a~,d~,einf~,einf)||inf = \ "\[InvisibleSpace]1.39216083031606375076`\), SequenceForm[ " ||full (a~,d~,einf~,einf)||inf = ", 1.392160830316063751], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ \(" ||reduced (a~,d~,einf~,einf)||inf = \ "\[InvisibleSpace]1.39246850650077168829`\), SequenceForm[ " ||reduced (a~,d~,einf~,einf)||inf = ", 1.392468506500771688], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ \(" ||reduced (a~,d~,einf~,einf)||inf = \ "\[InvisibleSpace]1.40606977034120801551`\), SequenceForm[ " ||reduced (a~,d~,einf~,einf)||inf = ", 1.406069770341208016], Editable->False]], "Print"], Cell[BoxData[ \(" residual errors in reduced-order solution process:"\)], "Print"], Cell[BoxData[ InterpretationBox[ \(" alpha = "\[InvisibleSpace]1\[InvisibleSpace]" is OK"\), SequenceForm[ " alpha = ", 1, " is OK"], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q_E = \"\>", "\[InvisibleSpace]", StyleBox["0.0563371066889243183196`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "22"}], SequenceForm[ " Q_E = ", 0.05633710668892431832, "; # eq = ", 22], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q_E = \"\>", "\[InvisibleSpace]", StyleBox["0.035149231158879697236`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "23"}], SequenceForm[ " Q_E = ", 0.03514923115887969724, "; # eq = ", 23], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q_E = \"\>", "\[InvisibleSpace]", StyleBox["0.0244670236022330171753`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "24"}], SequenceForm[ " Q_E = ", 0.02446702360223301718, "; # eq = ", 24], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q_E = \"\>", "\[InvisibleSpace]", StyleBox["0.0177670447316938235151`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "25"}], SequenceForm[ " Q_E = ", 0.01776704473169382351, "; # eq = ", 25], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q_E = \"\>", "\[InvisibleSpace]", StyleBox["0.0132224323216821832067`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "26"}], SequenceForm[ " Q_E = ", 0.01322243232168218321, "; # eq = ", 26], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q_E = \"\>", "\[InvisibleSpace]", StyleBox["0.00998666906385749511207`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "27"}], SequenceForm[ " Q_E = ", 0.009986669063857495112, "; # eq = ", 27], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q_E = \"\>", "\[InvisibleSpace]", StyleBox["0.00761016154085703733656`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "28"}], SequenceForm[ " Q_E = ", 0.007610161540857037337, "; # eq = ", 28], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q_E = \"\>", "\[InvisibleSpace]", StyleBox["0.00583058278597238062532`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "29"}], SequenceForm[ " Q_E = ", 0.005830582785972380625, "; # eq = ", 29], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q_E = \"\>", "\[InvisibleSpace]", StyleBox["0.00448221452882434430627`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "30"}], SequenceForm[ " Q_E = ", 0.004482214528824344306, "; # eq = ", 30], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q_E = \"\>", "\[InvisibleSpace]", StyleBox["0.00345326613508383434563`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "31"}], SequenceForm[ " Q_E = ", 0.003453266135083834345, "; # eq = ", 31], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q_E = \"\>", "\[InvisibleSpace]", StyleBox["0.00266458236086826771469`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "32"}], SequenceForm[ " Q_E = ", 0.002664582360868267715, "; # eq = ", 32], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q_E = \"\>", "\[InvisibleSpace]", StyleBox["0.00205829978493141725875`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "33"}], SequenceForm[ " Q_E = ", 0.002058299784931417259, "; # eq = ", 33], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q_E = \"\>", "\[InvisibleSpace]", StyleBox["0.00159128710182905752537`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "34"}], SequenceForm[ " Q_E = ", 0.001591287101829057525, "; # eq = ", 34], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q_E = \"\>", "\[InvisibleSpace]", StyleBox["0.00123101619100468390524`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "35"}], SequenceForm[ " Q_E = ", 0.001231016191004683905, "; # eq = ", 35], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q_E = \"\>", "\[InvisibleSpace]", StyleBox["0.000952776167318330913409`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "36"}], SequenceForm[ " Q_E = ", 0.0009527761673183309133, "; # eq = ", 36], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q_E = \"\>", "\[InvisibleSpace]", StyleBox["0.000737702872689800808348`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "37"}], SequenceForm[ " Q_E = ", 0.0007377028726898008083, "; # eq = ", 37], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q_E = \"\>", "\[InvisibleSpace]", StyleBox["0.000571344706062182292917`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "38"}], SequenceForm[ " Q_E = ", 0.0005713447060621822929, "; # eq = ", 38], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q_E = \"\>", "\[InvisibleSpace]", StyleBox["0.000442600879828340931093`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "39"}], SequenceForm[ " Q_E = ", 0.0004426008798283409311, "; # eq = ", 39], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q_E = \"\>", "\[InvisibleSpace]", StyleBox["0.000342926819889156683524`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "40"}], SequenceForm[ " Q_E = ", 0.0003429268198891566835, "; # eq = ", 40], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q_E = \"\>", "\[InvisibleSpace]", StyleBox["0.000265734919085034530425`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "41"}], SequenceForm[ " Q_E = ", 0.0002657349190850345304, "; # eq = ", 41], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q_E = \"\>", "\[InvisibleSpace]", StyleBox["0.000205939953534521530821`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "42"}], SequenceForm[ " Q_E = ", 0.0002059399535345215308, "; # eq = ", 42], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q_E = \"\>", "\[InvisibleSpace]", StyleBox["0.000159612624316657117904`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "43"}], SequenceForm[ " Q_E = ", 0.0001596126243166571179, "; # eq = ", 43], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q_E = \"\>", "\[InvisibleSpace]", StyleBox["0.000123714518318673804707`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "44"}], SequenceForm[ " Q_E = ", 0.0001237145183186738047, "; # eq = ", 44], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q_E = \"\>", "\[InvisibleSpace]", StyleBox["0.000095894753067042262911`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "45"}], SequenceForm[ " Q_E = ", 9.589475306704226291*^-5, "; # eq = ", 45], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["0.0905049766519405285772`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; P_E = \"\>", "\[InvisibleSpace]", StyleBox["0.00366396249915535077916`", StyleBoxAutoDelete->True, PrintPrecision->16]}], SequenceForm[ " Q^_E = ", 0.09050497665194052857, "; P_E = ", 0.003663962499155350779], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["5.28592576459756700261`*^-6", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "46"}], SequenceForm[ " Q^_E = ", 5.285925764597567002*^-6, "; # eq = ", 46], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["2.5144715571085577083`*^-10", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "47"}], SequenceForm[ " Q^_E = ", 2.514471557108557708*^-10, "; # eq = ", 47], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" P_E = \"\>", "\[InvisibleSpace]", StyleBox["0.000284910283328185559639`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "48"}], SequenceForm[ " P_E = ", 0.0002849102833281855596, "; # eq = ", 48], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["0.000224601008606961427939`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; P_E = \"\>", "\[InvisibleSpace]", StyleBox["0.000286281968372421407242`", StyleBoxAutoDelete->True, PrintPrecision->16]}], SequenceForm[ " Q^_E = ", 0.0002246010086069614279, "; P_E = ", 0.0002862819683724214072], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["4.82620434703886812743`*^-7", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "49"}], SequenceForm[ " Q^_E = ", 4.826204347038868127*^-7, "; # eq = ", 49], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["3.50987416259556189506`*^-11", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "50"}], SequenceForm[ " Q^_E = ", 3.509874162595561895*^-11, "; # eq = ", 50], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" P_E = \"\>", "\[InvisibleSpace]", StyleBox["0.000284776983077428499447`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "51"}], SequenceForm[ " P_E = ", 0.0002847769830774284995, "; # eq = ", 51], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["0.000105800632742707509837`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; P_E = \"\>", "\[InvisibleSpace]", StyleBox["0.000121442464117521758514`", StyleBoxAutoDelete->True, PrintPrecision->16]}], SequenceForm[ " Q^_E = ", 0.0001058006327427075098, "; P_E = ", 0.0001214424641175217585], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["2.17120828128277643304`*^-7", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "52"}], SequenceForm[ " Q^_E = ", 2.171208281282776433*^-7, "; # eq = ", 52], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["1.57836402527446897762`*^-11", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "53"}], SequenceForm[ " Q^_E = ", 1.578364025274468978*^-11, "; # eq = ", 53], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" P_E = \"\>", "\[InvisibleSpace]", StyleBox["0.000117914392720635950782`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "54"}], SequenceForm[ " P_E = ", 0.0001179143927206359508, "; # eq = ", 54], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["0.0000532658268331713964345`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; P_E = \"\>", "\[InvisibleSpace]", StyleBox["0.0000614411841609162395934`", StyleBoxAutoDelete->True, PrintPrecision->16]}], SequenceForm[ " Q^_E = ", 5.326582683317139643*^-5, "; P_E = ", 6.144118416091623959*^-5], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["1.25093234160941968078`*^-7", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "55"}], SequenceForm[ " Q^_E = ", 1.250932341609419681*^-7, "; # eq = ", 55], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["9.09275229431385733497`*^-12", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "56"}], SequenceForm[ " Q^_E = ", 9.092752294313857335*^-12, "; # eq = ", 56], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" P_E = \"\>", "\[InvisibleSpace]", StyleBox["0.0000578228852182143893004`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "57"}], SequenceForm[ " P_E = ", 5.78228852182143893*^-5, "; # eq = ", 57], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["0.0000232855720919715714241`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; P_E = \"\>", "\[InvisibleSpace]", StyleBox["0.0000278273599005134580561`", StyleBoxAutoDelete->True, PrintPrecision->16]}], SequenceForm[ " Q^_E = ", 2.328557209197157142*^-5, "; P_E = ", 2.782735990051345806*^-5], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["6.09634225303743163427`*^-8", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "58"}], SequenceForm[ " Q^_E = ", 6.096342253037431634*^-8, "; # eq = ", 58], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["4.43167688669627778466`*^-12", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "59"}], SequenceForm[ " Q^_E = ", 4.431676886696277785*^-12, "; # eq = ", 59], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" P_E = \"\>", "\[InvisibleSpace]", StyleBox["0.0000260063129629566488674`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "60"}], SequenceForm[ " P_E = ", 2.600631296295664887*^-5, "; # eq = ", 60], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["8.76320992621607205638`*^-6", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; P_E = \"\>", "\[InvisibleSpace]", StyleBox["0.0000112149601898491513187`", StyleBoxAutoDelete->True, PrintPrecision->16]}], SequenceForm[ " Q^_E = ", 8.763209926216072056*^-6, "; P_E = ", 1.121496018984915132*^-5], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["2.51142519422714319277`*^-8", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "61"}], SequenceForm[ " Q^_E = ", 2.511425194227143193*^-8, "; # eq = ", 61], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["1.82638136726690312764`*^-12", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "62"}], SequenceForm[ " Q^_E = ", 1.826381367266903128*^-12, "; # eq = ", 62], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" P_E = \"\>", "\[InvisibleSpace]", StyleBox["0.0000104802845758343909454`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "63"}], SequenceForm[ " P_E = ", 1.048028457583439095*^-5, "; # eq = ", 63], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["2.80738724766843248054`*^-6", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; P_E = \"\>", "\[InvisibleSpace]", StyleBox["4.05675966292480222894`*^-6", StyleBoxAutoDelete->True, PrintPrecision->16]}], SequenceForm[ " Q^_E = ", 2.807387247668432481*^-6, "; P_E = ", 4.056759662924802229*^-6], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["8.69903653866714357979`*^-9", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "64"}], SequenceForm[ " Q^_E = ", 8.69903653866714358*^-9, "; # eq = ", 64], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["6.33094116660119280359`*^-13", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "65"}], SequenceForm[ " Q^_E = ", 6.330941166601192804*^-13, "; # eq = ", 65], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" P_E = \"\>", "\[InvisibleSpace]", StyleBox["3.92348520100665123112`*^-6", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "66"}], SequenceForm[ " P_E = ", 3.923485201006651231*^-6, "; # eq = ", 66], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["7.54437965992628490653`*^-7", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; P_E = \"\>", "\[InvisibleSpace]", StyleBox["1.42255640535792052866`*^-6", StyleBoxAutoDelete->True, PrintPrecision->16]}], SequenceForm[ " Q^_E = ", 7.544379659926284907*^-7, "; P_E = ", 1.422556405357920529*^-6], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["2.51107214374204966433`*^-9", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "67"}], SequenceForm[ " Q^_E = ", 2.511072143742049664*^-9, "; # eq = ", 67], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["1.82997533811157770174`*^-13", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "68"}], SequenceForm[ " Q^_E = ", 1.829975338111577702*^-13, "; # eq = ", 68], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" P_E = \"\>", "\[InvisibleSpace]", StyleBox["1.39949687987985682481`*^-6", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "69"}], SequenceForm[ " P_E = ", 1.399496879879856825*^-6, "; # eq = ", 69], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["1.66415828256367282073`*^-7", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; P_E = \"\>", "\[InvisibleSpace]", StyleBox["4.70403307615310843463`*^-7", StyleBoxAutoDelete->True, PrintPrecision->16]}], SequenceForm[ " Q^_E = ", 1.664158282563672821*^-7, "; P_E = ", 4.704033076153108434*^-7], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["5.96227727126852478272`*^-10", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "70"}], SequenceForm[ " Q^_E = ", 5.962277271268524783*^-10, "; # eq = ", 70], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["4.36152871764102271004`*^-14", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "71"}], SequenceForm[ " Q^_E = ", 4.36152871764102271*^-14, "; # eq = ", 71], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" P_E = \"\>", "\[InvisibleSpace]", StyleBox["4.7238823676388802409`*^-7", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "72"}], SequenceForm[ " P_E = ", 4.723882367638880241*^-7, "; # eq = ", 72], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["1.66415828256367282073`*^-7", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; P_E = \"\>", "\[InvisibleSpace]", StyleBox["4.70403307615310843463`*^-7", StyleBoxAutoDelete->True, PrintPrecision->16]}], SequenceForm[ " Q^_E = ", 1.664158282563672821*^-7, "; P_E = ", 4.704033076153108434*^-7], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["1.14095480286231739741`*^-10", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "73"}], SequenceForm[ " Q^_E = ", 1.140954802862317397*^-10, "; # eq = ", 73], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["8.29332345054644236217`*^-15", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "74"}], SequenceForm[ " Q^_E = ", 8.293323450546442363*^-15, "; # eq = ", 74], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" P_E = \"\>", "\[InvisibleSpace]", StyleBox["1.52722918471392577052`*^-7", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "75"}], SequenceForm[ " P_E = ", 1.527229184713925771*^-7, "; # eq = ", 75], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["3.54413770912938528787`*^-9", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; P_E = \"\>", "\[InvisibleSpace]", StyleBox["4.56150291727327334952`*^-8", StyleBoxAutoDelete->True, PrintPrecision->16]}], SequenceForm[ " Q^_E = ", 3.544137709129385288*^-9, "; P_E = ", 4.561502917273273349*^-8], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["1.69329160327246624746`*^-11", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "76"}], SequenceForm[ " Q^_E = ", 1.693291603272466247*^-11, "; # eq = ", 76], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" P_E = \"\>", "\[InvisibleSpace]", StyleBox["4.74577727433856134649`*^-8", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "77"}], SequenceForm[ " P_E = ", 4.745777274338561346*^-8, "; # eq = ", 77], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["3.54413770912938528787`*^-9", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; P_E = \"\>", "\[InvisibleSpace]", StyleBox["4.56150291727327334952`*^-8", StyleBoxAutoDelete->True, PrintPrecision->16]}], SequenceForm[ " Q^_E = ", 3.544137709129385288*^-9, "; P_E = ", 4.561502917273273349*^-8], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["1.75489107880142921691`*^-12", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "78"}], SequenceForm[ " Q^_E = ", 1.754891078801429217*^-12, "; # eq = ", 78], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" P_E = \"\>", "\[InvisibleSpace]", StyleBox["1.40820552450571307148`*^-8", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; # eq = \"\>", "\[InvisibleSpace]", "79"}], SequenceForm[ " P_E = ", 1.408205524505713072*^-8, "; # eq = ", 79], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["7.8107641978051121699`*^-11", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; P_E = \"\>", "\[InvisibleSpace]", StyleBox["3.73611839171048573833`*^-9", StyleBoxAutoDelete->True, PrintPrecision->16]}], SequenceForm[ " Q^_E = ", 7.81076419780511217*^-11, "; P_E = ", 3.736118391710485738*^-9], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ \(" ||reduced (a~,d~,einf~,einf)||inf = \ "\[InvisibleSpace]1.40281249695513388965`\), SequenceForm[ " ||reduced (a~,d~,einf~,einf)||inf = ", 1.40281249695513389], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" Q_E = \"\>", "\[InvisibleSpace]", StyleBox["0.200401644959849505327`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; P_E = \"\>", "\[InvisibleSpace]", StyleBox["0.000326140952538985558488`", StyleBoxAutoDelete->True, PrintPrecision->16], "\[InvisibleSpace]", "\<\"; Q^_E = \"\>", "\[InvisibleSpace]", StyleBox["0.0835534469933761989209`", StyleBoxAutoDelete->True, PrintPrecision->16]}], SequenceForm[ " Q_E = ", 0.2004016449598495053, "; P_E = ", 0.0003261409525389855585, "; Q^_E = ", 0.08355344699337619892], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ \(" all goals met for n_c = "\[InvisibleSpace]4 \[InvisibleSpace]" beta = "\[InvisibleSpace]1 \[InvisibleSpace]" alpha = "\[InvisibleSpace]1\), SequenceForm[ " all goals met for n_c = ", 4, " beta = ", 1, " alpha = ", 1], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[\(" all goals met for gamma = "\[InvisibleSpace]100\), SequenceForm[ " all goals met for gamma = ", 100], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ \(" end; # Lyap eq. = "\[InvisibleSpace]69 \[InvisibleSpace]"; # Ric eq. = "\[InvisibleSpace]11\), SequenceForm[ " end; # Lyap eq. = ", 69, "; # Ric eq. = ", 11], Editable->False]], "Print"] }, Open ]], Cell[BoxData[ \(\($Line = 22; \)\)], "Input", CellOpen->False], Cell["\<\ This statement closes the loop using the unity feedback \ construction.\ \>", "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[BoxData[ \(\(closedlooph2hinfinity = UnityFeedback[system, kh2hinfinity]; \)\)], "Input", CellLabel->"In[23]:="], Cell[BoxData[ \(\($Line = 23; \)\)], "Input", CellOpen->False], Cell["This statement computes the eigenvalues of the closed loop.", "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[CellGroupData[{ Cell[BoxData[ \(Eigenvalues[closedlooph2hinfinity[\([1]\)]]\)], "Input", CellLabel->"In[24]:="], Cell[BoxData[ \({\(-0.03484009484219231632`\) + 1.85100385580503421934`\ I, \(-0.03484009484219231632`\) - 1.85100385580503421934`\ I, \(-0.0327011300288831236685`\) + 1.40547271381003912159`\ I, \(-0.0327011300288831236685`\) - 1.40547271381003912159`\ I, \(-0.0811138491571348081796`\) + 0.780849007236948767368`\ I, \(-0.0811138491571348081796`\) - 0.780849007236948767368`\ I, \(-0.0158892058404171750835`\) + 0.76601292920934262098`\ I, \(-0.0158892058404171750835`\) - 0.76601292920934262098`\ I, \(-0.394532147575522197354`\) + 0.243832021740339583131`\ I, \(-0.394532147575522197354`\) - 0.243832021740339583131`\ I, \(-0.0499878335040437871356`\) + 0.0366823496069604193569`\ I, \(-0.0499878335040437871356`\) - 0.0366823496069604193569`\ I}\)], "Output", CellLabel->"Out[24]="] }, Open ]], Cell[BoxData[ \(\($Line = 24; \)\)], "Input", CellOpen->False], Cell[TextData[ "These statements compute the 2-norm and \[Infinity]-norm of the closed loop. \ Comparison with results already supplied show that the closed loop exhibits \ much more 2-norm behavior than \[Infinity]-norm behavior, consistent with the \ high \[Gamma] specification Gam->100. To impose more \[Infinity]-norm \ behavior, one would reduce maximum \[Gamma] level specification."], "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[CellGroupData[{ Cell[BoxData[ \(SystemNorm[closedlooph2hinfinity, 2]\)], "Input", CellLabel->"In[25]:="], Cell[BoxData[ \(0.279292030241660820238`\)], "Output", CellLabel->"Out[25]="] }, Open ]], Cell[BoxData[ \(\($Line = 25; \)\)], "Input", CellOpen->False], Cell[CellGroupData[{ Cell[BoxData[ \(SystemNorm[closedlooph2hinfinity, Infinity]\)], "Input", CellLabel->"In[26]:="], Cell[BoxData[ \(1.33254087271392090811`\)], "Output", CellLabel->"Out[26]="] }, Open ]], Cell[BoxData[ \(\($Line = 26; \)\)], "Input", CellOpen->False], Cell["\<\ This statement computes the damping ratios ([[1]]) and natural \ frequencies ([[2]]) of the closed loop.\ \>", "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[CellGroupData[{ Cell[BoxData[ \(Damp[closedlooph2hinfinity]\)], "Input", CellLabel->"In[27]:="], Cell[BoxData[ \({{0.0188189369974596447492`, 0.0188189369974596447492`, 0.0232607021606658472684`, 0.0232607021606658472684`, 0.103323068658585396966`, 0.103323068658585396966`, 0.0207382774923940782735`, 0.0207382774923940782735`, 0.850652982817078589985`, 0.850652982817078589985`, 0.806215712004054820168`, 0.806215712004054820168`}, { 1.8513317116102443266`, 1.8513317116102443266`, 1.40585309089169130545`, 1.40585309089169130545`, 0.785050717232979087048`, 0.785050717232979087048`, 0.766177704307634167835`, 0.766177704307634167835`, 0.463799170219756927077`, 0.463799170219756927077`, 0.0620030504984655718566`, 0.0620030504984655718566`}}\)], "Output", CellLabel->"Out[27]="] }, Open ]], Cell[BoxData[ \(\($Line = 27; \)\)], "Input", CellOpen->False], Cell["\<\ This statement computes a time-domain response of the closed loop. \ A comparison of this response to results already supplied may not be fair \ because the initial state vector must necessarily be different, since the \ closed loop has but 12 instead of 16 states.\ \>", "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[CellGroupData[{ Cell[BoxData[ \(NumericalResponse[closedlooph2hinfinity, "\", {t, 100, 1}, NumericalPlotSamplingPeriod -> 10, TimeDelay -> 5, InitialConditions -> {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}]\)], "Input", CellLabel->"In[28]:="], Cell[BoxData[ RowBox[{"{", RowBox[{"{", RowBox[{"5.`", ",", StyleBox["24.0063630645061069999`", StyleBoxAutoDelete->True, PrintPrecision->17], ",", StyleBox["33.8107420467143310023`", StyleBoxAutoDelete->True, PrintPrecision->17], ",", StyleBox["29.10546383105622`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["16.0616465567242450011`", StyleBoxAutoDelete->True, PrintPrecision->17], ",", StyleBox["6.20296408588600469997`", StyleBoxAutoDelete->True, PrintPrecision->17], ",", StyleBox["3.42239095477720050002`", StyleBoxAutoDelete->True, PrintPrecision->17], ",", StyleBox["3.36674359638247500006`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.97262445563580319993`", StyleBoxAutoDelete->True, PrintPrecision->17], ",", RowBox[{"-", StyleBox["0.136752498629304579998`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.666338311244895840045`", StyleBoxAutoDelete->True, PrintPrecision->17]}]}], "}"}], "}"}]], "Output", CellLabel->"Out[28]="] }, Open ]], Cell[BoxData[ \(\($Line = 28; \)\)], "Input", CellOpen->False] }, Open ]], Cell[CellGroupData[{ Cell["Appendix B", "Title", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextAlignment->Center, FontSize->12], Cell[TextData[StyleBox["DEMONSTRATION: DISCRETE MODEL REDUCTION PROBLEM", FontVariations->{"Underline"->True}]], "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1, FontVariations->{"Underline"->True}], Cell["\<\ The file myles110.m contains state space matrices for a 2-input, \ 2-output, wing and vortex example, of order 110. The user supplies matrices \ ed and ee, where the intensity of the disturbance is v=ed.Transpose[ed] and \ the model-reduction error-weighting matrix is r=Transpose[ee].ee.\ \>", "Text",\ CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell["\<\ Step-by-step instructions to construct a reduced-order model of \ order 6 for the above plant (follows as the previous set of instructions, \ except that the date file is myles110.m):\ \>", "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[BoxData[ \($ContextPath =. ; Remove["\"]; $Line = 0; \)], "Input", CellOpen->False], Cell[BoxData[ \(<< "\"; << "\"; \)], "Input", CellLabel->"In[1]:="], Cell[BoxData[ \(\($Line = 1; \)\)], "Input", CellOpen->False], Cell[BoxData[ \(<< "\"; system = StateSpace[a, b, c, d, Sampled -> True]; \)], "Input", CellLabel->"In[2]:="], Cell[BoxData[ \(\($Line = 2; \)\)], "Input", CellOpen->False], Cell[BoxData[ \(ed = {{1, 0}, {0, 1}}; ee = {{1, 0}, {0, 1}}; \)], "Input", CellLabel->"In[3]:="], Cell[BoxData[ \(\($Line = 3; \)\)], "Input", CellOpen->False], Cell[CellGroupData[{ Cell[BoxData[ \(reducedordermodel = H2HinfinityReducedOrderModel[system, ed, ee, ModelOrder -> 6, InputFileName -> "\"]\)], "Input", CellLabel->"In[4]:="], Cell[BoxData[ InterpretationBox[ \(" absolute rank = "\[InvisibleSpace]0.000116118091455337736227`\), SequenceForm[ " absolute rank = ", 0.0001161180914553377362], Editable->False]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" absolute tolerance = \"\>", "\[InvisibleSpace]", StyleBox["0.000999999999999999999913`", StyleBoxAutoDelete->True, PrintPrecision->1]}], SequenceForm[ " absolute tolerance = ", 0.001], Editable->False]], "Print"], Cell[BoxData[ \(" absolute rank reduction falls below tolerance"\)], "Print"], Cell[BoxData[ InterpretationBox[ \(" end; # Lyap eq. = "\[InvisibleSpace]20 \[InvisibleSpace]"; # Ric eq. = "\[InvisibleSpace]0\), SequenceForm[ " end; # Lyap eq. = ", 20, "; # Ric eq. = ", 0], Editable->False]], "Print"], Cell[BoxData[ RowBox[{"StateSpace", "[", RowBox[{ \({{\(-0.00731432962757898935072`\), 0.0224331003806573977296`, 0.0193865030275434490469`, 0.0124625338965005703765`, \(-0.0129748203783582759641`\), \(-0.000758434404557398601613`\)}, { \(-0.125302452262080369867`\), 0.855689224581479497468`, 0.40573490735332650354`, \(-0.26977797096262071618`\), 0.228232089204685747942`, \(-0.147664810347914500663`\)}, { \(-0.0464132647924806348823`\), 0.294029374876645041656`, 0.0626105965324164920196`, 0.936222951801280797029`, \(-1.19307773258644274892`\), 0.209864382148805944162`}, { \(-0.14473247897366853`\), \(-0.158118503052419352465`\), 0.329605776517034831625`, \(-0.0465337437746878482356`\), 0.301179832853239443308`, \(-0.000122407004742817252873`\)}, { 0.105758715904684735093`, 0.104721764583914785703`, \(-0.260679301977094917547`\), 0.0359226078044219698922`, \(-0.216833291466164865095`\), \(-0.0266231391979913556769`\)}, { \(-0.000122655195131004158149`\), 0.0204019757446217891018`, \(-0.0478137342128202968809`\), 0.0294606667970843659866`, \(-0.0362679873590720675685`\), 0.894241104218251012074`}}\), ",", \({{2.81464025427968313197`, 1.36601459367247075535`}, { 0.00470206291654469039388`, \(-0.137661919038217444297`\)}, { \(-0.0132235150925629655282`\), \(-0.0659605108807773785669`\)}, { 0.217947827115734115138`, \(-0.411995359520499400711`\)}, { 0.153914124489694774293`, \(-0.345316141792539161702`\)}, { 0.00113596089879221435049`, 0.00120271318517722814031`}}\), ",", \({{4.94465069390301140703`, 0.0378902069551991115946`, 0.040539486495666090509`, 0.188562425346021243707`, 0.191011678486830138246`, \(-0.00350063292312273793274`\)}, { 2.93372552389956869033`, \(-0.0411200806972929619334`\), \(-0.0494561489386033538949`\), \(-0.306787579968611583765`\), \(-0.333670530159384434373`\), \(-0.00288296141086047673449`\)}} \), ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{\(-17.2788370000000000002`\), ",", RowBox[{"-", StyleBox["9.07138930000000000015`", StyleBoxAutoDelete->True, PrintPrecision->8]}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", StyleBox["9.07138930000000000015`", StyleBoxAutoDelete->True, PrintPrecision->8]}], ",", RowBox[{"-", StyleBox["5.34563840000000000014`", StyleBoxAutoDelete->True, PrintPrecision->8]}]}], "}"}]}], "}"}], ",", \(Sampled \[Rule] True\)}], "]"}]], "Output", CellLabel->"Out[4]="] }, Open ]], Cell[BoxData[ \(\($Line = 4; \)\)], "Input", CellOpen->False, TextJustification->1], Cell[TextData[{ "One may compute the output responses to, say, a discrete impulse input \ for, say, ten samples beyond the initial condition. Note that Out[5] and \ Out[6], the output responses to the first input, are fairly close to each \ other, as are Out[7] and Out[8], the output responses to the second input, to \ each other. One may find the singular values of reducedordermodel and system \ each over a wide range of frequencies, say, a log scale from ", Cell[BoxData[ \(10\^\(-6\)\)]], " rad/sec to ", Cell[BoxData[ \(10\^6\)]], " rad/sec, are very close to each other. The time-domain responses and the \ singular values argue that reducedordermodel faithfully represents system." }], "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[CellGroupData[{ Cell[BoxData[ \(NumericalResponse[reducedordermodel, 1, "\", {t, 10}]\)], "Input", CellLabel->"In[5]:="], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", StyleBox["17.2788369999999990005`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", StyleBox["13.9875471635962130002`", StyleBoxAutoDelete->True, PrintPrecision->17], ",", RowBox[{"-", StyleBox["0.135973682632738759998`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.125032804020541259994`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.110138499710731129995`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.105864114315599059995`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0942682494289623220014`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0924924289168156389933`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0827407474925170859959`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0824187607946373360003`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0737505468826420290022`", StyleBoxAutoDelete->True, PrintPrecision->17]}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", StyleBox["9.0713892999999999004`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", StyleBox["8.13961902061163300025`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", RowBox[{"-", StyleBox["0.014463736891345001`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0172651326073209459999`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0231074129710374349998`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0161776998884483289996`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0218271596194691479991`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0147715901046799530003`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.020415696821635599999`", StyleBoxAutoDelete->True, PrintPrecision->15]}], ",", RowBox[{"-", StyleBox["0.0133165808027737859998`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0190117374085144700008`", StyleBoxAutoDelete->True, PrintPrecision->16]}]}], "}"}]}], "}"}]], "Output", CellLabel->"Out[5]="] }, Open ]], Cell[BoxData[ \(\($Line = 5; \)\)], "Input", CellOpen->False], Cell[CellGroupData[{ Cell[BoxData[ \(NumericalResponse[system, 1, "\", {t, 10}]\)], "Input", CellLabel->"In[6]:="], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", StyleBox["17.2788369999999990005`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", StyleBox["13.9876217359248560001`", StyleBoxAutoDelete->True, PrintPrecision->17], ",", RowBox[{"-", StyleBox["0.136283277335865509989`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.124861488898406630004`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.114953159323294109997`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.10627434824308771`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0986096945838173950023`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0917925151233808939935`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0856915225514645470007`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0802017318165845760017`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0752380737913332380082`", StyleBoxAutoDelete->True, PrintPrecision->17]}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", StyleBox["9.0713892999999999004`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", StyleBox["8.13937706705287129967`", StyleBoxAutoDelete->True, PrintPrecision->17], ",", RowBox[{"-", StyleBox["0.014525859620081282`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0186032175718322989989`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0194801337119432719999`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0193278982891514660002`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0187674497696471080003`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0180381682410928960002`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0172472693171066530004`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0164468171348815319992`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0156630083731929409997`", StyleBoxAutoDelete->True, PrintPrecision->17]}]}], "}"}]}], "}"}]], "Output", CellLabel->"Out[6]="] }, Open ]], Cell[BoxData[ \(\($Line = 6; \)\)], "Input", CellOpen->False], Cell[CellGroupData[{ Cell[BoxData[ \(NumericalResponse[reducedordermodel, 2, "\", {t, 10}]\)], "Input", CellLabel->"In[7]:="], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", StyleBox["9.0713892999999999004`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", StyleBox["6.60292449430966409996`", StyleBoxAutoDelete->True, PrintPrecision->17], ",", RowBox[{"-", StyleBox["0.101965743386888950004`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0937762182233293220025`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0825993808895962020044`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0794004287149090579988`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0706971778378886749972`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0693720464477375480015`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0620517957573408360022`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0618170050272483650012`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0553092661307578380017`", StyleBoxAutoDelete->True, PrintPrecision->17]}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", StyleBox["5.34563840000000029982`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", StyleBox["4.25804811358060760016`", StyleBoxAutoDelete->True, PrintPrecision->17], ",", RowBox[{"-", StyleBox["0.0108554077786895370003`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0129437255664727880006`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0173348672180490200002`", StyleBoxAutoDelete->True, PrintPrecision->16]}], ",", RowBox[{"-", StyleBox["0.0121281493553482140005`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.016374779009393148`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0110736126098833560001`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0153162766284164089994`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.00998239113396682050012`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0142633909244107640003`", StyleBoxAutoDelete->True, PrintPrecision->17]}]}], "}"}]}], "}"}]], "Output", CellLabel->"Out[7]="] }, Open ]], Cell[BoxData[ \(\($Line = 7; \)\)], "Input", CellOpen->False], Cell[CellGroupData[{ Cell[BoxData[ \(NumericalResponse[system, 2, "\", {t, 10}]\)], "Input", CellLabel->"In[8]:="], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", StyleBox["9.0713892999999999004`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", StyleBox["6.60297990917476959995`", StyleBoxAutoDelete->True, PrintPrecision->17], ",", RowBox[{"-", StyleBox["0.102212377370575719997`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0936460428001256309921`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0862148014810051739956`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0797056983056259599988`", StyleBoxAutoDelete->True, PrintPrecision->16]}], ",", RowBox[{"-", StyleBox["0.0739572125959274410001`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.068844332033950337`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0642685912146351290014`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0601512514114825180009`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0564285108292675380032`", StyleBoxAutoDelete->True, PrintPrecision->17]}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", StyleBox["5.34563840000000029982`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", StyleBox["4.25785688450392020001`", StyleBoxAutoDelete->True, PrintPrecision->17], ",", RowBox[{"-", StyleBox["0.0108943861209083569997`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0139524021723729759998`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0146100887586330850003`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0144959122816086509997`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0140755762235669849998`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.013528615508627084001`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0129354417835688489999`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.0123351031204835570012`", StyleBoxAutoDelete->True, PrintPrecision->17]}], ",", RowBox[{"-", StyleBox["0.011747247012953682`", StyleBoxAutoDelete->True, PrintPrecision->17]}]}], "}"}]}], "}"}]], "Output", CellLabel->"Out[8]="] }, Open ]], Cell[BoxData[ \(\($Line = 8; \)\)], "Input", CellOpen->False] }, Open ]], Cell[CellGroupData[{ Cell["References", "Title", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextAlignment->Center, FontFamily->"Times", FontSize->12], Cell[TextData[{ "D.S. Bernstein and W.M. Haddad, LQG Control with an ", Cell[BoxData[ StyleBox[\(H\^\[Infinity]\), FontFamily->"Times"]]], " Bound: A Riccati Equation Approach, ", StyleBox["IEEE Transactions on Automatic Control", FontSlant->"Italic"], " ", StyleBox["34", FontWeight->"Bold"], " (1989) 293-305." }], "Text", CellDingbat->"[1] \[NegativeThinSpace]", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[TextData[{ "W.M. Haddad and D.S. Bernstein, Generalized Riccati Equations for the \ Full- and Reduced-Order Mixed-Norm ", Cell[BoxData[ StyleBox[\(H\^2/H\^\[Infinity]\), FontFamily->"Times"]]], " Standard Problem, ", StyleBox["Systems and Control Letters", FontSlant->"Italic"], " ", StyleBox["14", FontWeight->"Bold"], " (1990) 185-197." }], "Text", CellDingbat->"[2] \[NegativeThinSpace]", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[TextData[{ "W.M. Haddad and D.S. Bernstein, Combined ", Cell[BoxData[ StyleBox[\(H\^2/H\^\[Infinity]\), FontFamily->"Times"]]], " Model Reduction, ", StyleBox["Proc. 1989 American Control Conference ", FontSlant->"Italic"], "2660-2665", StyleBox[".", FontSlant->"Italic"] }], "Text", CellDingbat->"[3] \[NegativeThinSpace]", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[TextData[{ "D.S. Bernstein, L.D. Davis, and D.C. Hyland, The Optimal Projection \ Equations for Reduced-Order, Discrete-Time Modeling, Estimation, and Control, \ ", StyleBox["J. Guidance", FontSlant->"Italic"], " ", StyleBox["9", FontWeight->"Bold"], " (1986) 288-293." }], "Text", CellDingbat->"[4] \[NegativeThinSpace]", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1], Cell[TextData[{ "D.J. Dana-Bashian, On Pure ", Cell[BoxData[ \(H\^\[Infinity]\)], CellMargins->{{18, Inherited}, {Inherited, Inherited}}, FontFamily->"Times"], " Reduced-Order Dynamic Controllers, ", StyleBox["Systems and Control Letters ", FontSlant->"Italic"], StyleBox["37", FontWeight->"Bold"], " (3) (05 July 1999) 177-179." }], "Text", CellDingbat->"[5] \[NegativeThinSpace]", CellMargins->{{17, Inherited}, {Inherited, Inherited}}, TextJustification->1] }, Open ]], Cell[CellGroupData[{ Cell["Vita", "Title", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextAlignment->Center, FontFamily->"Times", FontSize->12], Cell["\<\ David Dana-Bashian, senior engineer scientist at The Boeing Company \ (before 04 August 1997, McDonnell Douglas Corporation), has researched \ nonclassical controller design approaches for over 10 years. He specializes \ in transforming equations in the corresponding literature into powerful \ numerical software tools. He holds a B.S., M.S., and B.S. in Chemistry, all \ from Purdue University, and is a member of the honorary chemical society Phi \ Lambda Upsilon. He co-organized (and in the second case also co-chaired) the \ two invited sessions \"Case Studies in Robust Control Design: General \ Applications and Flight Control Applications\" at the IEEE Conference on \ Decision and Control, December 1990. He also authored the paper \"Generic \ Controller Design for Autonomous Vehicles\" at the Annual National Symposium \ of the Association for Unmanned Vehicle Systems in May 1994.\ \>", "Text", CellMargins->{{18, Inherited}, {Inherited, Inherited}}, TextJustification->1] }, Open ]] }, FrontEndVersion->"Microsoft Windows 3.0", ScreenRectangle->{{0, 1152}, {0, 808}}, ScreenStyleEnvironment->"Printout", WindowToolbars->"RulerBar", WindowSize->{489, 413}, WindowMargins->{{185, Automatic}, {Automatic, 5}}, PrintingCopies->1, PrintingPageRange->{1, Automatic}, CellLabelAutoDelete->False ] (*********************************************************************** Cached data follows. If you edit this Notebook file directly, not using Mathematica, you must remove the line containing CacheID at the top of the file. The cache data will then be recreated when you save this file from within Mathematica. ***********************************************************************) (*CellTagsOutline CellTagsIndex->{} *) (*CellTagsIndex CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ Cell[CellGroupData[{ Cell[1731, 51, 234, 5, 74, "Title"], Cell[1968, 58, 257, 9, 102, "Text"], Cell[2228, 69, 149, 2, 27, "Text"], Cell[2380, 73, 165, 3, 27, "Text"], Cell[2548, 78, 1298, 31, 117, "Text"], Cell[3849, 111, 446, 8, 57, "Text"], Cell[4298, 121, 1438, 41, 117, "Text"], Cell[5739, 164, 845, 13, 117, "Text"], Cell[6587, 179, 191, 4, 27, "Text"], Cell[6781, 185, 438, 8, 57, "Text"], Cell[7222, 195, 1914, 52, 147, "Text"], Cell[9139, 249, 910, 13, 117, "Text"], Cell[10052, 264, 1083, 16, 132, "Text"], Cell[11138, 282, 319, 10, 27, "Text"], Cell[11460, 294, 1525, 50, 87, "Text"], Cell[12988, 346, 134, 2, 27, "Text"], Cell[13125, 350, 262, 8, 27, "Text"], Cell[13390, 360, 158, 2, 27, "Text"], Cell[13551, 364, 272, 8, 27, "Text"], Cell[13826, 374, 130, 2, 27, "Text"], Cell[13959, 378, 192, 4, 27, "Text"], Cell[14154, 384, 186, 4, 27, "Text"], Cell[14343, 390, 189, 4, 27, "Text"], Cell[14535, 396, 173, 5, 27, "Text"], Cell[14711, 403, 368, 12, 27, "Text"], Cell[15082, 417, 150, 2, 27, "Text"], Cell[15235, 421, 121, 2, 27, "Text"], Cell[15359, 425, 136, 2, 27, "Text"], Cell[15498, 429, 128, 2, 27, "Text"], Cell[15629, 433, 186, 4, 27, "Text"], Cell[15818, 439, 170, 5, 27, "Text"], Cell[15991, 446, 207, 5, 27, "Text"], Cell[16201, 453, 186, 5, 27, "Text"], Cell[16390, 460, 143, 2, 27, "Text"], Cell[16536, 464, 267, 8, 27, "Text"], Cell[16806, 474, 148, 2, 27, "Text"], Cell[16957, 478, 129, 2, 27, "Text"], Cell[17089, 482, 127, 2, 27, "Text"], Cell[17219, 486, 142, 2, 27, "Text"], Cell[17364, 490, 372, 12, 27, "Text"], Cell[17739, 504, 188, 7, 27, "Text"], Cell[17930, 513, 85, 1, 27, "Text"], Cell[18018, 516, 69, 1, 27, "Text"], Cell[18090, 519, 131, 4, 27, "Text"], Cell[18224, 525, 127, 4, 27, "Text"], Cell[18354, 531, 75, 1, 27, "Text"], Cell[18432, 534, 154, 2, 27, "Text"], Cell[18589, 538, 146, 2, 27, "Text"], Cell[18738, 542, 208, 5, 27, "Text"], Cell[18949, 549, 130, 2, 27, "Text"], Cell[19082, 553, 172, 5, 27, "Text"], Cell[19257, 560, 154, 2, 27, "Text"], Cell[19414, 564, 215, 5, 27, "Text"], Cell[19632, 571, 203, 5, 27, "Text"], Cell[19838, 578, 138, 2, 27, "Text"], Cell[19979, 582, 210, 5, 27, "Text"], Cell[20192, 589, 210, 5, 27, "Text"], Cell[20405, 596, 154, 2, 27, "Text"], Cell[20562, 600, 128, 2, 27, "Text"], Cell[20693, 604, 126, 2, 27, "Text"], Cell[20822, 608, 152, 2, 27, "Text"], Cell[20977, 612, 115, 2, 27, "Text"], Cell[21095, 616, 118, 2, 27, "Text"], Cell[21216, 620, 107, 2, 27, "Text"], Cell[21326, 624, 118, 2, 27, "Text"], Cell[21447, 628, 175, 5, 27, "Text"], Cell[21625, 635, 132, 2, 27, "Text"], Cell[21760, 639, 180, 5, 27, "Text"], Cell[21943, 646, 174, 5, 27, "Text"], Cell[22120, 653, 140, 2, 27, "Text"], Cell[22263, 657, 214, 5, 27, "Text"], Cell[22480, 664, 109, 2, 27, "Text"], Cell[22592, 668, 186, 5, 27, "Text"], Cell[22781, 675, 420, 8, 72, "Text"], Cell[23204, 685, 122, 2, 27, "Text"], Cell[23329, 689, 153, 2, 27, "Text"], Cell[23485, 693, 140, 2, 27, "Text"], Cell[23628, 697, 156, 2, 27, "Text"], Cell[23787, 701, 149, 2, 27, "Text"], Cell[23939, 705, 171, 5, 27, "Text"], Cell[24113, 712, 121, 2, 27, "Text"], Cell[24237, 716, 186, 5, 27, "Text"], Cell[24426, 723, 129, 2, 27, "Text"], Cell[24558, 727, 155, 2, 27, "Text"], Cell[24716, 731, 116, 2, 27, "Text"], Cell[24835, 735, 117, 4, 27, "Text"], Cell[24955, 741, 134, 4, 27, "Text"], Cell[25092, 747, 129, 2, 27, "Text"], Cell[25224, 751, 387, 8, 57, "Text"], Cell[25614, 761, 127, 2, 27, "Text"], Cell[25744, 765, 219, 6, 27, "Text"], Cell[25966, 773, 190, 5, 27, "Text"], Cell[26159, 780, 134, 2, 27, "Text"], Cell[26296, 784, 314, 7, 42, "Text"], Cell[26613, 793, 190, 5, 27, "Text"], Cell[26806, 800, 163, 4, 27, "Text"] }, Open ]], Cell[CellGroupData[{ Cell[27006, 809, 169, 4, 58, "Title"], Cell[27178, 815, 196, 3, 27, "Text"], Cell[27377, 820, 634, 11, 87, "Text"], Cell[28014, 833, 486, 16, 42, "Text"], Cell[28503, 851, 337, 7, 42, "Text"], Cell[28843, 860, 226, 8, 27, "Text"], Cell[29072, 870, 164, 3, 27, "Text"], Cell[29239, 875, 67, 2, 19, "Input", CellOpen->False], Cell[29309, 879, 123, 3, 24, "Input"], Cell[29435, 884, 67, 2, 19, "Input", CellOpen->False], Cell[CellGroupData[{ Cell[29527, 890, 105, 2, 24, "Input"], Cell[29635, 894, 3336, 76, 99, "Output"] }, Open ]], Cell[32986, 973, 67, 2, 19, "Input", CellOpen->False], Cell[33056, 977, 312, 6, 42, "Text"], Cell[CellGroupData[{ Cell[33393, 987, 230, 5, 39, "Input"], Cell[33626, 994, 76, 2, 24, "Output"] }, Open ]], Cell[33717, 999, 73, 2, 19, "Input", CellOpen->False], Cell[CellGroupData[{ Cell[33815, 1005, 98, 2, 24, "Input"], Cell[33916, 1009, 474, 8, 39, "Output"] }, Open ]], Cell[34405, 1020, 67, 2, 19, "Input", CellOpen->False], Cell[CellGroupData[{ Cell[34497, 1026, 96, 2, 24, "Input"], Cell[34596, 1030, 474, 8, 39, "Output"] }, Open ]], Cell[35085, 1041, 67, 2, 19, "Input", CellOpen->False], Cell[35155, 1045, 256, 7, 27, "Text"], Cell[CellGroupData[{ Cell[35436, 1056, 140, 3, 24, "Input"], Cell[35579, 1061, 3054, 71, 84, "Output"] }, Open ]], Cell[38648, 1135, 67, 2, 19, "Input", CellOpen->False], Cell[38718, 1139, 1560, 33, 147, "Text"], Cell[CellGroupData[{ Cell[40303, 1176, 173, 4, 39, "Input"], Cell[40479, 1182, 35, 1, 20, "Print"], Cell[40517, 1185, 207, 4, 20, "Print"], Cell[40727, 1191, 83, 1, 20, "Print"], Cell[40813, 1194, 36, 1, 20, "Print"], Cell[40852, 1197, 783, 16, 20, "Print"], Cell[41638, 1215, 513, 10, 20, "Print"], Cell[42154, 1227, 513, 10, 20, "Print"], Cell[42670, 1239, 513, 10, 20, "Print"], Cell[43186, 1251, 513, 10, 20, "Print"], Cell[43702, 1263, 513, 10, 20, "Print"], Cell[44218, 1275, 513, 10, 20, "Print"], Cell[44734, 1287, 513, 10, 20, "Print"] }, Open ]], Cell[45262, 1300, 73, 2, 19, "Input", CellOpen->False], Cell[45338, 1304, 104, 2, 24, "Input"], Cell[45445, 1308, 67, 2, 19, "Input", CellOpen->False], Cell[45515, 1312, 178, 5, 27, "Text"], Cell[45696, 1319, 119, 3, 24, "Input"], Cell[45818, 1324, 67, 2, 19, "Input", CellOpen->False], Cell[45888, 1328, 104, 2, 24, "Input"], Cell[45995, 1332, 68, 2, 19, "Input", CellOpen->False], Cell[46066, 1336, 181, 5, 27, "Text"], Cell[CellGroupData[{ Cell[46272, 1345, 99, 2, 24, "Input"], Cell[46374, 1349, 1004, 16, 84, "Output"] }, Open ]], Cell[47393, 1368, 68, 2, 19, "Input", CellOpen->False], Cell[CellGroupData[{ Cell[47486, 1374, 92, 2, 24, "Input"], Cell[47581, 1378, 1143, 18, 99, "Output"] }, Open ]], Cell[48739, 1399, 68, 2, 19, "Input", CellOpen->False], Cell[48810, 1403, 202, 4, 27, "Text"], Cell[CellGroupData[{ Cell[49037, 1411, 92, 2, 24, "Input"], Cell[49132, 1415, 81, 2, 24, "Output"] }, Open ]], Cell[49228, 1420, 68, 2, 19, "Input", CellOpen->False], Cell[CellGroupData[{ Cell[49321, 1426, 99, 2, 24, "Input"], Cell[49423, 1430, 82, 2, 24, "Output"] }, Open ]], Cell[49520, 1435, 68, 2, 19, "Input", CellOpen->False], Cell[CellGroupData[{ Cell[49613, 1441, 85, 2, 24, "Input"], Cell[49701, 1445, 83, 2, 24, "Output"] }, Open ]], Cell[49799, 1450, 68, 2, 19, "Input", CellOpen->False], Cell[CellGroupData[{ Cell[49892, 1456, 92, 2, 24, "Input"], Cell[49987, 1460, 82, 2, 24, "Output"] }, Open ]], Cell[50084, 1465, 68, 2, 19, "Input", CellOpen->False], Cell[50155, 1469, 221, 5, 27, "Text"], Cell[CellGroupData[{ Cell[50401, 1478, 70, 2, 24, "Input"], Cell[50474, 1482, 451, 8, 39, "Output"] }, Open ]], Cell[50940, 1493, 68, 2, 19, "Input", CellOpen->False], Cell[CellGroupData[{ Cell[51033, 1499, 83, 2, 24, "Input"], Cell[51119, 1503, 921, 15, 69, "Output"] }, Open ]], Cell[52055, 1521, 68, 2, 19, "Input", CellOpen->False], Cell[CellGroupData[{ Cell[52148, 1527, 76, 2, 24, "Input"], Cell[52227, 1531, 1028, 17, 69, "Output"] }, Open ]], Cell[53270, 1551, 68, 2, 19, "Input", CellOpen->False], Cell[53341, 1555, 516, 10, 57, "Text"], Cell[53860, 1567, 166, 4, 27, "Text"], Cell[54029, 1573, 163, 4, 27, "Text"], Cell[54195, 1579, 130, 4, 27, "Text"], Cell[54328, 1585, 204, 6, 27, "Text"], Cell[54535, 1593, 73, 1, 27, "Text"], Cell[54611, 1596, 163, 4, 27, "Text"], Cell[54777, 1602, 127, 4, 27, "Text"], Cell[54907, 1608, 382, 7, 57, "Text"], Cell[CellGroupData[{ Cell[55314, 1619, 298, 6, 54, "Input"], Cell[55615, 1627, 1546, 40, 54, "Output"] }, Open ]], Cell[57176, 1670, 68, 2, 19, "Input", CellOpen->False], Cell[CellGroupData[{ Cell[57269, 1676, 291, 6, 54, "Input"], Cell[57563, 1684, 1416, 36, 54, "Output"] }, Open ]], Cell[58994, 1723, 68, 2, 19, "Input", CellOpen->False], Cell[59065, 1727, 1326, 36, 102, "Text"], Cell[CellGroupData[{ Cell[60416, 1767, 229, 5, 39, "Input"], Cell[60648, 1774, 217, 5, 20, "Print"], Cell[60868, 1781, 225, 5, 20, "Print"], Cell[61096, 1788, 224, 5, 20, "Print"], Cell[61323, 1795, 79, 1, 20, "Print"], Cell[61405, 1798, 669, 14, 20, "Print"], Cell[62077, 1814, 171, 3, 20, "Print"], Cell[62251, 1819, 159, 3, 20, "Print"], Cell[62413, 1824, 153, 3, 20, "Print"], Cell[62569, 1829, 62, 1, 20, "Print"], Cell[62634, 1832, 207, 4, 20, "Print"], Cell[62844, 1838, 83, 1, 20, "Print"], Cell[62930, 1841, 642, 14, 20, "Print"], Cell[63575, 1857, 642, 14, 20, "Print"], Cell[64220, 1873, 644, 14, 20, "Print"], Cell[64867, 1889, 643, 14, 20, "Print"], Cell[65513, 1905, 644, 14, 20, "Print"], Cell[66160, 1921, 642, 14, 20, "Print"], Cell[66805, 1937, 644, 14, 20, "Print"], Cell[67452, 1953, 644, 14, 20, "Print"], Cell[68099, 1969, 248, 6, 20, "Print"], Cell[68350, 1977, 254, 6, 20, "Print"], Cell[68607, 1985, 254, 6, 20, "Print"], Cell[68864, 1993, 86, 1, 20, "Print"], Cell[68953, 1996, 183, 4, 20, "Print"], Cell[69139, 2002, 395, 8, 20, "Print"], Cell[69537, 2012, 394, 8, 20, "Print"], Cell[69934, 2022, 395, 8, 20, "Print"], Cell[70332, 2032, 395, 8, 20, "Print"], Cell[70730, 2042, 395, 8, 20, "Print"], Cell[71128, 2052, 397, 8, 20, "Print"], Cell[71528, 2062, 397, 8, 20, "Print"], Cell[71928, 2072, 397, 8, 20, "Print"], Cell[72328, 2082, 397, 8, 20, "Print"], Cell[72728, 2092, 397, 8, 20, "Print"], Cell[73128, 2102, 397, 8, 20, "Print"], Cell[73528, 2112, 397, 8, 20, "Print"], Cell[73928, 2122, 397, 8, 20, "Print"], Cell[74328, 2132, 397, 8, 20, "Print"], Cell[74728, 2142, 399, 8, 20, "Print"], Cell[75130, 2152, 399, 8, 20, "Print"], Cell[75532, 2162, 399, 8, 20, "Print"], Cell[75934, 2172, 399, 8, 20, "Print"], Cell[76336, 2182, 399, 8, 20, "Print"], Cell[76738, 2192, 399, 8, 20, "Print"], Cell[77140, 2202, 399, 8, 20, "Print"], Cell[77542, 2212, 399, 8, 20, "Print"], Cell[77944, 2222, 399, 8, 20, "Print"], Cell[78346, 2232, 399, 8, 20, "Print"], Cell[78748, 2242, 539, 13, 20, "Print"], Cell[79290, 2257, 401, 8, 20, "Print"], Cell[79694, 2267, 409, 9, 20, "Print"], Cell[80106, 2278, 399, 8, 20, "Print"], Cell[80508, 2288, 545, 13, 20, "Print"], Cell[81056, 2303, 401, 8, 20, "Print"], Cell[81460, 2313, 410, 9, 20, "Print"], Cell[81873, 2324, 399, 8, 20, "Print"], Cell[82275, 2334, 545, 13, 20, "Print"], Cell[82823, 2349, 401, 8, 20, "Print"], Cell[83227, 2359, 410, 9, 20, "Print"], Cell[83640, 2370, 399, 8, 20, "Print"], Cell[84042, 2380, 547, 13, 20, "Print"], Cell[84592, 2395, 401, 8, 20, "Print"], Cell[84996, 2405, 410, 9, 20, "Print"], Cell[85409, 2416, 399, 8, 20, "Print"], Cell[85811, 2426, 547, 13, 20, "Print"], Cell[86361, 2441, 401, 8, 20, "Print"], Cell[86765, 2451, 410, 9, 20, "Print"], Cell[87178, 2462, 400, 8, 20, "Print"], Cell[87581, 2472, 546, 13, 20, "Print"], Cell[88130, 2487, 401, 8, 20, "Print"], Cell[88534, 2497, 410, 9, 20, "Print"], Cell[88947, 2508, 400, 8, 20, "Print"], Cell[89350, 2518, 545, 13, 20, "Print"], Cell[89898, 2533, 400, 8, 20, "Print"], Cell[90301, 2543, 410, 9, 20, "Print"], Cell[90714, 2554, 399, 8, 20, "Print"], Cell[91116, 2564, 545, 13, 20, "Print"], Cell[91664, 2579, 401, 8, 20, "Print"], Cell[92068, 2589, 410, 9, 20, "Print"], Cell[92481, 2600, 399, 8, 20, "Print"], Cell[92883, 2610, 545, 13, 20, "Print"], Cell[93431, 2625, 410, 9, 20, "Print"], Cell[93844, 2636, 402, 8, 20, "Print"], Cell[94249, 2646, 398, 8, 20, "Print"], Cell[94650, 2656, 545, 13, 20, "Print"], Cell[95198, 2671, 410, 9, 20, "Print"], Cell[95611, 2682, 410, 9, 20, "Print"], Cell[96024, 2693, 399, 8, 20, "Print"], Cell[96426, 2703, 545, 13, 20, "Print"], Cell[96974, 2718, 410, 9, 20, "Print"], Cell[97387, 2729, 399, 8, 20, "Print"], Cell[97789, 2739, 545, 13, 20, "Print"], Cell[98337, 2754, 410, 9, 20, "Print"], Cell[98750, 2765, 399, 8, 20, "Print"], Cell[99152, 2775, 545, 13, 20, "Print"], Cell[99700, 2790, 253, 6, 20, "Print"], Cell[99956, 2798, 758, 17, 20, "Print"], Cell[100717, 2817, 327, 7, 20, "Print"], Cell[101047, 2826, 181, 3, 20, "Print"], Cell[101231, 2831, 253, 5, 20, "Print"] }, Open ]], Cell[101499, 2839, 68, 2, 19, "Input", CellOpen->False], Cell[101570, 2843, 177, 5, 27, "Text"], Cell[101750, 2850, 126, 3, 24, "Input"], Cell[101879, 2855, 68, 2, 19, "Input", CellOpen->False], Cell[101950, 2859, 157, 2, 27, "Text"], Cell[CellGroupData[{ Cell[102132, 2865, 101, 2, 24, "Input"], Cell[102236, 2869, 873, 14, 69, "Output"] }, Open ]], Cell[103124, 2886, 68, 2, 19, "Input", CellOpen->False], Cell[103195, 2890, 484, 7, 57, "Text"], Cell[CellGroupData[{ Cell[103704, 2901, 94, 2, 24, "Input"], Cell[103801, 2905, 83, 2, 24, "Output"] }, Open ]], Cell[103899, 2910, 68, 2, 19, "Input", CellOpen->False], Cell[CellGroupData[{ Cell[103992, 2916, 101, 2, 24, "Input"], Cell[104096, 2920, 82, 2, 24, "Output"] }, Open ]], Cell[104193, 2925, 68, 2, 19, "Input", CellOpen->False], Cell[104264, 2929, 210, 5, 27, "Text"], Cell[CellGroupData[{ Cell[104499, 2938, 85, 2, 24, "Input"], Cell[104587, 2942, 788, 13, 54, "Output"] }, Open ]], Cell[105390, 2958, 68, 2, 19, "Input", CellOpen->False], Cell[105461, 2962, 372, 7, 57, "Text"], Cell[CellGroupData[{ Cell[105858, 2973, 276, 6, 54, "Input"], Cell[106137, 2981, 1417, 36, 54, "Output"] }, Open ]], Cell[107569, 3020, 68, 2, 19, "Input", CellOpen->False] }, Open ]], Cell[CellGroupData[{ Cell[107674, 3027, 126, 3, 58, "Title"], Cell[107803, 3032, 244, 4, 27, "Text"], Cell[108050, 3038, 397, 8, 57, "Text"], Cell[108450, 3048, 289, 6, 42, "Text"], Cell[108742, 3056, 105, 2, 19, "Input", CellOpen->False], Cell[108850, 3060, 123, 3, 24, "Input"], Cell[108976, 3065, 67, 2, 19, "Input", CellOpen->False], Cell[109046, 3069, 132, 3, 24, "Input"], Cell[109181, 3074, 67, 2, 19, "Input", CellOpen->False], Cell[109251, 3078, 103, 2, 24, "Input"], Cell[109357, 3082, 67, 2, 19, "Input", CellOpen->False], Cell[CellGroupData[{ Cell[109449, 3088, 187, 4, 39, "Input"], Cell[109639, 3094, 213, 4, 20, "Print"], Cell[109855, 3100, 310, 7, 20, "Print"], Cell[110168, 3109, 81, 1, 20, "Print"], Cell[110252, 3112, 251, 5, 20, "Print"], Cell[110506, 3119, 3067, 54, 174, "Output"] }, Open ]], Cell[113588, 3176, 91, 3, 19, "Input", CellOpen->False], Cell[113682, 3181, 810, 16, 87, "Text"], Cell[CellGroupData[{ Cell[114517, 3201, 141, 3, 24, "Input"], Cell[114661, 3206, 3728, 93, 129, "Output"] }, Open ]], Cell[118404, 3302, 67, 2, 19, "Input", CellOpen->False], Cell[CellGroupData[{ Cell[118496, 3308, 126, 3, 24, "Input"], Cell[118625, 3313, 3725, 93, 129, "Output"] }, Open ]], Cell[122365, 3409, 67, 2, 19, "Input", CellOpen->False], Cell[CellGroupData[{ Cell[122457, 3415, 141, 3, 24, "Input"], Cell[122601, 3420, 3733, 93, 129, "Output"] }, Open ]], Cell[126349, 3516, 67, 2, 19, "Input", CellOpen->False], Cell[CellGroupData[{ Cell[126441, 3522, 126, 3, 24, "Input"], Cell[126570, 3527, 3727, 93, 129, "Output"] }, Open ]], Cell[130312, 3623, 67, 2, 19, "Input", CellOpen->False] }, Open ]], Cell[CellGroupData[{ Cell[130416, 3630, 149, 4, 58, "Title"], Cell[130568, 3636, 490, 15, 42, "Text"], Cell[131061, 3653, 520, 16, 42, "Text"], Cell[131584, 3671, 451, 14, 42, "Text"], Cell[132038, 3687, 433, 13, 42, "Text"], Cell[132474, 3702, 504, 15, 42, "Text"] }, Open ]], Cell[CellGroupData[{ Cell[133015, 3722, 143, 4, 58, "Title"], Cell[133161, 3728, 1004, 15, 132, "Text"] }, Open ]] } ] *) (*********************************************************************** End of Mathematica Notebook file. ***********************************************************************)