0.1 Introduction to COMA
COMA (COntrol engineering with MAxima) is a package for systems science and control engineering. It covers • Inverse Laplace-transform of transfer functions of arbitrary order • Unit step responses • Nyquist diagrams and Bode plots • Poles and Zeros, root locus plots • Stability investigations: stability limit,Hurwitz criterion, stable regions in the parameter plane, phase margin, gain margin • Optimization and controller design: ISE-criterion (integral of squared error), gain optimum • State space methods: Conversion into a transfer function, canonical forms, controllability, observability The package is loaded with the following command: (%i1) load(coma); coma v.1.39, (Wilhelm Haager, 14.12.2009)(%o1) d:/w/maxima/coma.mac For all following examples, it is assumed that the package COMA is loaded automatically on startup of Maxima (as can be stipulated in the initialisation ﬁle maxima-init.mac). All examples of one section are created in one single Maxiam-session. Thus calculations sometimes depend on previously obtained results.
0.1.1 Basic Concepts
• The Laplace variable is consideredto be always s, the time variable always t; in functions concerning the frequency response, the angular frequency is omega. In frequency responses s is automatically replaced by omega. Transfer functions are rational functions in the variable s, time delays are not supported, they can be approximated by Pade approximations. • All functions, which take a transfer function as a parameter, can alsotake (without explicit notice) a list of transfer functions as a parameter; in that case the result will also be a list, of which the elements correspond to the particular transfer functions. That is particularly important in graphics, where a couple of curves shall be drawn into a single diagram.
0.2 Plot Routines
The plot routines of COMA don’t use the standard functions of Maxima (plot2d,plot3d, wxplot2d, wxplot3d), but the functions of the additional package Draw (draw2d, draw3d, wxdraw2d und wxdraw3d). All plot routines of the Package can also take (without explicit notice) a list of (transfer) functions as a parameter; in that case a series of graphics is drawn into a single diagram. The list to be plotted need not have only functions (transfer functions), but can also containgraphic objects of the Gnuplot interface Draw (explicit, parametric, implicit,
polar, points, polygon, rectangle, ellipse, label). Thus diagrams can be provided with labels, legends and other graphical elements like asymptotoc characteristics or marking of special points.
Additional to the plotted items (functions, transfer functions and graphic objects), all plotroutines can have optional parameters in the form option=value, which allow adapting the graphic with respect to colors, line widths, scale, graphic type, output, etc. All graphic options of the package Draw can be also applied, they are directly passed to the plot routines of Draw.
Default value: true
[Option] If wx is true, the wx-routines of the package Draw are invoced, thus drawing thegraphic directly onto the wxMaxima working sheet. If wx is false, the standard routines of the package Draw are invoced, the graphic is drawn into a separate Gnuplotwindow.
[Option] Default value: [’red, ’blue, ’green, ’goldenrod, ’violet, ’gray50, ’dark-cyan, ’dark-orange, ’sea-green, ’dark-pink] A list of colors, which are applied for the particular functions or graphic objectsrespectively. The default values are stored in the global variable plot_colors.
Default value: 
A list of linewidths, which are applied for the particular functions or graphic objects respectively. The default values are stored in the global variable plot_linewidths.
Default value: aspect_ratio=0.6]
[Global variable] [grid=true, pic_width=440,...