Controlled operation of a scanner with frequency space analysis of a control deviation
By analyzing control deviations in the frequency domain and applying correction signals based on frequency response, the method addresses the inaccuracies in scanner control, achieving precise and reliable scan angle tracking.
Patent Information
- Application Number
- DE102018109055
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2018-04-17
- Publication Date
- 2025-12-04
- Estimated Expiration
- 2038-04-17
AI Technical Summary
Existing scanner technologies struggle to accurately follow defined scan angle curves due to deviations caused by disturbances, leading to image distortions and double contours, which conventional control methods like PID controllers are unable to effectively correct.
A method that analyzes control deviations in the frequency domain by decomposing input signals into error components at multiple frequencies, determining corresponding correction signal components based on the system's frequency response, and outputting a combined control signal to minimize deviations.
This approach enables precise and reliable control of scanners, effectively correcting errors that conventional controllers cannot handle, allowing for exceptional accuracy in scan angle curves.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
TECHNICAL AREA
[0001] Various embodiments of the invention relate to techniques for controlling a scanner in a controlled manner. In particular, various embodiments of the invention relate to techniques for taking into account error components of an input signal, which are indicative of a control deviation, during the controlled control process. BACKGROUND
[0002] Scanners for deflecting light are used in various technical fields. For example, scanners are used for scanning in laser scanning microscopes (LSMs).
[0003] Scanners typically comprise a scan module with a deflection unit designed to redirect light. Depending on the position and / or orientation of the deflection unit, the light is deflected differently. This defines a scan angle. This allows light to be emitted from different directions. It may also be possible to receive light from different directions.
[0004] To scan the sample, scanners typically follow defined curves, sometimes also called scan angle curves. Deviations from these target curves cause image distortions or double contours, for example, in LSMs. Therefore, it is desirable to follow the scan angle curves with high spatial and temporal accuracy.
[0005] One technique for setting the scan angle with high accuracy uses a control loop. A target position of the deflection unit can be specified, and any deviation of the measured actual position of the deflection unit from the target position can be minimized. An example of such a technique is described in DE 10 2005 047 200 A1. SUMMARY
[0006] There is a need for improved techniques for the controlled operation of a scanner. In particular, there is a need for techniques that control the scanner reliably and with high accuracy.
[0007] This task is solved by the features of the independent patent claims. The features of the dependent patent claims define embodiments.
[0008] A method for the controlled operation of a scanner includes receiving an input signal. The input signal is indicative of a time-dependent deviation between the actual position and the target position of a deflection unit of the scanner. The method also includes developing the input signal into a multitude of error components at multiple frequencies. Furthermore, for each of the multitude of error components, the method includes determining a corresponding correction signal component based on a respective frequency response component of a given inverse frequency response. Finally, the method includes outputting a control signal based on a combination of the correction signal components.
[0009] It is therefore possible that a receiver of an input signal is present, where the input signal provides the current position of the scanner. By incorporating the desired position of the deflection unit, which is fed to a controller, the control deviation can then be determined. The control deviation can be developed into a multitude of error components at different frequencies. For each of these error components, a corresponding correction signal component can be determined based on the error component and the inverse frequency response of the system at the frequency of the respective correction signal component. Furthermore, it may be possible to output a control signal based on a combination of the correction signal components.
[0010] For example, it would be possible for the aforementioned steps - receiving, developing, determining and outputting - to be repeated for several control processes, for example according to a controller clock cycle.
[0011] The error components can therefore describe the control deviation in the frequency domain.
[0012] Taking the various components into account can correspond to an analysis of the control deviation in the frequency domain.
[0013] In particular, a control loop can be implemented by receiving the input signal and outputting the control signal.
[0014] By implementing a control loop with frequency-domain error analysis, a particularly reliable and robust controlled scanner can be achieved. In particular, errors that cannot be corrected with conventional (PID) controllers can be compensated for. For example, scan angle curves can be implemented with exceptional accuracy.
[0015] For example, a corresponding procedure could be implemented by a controller for a scanner, where the controller may, for example, have a memory and a logic component.
[0016] The control system can, for example, be part of an LSM.
[0017] A computer program product, or computer program, comprises program code that can be loaded by a logic component. The logic component can then execute the program code. Executing the program code causes the logic component to perform a procedure for the controlled operation of a scanner. The procedure includes receiving an input signal. The input signal is indicative of a time-dependent deviation between an actual position and a target position of a deflection unit of the scanner. The procedure also includes developing the input signal into a multitude of error components at multiple frequencies. Furthermore, the procedure includes determining, for each of the multitude of error components, a corresponding correction signal component based on a respective frequency response component of a given reciprocal frequency response.Furthermore, the method includes the output of a control signal based on a combination of the correction signal components.
[0018] The features set out above and those described below can be used not only in the corresponding explicitly set out combinations, but also in further combinations or in isolation, without leaving the scope of protection of the present invention. BRIEF DESCRIPTION OF THE FIGURES Fig. Figure 1 schematically illustrates a scanner with a control system according to various examples. Fig. Figure 2 schematically illustrates a control loop implemented by the controller according to various examples. Fig. Figure 3 is a flowchart of an example procedure. Fig.Figure 4 illustrates the time course of a movement of a deflection unit of the scanner and the scanning of the movement of the scanner and a control deviation according to various examples. Fig. Figure 5 schematically illustrates an analysis of the control deviation in the frequency domain according to various examples. Fig. Figure 6 is a flowchart of an example procedure. DETAILED DESCRIPTION OF EXECUTION FORMS
[0019] The properties, features and advantages of this invention described above, as well as the manner in which they are achieved, will become clearer and more easily understood in connection with the following description of the exemplary embodiments, which are explained in more detail in conjunction with the drawings.
[0020] The present invention is explained in more detail below with reference to preferred embodiments and the drawings. In the figures, identical reference numerals denote identical or similar elements. The figures are schematic representations of various embodiments of the invention. Elements depicted in the figures are not necessarily shown to scale. Rather, the various elements depicted in the figures are represented in such a way that their function and general purpose are understandable to a person skilled in the art. Connections and couplings between functional units and elements shown in the figures can also be implemented as indirect connections or couplings. A connection or coupling can be wired (electrical or optical) or wireless (electromagnetic, magnetic, optical, mechanical).Functional units can be implemented as hard-wired hardware, software-configurable and controllable hardware, or a combination of both.
[0021] The following describes techniques for scanning light. A suitable scanner comprises a scan module with a deflection unit. The scan module may also include a suspension for the deflection unit, as well as an actuator. The actuator can be configured to exert a force on the suspension of the deflection unit, thereby moving the deflection unit. The pose of the deflection unit can be varied, thus changing the scan angle.
[0022] As a general rule, different types of scanners can be used in the various examples described herein. Examples include: Resonant scanners in free or forced resonance; non-resonant scanners; galvo scanners; MEMS scanners; stepwise-moving scanners, continuously moving scanners, rotating scanners with ball bearings, etc. Depending on the type of scanner used, the mechanism by which the deflection unit is moved can vary. In particular, the degree of freedom of movement of the deflection unit can also vary. For example, the deflection unit could rotate in some examples, tilt in others, be deflected transversely in still others, etc. Superimposed movements are also possible. Therefore, the following generally refers to a variation in the position and / or orientation (pose) of the deflection unit, which can fundamentally describe all such degrees of freedom of movement, either alone or in combination. The pose can be defined in a reference coordinate system in which the pose of the optics is also determined, e.g.,a pose of a light source and / or a detector.
[0023] In the various examples described herein, scanners that implement a periodic or quasi-periodic movement of the deflection unit can be used in particular.
[0024] The light scanning techniques described herein can be used in various technical fields. For example, such scanners can be used in conjunction with a laser scanning machine (LSM). In this process, a sample object is scanned with a point-focused laser beam. Light scattered, reflected, or re-emitted by the sample object is focused onto a pinhole aperture. The light passing through the aperture is detected, possibly after spectral splitting. To capture an image of a layer of the sample object, the laser beam is scanned across the sample object, approximately line by line, by varying the scan angle. Other examples include laser micromachining, printers, projectors, etc.
[0025] In the various examples described herein, the scanner is controlled in a regulated manner. For instance, a closed-loop control system can be implemented. This allows for particularly precise adjustment of the scan angle. A deviation between the target position of the deflection unit and its actual position can be reduced efficiently, quickly, and accurately, even in cases where other controllers no longer provide stable control.
[0026] This is based on the understanding that a classic PID control loop is concerned with the system's transfer characteristics across a wide frequency range, even if the control signal itself contains no components in that range. This differs from the various examples described here. The control loop, when correctly configured, only regulates where signal components are present. Furthermore, the feedback for each of these components can be set directly and independently of the other components.
[0027] The techniques described herein can be flexibly scaled. For example, a large number of scanners can be controlled in different channels. Similarly, a large number of actuators could be controlled per scanner. This can be helpful, for instance, for 2D scanning, where light sequentially passes through several deflection units that are actuated separately.
[0028] Several examples of the invention are based on an analysis of a control deviation between an actual position of the deflection unit and a target position of the deflection unit. The control deviation in spatial space is analyzed as a component in the frequency domain. For example, the control deviation can be analyzed at several discrete frequencies.
[0029] To perform such an analysis of the control deviation in the frequency domain, it may be desirable to receive a time-resolved input signal over a specific time interval; the input signal can include several data points, with each data point being indicative of the control deviation at a corresponding time.
[0030] By considering the rule deviation over integer multiples of its periodicity, rule deviations from integer harmonics of its periodicity can be reliably detected.
[0031] Fig.Figure 1 illustrates aspects relating to the Scanner 100. For example, the Scanner 100 could be part of an LSM, which would also include a light source, a lens, a rehearsal stage, etc. (in Fig. 1 not shown).
[0032] The scanner 100 includes a deflection unit 112, which can be implemented, for example, by a mirror or a prism. Incident light 130 is deflected by a scan angle 131. The scan angle 131 can be varied by changing the position of the deflection unit 112.
[0033] The light 130 can originate from a light source (such as a laser or an LED) as well as from a scattering or fluorescent measuring object or from a sample.
[0034] The scanner 100 also includes an actuator 111. The actuator 111 is configured to change the pose of the deflection unit 112, thereby also varying the scan angle 131. Various types of actuators 111 can be used in the different examples described herein, such as piezoelectric actuators, capacitive actuators, or magnetic actuators.
[0035] In Fig. Figure 1 also illustrates a control signal 121, which is output by a controller 101 to the actuator 111. The control signal 121 is intended to cause a periodic movement of the deflection unit 112, according to a target position of the deflection unit 112.
[0036] Nevertheless, due to disturbances – such as heating, humidity, external shock, aging, material fatigue, and partially unknown disturbances, etc. – deviations can occur between the desired target position of the deflection unit 112 and the actual position of the deflection unit 112. A sensor 113 is provided to detect such deviations. The sensor 113 is configured to output a measurement signal 122, which is indicative of the measured position of the deflection unit 112. Thus, the measurement signal 122 is also indicative of the control deviation.
[0037] This is in Fig. Figure 1 shows an example where sensor 113 determines the pose by measuring a physical observable in conjunction with deflection unit 112. In other examples, it would alternatively or additionally be possible to measure a physical observable in conjunction with actuator 111 (dashed arrow in Figure 1). Fig. 1).
[0038] The controller 101 receives the measurement signal 122 and processes it. In particular, the controller 101 can implement a control loop based on the measurement signal 122.
[0039] The control system 101 can be implemented using hard-wired hardware, software-configurable and controllable hardware, or a combination of both.
[0040] For example, the controller 101 could be implemented in a discrete-time manner using a digital circuit. Specifically, the controller 101 could be implemented as a Field Programmable Gate Array (FPGA), Application-Specific Integrated Circuit (ASIC), or microcontroller. Fig. 1 represents a corresponding logic component 102, sometimes also called a functional unit (FU), and a memory 103. For example, the logic component 102 could load program code from memory 103 and then implement the control loop.
[0041] The functionality of logic component 102 is also related to Fig. 2 described.
[0042] Fig. Section 2 illustrates aspects relating to the controlled operation of a scanner. In particular, it illustrates Fig. 2 aspects related to a control loop 170.
[0043] The logic component 102 (controller of the control loop) is functionally arranged between the target position signal 126, P soll (Control variable of the control loop), actual position signal or measurement signal 122 P ist (feedback of the control loop) and a basically optional control signal 125, A. The actual position signal 122 is received by an analog-to-digital converter 113-1, which is coupled to the sensor 113.
[0044] As a general rule, different types of sensors 113 (measuring element of the control loop) are conceivable, for example: magnetic field sensors; optical sensors; capacitive sensors; etc. The type of sensor 113 can vary with the actuated degree of freedom of the movement of the deflection unit 112.
[0045] The difference between the target and actual position signal P soll - P ist (Control deviation) - indicated by the input signal 127 - is used to correct the specified control signal 125, A to a corrected control signal 121, A korr (Control loop variable) to be modified. The control signal 121 is passed to the actuator 111 (control loop actuator) via a digital-to-analog converter 111-1.
[0046] The control signal 121, A korrgenerates a movement B of the deflection unit 112 and delivers - by means of the sensor 113 - a measurement signal 122, P that is in a fixed relationship to this movement B (controlled variable of the control loop). ist back. In general, the position of the deflection unit 112, which is determined by the movement B, can be measured.
[0047] Changes in the properties of actuator 111, i.e., the influence of the control signal 121, A, can be corrected. korr on B, if the properties of sensor 113, i.e. the influence of B on the measurement signal 122, P ist , are known.
[0048] The logic component 102 can determine the frequency response 129, F, which is between the control signal 121, A output to the actuator 111. korr and the measurement signal 122, P istmediated, refer back to. For example, the frequency response 129, F and / or the reciprocal of the frequency response 129, F could be stored in memory 103. The frequency response 129, F can correspond to a transfer function.
[0049] The logic component 102 is configured to correct periodic or near-periodic movements with a period T when the target position signal 126 and the frequency response 129, F are known. An optional (default) control signal 125, A is useful. For example, the control signal 125, A can reflect certain technical boundary conditions of the actuator 111, such as a specific minimum voltage in the case of piezo actuators, etc.
[0050] The control signal 125, A is converted to the corrected control signal 121, A korr modified so that the actual position signal is 122, P ist to the specified target position signal 126, P soll approximates the target value. The control deviation of the control loop is therefore minimized.
[0051] In various examples described herein, the difference between the target and actual position signal 122, 126 is calculated over a preferably integer number of oscillation periods.
[0052] The difference is correlated with an orthogonal basis over period T (e.g., cos 2πm t / T and sin 2πm t / T) over an integer number of oscillation periods, where m is a non-negative integer such as m=1 and m=2, and represents the correlated harmonic. These correlates are applied using the complex-valued frequency response F at points corresponding to the harmonic frequencies of period T (i.e., m / T). The coefficients calculated in this way describe the amplitude of a harmonic correction of the observed errors. The sum of all harmonic corrections—optionally weighted—yields ΔA, and the corrected drive signal is A. korr = A + ΔA is used.
[0053] Instead of cosine and sine, other orthogonal basis functions can generally be considered for the development.
[0054] In Fig. Figure 2 shows that the logic unit 102 can process multiple channels 1, 2, ... n. This makes it possible to correct multiple movements and multiple actuators.
[0055] For example, periodic control signals 121 are generated and output to the actuator. This can be done, for example, as in Fig. 2 shown - by generating a correction signal 121 based on a given basic signal 125.
[0056] The logic component can trigger correction commands at defined times, at which point the control signal 121 is updated (control process). This can occur periodically or event-driven. The logic component 102 could trigger a control process independently or event-driven by generating the corresponding command. For example, a time interval between control processes can correspond to the controller clock. In general, the controller clock can vary over time. This means that the control processes cannot be executed strictly periodically or with variable periodicity.
[0057] In general, a parameterized analysis of the control deviation can be performed. Certain characteristics of the control system can be modified. For example, the parameterization can be carried out via a register interface of the controller 101 or, in particular, the frequency converter 102. The parameterizable analysis allows for flexible selection of the number of data channels and data points of the measurement signal 122 to be analyzed, with the data channels corresponding to the input and output channels, respectively.
[0058] The following describes an exemplary implementation of the control loop 170.
[0059] The control loop 170 is divided into the modules (I) analysis, (II) coefficient calculation and (III) synthesis, which generates the corrected control signal 121.
[0060] All subsequent calculations can be performed multiple times and independently for different channels, which are subsequently indexed with 1...n. For the sake of clarity, however, the index n is not explicitly listed everywhere below. (I) Module Analysis (ana):
[0061] For each data point, the difference between the actual position signal 122 (also referred to as the measurement signal) and the target position signal 126 is determined: PDIFF:=PIST−PSOLL
[0062] This corresponds to input signal 127, P DIFF The difference calculation from equation (1) is performed iteratively for several data points, whereby each data point of the input signal 127, P DIFF indicative of the deviation from the rule at a given time.
[0063] The data points for the actual position signal 122 are received with a sampling clock. The sampling clock can be specified, for example, by the sensor 113 and / or the ADC 113-1. The sampling clock is typically significantly larger than the period T of the movement of the deflection unit 112, for example, by a factor of 100, 500, or 1000. Furthermore, the sampling clock is typically significantly larger than the controller clock, for example, by a factor in the range of 200 to 10,000, although this factor can also reach orders of magnitude of 10⁷ to 10⁹ when, for example, particularly slow-moving scanners are being controlled.
[0064] The data points of the input signal 127, P DIFF In each clock cycle, the values are multiplied by a sine and cosine wave of a predefined frequency – for example, harmonics / harmonic oscillations 1..m, one for each channel – and stored in an accumulating variable ΔC for each clock cycle. m , ΔS m In summary: ΔCm:=ΔCm+PDIFF cos Nmφ ΔSm:=ΔSm+PDIFF sin Nmφ
[0065] m indicates the different frequencies. This processing is performed using a clock signal from the FU 102 to process multiple data points between two control operations. This means that equations (2a) and (2b) are executed repeatedly with the clock signal. This allows different frequencies to be considered sequentially for each data point by varying m. Optionally, multiple channels can also be considered.
[0066] Equations (2a) and (2b) represent an incremental development because each subsequent iteration builds upon the result of the preceding iteration. The computer clock speed—at which such calculations as described in Eqs. (2a) and (2b) are performed—is typically significantly higher than the controller clock speed, e.g., by a factor of 10 or 100. A factor of, for example, 20 (as in the present case with a controller clock speed of 5 MHz and a computer clock speed of 100 MHz) allows, for example, the processing of 20 harmonics of one axis or 10 harmonics of each of two axes per arithmetic unit; this will be explained in more detail below.
[0067] Equations (2a) and (2b) correspond to the expansion of the input signal 127 into a multitude of error components at the several frequencies 1... m. By choosing a sufficiently high clock speed, equations (2a) and (2b) can be computed for a data point at all frequencies 1... m before the next data point is obtained according to the sampling clock. That is, the expansion of the input signal 127 can be performed in real time.
[0068] Equations (2a) and (2b) describe, by way of example, the decomposition of the input signal 127 into cosine and sine as the basis. Instead of cosine and sine, other orthogonal basis functions can generally also be considered for the expansion.
[0069] Equations (2a) and (2b) implement this development into the error components by multiplying each data point of the input signal 127, P DIFF with a first reference data point cos N mφ and a second reference data point sin N m φ. Here, the first reference data point corresponds to the value of a first basis function of the corresponding frequency and phase—in this example, the cosine—and the second reference data point corresponds to the value of a second basis function of the corresponding frequency and phase—in this example, the sine. In general, other orthogonal, periodic functions can be used instead of cosine and sine. The corresponding result values then become the values of the variable ΔC. m as well as ΔS m These values are added together. They are calculated sequentially for each data point, e.g., iteratively adjusted.
[0070] For example, it would be possible that following the addition of equations (2a) and (2b), the corresponding data point P DIFFis discarded. Therefore, it is not necessary to reserve a particularly large amount of memory for all data points received between two correction commands. The data point can generally be retrieved after multiplying the corresponding data point P. DIFF with the first reference data point and after multiplying the corresponding data point P DIFF with the second reference data point, but before the end of the corresponding controller clock cycle - i.e. before the next control process.
[0071] The variables ΔC m as well as ΔS m They are reset when a rule operation occurs, i.e., when a correction command (apply_accu_derivation) is received, so that subsequent data points are summed again. ΔCm:=0 ΔSm:=0
[0072] In summary, the Analysis module allows the input signal to be broken down into a multitude of error components at different frequencies. This means that the control deviation can be quantified with frequency resolution. After the Analysis module, the Coefficient Calculation module can be executed. (II) Module Coefficient Calculation (calc_coe)
[0073] The coefficient calculation module enables the adjustment of the control signal to reduce the control deviation at different frequencies. For this purpose, the frequency response 129, F is taken into account. The adjustment of the control signal is described by coefficients (see...). Fig. 2, ΔA). These correspond to a corresponding correction signal component of the correction signal 121.
[0074] In particular, the inverse / reciprocal frequency response of the system is considered. The frequency response is typically complex-valued, meaning it describes the relationship between the control signal 121 and the measurement signal 122 with respect to amplitude ratio and phase difference as a function of the frequency under consideration. The frequency response used here describes the relationship between the electrical response of the position detector and the frequency of the control signal. Therefore, in this example, the frequency response is given by F: Akorr→Pist.
[0075] The reciprocal frequency response is given by F−1: Pist→Akorr.
[0076] The frequency response is a complex-valued function. It can be used, among other things, to determine the behavior of the system at the harmonic m of the considered oscillation.
[0077] These are subsequently referred to as Re(F -1 m ) and Im(F -1 m ) described. Re(F-1 m ) and Im(F -1 m ) describe the real and complex components of the frequency response of the m-th harmonics of the currently controlled periodic motion. For example, it is possible that in memory 103 the Re(F -1 m ), Im(F -1 m ) is stored for all currently required harmonics m.
[0078] The results are summed in a variable and made available to the subsequent module (synthesis).
[0079] The coefficient calculation can be performed, for example, when a corresponding command is received. In addition to calculating new coefficients, further actions can be triggered via the command.
[0080] The command APPLY_ACCUMULATED_DERIVATION applies to all harmonics N m these two registers: Cm:=Cm+Re(F−1m)ΔCm / p−Im(F−1m)ΔSm / p Sm:=Sm+Re(F−1m)ΔSm / p−Im(F−1m)ΔCm / p
[0081] This corresponds to determining the components of the correction signal for the various error components. Here, p is the number of data points summed when summing ΔS. m or ΔC m .
[0082] Using modified sine and cosine functions (period length 2 32 or 2 64 (4a) or (4b) can also be performed as integer arithmetic instead of 2π).
[0083] The RESET_ONLINE_CORRECTURE command resets the registers: Cm:=0 Sm:=0
[0084] In summary, the coefficient calculation module enables the determination of correction signal components as coefficients for the correction signal 121 at different frequencies. Then, based on these correction signal components, the correction signal can be generated in the subsequent synthesis module. (III) Module Synthesis (syn)
[0085] The corrected control signal 121 is generated in the Synthesis module and results from the combination, e.g., the weighted or unweighted sum, of all correction signal components. For each control operation, the current coefficients from the Coefficient Calculation module (calc_coe) are loaded and multiplied by the sine and cosine functions to enable the transformation into the time period. ΔAm=Cm cos Nmφ+Sm sin Nmφ, where cos N m φ and sin N m φ have already been calculated in (2a) and (2b).
[0086] Equation (6) again corresponds to the calculation of several data points of the correction signal.
[0087] The different frequency contributions are added together. ΔA=ΔA1+ΔA2+ … +ΔAm and it will be the control signal 121, A korr calculated based on the correction contribution from Eq. (7) and the specified default control signal 125: AKORR=A+ΔA.
[0088] In another variation, the result can also be written to multiple accumulating output variables to allow for mixing or duplication of results. One-hot coding can be used for this purpose, for example. (IV) General:
[0089] In (2a) and (2b), as well as (6), φ denotes the instantaneous phase. Starting from the last correction command RESET_ONLINE_KORREKTUR, RESET_ACCUMULATED_DERIVATION or APPLY_ACCUMULATED_DERIVATION, the data points are counted (value p; see also Eq. (4a) (4b)) and the instantaneous phase φ is determined. φ:=2πp / k which also as φ:=2π (p MOD k) / k can be calculated.
[0090] The following describes how the above techniques can be implemented in the FU 102 with low resource consumption.
[0091] If the computer clock – with which the various calculations according to the equations above can be performed by the FU 102 – is significantly higher than the sampling clock, with which data points of the input signal 127, P DiffTo achieve this, the computing resources of the FU 102 can be used sequentially multiple times per sampling cycle. Various options are conceivable for managing the computing resources of the FU 102. One example is the use of time slices: Each input channel n is then assigned, for example, u harmonic time slices, which divide the resource allocation of the FU 102's computing resources. These time slices are activated sequentially; with each clock cycle, the calculation for a time slice is performed completely or partially. A time slice can therefore be one or more clock cycles long. The time slices can be viewed as slots for computation, which are divided among the number of channels |n| and the number of frequencies |m| of the respective channel.
[0092] The following boundary conditions arise from time-slice processing: The processing of the arithmetic operations (1) - (9b) assigned to the various time slices is sequential. Furthermore, the possible number of available time slices per data point is system-dependent and results in particular from the ratio of the processor clock to the sampling clock. Typically, the processor clock is at least 20 times larger than the sampling clock. This ensures that the processing of a complete time-slice cycle—i.e., the analysis module—is completed before the next data point. The time-slice cycle results from the temporal sequence of all time slices 1...u, whereby their order does not necessarily have to be ascending. For example, the number of error components |m| could be determined based on the ratio of the processor clock to the sampling clock to ensure this. The number of channels could also be taken into account, if necessary.This is illustrated by a concrete example: With a sampling rate of 5 MHz and a computer clock of 66 MHz, there are 13 usable time slices per data point. Accordingly, the number of error components can be up to |m| = 13 for one channel, and, for example, |m| = 6 for each channel for two channels.
[0093] Fig. Figure 3 is a flowchart of an example procedure. For example, the flowchart can be executed by the FU 102.
[0094] First, an input signal is received in block 1001. This input signal is indicative of a time dependency of a control deviation between an actual position and a target position of a scanner's deflection unit. For example, the input signal 127 could be from Fig. 2 will be received. This also corresponds to equation (1).
[0095] The input signal 127 can comprise a large number of data points. These data points are received, for example, sequentially with a sampling clock signal. Different data points describe the current position at different times. The sampling rate can, for example, correspond to the time resolution of a suitable sensor. Typical sampling clock signals today are in the range of 1 kHz to 10 MHz. This allows the input signal to indicate the control deviation with time resolution.
[0096] As a general rule, it is not necessary for the data points to be received according to a constant, strictly periodic sampling rate between two control processes. Temporal fluctuations in the sampling rate are also possible. These would need to be taken into account, if necessary, by considering the varying time intervals between adjacent data points during the frequency-space analysis of the input signal.
[0097] The input signal is then analyzed in the frequency domain. For this purpose, in block 1002, the input signal is expanded into a multitude of error components. Such expansion of the input signal into a respective error component involves decomposing the input signal into orthogonal basis functions of the corresponding frequency. The different error components exhibit different frequencies. This corresponds, for example, to the calculation in equations (2a) and (2b). In general, the expansion of the input signal for each data point can therefore be performed sequentially with respect to the multitude of error components, namely, for example, in connection with equations (2a) and (2b) by varying the index m. Different time slices can be used for this purpose. The calculation of the sum from equation (2a) or the sum from equation (2b) for a specific error component can be performed for each of the different time slices.Frequency and assigned to a specific channel. Time slices allow for the management of available computing resources.
[0098] The input signal can be developed sequentially for each data point of the multitude of data points immediately after its arrival, or generally in response to the reception of a data point with a computer clock cycle. For example, equations (2a) and (2b) can be executed for a newly received data point before another data point is received with the sampling clock cycle. Storing the data points or buffering the calculations is therefore unnecessary. The input signal can also be developed incrementally for each data point in real time. This achieves: (i) Low memory requirements, regardless of the number of data points in the input signal. (ii) Continuous processing without load spikes (no buffering).(iii) Instantaneous control process or control process with only a few sampling cycles delay possible directly after completion of the analysis, very low time requirement regardless of the number of data points processed.
[0099] Subsequently, in block 1003, the corresponding correction signal component is determined for each error component. This is based, for example, on a respective frequency-related frequency response component of a given reciprocal frequency response. A corresponding implementation is shown, for example, in equations (4a) and (4b).
[0100] Then, in block 1003, the various correction signal components can be combined, see for example equation (7). Subsequently, a corresponding control signal can be output in block 1004, see for example equation (8).
[0101] Fig. Section 4 illustrates aspects relating to a controller clock 201. Fig.Figure 4 illustrates in particular the desired periodic movement 200, B of the deflection unit 112. This periodic movement 200 is indicated by the measurement signal 122, which indicates the current position of the deflection unit 112.
[0102] Out of Fig. Figure 4 shows that the controller cycle 201 corresponds to the cycle of the target operating frequency of the movement 200 of the deflection unit 112. That is, the controller cycle 201 corresponds to the period T. P the movement to be controlled. For this purpose, the correction command 290 - which triggers a control process, cf. e.g. equations (6)-(8) - can be output with the controller clock 211.
[0103] As a general rule, the controller clock can either be set to a fixed rate and remain constant over time, or it can be adjusted over time. For example, a correction command 290 could be issued to check whether the controller clock 201 should be adjusted. Such adjustment of the controller clock over time allows for a trade-off between (i) image errors due to excessively slow control and (ii) image errors due to faulty, unnecessary, or disruptive correction of the motion caused by uncertainties or signal noise in the measurement signal. For instance, it may be advantageous to control more quickly at the beginning of the motion or at the start of the control loop to rapidly compensate for large deviations or rapid drifts; and then, as the motion progresses, to increase the time intervals between correction commands 290 to, for example,to reduce noise from the sensor and thus reduce jitter caused by this noise.
[0104] The following table shows an example of adjusting the controller clock over time, namely together with the correction commands 290. Table 1: Adjustment of the controller clock 201 over time LSM Image Rule interval, dhCorrection command290 Dauer desRegelintervals, dhReglertakt 201 Noise Measurement signal121 Picture 1 1 from 0*T P up to 1* T P 100 % 2 of 1* T P up to 3* T P 70 % 3 of 3* T P up to 7* T P 50 % 4 of 7* T P up to 15* T P 35 % 5 of 15* T P up to 31* T P 25 % 6 of 31* T P up to 63* T P 18 % 7 of 63* T P up to 95* T P 18 % 8 of 95* T P up to 127* T P 18 % (...) 12 223* T P bis 255* T P Picture 2 1-8 32 T each P Picture 3 1-8 32 T each P Picture 4 (...) (...)
[0105] Fig. Figure 4 also illustrates aspects relating to a sampling clock 211. The sampling clock 211 is significantly larger than the controller clock 201. As a general rule, the sampling clock 211 could be at least 500 times larger than the controller clock 201. The controller clock 211 captures data points 301 of the measurement signal 122 – and thus also of the input signal 127 – as shown in equation (1). The sampling clock 211 therefore corresponds to a time resolution of the input signal 127.
[0106] Fig.Figure 4 also illustrates the input signal 127. The input signal 127 is indicative of the control deviation 200A. From Fig. As can be seen in Figure 4, the control deviation 200A typically has a significantly lower amplitude than the amplitude of the movement 200 itself. The control objective is typically set to minimize the control deviation 200A.
[0107] Fig. Section 5 illustrates aspects relating to an analysis of the input signal 127 in the frequency domain. In particular, it illustrates Fig. 5 aspects relating to frequencies of a development of the input signal 127 or decomposition of the input signal into components at different frequencies 311-314,
[0108] In Fig. Figure 5 shows that the input signal 127 is developed into error components at four frequencies 311-314. The frequency 311 (m=1) corresponds to the controller clock 201 (in Fig.5 is represented in the frequency domain and therefore indexed there with 201', in Fig. (4 shown in the time period). The frequency 312 (m=2) corresponds to twice the controller clock 201; the frequency 313 (m=3) corresponds to four times the controller clock 201; and the frequency 314 (m=4) corresponds to six times the controller clock 201. This is one example. In other examples, the controller clock itself, three times, five times, and seven times the controller clock could be controlled.
[0109] When the controller clock 201 is adjusted to the target operating frequency of the movement 200 (see Fig.4) This corresponds to a harmonic series of the target operating frequency of the movement 200. As a general rule, the frequencies can therefore be multiples of the base frequency. The base frequency is the frequency f, so that the movement or the control signal repeats cyclically according to 1 / f. This ensures, firstly, that only components present in the system and capable of occurring are controlled. Secondly, these signals are orthogonal to each other.
[0110] The choice of frequencies in Fig. 5 is an example and in general other, fewer or more frequencies can be selected.
[0111] Fig. Figure 5 also illustrates the contribution of the various fault components 710-713 to the input signal 127.
[0112] The strongest contribution comes from – in the non-limiting example of the Fig.5 - The error component 711 at the target operating frequency of the movement 200. Error components 711-713 make smaller contributions. The amplitude of error components 710-713 corresponds to the sqrt (C m 2 + S m 2 ) from equations (6a) and (6b).
[0113] In general, the amplitude of error components 710-713 can vary. Strong signal signals do not necessarily produce the strongest corrections, even though they may favor them. Higher frequencies of the error components tend to generate more control because a potentially present PID or PD controller is significantly less effective at handling such high frequencies. Components near the resonant frequency of the PID controller also tend to produce larger deviations, as even small parameter changes in this range significantly alter the phase frequency response.
[0114] Fig.6 is a flowchart of an example procedure. The flowchart according to Fig. 6 corresponds to one correction cycle. The correction cycle could, for example, start when a scanner is started. This initializes the control loop.
[0115] First, a reset is performed in block 1101. This can correspond to setting the values of the variables according to equations (3a), (3b), (5a) and (5b) to zero.
[0116] Then, a new data point 301 of the input signal 127 is received in block 1102. Data point 301 is indicative of the control deviation 200A at a specific time. For example, data point 301 could be obtained by calculation according to equation (1) from the target position signal 126 and the measurement signal 122 – which corresponds to the actual position signal.
[0117] Then, in block 1103, a current error component is selected, and in block 1104, the corresponding variable related to the evolution of the input signal into the corresponding error component is adjusted. This can correspond to a scalar product with two orthogonal basis functions of the corresponding frequency and can be implemented, for example, by equations (2a) and (2b). Appropriate time slices can be used to perform these calculations, taking into account the available computer clock.
[0118] Blocks 1103 and 1104 can correspond to the Analysis module, as described above.
[0119] Block 1105 then checks whether a calculation should be performed for another error component 710-713. If so, blocks 1103 and 1104 are executed again in subsequent time slices.
[0120] Otherwise, block 1106 checks whether another data point 301 should be received before the end of the controller clock or before sending a correction command 290 to trigger a control process.
[0121] If the development process occurs in real time, it can be ensured that block 1106 is executed before the next data point of input signal 127 is received in the next iteration of block 1102. To enable real-time development, the computer clock – which executes blocks 1103 and 1104 in the various time slices – can be compared to the sampling clock, which defines the time interval between receiving sequential data points. Then, for example, the number of error components, i.e., the number of iterations of blocks 1103 and 1104 per iteration of block 1102, could be determined from the ratio between the computer clock and the sampling clock.
[0122] If block 1106 determines that no further data point should be received, then block 1107 determines the control signal 121. This can include, for example, executing the coefficient calculation and synthesis modules, i.e., executing equations (4a), (4b), (5a), (5b), (6) - (8). Block 1107 can be executed particularly quickly due to the previously performed iterative adjustment of the variables, cf. equations (2a) and (2b). The resource-intensive development has already been carried out previously, for example, in real time.
[0123] In block 1108, the controller clock is optionally adjusted; see Table 1. For example, it may be useful to reduce the control frequency, i.e., the controller clock, as the control target is approached—i.e., depending on the magnitude of the control deviation and / or with an increasing number of iterations of block 1108. This can help to reduce the effects of errors from sensor 113, especially non-systematic errors, on the corrected scanner movement.
[0124] Naturally, the features of the embodiments and aspects of the invention described above can be combined with one another. In particular, the features can be used not only in the combinations described, but also in other combinations or individually, without leaving the scope of the invention.
[0125] For example, several examples related to LSMs have been described above. However, corresponding techniques can also be used for other applications.
Claims
[1] Method for controlled control of a scanner (100), the method comprising: - Receiving an input signal (122, 126, 127) that is indicative of a time dependence of a control deviation (200A) between an actual position of a deflection unit (112) of the scanner (100) and a target position of the deflection unit (112) of the scanner (100), - Developing the input signal (122, 126, 127) into a multitude of error components (710, 711, 712, 713) at several frequencies (311-314), wherein the frequencies (311-314) of the multitude of fault components (710, 711, 712, 713) of a harmonic series of a target operating frequency of a movement (200) of the deflection unit (112), wherein one controller clock (201) of the controlled system corresponds to one clock of the setpoint operating frequency, - for each of the multitude of error components (710, 711, 712, 713): Determining a corresponding correction signal component based on a respective frequency response component of a given reciprocal frequency response (129), and - Output of a control signal (121) based on a combination of the correction signal components. [2] Method according to claim 1, wherein the input signal (122, 126, 127) comprises a plurality of data points (301) which are received with a sampling clock (211), where each data point is indicative of the control deviation (200A) at a corresponding time. [3] Method according to claim 2, wherein the development of the input signal (122, 126, 127) for each data point is sequential with respect to the plurality of error components (710, 711, 712, 713). [4] Method according to claim 2 or 3, wherein the sampling clock (211) is at least 500 times larger than a controller clock (201) of the controlled system. [5] Method according to one of claims 2-4, wherein the development of the input signal (122, 126, 127) is carried out incrementally for each data point of the plurality of data points (301) at a computer clock. [6] Method according to claim 5, wherein the computer clock is at least 20 times larger than the sampling clock (211). [7] Method according to claim 5 or 6, wherein the method further comprises: - Determining a number of error components (710, 711, 712, 713) based on a ratio of the computer clock to the sampling clock (211). [8] Method according to one of claims 2-7, wherein the development of the input signal (122, 126, 127) is carried out incrementally for each data point of the plurality of data points (301) in real time. [9] Method according to any one of claims 2-8, wherein developing the input signal (122, 126, 127) for each data point of the plurality of data points (301) and for each error component (710, 711, 712, 713) comprises: - Multiplying the corresponding data point by a first reference data point corresponding to the value of a first basis function of the corresponding frequency and phase (311-314) to obtain a first result value, - Multiplying the corresponding data point with a second reference data point, which corresponds to the value of a second basis function orthogonal to the first basis function of the corresponding frequency and phase (311-314), to obtain a second result value, - Adding the first result value to a value of a first variable, - Adding the second result value to a value of a second variable, where the value of the first variable and the value of the second variable are calculated sequentially for each data point. [10] Method according to claim 9, wherein developing the input signal (122, 126, 127) for each data point of the plurality of data points (301) and for each error component (710, 711, 712, 713) comprises: - Discarding the corresponding data point after multiplying the corresponding data point with the first reference data point and after multiplying the corresponding data point with the second reference data point and before the end of a controller cycle (201) of the controlled system. [11] Method according to one of the preceding claims, wherein the development of the input signal (122, 126, 127) into a respective error component (710, 711, 712, 713) comprises a decomposition of the input signal (122, 126, 127) into orthogonal basis functions of the corresponding frequency (311-314). [12] A method according to any of the preceding claims, further comprising: - Adjusting a controller clock (201) over time. [13] Method according to claim 12, wherein the controller clock (201) is adjusted by gradually reducing the controller clock. [14] Control (101) for a scanner (100) with a moving deflection unit (112), wherein the control (101) is configured to perform a method according to any one of claims 1-13. [15] Laser scanning microscope comprising the control (101) according to claim 14.
Citation Information
Patent Citations
Optical scanner controller correcting method for sample image scanning device, involves correcting transfer function based on variations of parameters so that deviation of actual position of structure from target position is reduced
DE102005047200A1
Adjusting method for controller of optical scanner, involves production of transfer function from given target movement whereby optical scanner has beam deflecting element provided for deflecting optical beam
DE102005047218A1
Control system for scanner drive esp. for laser scanning microscope
DE19702752A1
High speed periodic motion control of objects such as galvanometer mirror for deflecting laser scanning beam
DE19710714C1
Optical scanner and laser machining apparatus
US20040212862A1