fix complex -> real error messages by murrayrm · Pull Request #1086 · python-control/python-control

This is a small PR that fixes some errors I found when updating the documentation. In two cases, there was a complex-valued array getting used as a real-valued array (and generating an error message):

  • In TransferFunction._common_den, the numerator and denominator polynomial's are computing by extracting poles and zeros and then regenerating polynomials. Because the poles and zeros can be complex, the operations generate a complex-valued array of coefficients. These should be cast back to real coefficients before assigning them back to the real-valued numerator and denominator coefficient arrays. This error showed up in examples/cruise.ipynb, which was also updated to remove the error message in the Output cells.

  • In examples/describing-function.ipynb there was a plot of the describing function for a static nonlinearity. Because describing functions can be complex valued in general (eg, if there is hysteresis), before plotting the value of the real-valued describing function, the results needs to be explicitly cast to real (otherwise you get an error message). This was a small change in the Jupyter notebook.

For the two Jupyter notebooks, all of the plots were also updated, even though they basically look the same => the changes look bigger than they are (and rendering the difference is very slow...).