Computing transfer functions¶
We saw in the last section how a DARM model can be defined as a configuration string or file. Here is an example of defining the model in a configuration file
>>> darm = pydarm.darm.DARMModel('H1_20190416.ini')
Computing transfer functions is straightforward. First define a set of frequency points at which to compute the response
>>> frequencies = numpy.logspace(1, 3, 10)
Next, identifying the method to compute the transfer functions depends
on what one wants to compute. For an overall, big picture of the DARM
loop, pydarm.darm.DARMModel
methods can be used, e.g.,
>>> OLG = darm.compute_darm_olg(frequencies)
>>> R = darm.compute_response_function(frequencies)
More specific transfer functions are found within component objects. For example, to compute the sensing function or actuation function response
>>> C = darm.sensing.compute_sensing(frequencies)
>>> A = darm.actuation.compute_actuation(frequencies)
Specific transfer function methods can be found within pyDARM
modules. More complex transfer functions not already defined can still
be computed by combining the transfer function methods of elements in
custom ways.
Plotting¶
>>> pydarm.plot.plot(frequencies, darm.sensing.compute_sensing,
... freq_min=1, freq_max=5000, show=True)