Cluster clock system and program

The cluster clock system achieves robust and resilient time synchronization by autonomously synchronizing distributed nodes to an average time system, addressing vulnerabilities in hierarchical structures and enhancing precision and accuracy.

JP2026061757APending Publication Date: 2026-04-09NAT INST OF INFORMATION & COMM TECH +1
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-09-30
Publication Date
2026-04-09

AI Technical Summary

Technical Problem

Existing time synchronization methods in clock ensembles lack robustness and resilience, particularly in hierarchical structures like Leader/Follower configurations, which are vulnerable to failures and cannot achieve high precision and accuracy without central control.

Method used

A cluster clock system with distributed nodes and a centralized server that synchronizes clocks autonomously and in a distributed manner, using time difference information to calculate edge state estimates and distribute pace adjustment information, achieving synchronization to an average time system without a hierarchical structure.

Benefits of technology

The system ensures robust and resilient time synchronization with high precision and accuracy, enabling scalability and resilience against failures by synchronizing to an average time derived from multiple clocks, reducing computational load and maintaining synchronization even with partial reference time node failures.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026061757000001_ABST
    Figure 2026061757000001_ABST
Patent Text Reader

Abstract

This enables robust and resilient time synchronization of the watch group. [Solution] The cluster clock system comprises a plurality of distributed nodes, each equipped with a clock, which synchronize their clocks in a predetermined first period, and a centralized server which performs synchronization control operations to distribute synchronization control information indicating the synchronization operations at the distributed nodes to the distributed nodes in a second period which has a longer period than the first period.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] This invention relates to a cluster clock system and a program. [Background technology]

[0002] Traditionally, time synchronization between multiple clocks (for example, atomic clocks) has typically involved a hierarchical structure where lower-level clocks synchronize with higher-level clocks, a configuration known as a Leader / Follower type. On the other hand, in the next-generation wireless communication standards, Beyond 5G / 6G, there is a growing demand for high-precision time synchronization in order to make efficient use of radio frequency. Attempts to achieve time synchronization through an ensemble of multiple clocks have been made in the past. (For more information, see, for example, Non-Patent Documents 1-4.) [Prior art documents] [Non-patent literature]

[0003] [Non-Patent Document 1] CA Greenhall “A Kalman filter clock ensemble algorithm that admits measurement noise”, Metrologia, Vol. 43, No.4(2006) [Non-Patent Document 2] L. Galleani, P. Tavella “Time and the Kalman filter”, IEEE control system magazine, vol. 30, no. 2 (2010) [Non-Patent Document 3] D. Mills, et al. Network Time Protocol Version 4: Protocol and Algorithms Specification. RFC 5905, RFC Editor, 2010. [Non-Patent Document 4] IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems. IEEE Standard 1588-2008, 2008. [Overview of the project] [Problems that the invention aims to solve]

[0004] It is preferable to achieve robust and resilient time synchronization for these clock groups. However, when synchronizing time using an ensemble of multiple clocks, it was unknown how to achieve robust and resilient time synchronization among the clocks.

[0005] The object of the present invention is to provide a cluster clock system and program that can achieve robust and resilient time synchronization of a group of clocks. [Means for solving the problem]

[0006] One aspect of the present invention is a cluster clock system comprising: a plurality of distributed nodes, each equipped with a clock, which synchronize their clocks in a predetermined first period; and a centralized server which performs synchronization control operations to distribute synchronization control information indicating the synchronization operations in the distributed nodes to the distributed nodes in a second period which has a longer period than the first period.

[0007] One aspect of the present invention is a program that causes a computer on a general node to perform the following actions: communicate information with any of the other distributed nodes; generate time difference information indicating the time difference between a first time measured by its own clock and a second time measured by the clocks of the other distributed nodes; calculate an edge state estimate, which is an estimate of the difference between the state of its own clock and the state of the clocks of the other distributed nodes, based on the generated time difference information; and communicate with a centralized server.

[0008] One aspect of the present invention is to cause a computer included in a central server to generate pace adjustment information indicating the degree of adjustment of the pace of the decentralized nodes based on clock network information indicating the configuration of the decentralized nodes, and to distribute the pace adjustment information as synchronization control information to all of the plurality of decentralized nodes. This is a program for execution.

Advantages of the Invention

[0009] According to the present invention, robust and resilient time synchronization of a clock group can be realized.

Brief Description of the Drawings

[0010] [Figure 1] It is a diagram showing an example of the system configuration of the cluster clock system of the present embodiment. [Figure 2] It is a diagram showing an example of the timekeeping accuracy of a general node constituting the cluster clock system of the present embodiment. [Figure 3] It is a diagram showing an example of the timekeeping accuracy of a general node constituting the cluster clock system of the present embodiment. [Figure 4] It is a diagram showing an example of the relationship between the average time system of a general node group constituting the cluster clock system of the present embodiment and the average time system of a reference time. [Figure 5] It is a diagram showing an example of the functional configuration of a general node of the present embodiment. [Figure 6] It is a diagram showing an example of the functional configuration of a reference node of the present embodiment. [Figure 7] It is a diagram showing an example of the functional configuration of a central server of the present embodiment. [Figure 8] It is a diagram showing an example of the operation flow of the cluster clock system of the present embodiment. [Figure 9] It is a diagram showing an example of the configuration of a conventional time synchronization method.

Modes for Carrying Out the Invention

[0011] The cluster clock system 1 of this embodiment will be described while referring to the drawings. The embodiments described below are merely examples, and the embodiments to which the present invention is applied are not limited to the following embodiments. In all the drawings for explaining the embodiments, those having the same function are denoted by the same reference numerals, and repeated explanations are omitted. In addition, "based on XX" as used in the present application means "based on at least XX", and includes cases where it is based on another element in addition to XX. Also, "based on XX" is not limited to the case where XX is directly used, and includes cases where it is based on something obtained by performing operations or processing on XX. "XX" is an arbitrary element (for example, arbitrary information).

[0012] [Background] First, the technical background of the cluster clock system 1 of this embodiment will be described. In next-generation wireless communication standards such as Beyond 5G and 6G, the demand for high-stability and high-precision time synchronization is increasing for efficient use of radio waves and high-precision positioning. In the present invention, a new algorithm is proposed that achieves time synchronization that simultaneously satisfies high precision, high accuracy, and high reliability by using the time difference information of a plurality of adjacent atomic clocks. The present invention provides a time estimation algorithm that makes it possible to increase the number of accommodated units while suppressing the calculation cost for estimating the most likely time.

[0013] In the next-generation wireless communication standards, Beyond 5G and 6G, the goal is to achieve higher capacity than the conventional 5G standard, requiring the realization of radio wave utilization technologies that utilize radio wave interference, such as distributed MIMO, which uses multiple antennas in coordination for communication. Furthermore, in the ITU-R WP5D, the future outlook for 6G (IMT-2030) recommends high-precision positioning of 1cm-10cm as a new function for next-generation wireless 6G. All of these next-generation wireless communication technologies are based on time synchronization, and it is expected that time synchronization in networks will become increasingly important in the future. In addition, time and frequency information supports a wide range of infrastructure, including power, transportation, positioning, and communication, and is positioned as critical infrastructure. Because the impact of failures in this area is enormous, high resilience and robustness are required for the supply of time and frequency information. Currently, for the supply of time and frequency, time synchronization using the Global Navigation Satellite System (GNSS) is generally used due to its economic efficiency and convenience. In particular, in the field of communications, it is said that more than half of the world's communication devices rely on GNSS for time synchronization. However, many systems that require time synchronization cannot directly use GNSS signals. Generally, they achieve time synchronization by propagating GNSS time information using leader / follower type time synchronization methods such as NTP and PTP.

[0014] Figure 9 shows an example of the configuration of a conventional time synchronization method. As shown in the figure, in Leader / Follower type time synchronization, GNSS is almost always the top-level (source) time source for time synchronization. However, because GNSS receives and utilizes weak radio waves, it has been pointed out that it is vulnerable to attacks such as spoofing and jamming, as well as interference such as solar winds. Not only GNSS, but Leader / Follower type mechanisms in general have the potential for a single point of failure, and there is also the problem that the Follower basically cannot exceed the accuracy of the Leader.

[0015] In response to this, there was a concept aimed at achieving robust and resilient time synchronization by forming a cluster of multiple clocks rather than a hierarchical structure like a Leader / Follower, and synchronizing to a certain average time derived from these clocks (called cluster clock synchronization). However, currently, the following challenges exist.

[0016] (1) The specific method for achieving synchronization of these clocks while deriving a certain kind of average time is unknown. (2) The method by which each cluster clock (distributed node) autonomously synchronizes in a distributed manner (without instructions from any central server) is unknown. (3) A method for achieving cluster clock synchronization with minimal computation is unknown. (4) A method for forming clusters while retaining the advantages of traditional Leader / Follower type synchronization (specifically, respect for reference times such as GNSS) is unknown. The cluster clock system 1 of this embodiment solves the four previously unknown issues and specifically achieves cluster clock synchronization.

[0017] The present invention solves the problems described in the background and provides an apparatus and method for achieving cluster clock synchronization, and has the following features.

[0018] The user can specify the synchronization destination for the cluster clock: The system has a parameter for specifying the synchronization destination, and the user can specify the synchronization destination for the cluster clock by setting this parameter (specifically, the synchronization destination specification information Di described later) in the system.

[0019] The user can specify the convergence behavior toward the synchronization target: it has parameters to control the convergence behavior toward the synchronization target (the speed of convergence and the behavior of fluctuations after convergence). By inputting an evaluation function that governs the desired convergence behavior into the system, the system outputs the setting values ​​used at each node (that satisfy the evaluation function). The convergence behavior can be controlled using these settings. In addition to the evaluation function, information on the connection topology between nodes is also required to calculate the setting values.

[0020] Autonomous and distributed synchronization is possible: Each node can synchronize autonomously and in a distributed manner. Based on the time difference between the node and neighboring nodes, the estimated state of the node, and information from neighboring nodes (held information, estimated value information), the control value is calculated by taking into account synchronization target information and convergence behavior information.

[0021] Scalable: Each node autonomously calculates its control values ​​based only on the time difference with itself and information about its own node and neighboring nodes, thus keeping the computational load low and enabling scaling out.

[0022] Next, an example of the system configuration of the cluster clock system 1 of this embodiment will be described.

[0023] [System configuration of cluster clock system 1] Figure 1 shows an example of the system configuration of the cluster clock system 1 of this embodiment. The cluster clock system 1 has a configuration in which a central server 40, a clock network 5, and a reference time node 60 are connected to each other by a wired or wireless network.

[0024] Reference time node 60 is a node that supplies reference time. Reference time includes Coordinated Universal Time (UTC) and Japan Standard Time (JST). However, the reference time does not necessarily have to be a standard time; it can be any time that can serve as a reference in the clock network 5.

[0025] [Connection configuration of Clock Network 5] The clock network 5 includes multiple distributed nodes 50. Each distributed node 50 is equipped with, for example, an atomic clock and performs timekeeping operations.

[0026] The clock network 5 of this embodiment includes, as an example, eight distributed nodes 50, namely distributed nodes 50-1 to 50-8. These distributed nodes 50 are connected to other distributed nodes 50 and a reference time node 60 so that they can exchange information with each other. In the following explanation, the fact that a distributed node 50 is connected to other distributed nodes 50 and reference time nodes 60 in a way that allows for the exchange of information will also be referred to simply as "connected."

[0027] In the example shown in the figure, distributed node 50-1 is connected to the reference time node 60-1 and distributed node 50-2. Similarly, distributed node 50-2 is connected to distributed node 50-1, distributed node 50-3, and distributed node 50-6. Decentralized node 50-3 is connected to decentralized nodes 50-2, 50-4, 50-5, and 50-8, respectively. The distributed node 50-4 is connected to the distributed node 50-3 and the reference time node 60-2. Decentralized node 50-5 is connected to decentralized node 50-3 and decentralized node 50-6. Decentralized node 50-6 is connected to decentralized node 50-2, decentralized node 50-5, and decentralized node 50-7, respectively. Decentralized node 50-7 is connected to decentralized node 50-6. The distributed node 50-8 is connected to the distributed node 50-3 and the reference time node 60-3.

[0028] In this embodiment, the distributed nodes 50 consist of two types: general nodes 51 and reference nodes 52.

[0029] The general node 51 is a distributed node 50 that holds a clock, but does not necessarily indicate a reference time. In the system configuration shown in Figure 1, the general node 51 is not connected to the reference time node 60. The general node 51 can also be described as a distributed node 50 that cannot obtain a reference time from the reference time node 60. In the following explanation, when identifying a specific general node 51 from among multiple general nodes 51, the identification number N (N is in italic cursive) will be used.

[0030] Reference node 52 is a distributed node 50 that holds the clock and the reference time indicated by reference time node 60. In the system configuration shown in Figure 1, reference node 52 is connected to reference time node 60. In the following explanation, when identifying a specific reference node 52 from among multiple reference nodes 52, the identification number M (M in italic cursive) will be used.

[0031] In other words, multiple distributed nodes include general nodes and reference nodes. A reference node has a clock that is synchronized with the reference time. A general node uses a general clock, which is not a reference clock but rather a clock whose synchronization is controlled based on information distributed from a central server.

[0032] In the example of the clock network 5 shown in the figure, distributed nodes 50-1, 50-4, and 50-8 are reference nodes 52. The distributed nodes 50-2, 50-3, 50-5, 50-6, and 50-7 are the general nodes 51.

[0033] As shown in the figure, the cluster clock system 1 of this embodiment does not have a hierarchical structure like the conventional Leader / Follower type time synchronization system shown in Figure 9. Furthermore, one of the distinguishing features of the cluster clock system 1 is that its synchronization target is not the time of a higher hierarchical level, as in the conventional Leader / Follower type time synchronization system described above, but rather the "average time system" of the 50 distributed nodes included in the clock network 5. The concept of synchronization to the average time system in the cluster clock system 1 of this embodiment will be explained below with reference to Figures 2 to 4.

[0034] [Concept of synchronization in cluster clock system 1] Figure 2 shows an example of the timing accuracy of the general nodes 51 that constitute the cluster clock system 1 of this embodiment. Each general node 51 included in the clock network 5 (in this example, distributed node 50-2, distributed node 50-3, distributed node 50-5, distributed node 50-6, and distributed node 50-7) has a different timing accuracy from one another. In other words, there is variation in the timing accuracy of the multiple general nodes 51 included in the clock network 5. Generally, the average accuracy AVG11 of these multiple general nodes 51 (e.g., distributed node 50-2, distributed node 50-3, distributed node 50-5, distributed node 50-6, distributed node 50-7) is better than the timing accuracy of each individual general node 51.

[0035] Figure 3 shows an example of the timing accuracy of the general nodes 51 that constitute the cluster clock system 1 of this embodiment. Each general node 51 included in the clock network 5 (in this example, distributed node 50-2, distributed node 50-3, distributed node 50-5, distributed node 50-6, and distributed node 50-7) has a different timing accuracy from one another. In other words, there is variation in the timing accuracy of the multiple general nodes 51 included in the clock network 5. In this embodiment, the cluster clock system 1 converges the timing of each general node 51 included in the clock network 5 to the average time system AVG12, which is the convergence target of the timing times, by having the general node 51 autonomously control the timing of each general node 51 based on the weighting assigned to each general node 51. In other words, the cluster clock system 1 allows each of the general nodes 51 to autonomously control the clock state (e.g., rate) of the multiple general nodes 51, which have variations in accuracy.

[0036] Figure 4 shows an example of the relationship between the average time system AVG12 of the general node group 51 constituting the cluster clock system 1 of this embodiment and the average time system AVG2 of the reference time. The average time system AVG2 of the reference time is, for example, the weighted average of the times indicated by multiple reference time nodes 60 (in this example, reference time nodes 60-1 to 60-3). The cluster clock system 1 converges the average time system AVG12, which is the target for timing convergence shown in Figure 3, to the average time system AVG2 of the reference time. As a result, the cluster clock system 1 can connect the average time system AVG12 of the clock network 5 to the average time system AVG2 of the reference time without creating a hierarchical structure between clocks.

[0037] Furthermore, as mentioned above, the average time system AVG2 of the reference time is calculated, for example, as a weighted average of the times indicated by multiple reference time nodes 60. In other words, the average time system AVG2 of the reference time is calculated based on the reference time redundantly provided by multiple reference time nodes 60. Therefore, even if time information from some of the multiple reference time nodes 60 is not supplied for some reason, the average time system AVG12 of the clock network 5 can be linked to the average time system AVG2 based on the time information from the remaining reference time nodes 60.

[0038] Furthermore, even if time information is not supplied from all the reference time nodes 60 that the clock network 5 references, the timing times of multiple distributed nodes 50 included in the clock network 5 can be retained in the clock network 5's average time system AVG12.

[0039] To summarize what has been described above, the cluster clock system 1 of this embodiment synchronizes the timing of each distributed node 50 in the following two stages. (Phase 1) Convergence of the timing times of individual distributed nodes 50 to the average time system AVG12 of the group of 50 distributed nodes that make up the clock network 5. (Second stage) Convergence of the average time system AVG12 of the 50 distributed nodes to the average time system AVG2 of multiple reference times that the clock network 5 can refer to.

[0040] The following describes an example of the specific functional configuration of the centralized server 40 and distributed nodes 50, which are components of the cluster clock system 1 of this embodiment. As mentioned above, the distributed node 50 consists of a general node 51 and a reference node 52. First, let's describe an example of the functional configuration of a general node 51.

[0041] [Functional Configuration of General Node 51] Figure 5 shows an example of the functional configuration of the general node 51 in this embodiment. The general node 51 comprises an arithmetic unit 500, a timing unit 580, and a storage unit 590.

[0042] The arithmetic unit 500 includes, for example, a central processing unit (CPU), and operates based on programs and data stored in the storage unit 590, providing various functions. The memory unit 590 is composed of, for example, a hard disk drive or semiconductor memory (flash memory, RAM, ROM), and stores various types of information, such as programs and data that the arithmetic unit 500 reads.

[0043] The timing unit 580 is equipped with a timing device, such as an atomic clock, and performs timing operations. In the following description, the time obtained as a result of the timing operations performed by the timing unit 580 is also referred to as the timing time.

[0044] The calculation unit 500 includes, as its functional units, an inter-node communication unit 510, a time difference information generation unit 520, a server communication unit 530, an estimation unit 550, and a control unit 560.

[0045] The inter-node communication unit 510 is connected to other distributed nodes 50 by wireless or wired communication and exchanges various types of information with the other distributed nodes 50. In the following explanation, other distributed nodes 50 to which the inter-node communication unit 510 is connected will also be referred to as adjacent distributed nodes 50 (or simply adjacent nodes). In other words, the inter-node communication unit 510 exchanges information with adjacent nodes.

[0046] The time difference information generation unit 520 generates adjacent time difference information, which is the time difference between the time measured by an adjacent distributed node 50 and the time measured by its own distributed node 50. The time difference information generation unit 520 uses a control period Tn for generating adjacent time difference information. In this case, the time difference information generation unit 520 generates time difference information at time points k=0, n, 2n, ... with period Tn.

[0047] The server communication unit 530 is connected to the central server 40 by wireless or wired communication and exchanges information with the central server 40.

[0048] The estimation unit 550 (state estimation unit) estimates the edge state information at time k+1 in period Tn based on the adjacent time difference information, control value, (user-specified) variance value information generated by the time difference information generation unit 520, as well as adjacent node ownership information, rate adjustment information, and correction information. The edge state information at time k+1 is also called the edge state estimate.

[0049] The estimation unit 550 may estimate the edge state estimate using past state information stored in a storage device such as the memory unit 590.

[0050] The control unit 560 controls the rate of the timing operation of the timing unit 580 by generating control values. The control unit 560 can also be called the control value calculation unit (or control value calculation unit).

[0051] The control unit 560 calculates and outputs a control value for the current time k based on edge state information (specifically, the estimated edge state value) obtained by itself, and inputs adjacent clock holding information (specifically, the estimated edge state value), rate adjustment information, and correction information. The control value is an manipulated variable (or control target variable) for adjusting the rate at which the clocks within the node advance. The control value is generally expressed as a percentage such as ppb or ppt.

[0052] The control unit 560 calculates the control value by setting the frequency of calculating the control value to be higher than the frequency at which the reference node 52 obtains the reference time from the reference time node 60. For example, the frequency at which the reference node 52 obtains the reference time from the reference time node 60 is about once every 100 seconds. The frequency at which the control unit 560 calculates the control value (e.g., period Tn) is about once every second. In other words, the control unit 560 calculates the control value with higher real-time accuracy compared to the frequency of acquiring the reference time by the reference node 52.

[0053] The general node 51 can be summarized as follows: The general node 51 includes an inter-node communication unit 510, a time difference information generation unit 520, a server communication unit 530, an estimation unit 550, and a control unit 560. The inter-node communication unit 510 communicates information with any of the other distributed nodes 50. The time difference information generation unit 520 generates time difference information that shows the time difference between a first time measured by its own clock and a second time measured by the clocks of other distributed nodes 50. The estimation unit 550 calculates an edge state estimate, which is an estimated value of the difference between the state of its own clock and the state of the clocks of other distributed nodes, based on the time difference information estimated by the time difference information generation unit 520. The server communication unit 530 communicates with the central server. The control unit 560 adjusts the rate of its own clock based on the synchronization control information distributed from the central server and the edge state estimate calculated by the estimation unit.

[0054] [Functional configuration of reference node 52] Figure 6 shows an example of the functional configuration of the reference node 52 in this embodiment. The reference node 52 differs from the general node 51 in that its inter-node communication unit 510 can communicate with the reference time node 60 in addition to other distributed nodes 50, and that it does not have the functions of the control unit 560 that the general node 51 has.

[0055] As described above, the reference node 52 is connected to the reference time node 60 and can obtain the reference time from the reference time node 60. Therefore, the reference node 52 can synchronize the timing time of the timing unit 580 with the reference time. Consequently, the reference node 52 does not need to adjust the timing rate based on, for example, the timing operation status of other general nodes 51. For this reason, the reference node 52 does not need to be equipped with a control unit 560.

[0056] Although the reference node 52 has the same control unit 560 functions as the general node 51, it may be implemented by not using these functions. In other words, the reference node 52 and the general node 51 may be configured with the same hardware. The configuration of the other functional parts of reference node 52 is the same as that of general node 51, so its description is omitted.

[0057] [Functional Configuration of Central Server 40] Figure 7 shows an example of the functional configuration of the central server 40 in this embodiment. The central server 40 comprises a processing unit 400 and a storage unit 490.

[0058] The arithmetic unit 400 includes, for example, a central processing unit (CPU), and operates based on programs and data stored in the memory unit 490, providing various functions. The memory unit 490 is composed of, for example, a hard disk drive or semiconductor memory (flash memory, RAM, ROM), and stores various types of information, such as programs and data that the arithmetic unit 400 reads.

[0059] The calculation unit 400 includes, as its functional units, a rate adjustment information generation unit 410, a control information distribution unit 420, an edge information receiving unit 430, a correction information generation unit 440, and a broadcast distribution unit 450.

[0060] The rate adjustment information generation unit 410 generates control information (in other words, rate adjustment information) that serves as a guideline for rate adjustment control by autonomous operation at each general node 51, based on the clock network information, synchronization destination specification information Di, and convergence evaluation function J stored in the clock network information storage unit 70. The clock network information refers to information about the connection topology between the 50 distributed nodes included in the clock network 5.

[0061] The rate adjustment information generation unit 410 includes a synchronization destination specification information acquisition unit 411 and a gain specification information acquisition unit 412 as its functional units. The synchronization destination information acquisition unit 411 acquires synchronization destination information Di from the user. Synchronization destination information Di is information that weights the rate adjustment according to the timing operation status of multiple distributed nodes 50. The gain specification information acquisition unit 412 acquires gain specification information from the user. Gain specification information is, for example, the convergence evaluation function J.

[0062] The rate adjustment information generation unit 410 provides guidelines for rate adjustment for each distributed node 50 by weighting rate adjustments based on the accuracy and precision of the time of multiple distributed nodes 50.

[0063] The rate adjustment information generation unit 410 is a functional unit for centrally processing information from a subset of all nodes that is unsuitable for processing within each node (edge), and can also be described as a cluster aggregation calculation unit.

[0064] The control information distribution unit 420 (distribution control unit) selects the necessary information and performs transmission and reception control to deliver the selected information to the necessary distributed nodes 50.

[0065] The edge information receiving unit 430 receives information (for example, an edge state estimate ζ^ij[k]) from the reference node 52 for generating correction information u0[k]. The correction information u0[k] is information indicating the amount of control correction to be distributed to all general nodes 51.

[0066] The correction information generation unit 440 generates correction information u0[k] based on the information received by the edge information receiving unit 430 from the reference node 52.

[0067] The broadcast distribution unit 450 broadcasts the correction information u0[k] generated by the correction information generation unit 440 to each distributed node 50.

[0068] The centralized server 40 has a higher processing load than the distributed nodes 50. For this reason, it is preferable that the centralized server 40 is implemented in a separate device from the distributed nodes 50 (for example, a high-performance device capable of high-speed processing). For this reason, in the following description, the centralized server 40 will be described as being configured as a separate device from the distributed nodes 50, but it is not limited to this. The centralized server 40 may have its functions implemented in the processing unit 500 of any of the distributed nodes 50 and be configured as a device integrated with the distributed nodes 50.

[0069] To summarize the information regarding centralized server 40, it is as follows: The centralized server 40 includes a rate adjustment information generation unit 410, a control information distribution unit 420, an edge information receiving unit 430, a correction information generation unit 440, and a broadcast distribution unit 450.

[0070] The rate adjustment information generation unit 410 generates rate adjustment information indicating the degree of rate adjustment of the distributed node 50 based on clock network information indicating the configuration of the distributed node 50. Rate adjustment information is, for example, control gain. The control information distribution unit 420 distributes rate adjustment information as synchronous control information to all of the multiple distributed nodes 50.

[0071] The rate adjustment information generation unit 410 includes a synchronization destination specification information acquisition unit 411 and a gain specification information acquisition unit 412. The synchronization destination specification information acquisition unit 411 acquires synchronization destination specification information Di from the user, which specifies the synchronization destination of the distributed node 50 to be controlled. The gain specification information acquisition unit 412 acquires parameters (e.g., gain specification information) from the user for calculating rate adjustment information (e.g., control gain). In other words, the gain specification information acquisition unit 412 functions as a parameter acquisition unit that acquires parameters for rate adjustment from the user.

[0072] In addition, parameters such as synchronization destination information Di and gain specification information may be calculated by other computer devices. In this case, the synchronization destination information acquisition unit 411 and the gain specification information acquisition unit 412 may acquire this information from other computers instead of (or in addition to) acquiring it from the user. That is, the "user" in this embodiment includes both a human being operating the cluster clock system 1 and other computer devices.

[0073] Furthermore, the gain specification information acquisition unit 412 (parameter acquisition unit) acquires the convergence evaluation function J as a parameter. The rate adjustment information generation unit 410 generates rate adjustment information based on the acquired convergence evaluation function J.

[0074] The correction information generation unit 440 generates correction information u0[k] to correct the degree of adjustment of the rate of the distributed node 50, based on the edge state estimate ζ^ij[k] output by the reference node 52, which is an estimate of the difference between the state of its own clock and the state of the clocks of other distributed nodes 50. The broadcast distribution unit 450 distributes the generated correction information u0[k] as synchronization control information (broadcast information) to all of the multiple distributed nodes 50 (especially the general nodes 51).

[0075] Furthermore, if the correction information generation unit 440 cannot obtain an edge state estimate from the reference node 52, it may generate correction information u0[k] based on the edge state estimate ζ^ij[k] output by the general node 51.

[0076] [Input / Output Information (Details)] Next, we will explain in detail the information generated and referenced by the distributed nodes 50 and centralized servers 40 mentioned above.

[0077] In the following explanation, the distributed node 50 of interest will also be referred to as distributed node 50-i (or self-node i, or simply self-node). Furthermore, other distributed nodes 50 adjacent to distributed node 50-i will be referred to as distributed node 50-j (or adjacent node j, or simply adjacent node).

[0078] <Node state estimate x^i[k]> The node state estimate x^i[k] is an estimate of the node state value xi[k]. More specifically, the node state value xi[k] is a vector representation of the result of taking an integer or non-integer derivative (Fractional Calculus) of the timing of its own distributed node 50-i at time k. For example, the nth-order integer derivative is given by equation (1).

[0079]

number

[0080] In this case, the node state element xi1[k] is the value (timing time) of the distributed node 50-i at time k, element xi2[k] is the time derivative of element xi1[k] at time k (frequency value at time k), ..., xin[k] is the time derivative of element xi(n-1)[k] at time k. Regardless of the method of time differentiation, element xi1[k] represents the timing time of the distributed node 50-i.

[0081] The node state estimate x^i[k] is an estimate of the node state value xi[k] of the distributed node 50-i itself (i.e., an estimate of the node state at time k). There are various methods for estimating the node state estimate x^i[k], but in this embodiment, the method used for estimation is irrelevant. Note that the node state estimate x^i[k] is used to calculate the edge state estimate ζ^ij[k], which will be discussed later. The node state estimate x^i[k] is stored in the memory unit 590 of each distributed node 50. For example, the node state estimate x^i[k] is stored in the memory unit 590 every period Tn, which is the calculation period of the estimation unit 550.

[0082] <Node state distribution value q> 2 i> This is a vector that holds the variance values ​​of the noise input to each element of the node state value xi. 2 While it is assumed that the user will manually input noise information that has been measured in advance, manual input is not required; real-time measurement may be performed by some method. Node state variance value q 2 i is stored in the memory unit 590 of each distributed node 50. For example, node state distribution value q 2 i is stored in the storage unit 590 at each period Tn, which is the calculation period of the estimation unit 550.

[0083] <Edge status information> Edge state information is information created from the pair of a distributed node 50-i (i.e., the self node) and an adjacent distributed node 50-j. An adjacent distributed node 50-j refers to any one of the other distributed nodes 50 adjacent to distributed node 50-i.

[0084] Edge state information includes the following two types of information: • Edge state estimate ζ^ij[k] (zeta hat i j k) • Noise dispersion value r of adjacent time difference observations 2ij (R squared I J)

[0085] <Estimated edge state value ζ^ij[k]> The difference ζij[k] (zeta i j k) represents the difference between the node state value xi of distributed node 50-i and the node state value xj of the adjacent distributed node 50-j at time k. The difference ζij[k] is given by equation (2).

[0086]

number

[0087] The edge state estimate ζ^ij[k] is an estimate of the value of the difference ζij at time K (i.e., the difference ζij[k]). There are various methods for estimating the edge state estimate ζ^ij[k], but in this embodiment, the method used for estimation is irrelevant.

[0088] <Adjacent time difference observed noise dispersion value r> 2 ij> Adjacent time difference observed noise variance value r 2 ij is the variance value that occurs when acquiring (observing) the time difference information yij[k] between distributed node 50-i and the adjacent distributed node 50-j. This information may be provided manually by the user based on pre-measured data. However, it is not limited to manual input; real-time measurement may be performed by any method.

[0089] So far, we have explained node state estimates, node state variances, and edge state information. Below, we will explain the following three types of information. • Adjacent time difference information yij[k] (Y-I-J-K) • Control value information ui[k] (U.I.K.) • Reference clock node flag information

[0090] <Adjacent time difference information yij[k]> The adjacent time difference information yij[k] is information indicating the time difference between a distributed node 50-i (i.e., the self node) and a distributed node 50-j adjacent to that distributed node 50-i at time K. The adjacent time difference information yij[k] is the time difference between the actual clocks of each distributed node 50-i and distributed node 50-j at time K, and is given by equation (3).

[0091]

number

[0092] The adjacent time difference information yij[k] is directly observable information. There are various methods for measuring the adjacent time difference information yij[k]. For example, it can be obtained by methods using timestamp exchange such as PTP (Precision Time Protocol) / NTP / (Network Time Protocol). High-precision measurement using D-DMTD (Digital Dual Mixer Time Difference) is also possible. In the case of wireless communication, wireless bidirectional time comparison techniques using the carrier phase of wireless communication, or TDoA (Time difference of arrival) and UWB (Ultra wideband) using propagation channel state information (CSI) can also be used. In this embodiment, the method of measurement is irrelevant.

[0093] <Control value information ui[k]> The control value information ui[k] is the clock control value of the distributed node 50-i (i.e., the self-node) at time k. The clock control value is a speed adjustment value (rate value) that controls the rate of the timekeeping operation of the distributed node 50, and its units are ppm, ppb, ppt, etc.

[0094] <Reference Clock Node Flag Information> The reference clock node flag information is a flag that declares whether the distributed node 50-i (i.e., the self node) is a general node 51 or a reference node 52, and is specified by the user.

[0095] <Information held by neighboring nodes> Up to this point, we have explained the information held by the distributed node 50-i (i.e., the node itself). Now, let's explain the information held by neighboring nodes.

[0096] Adjacent node information refers to the information held by distributed node 50-j adjacent to distributed node 50-i (i.e., the node itself). Each distributed node 50 holds the node state estimate, node state distribution value, edge state information, control value information, and reference clock node flag information mentioned above. Adjacent node information refers to this information held by the adjacent distributed node 50-j from the perspective of distributed node 50-i. In the connection configuration of the distributed nodes 50 of the clock network 5, a distributed node 50-i may have multiple distributed nodes 50-j adjacent to it. A decentralized node 50-i can obtain neighboring node information from all neighboring decentralized nodes 50-j.

[0097] <Watch Network Information> The clock network information is information that allows us to understand the network connectivity of the distributed nodes 50 of the entire clock network 5. The clock network information can be provided in any format. For example, if we assign an individual number to each distributed node 50 of the clock network 5, and N and M (both in italic cursive) are the sets of those numbers, and Ni (in italic cursive) is the set of numbers of general nodes 51 adjacent to general nodes 51 or reference nodes 52, then the connectivity status of the entire clock network 5 can be determined by equation (4).

[0098]

number

[0099] Furthermore, the clock network information can be manually entered by the user after they have fully grasped it, or it can be obtained by applying a mechanism that automatically grasps the connection topology, such as the Spanning Tree Protocol (STP).

[0100] In this embodiment, the clock network information is described as being pre-stored in the clock network information storage unit 70.

[0101] <Synchronization destination specification information Di> The synchronization destination information Di is a parameter used to specify the synchronization destination for the clock network 5. The synchronization destination refers to a "certain average time AVG" that should be synchronized. The user can specify the synchronization destination.

[0102] For example, for each distributed node 50-i ∈ N (where N is in italic cursive), the synchronization destination information Di ∈ R+ (where R+ is the set of all positive real numbers) is determined and provided according to the estimation method used. Since this is necessary for specifying the synchronization destination of the clock network 5 and calculating the rate adjustment information for each of the 50 distributed nodes, the user specifies all of the synchronization destination information Di at once.

[0103] <Convergence evaluation function J> The convergence evaluation function J is a function that defines the convergence behavior for a user-specified convergence target (synchronization target). This function outputs rate adjustment information. The user specifies the convergence behavior.

[0104] <Correction information u0[k]> Correction information u0[k] is a correction input value used to synchronize the general node 51 with the reference node 52. Correction information u0[k] is used by the control unit 560.

[0105] <Rate adjustment information> This is a setting value for each of the 50 distributed nodes, used to converge to the synchronization destination in a way that minimizes or maximizes the convergence evaluation function J, based on the synchronization destination specification information Di, which indicates the synchronization destination set by the user, the convergence evaluation function J, and the clock network information. The rate adjustment information includes feedback gain Fi or observer gain Hi.

[0106] <Feedback Gain Fi> The feedback gain Fi is used by the control unit 560. It has a different setting for each distributed node 50.

[0107] <Observer Gain Hi> Observer gain Hi is used when implementing the configuration of this embodiment using a so-called "distributed observer method". Observer gain Hi is used in the estimation unit 550 and the control unit 560. Observer gain Hi is a different setting value for each distributed node 50.

[0108] [Distributed Nodes (Details)] As described above, each of the distributed nodes 50 includes an inter-node communication unit 510, a time difference information generation unit 520, and a server communication unit 530. The inter-node communication unit 510 communicates information regarding clock timing with any of the other distributed nodes 50 in each distributed node 50. The time difference information generation unit 520 generates time difference information that shows the time difference between a first time measured by its own clock and a second time measured by the clock of another distributed node 50, based on the exchanged information. The server communication unit 530 communicates with the centralized server 40.

[0109] Furthermore, the distributed node 50 is equipped with an estimation unit 550. Based on the information received by the inter-node communication unit 510 and the time difference information, the estimation unit 550 calculates an edge state estimate, which is an estimate of the difference between the state of its own clock and the state of the clocks of other distributed nodes. Furthermore, the inter-node communication unit 510 includes the estimated value calculated by the estimation unit 550 in its information and communicates with any of the other distributed nodes 50.

[0110] Details of the distributed node 50, which possesses these capabilities, will be described below. The time difference information generation unit 520 generates time difference information with adjacent nodes. The time difference information is information indicating the time difference between the clock time of the self-node and the clock times of the group of adjacent nodes, and is defined by equation (5).

[0111]

Equation

[0112] As described above, this time difference can be obtained by a method using known timestamp exchange such as PTP / NTP, and in addition, high-precision measurement using D-DMTD may be performed. Also, in the case of wireless, a wireless two-way time comparison technique using the carrier phase of wireless communication, TDoA, UWB, etc. using propagation channel state information (CSI) may be used.

[0113] The inter-node communication unit 510 (adjacent communication unit) exchanges information with adjacent nodes. The information transmitted and received between adjacent nodes may include the control value information ui[k] in the general node 51. Also, in the general node 51 and the reference node 52, it may include other information generated and used in the calculation process of the estimation unit 550. For example, it can also include the edge state estimated value ζ^ij[k] and the node state estimated value x^i[k].

[0114] Furthermore, it may include information regarding the clock of the self-node. For example, the variance q 2 i1 of the white frequency noise of the clock and the variance q 2 i2 of the frequency random walk noise, etc. can be included. Information regarding the clock such as variance may not be transmitted every time of communication, and may be transmitted occasionally, such as at the start of control.

[0115] The estimation unit 550 uses the time difference information generated by the time difference information generation unit 520, the information of the adjacent node obtained from the inter-node communication unit 510, and the input signal generated by the control unit 560 to calculate the edge state estimate ζ^ij[k], which is an estimate of the difference in the clock state between the own node and the adjacent node. The atomic clock model of the distributed node 50-i is expressed by equation (6) as, for example, a second-order model.

[0116]

number

[0117] A third-order or higher model can also be used, and part B of equation (6) may be expressed differently depending on the definition of the input signal. The state variables and system noise are expressed by equation (7).

[0118]

number

[0119] The distributed node 50-i (itself node) uses the control value information ui[k] generated by the control unit 560 and the input signal uj[k] received by the inter-node communication unit 510 to construct the input information for frequency adjustment in equation (8).

[0120]

number

[0121] Correspondingly, the difference state between the distributed node 50-i (self node) and one or more distributed nodes 50-j (neighboring nodes) included in the group of neighboring nodes is defined as the edge state, as shown in equation (9).

[0122]

number

[0123] In this case, the state equation that the edge state follows can be expressed as equation (10).

[0124]

number

[0125] However, this is as shown in equation (11).

[0126]

number

[0127] Let (12) be the system matrix for phase measurement.

[0128]

number

[0129] Furthermore, wi[k] is the observation noise, and the covariance matrix is ​​set as shown in equation (13).

[0130]

number

[0131] Furthermore, as shown in equation (14).

[0132]

number

[0133] The algorithm described above, which estimates the edge state of neighboring nodes at the distributed node 50-i (self node), can be given, for example, as a Kalman filter in equation (15).

[0134]

number

[0135] As shown in equations (16) to (19).

[0136]

number

[0137]

number

[0138]

number

[0139]

number

[0140] These variances may be specified by the user or measured by the system for the clock itself. Those for neighboring clocks may be obtained by the inter-node communication unit 510.

[0141] The method for estimating edge states is not limited to the Kalman filter described above. For example, using the control value information ui[k] generated by the control unit 560 and the node state estimate value x^j of the adjacent node obtained from the inter-node communication unit 510, the node state estimate value x^i[k] may be calculated as shown in equation (20), and the edge state estimate value ζ^ij[k] may be calculated as shown in equation (21) (distributed observer method).

[0142]

number

[0143]

number

[0144] Here, Hi is observer gain and can be received as control information from the central server 40.

[0145] Furthermore, in order to prevent a decrease in the long-term stability of the time system due to the asymmetry of the edge state estimate ζ^[k], the estimate may be updated using information obtained from the communication unit. For example, when the edge state estimate ζ^[k] is transmitted between the distributed nodes 50, the edge state estimate ζ^ij[k] in equation (15) can be updated using the edge state estimate ζ^ji[k] contained in the received edge state estimate ζ^j[k], as shown in equation (22). Note that the edge state estimate ζ^ji[k] is the edge state estimate ζ^[k] between distributed node 50-j and distributed node 50-i, as seen from the distributed node 50 on the other side of the communication (i.e., the adjacent node).

[0146]

number

[0147] The server communication unit 530 can transmit necessary information to the central server 40. The information to be transmitted may be, for example, the edge state estimate ζ^i[k] and the error yi[k]-Ciζ^i calculated during the estimation process. - You may also use [k], etc. You may also communicate other necessary information.

[0148] As mentioned above, for example, the dispersion q of the white frequency noise of the clock 2 i1 and the variance q of frequency random walk noise 2 It can include i2, etc. Clock-related information such as distribution does not need to be sent every time communication is made, but can be sent only occasionally, such as at the start of control.

[0149] The control unit 560 calculates control value information ui[k] for controlling the rate of the timing unit 580 using control information distributed from the central server 40, correction information u0[k] obtained by broadcasting from the central server 40, and edge state estimate value ζ^ij[k] obtained by the estimation unit 550. When the feedback gain Fi is distributed as control information from the central server 40, the control value information ui[k] for frequency adjustment of the distributed node 50-i can be calculated as shown in equation (23).

[0150]

number

[0151] However, the correction information u0[k] is a correction input for frequency adjustment and is distributed from the central server 40 only at time points k=0, m, 2m, ... of period Tm. Period Tm is a sufficiently long period compared to the control period of the arithmetic unit 500 of the distributed node 50 (e.g., period Tn).

[0152] [Centralized Server 40 (Details)] The synchronization destination information acquisition unit 411 specifies information regarding the synchronization behavior of the general nodes 51. For example, depending on the estimation method being implemented, synchronization destination information Di > 0 can be assigned to each general node 51-i ∈ N (where N is in italicized cursive). Alternatively, this information may present options such as "the average value of all clocks" or "the time that maximizes short-term stability," allowing the user to select. In this case, the system can determine the corresponding synchronization destination information Di. For example, if you want to maximize the short-term stability of the time system in which the group of nodes synchronize, you specify it as shown in equation (24).

[0153]

number

[0154] If you want the time system that the group of nodes synchronize to be the average time of all nodes, you can specify this as shown in equation (25).

[0155]

number

[0156] The rate adjustment information generation unit 410 acquires clock network information from the clock network information storage unit 70. The synchronization destination information acquisition unit 411 acquires the synchronization destination information Di specified by the user. The gain specification information acquisition unit 412 acquires the gain specification information specified by the user.

[0157] The rate adjustment information generation unit 410 determines control information such as the control gain (e.g., feedback gain Fi) based on the clock network information, the synchronization destination specification information Di, and the gain specification information. Alternatively, the rate adjustment information generation unit 410 may calculate the observer gain Hi instead of the feedback gain Fi.

[0158] Here, the common feedback gain F is denoted by equation (26) without loss of generality.

[0159]

number

[0160] In this case, the parameters γc and α are selected from those that satisfy equation (27).

[0161]

number

[0162] This selection can be calculated such that the convergence evaluation function J is minimized or local minimized, given the convergence evaluation function J as gain specification information. However, equation (28) is the graph Laplacian of the communication network of general node 51, and is calculated using clock network information. Note that eN|i is the i-th column vector of the N-th order identity matrix.

[0163]

number

[0164] Furthermore, as shown in equation (29).

[0165]

number

[0166] The feedback gain Fi of each general node 51-i is given by equation (30).

[0167]

number

[0168] In other words, the feedback gain Fi for each general node 51 is calculated by multiplying the common feedback gain F by the synchronization target specification information Di as a weight.

[0169] Alternatively, the parameter value may be directly provided as gain specification information. In this case, the user may be presented with the upper limit value of the parameter, which is the value on the right-hand side of the first equation of equation (27).

[0170] The rate adjustment information generation unit 410 may also calculate the observer gain Hi in equation (20). The common observer gain H is expressed as equation (31) without loss of generality.

[0171]

number

[0172] At this time, γo and β are set to satisfy equation (32). Here, L is the graph Laplacian of equation (28). Also, as shown in equation (33).

[0173]

number

[0174]

number

[0175] The observer gain Hi for each general node 51-i is given by equation (34).

[0176]

number

[0177] In other words, the observer gain Hi for each of the general nodes 51 is calculated by multiplying the common observer gain H by the synchronization destination specification information Di as a weight.

[0178] In this case, the selection method for γo and β can be specified by the gain specification section, similar to the selection of the feedback gain.

[0179] The edge information receiving unit 430 receives an edge state estimate ζ^ij[k] from the reference node 52. The correction information generation unit 440 generates correction information u0[k] indicating the amount of control correction to be distributed to the entire general node 51, based on the information received by the edge information receiving unit 430 from the reference node 52. The correction information u0[k] can be calculated as shown in equation (35) based on the average value of all edge state estimates ζ^ij[k] calculated at the reference node 52. However, the feedback gain F0[k] is set by equation (36).

[0180]

number

[0181]

number

[0182] Here, the parameters γ0 and α0 are given such that equation (37) is satisfied.

[0183]

number

[0184] As described above, the correction information u0[k] is calculated only at time points k=0, m, 2m, ... of period Tm and distributed from the central server 40. Period Tm is a sufficiently long period compared to the control period of the control unit 560 of the distributed node 50 (e.g., period Tn). Therefore, the edge information receiving unit 430 only needs to receive the edge state estimate ζ^ij[k] from the reference node 52 at time k with period Tm. The correction information generation unit 440 may determine u0[k] using information obtained from general nodes if the system does not contain a reference node or if no information from a reference node can be obtained due to a communication failure or the like. For example, the error can be obtained from a general node, equation (38) can be calculated, and then equation (39) can be obtained.

[0185]

number

[0186]

number

[0187] However, K in equation (38) is the gain, which may be specified by the user, or it may be automatically determined by the system according to theories such as the Kalman filter.

[0188] As described above, the period Tm, which is the transmission period of the synchronization control information of the centralized server 40, is longer than the period Tn of the time synchronization control of the distributed nodes 50.

[0189] That is, the cluster clock system 1 of the present embodiment includes a plurality of decentralized nodes each having a clock and performing synchronous operation of their clocks in a predetermined first period, and a centralized server that performs a synchronization control operation of distributing synchronization control information indicating a guideline for the synchronous operation in the decentralized nodes in a second period that is longer than the first period to the decentralized nodes.

[0190] According to the cluster clock system 1 configured as described above, while reducing the processing load in the decentralized node 50, the decentralized node 50 can autonomously perform time synchronization control at a relatively high frequency (that is, the first period shorter than the second period). Therefore, according to the cluster clock system 1, the decentralized node 50 can perform time synchronization in a relatively short time, and the performance of time synchronization in the decentralized node 50 can be improved.

[0191] [Operation of Cluster Clock System 1] FIG. 8 is a diagram showing an example of the operation flow of the cluster clock system 1 of the present embodiment. Hereinafter, the flow of the control information generation operation in the centralized server 40 and the flow of the time synchronization control operation in the decentralized node 50 will be described separately.

[0192] [Operation of Centralized Server 40] (Step S410) The pacing adjustment information generation unit 410 acquires clock network information from the clock network information storage unit 70. (Step S420) The synchronization destination designation information acquisition unit 411 and the gain designation information acquisition unit 412 acquire information designated by the user. As described above, the information designated by the user includes synchronization destination designation information Di and gain designation information.

[0193] These steps S410 and S420 may be executed when the topology of the clock network 5 changes or the designated content of the synchronization operation by the user changes. In the following steps S, it will be described assuming that the topology of the clock network 5 and the designated content of the synchronization operation by the user do not change.

[0194] (Step S430) The edge information receiving unit 430 receives the edge state estimated value ζ^ij[k] from the reference node 52. Here, the operation of the reference node 52 will be described.

[0195] (Step S510) The arithmetic unit 500 of the reference node 52 calculates the edge state estimated value ζ^[k]. The reference node 52 transmits the calculated edge state estimated value ζ^[k] to the centralized server 40 as reference node information. Note that since the reference node 52 is a part of the decentralized node 50, it communicates with adjacent nodes in the same manner as other decentralized nodes 50. Specifically, the reference node 52 performs the same processing as steps S511 to S531 by its own node 50-i and steps S512 to S532 by the adjacent node 50-j, which will be described later. In the figure, the processing of the communication between the reference node 52 and its adjacent nodes is not shown.

[0196] (Step S520) The arithmetic unit 500 of the reference node 52 determines whether the control time k (for example, the control time based on the period Tn) has arrived. When the arithmetic unit 500 determines that the control time k has arrived (Step S520; YES), it returns the process to Step S510 and continues the calculation process of the edge state estimated value ζ^[k]. When the arithmetic unit 500 determines that the control time k has not arrived (Step S520; NO), it determines again whether the control time k has arrived.

[0197] That is, the reference node 52 repeatedly performs the calculation of the edge state estimated value ζ^[k] and the transmission operation to the centralized server 40 at a predetermined control period (for example, the period Tn; the first period).

[0198] As mentioned above, there may be situations where none of the reference time nodes 60 connected to the reference node 52 are able to supply the reference time for any reason. In this case, the edge information receiving unit 430 may be configured to receive the edge state estimate ζ^ij[k] not only from the reference node 52 but also from the general node 51. With the cluster clock system 1 configured in this way, time synchronization can be performed between each distributed node 50 included in the clock network 5 even when the reference time node 60 is unavailable.

[0199] Let's return to the explanation of the operation of the central server 40. In step S430, the edge information receiving unit 430 receives the edge state estimate ζ^ij[k] calculated by the reference node 52.

[0200] (Step S440) The rate adjustment information generation unit 410 of the central server 40 generates control information (also called rate adjustment information). The control information includes, for example, the feedback gain Fi and the observer gain Hi. Furthermore, the correction information generation unit 440 generates correction information u0[k].

[0201] (Step S450) The control information distribution unit 420 distributes the control information generated in step S440 to each distributed node 50. Furthermore, the broadcast distribution unit 450 broadcasts the correction information u0[k] generated in step S440 to each distributed node 50.

[0202] In this example, the control information and correction information u0[k] are described as being generated together in the same step S (step S440), but this is not the only way. The control information and correction information u0[k] may be generated at different timings. Furthermore, while the above example described the distribution of control information in step S450, this is not the only example. More specifically, although the example above states that control information and correction information u0[k] are generated in step S440, the control information may be generated after step S420 and before step S430 (i.e., outside the processing loop of step S460;YES). Furthermore, although the above example states that control information and correction information u0[k] are distributed in step S450, the control information may be distributed after the execution of step S420 and before the execution of step S430 (i.e., outside the processing loop of step S460;YES). In other words, control information does not need to be repeatedly generated and distributed in the processing loop of step S460;YES.

[0203] (Step S460) The calculation unit 400 of the central server 40 determines whether or not the control time k (for example, the control time according to the period Tm) has arrived. If the calculation unit 400 determines that the control time k has arrived (Step S460; YES), it returns to step S430 and continues the calculation of the edge state estimate value ζ^[k]. If the calculation unit 400 determines that the control time k has not arrived (Step S460; NO), it determines again whether the control time k has arrived.

[0204] In other words, the centralized server 40 repeatedly calculates control information and correction information u0[k] and transmits them to each distributed node 50 according to a predetermined control cycle (for example, cycle Tm; second cycle).

[0205] [Operation of 50 distributed nodes] Next, we will explain the operation flow of the distributed node 50. As mentioned above, a distributed node 50 consists of a local node and neighboring nodes. Here, we will explain the operation flow by considering one of the distributed nodes 50 included in the clock network 5 as the local node, and other distributed nodes 50 adjacent to that local node as neighboring nodes.

[0206] (Steps S511, S512) The server communication unit 530 of each distributed node 50 acquires control information transmitted from the central server 40 in step S450.

[0207] (Steps S521 to S531, Steps S522 to S532) The inter-node communication unit 510 of each distributed node 50 sends and receives its own node information to and from neighboring nodes. That is, the inter-node communication unit 510 exchanges the node information of its own node with the node information of neighboring nodes.

[0208] (Steps S541, S542) The calculation unit 500 of each distributed node 50 controls the rate of the timing unit 580 based on the node information exchanged with each other in steps S521 to S531 and steps S522 to S532 described above.

[0209] More specifically, the time difference information generation unit 520 of each distributed node 50 calculates the time difference between the time measured by an adjacent distributed node 50 and the time measured by its own distributed node 50, based on the node information exchanged with each other in each of the steps S described above, and generates adjacent time difference information indicating this time difference.

[0210] The estimation unit 550 calculates the above-mentioned edge state estimate ζ^ij[k] based on the generated adjacent time difference information, correction information u0[k], and rate adjustment information.

[0211] The control unit 560 calculates control value information ui[k] for controlling the rate of the timing unit 580 using control information and correction information u0[k] acquired from the central server 40 and the edge state estimate value ζ^ij[k] calculated by the estimation unit 550. The control unit 560 controls the rate of the timing unit 580 based on the calculated control value information ui[k].

[0212] Note that, as described above, among the decentralized nodes 50, the reference node 52 does not have the function of the control unit 560. Therefore, when the adjacent node (decentralized node 50-j) is the reference node 52, the operation of step S542 in the adjacent node is omitted.

[0213] (Steps S551, Step S552) The arithmetic unit 500 of each decentralized node 50 determines whether the control time k (for example, the control time based on the period Tn) has arrived. When the arithmetic unit 500 determines that the control time k has arrived (Steps S551, Step S552; YES), the process returns to Step S551 or Step S552 to continue the control process of the pace of the timer unit 580. When the arithmetic unit 500 determines that the control time k has not arrived (Steps S551, Step S552; NO), it determines again whether the control time k has arrived.

[0214] That is, the decentralized node 50 repeatedly performs the control process of the pace of the timer unit 580 at a predetermined control period (for example, period Tn; the first period).

[0215] As described above, the first period (for example, period Tn), which is the control period of the arithmetic unit 500 of the decentralized node 50 (general node 51, reference node 52), is about 1 second, and the second period (for example, period Tm), which is the control period of the arithmetic unit 400 of the centralized server 40, is about 100 seconds. That is, the second period (for example, period Tm) is a longer period than the first period (for example, period Tn).

[0216] That is, the cluster clock system 1 of the present embodiment includes a plurality of decentralized nodes each having a clock and performing synchronous operation of their clocks at a predetermined first period, and a centralized server that performs a synchronous control operation of distributing synchronous control information indicating a guideline for the synchronous operation in the decentralized nodes to the decentralized nodes at a second period that is longer than the first period.

[0217] In the example described above, the centralized server 40 performed calculations with period Tm and the distributed nodes 50 performed calculations with period Tn. However, this is merely a description of a typical control period for each device and is not limited to this. Both the centralized server 40 and the distributed nodes 50 may have multiple control periods depending on the type of calculation. Even in this case, the period during which the centralized server 40 supplies synchronization control information indicating synchronous operation guidelines to the distributed nodes 50 (i.e., the first period) is longer than the period during which the distributed nodes 50 perform calculations to adjust the clock rate (i.e., the second period).

[0218] [Technical points of cluster clock system 1] Finally, we will summarize the technical points of the cluster clock system 1 of this embodiment. (1) The cluster clock system 1 is composed of distributed nodes 50 that operate on a short period and a centralized server 40 that operates on a longer period than the distributed nodes 50. (2) The distributed nodes 50 described above consist of two types: general nodes 51 that are synchronized to a specified reference time (e.g., standard time) and reference nodes 52 that have a clock that is frequency-synchronized with the reference time. While it is desirable to have reference nodes 52, the configuration may consist only of the central server 40 and general nodes 51 without reference nodes 52. (3) The distributed node 50 has an inter-node communication unit 510 that exchanges information with neighboring nodes, a time difference information generation unit 520 that acquires the time difference between the neighboring clock and its own clock, and a server communication unit 530 that communicates with the centralized server 40. (4) The distributed node 50 has an estimation unit 550 that calculates an edge state estimate, which is an estimate of the difference between the state of an adjacent clock and its own clock. (5) The general node 51 has a control unit 560 that can adjust the clock frequency and the like, and the control unit 560 generates a control value that controls the rate of the timing operation based on control information distributed from the central server 40, correction information distributed from the central server 40 and estimated values ​​calculated by the estimation unit 550. (6) The centralized server 40 has a rate adjustment information generation unit 410 that generates control information such as control gain based on clock network information, and a control information distribution unit 420 that distributes control information to all general nodes 51. (7) The rate adjustment information generation unit 410 of the central server 40 includes a synchronization destination specification information acquisition unit 411 that acquires synchronization destination information that specifies the synchronization destination time of the distributed node 50 to be controlled, and a gain specification information acquisition unit 412 that acquires gain specification information that specifies the control gain. (8) The gain specification information acquisition unit 412 can acquire the convergence evaluation function J, which serves as the basis for gain selection, as gain specification information. (9) The centralized server 40 includes an edge information receiving unit 430 that receives information from the distributed nodes 50, a correction information generation unit 440 that generates correction information which is a common input correction amount for all general nodes 50 based on edge state estimates obtained from the reference node 52 through the edge information receiving unit 430, and a broadcast distribution unit 450 that distributes the generated input correction amount to the general nodes 50. (10) When the correction information generation unit 440 of the central server 40 cannot obtain an estimated edge information value from the reference node 52, it can determine the broadcast input based on the estimated edge state value of the general node 51.

[0219] As described above, the cluster clock system 1 enables robust and resilient time synchronization of the clock group.

[0220] Although embodiments of the present invention have been described in detail above with reference to the drawings, the specific configuration is not limited to these embodiments, and design modifications and the like are also included within the scope of the gist of the present invention. For example, a computer program to implement the functions of each of the above-mentioned devices may be recorded on a computer-readable recording medium, and the program recorded on this recording medium may be loaded into a computer system and executed. The term "computer system" here may include hardware such as an operating system and peripheral devices.

[0221] Furthermore, "computer-readable recording media" refers to writable non-volatile memory such as flexible disks, magneto-optical disks, ROMs, and flash memory, portable media such as DVDs (Digital Versatile Discs), and storage devices such as hard disks built into computer systems. Furthermore, "computer-readable recording media" also includes volatile memory (such as DRAM (Dynamic Random Access Memory)) within computer systems that act as servers or clients when programs are transmitted via networks such as the Internet or communication lines such as telephone lines, which retain programs for a certain period of time.

[0222] Furthermore, the above program may be transmitted from a computer system that stores the program in a memory device or the like to another computer system via a transmission medium or by transmission waves within the transmission medium. Here, the "transmission medium" used to transmit the program refers to a medium that has the function of transmitting information, such as a network (communication network) like the Internet or a communication line (communication line) like a telephone line. Furthermore, the above program may be intended to implement some of the functions described above. It may also be a so-called differential file (differential program) that can implement the aforementioned functions in combination with programs already recorded in the computer system. [Explanation of Symbols]

[0223] 1…Cluster clock system, 40…Centralized server, 50…Distributed node, 51…General node, 52…Reference node

Claims

1. Multiple distributed nodes, each equipped with a clock, synchronize their clocks with each other in a predetermined first cycle, A centralized server that performs a synchronization control operation to distribute synchronization control information indicating guidelines for the synchronization operation at the distributed nodes to the distributed nodes in a second cycle which has a longer period than the first cycle, A cluster clock system equipped with this feature.

2. Each of the aforementioned distributed nodes An inter-node communication unit that communicates information regarding clock timing with any of the other distributed nodes, A time difference information generation unit generates time difference information indicating the time difference between a first time measured by its own clock and a second time measured by the clocks of other distributed nodes. A server communication unit that communicates with the aforementioned centralized server, Equipped with, The cluster clock system according to claim 1.

3. Estimation Unit Based on the information received by the inter-node communication unit and the time difference information, the estimation unit calculates an edge state estimate, which is an estimated value of the difference between the state of its own clock and the state of the clocks of other distributed nodes. Furthermore, The inter-node communication unit includes the calculated estimated value in the information and communicates with any of the other distributed nodes. The cluster clock system according to claim 2.

4. Multiple of the distributed nodes include: The clock provided is a reference node which is a reference clock synchronized with the reference time, A general node whose equipped clock is a general clock that is synchronized and controlled based on information distributed from the central server, rather than the reference clock, The cluster clock system according to claim 1, which includes the above.

5. The distributed nodes are, An inter-node communication unit that communicates information with any of the other distributed nodes, A time difference information generation unit generates time difference information indicating the time difference between a first time measured by its own clock and a second time measured by the clocks of other distributed nodes. An estimation unit calculates an edge state estimate, which is an estimated value of the difference between the state of its own clock and the state of the clocks of other distributed nodes, based on the time difference information generated by the time difference information generation unit. A server communication unit that communicates with the aforementioned centralized server, The cluster clock system according to claim 4, comprising:

6. Each of the aforementioned general nodes is: The control unit adjusts the rate of its own clock based on the synchronization control information distributed from the central server and the edge state estimate calculated by the estimation unit. The cluster clock system according to claim 5, further comprising:

7. The centralized server includes a rate adjustment information generation unit that generates rate adjustment information indicating the degree of rate adjustment of the distributed nodes based on clock network information indicating the configuration of the distributed nodes, A control information distribution unit that distributes the rate adjustment information as synchronization control information to all of the multiple distributed nodes, The cluster clock system according to claim 4, comprising:

8. The rate adjustment information generation unit, A synchronization destination specification information acquisition unit that acquires synchronization destination specification information that specifies the synchronization destination of the distributed node to be controlled, A parameter acquisition unit that obtains parameters from the user for calculating the rate adjustment information, Equipped with, The rate adjustment information generation unit generates the rate adjustment information based on the acquired parameters. The cluster clock system according to claim 7.

9. The parameter acquisition unit acquires the convergence evaluation function as the parameter, The rate adjustment information generation unit generates the rate adjustment information based on the received convergence evaluation function. The cluster clock system according to claim 8.

10. A correction information generation unit generates correction information to correct the degree of rate adjustment of the distributed node based on the edge state estimates output by the reference node, which are estimated values ​​of the difference between the state of its own clock and the state of the clocks of other distributed nodes. A broadcast distribution unit distributes the generated correction information as synchronization control information to all of the multiple distributed nodes, The cluster clock system according to claim 7, further comprising:

11. If the edge state estimate cannot be obtained, the correction information generation unit generates the correction information based on the edge state estimate output by the general node. The cluster clock system according to claim 10, comprising:

12. The computers on the distributed nodes, To communicate information with any of the other distributed nodes, To generate time difference information indicating the time difference between a first time measured by its own clock and a second time measured by the clocks of other distributed nodes, Based on the generated time difference information, an edge state estimate is calculated, which is an estimate of the difference between the state of its own clock and the state of the clocks of other distributed nodes. To communicate with a central server, A program to execute.

13. The computers in the central server, Based on clock network information indicating the configuration of the distributed nodes, rate adjustment information indicating the degree of rate adjustment of the distributed nodes is generated, The rate adjustment information is distributed as synchronization control information to all of the multiple distributed nodes, A program to execute.