32
32
33
33
__all__ = ['NonlinearIOSystem' , 'InterconnectedSystem' , 'nlsys' ,
34
34
'input_output_response' , 'find_eqpt' , 'linearize' ,
35
- 'interconnect' , 'connection_table' , 'find_operating_point' ]
35
+ 'interconnect' , 'connection_table' , 'OperatingPoint' ,
36
+ 'find_operating_point' ]
36
37
37
38
38
39
class NonlinearIOSystem (InputOutputSystem ):
@@ -92,7 +93,7 @@ class NonlinearIOSystem(InputOutputSystem):
92
93
generic name <sys[id]> is generated with a unique integer id.
93
94
94
95
params : dict, optional
95
- Parameter values for the system. Passed to the evaluation functions
96
+ Parameter values for the system. Passed to the evaluation functions
96
97
for the system as default values, overriding internal defaults.
97
98
98
99
See Also
@@ -1685,6 +1686,8 @@ class OperatingPoint(object):
1685
1686
State vector at the operating point.
1686
1687
inputs : array
1687
1688
Input vector at the operating point.
1689
+ outputs : array, optional
1690
+ Output vector at the operating point.
1688
1691
result : :class:`scipy.optimize.OptimizeResult`, optional
1689
1692
Result from the :func:`scipy.optimize.root` function, if available.
1690
1693
@@ -1740,7 +1743,7 @@ def find_operating_point(
1740
1743
for the desired inputs, outputs, states, or state updates of the system.
1741
1744
1742
1745
In its simplest form, `find_operating_point` finds an equilibrium point
1743
- given either the desired input or desired output:
1746
+ given either the desired input or desired output::
1744
1747
1745
1748
xeq, ueq = find_operating_point(sys, x0, u0)
1746
1749
xeq, ueq = find_operating_point(sys, x0, u0, y0)
@@ -1810,19 +1813,15 @@ def find_operating_point(
1810
1813
1811
1814
Returns
1812
1815
-------
1813
- states : array of states
1814
- Value of the states at the equilibrium point, or `None` if no
1815
- equilibrium point was found and `return_result` was False.
1816
- inputs : array of input values
1817
- Value of the inputs at the equilibrium point, or `None` if no
1818
- equilibrium point was found and `return_result` was False.
1819
- outputs : array of output values, optional
1820
- If `return_y` is True, returns the value of the outputs at the
1821
- equilibrium point, or `None` if no equilibrium point was found and
1822
- `return_result` was False.
1823
- result : :class:`scipy.optimize.OptimizeResult`, optional
1824
- If `return_result` is True, returns the `result` from the
1825
- :func:`scipy.optimize.root` function.
1816
+ op_point : OperatingPoint
1817
+ The solution represented as an `OperatingPoint` object. The main
1818
+ attributes are `states` and `inputs`, which represent the state
1819
+ and input arrays at the operating point. See
1820
+ :class:`OperatingPoint` for a description of other attributes.
1821
+
1822
+ If accessed as a tuple, returns `states`, `inputs`, and optionally
1823
+ `outputs` and `result` based on the `return_y` and `return_result`
1824
+ parameters.
1826
1825
1827
1826
Notes
1828
1827
-----
@@ -1839,7 +1838,7 @@ def find_operating_point(
1839
1838
`False`, the returned state and input for the operating point will be
1840
1839
`None`. If `return_result` is `True`, then the return values from
1841
1840
:func:`scipy.optimize.root` will be returned (but may not be valid).
1842
- If `root_method` is set to `lm` , then the least squares solution (in
1841
+ If `root_method` is set to 'lm' , then the least squares solution (in
1843
1842
the free variables) will be returned.
1844
1843
1845
1844
"""
@@ -1956,8 +1955,8 @@ def rootfun(z):
1956
1955
# * output_vars: indices of outputs that must be constrained
1957
1956
#
1958
1957
# This index lists can all be precomputed based on the `iu`, `iy`,
1959
- # `ix`, and `idx` lists that were passed as arguments to `find_eqpt`
1960
- # and were processed above.
1958
+ # `ix`, and `idx` lists that were passed as arguments to
1959
+ # `find_operating_point` and were processed above.
1961
1960
1962
1961
# Get the states and inputs that were not listed as fixed
1963
1962
state_vars = (range (nstates ) if not len (ix )
0 commit comments