Based on the changed communication parameters

Through dynamic negotiation and the use of protocol buffer messages, the parameters in the machine system are updated only when the parameter value changes, which solves the problem of resource waste when parameter updates in the prior art, and achieves more efficient communication and processing.

CN113572803BActive Publication Date: 2025-01-07CATERPILLAR INC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202110431903.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-04-28
Filing Date
2021-04-21
Publication Date
2025-01-07
Estimated Expiration
2041-04-21

AI Technical Summary

Technical Problem

Existing machine systems have wasted communication bandwidth and processing time when parameter updates, because many parameters need to be updated only when values ​​change, but the prior art fails to effectively save these resources.

Method used

Through the parameter classification component and parameter negotiation session component of the client device, dynamically negotiate and update relevant parameters only when the parameter value changes, use protocol buffer messages and UDP protocol for communication, reducing unnecessary message delivery.

Benefits of technology

It improves the efficiency and response speed of parameter updates, saves communication bandwidth and processing time, and is suitable for machine operation scenarios that require immediate response.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113572803B_ABST
    Figure CN113572803B_ABST
Patent Text Reader

Abstract

A client device may identify a first parameter to be periodically updated and a second parameter to be updated based on a state change. The client may send a request to a server device via a negotiation session. The request indicates that the server device will periodically provide information indicating a current value of the first parameter and will provide information indicating an updated value of the second parameter when the state of the second parameter changes. The client device may periodically receive a first datagram including the current value of the first parameter from the server device and via a second communication protocol, and may receive a second datagram including the updated value of the second parameter based on the server device determining that the current state of the second parameter has changed.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention generally relates to a system and method for communicating parameters, and, for example, to a system and method for communicating parameters based on changes. Background Art

[0002] Machines such as, for example, wheel loaders, graders, planers, and other types of machines are used to perform various tasks associated with industries such as mining, construction, manufacturing, transportation, and / or another type of industry. To perform these tasks, the machine may include multiple systems. Each system may include a controller, such as an electronic control module (ECM). The ECMs may form a network and may communicate with each other via one or more data links.

[0003] A particular function performed by a machine may involve multiple ECMs. An ECM on a machine may be a user of many different parameters. The parameters may be requested by the ECM in order to determine the control commands used to perform various operational aspects of the machine function, and may be obtained from one or more producers of relevant data. The producers of relevant data may periodically provide updated parameter values ​​to the ECM, regardless of whether the parameter value has changed. However, for some parameters, the ECM may only need to update the parameter immediately after the parameter value changes; such parameters may include, for example, configurable options in a menu screen that the machine operator may not change frequently, or the state of a hardware switch that the operator may occasionally press. For such parameters, the ECM may need to receive and act on its changed value in 250ms or less to provide an immediate response effect to the operator. For a typical machine system such as a planing machine, there may be dozens or hundreds of such parameters, each of which may only change once or perhaps a few times in an eight-hour shift. Periodically communicating such parameters may require thousands of messages in an eight-hour shift, while communicating only when they change may require only a small fraction, saving communication bandwidth and processing time on the ECM.

[0004] One attempt to change operating parameters of a communication terminal is disclosed in U.S. Patent No. 7,546,119 ("the '119 patent") issued to Young-Cheol Ham on June 9, 2009. In particular, the '119 patent discloses a method for changing operating parameters of a communication terminal, the method comprising: identifying that operating parameters in a database include new upgrade parameters, searching for at least one communication terminal that needs to be upgraded to the new parameters, and performing an upgrade process for the at least one communication terminal to provide the new parameters.

[0005] Although the method of changing operating parameters of a communication terminal of the '119 patent may be effective in improving the upgrade process, the '119 patent does not disclose a system and method for conserving computing resources for processing periodic updates of parameters that only require updates when parameter values ​​change.

[0006] The systems and methods of the present invention solve one or more of the problems set forth above and / or other problems in the art. Summary of the invention

[0007] According to some embodiments, a method may include: determining, by a parameter classification component of a client device, a set of parameters associated with controlling an operation associated with the client device; determining, by the parameter classification component, that a first parameter in the set of parameters is to be periodically updated; determining, by the parameter classification component, that a second parameter in the set of parameters is to be updated based on a state change associated with the second parameter; defining, by a parameter negotiation session component of the client device, a body of a first request for establishing a parameter negotiation session using a protocol buffer message; sending, by the parameter negotiation session component of the client device, a first request to a server device via a first communication protocol; establishing, by the parameter negotiation session component, a parameter negotiation session based on the first request; and transmitting, by the parameter negotiation session component, via the parameter negotiation session, via the first communication protocol. The invention relates to a method for transmitting a second request to a server device, wherein the second request indicates that the server device will provide periodic notification of the value of the first parameter and conditional notification of the value of the second parameter when the second parameter changes from a current state to a new state, and wherein the client device formats a body of the second request using a protocol buffer; the client device periodically receives a first datagram including a current value of the first parameter from the server device via a second communication protocol; based on the server device determining that a state associated with the second parameter has changed from a current state to a new state, the client device receives a second datagram including a value of the second parameter from the server device via the second communication protocol; and the client device uses the current value of the first parameter and the second parameter value to control an operation associated with the client device.

[0008] According to some embodiments, a device may receive a first request from a client device for establishing a parameter negotiation session, wherein the first request is received via a first communication protocol and wherein a body of the first request is defined using a protocol buffer message; establish a parameter negotiation session based on the first request; receive a second request from the client device via the first communication protocol, wherein the second request indicates that the device will periodically provide information indicating a value of a first parameter and that the device will provide information indicating an updated value of the second parameter when a current value of the second parameter changes, and wherein a body of the second request is defined using a protocol buffer; periodically send a first datagram to the client device and via a second communication protocol, the first datagram including information indicating an updated value of the first parameter; determine that the current value of the second parameter has changed; and send a second datagram to the client device and via the second communication protocol, the second datagram including information indicating an updated value of the second parameter based on the changed current value of the second parameter.

[0009] According to some embodiments, a system may include a client device configured to: identify a first parameter to be periodically updated; identify a second parameter to be updated based on a state change associated with the second parameter; send a first request to a server device via a first communication protocol for establishing a parameter negotiation session, wherein a body of the first request is defined using a protocol buffer message, and wherein the parameter negotiation session is established based on the first request; send a second request to the server device via the parameter negotiation session and using the first communication protocol, wherein the second request indicates that the server device will periodically provide information indicating a current value of the first parameter, and that the server device will provide information indicating an updated value of the second parameter when a state of the second parameter changes, and wherein the client device formats the body of the second request using the protocol buffer; periodically receive a first datagram including the current value of the first parameter from the server device and via a second communication protocol; and receive a second datagram including the updated value of the second parameter from the server device and via the second communication protocol based on the server device determining that the state of the second parameter has changed. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] Figure 1 is a diagram of an exemplary system for negotiating and communicating parameter data for a negotiated set of parameters.

[0011] Figure 2 is a diagram showing an example of training a machine learning model.

[0012] Figure 3 is a diagram showing an example of applying a trained machine learning model to new observations.

[0013] Figure 4 A flow chart illustrating an exemplary process for negotiating and receiving parameter data for a negotiated set of parameters.

[0014] Figure 5 A flow chart illustrating an exemplary process for negotiating and communicating parameter data for a negotiated set of parameters. DETAILED DESCRIPTION

[0015] The present invention relates to systems and methods for exchanging parameter data for controlling and / or monitoring the operation of a machine. The term "machine" may refer to any machine that performs operations associated with an industry, such as, for example, mining, construction, agriculture, transportation, or any other industry. As some examples, the machine may be a vehicle, a backhoe loader, a cold planer, a wheel loader, a compactor, a feller buncher, a forestry machine, a forwarder, a harvester, an excavator, an industrial loader, a knuckle loaders, a material handler, a motor grader, a pipelayer, a road reclaimer, a skid steer loader, a skidder, a telehandler, a tractor, a bulldozer, a tractor scraper or other ground equipment, underground equipment, marine equipment, or the like.

[0016] Figure 1 is a diagram of an exemplary system 100 for negotiating and communicating parameter data for a negotiated set of parameters. In some implementations, the system 100 enables dynamic negotiation of a set of parameters to be exchanged directly or indirectly between a consumer and a producer of parameter data for the negotiated set of parameters. Dynamic negotiation of a set of parameters refers to negotiation of a set of parameters to be exchanged between a client device and a server device without having to establish a static set of parameters in advance. In this way, the set of parameters to be exchanged can be updated or changed based on the current needs of the client device.

[0017] like Figure 1 As shown in , system 100 includes client device 102 and server device 104. Client device 102 can be a device that consumes (e.g., utilizes) parameter values ​​to perform functions associated with client device 102. For example, client device 102 can be a display that consumes configuration parameter values ​​to cause a user interface to be displayed. Although the embodiments described herein indicate client device 102 as a consumer of parameter data for a set of parameters, alternatively and / or in addition, client device 102 can act as an agent for a consumer of parameter values. For example, client device 102 can negotiate a set of parameters for a consumer of parameter data for the set of parameters (e.g., a display). Client device 102 can receive parameter data for a set of parameters for negotiation, and can provide the parameter data to the consumer of the parameter data.

[0018] like Figure 1 As shown in , the client device 102 includes an electronic control module (ECM) 106 , a parameter identification and classification (PIC) circuit 108 , a parameter negotiation session (PNS) circuit 110 , and a memory 112 .

[0019] The ECM 106 includes one or more processors configured to control and / or monitor operations associated with the client device 102. To control and / or monitor the operations, the ECM 106 utilizes or consumes one or more parameters. The parameters may include parameters related to temperature, pressure, flow rate, gas consumption, relative positions of components, operator input, signals indicating activation or deactivation of various actuators and / or valves, the geographic location of the machine, other sensed and / or calculated data associated with the operation of the machine, user settings (e.g., the language in which information is displayed, the format used to display the current date and / or time, etc.), and / or other types of parameters.

[0020] However, for some parameters, the ECM 106 may only need to update the parameter immediately when the parameter value changes; such parameters may include, for example, configurable options in a menu screen that the machine operator may not change frequently, or the state of a hardware switch that the operator may occasionally press. For such parameters, the ECM 106 may need to receive and act on their changed values ​​in 250 ms or less to provide an immediate response to the operator. For a typical machine system such as a planer, there may be dozens or hundreds of such parameters, each of which may only change once or perhaps a few times in an eight-hour shift. Periodically transmitting such parameters may require tens of thousands of messages in an eight-hour shift, while transmitting only when they change may require only a small fraction, thereby saving communication bandwidth and processing time on the ECM 106.

[0021] PIC circuit 108 is configured to identify a set of parameters utilized by client device 102. For example, PIC circuit 108 may analyze configuration data stored in memory 112. PIC circuit 108 may determine, based on the analysis, a set of parameters utilized by client device 102. Client device 102 may also act as a proxy for a consumer of parameter data (e.g., another client device, another ECM, etc.), and PIC circuit 108 may determine a set of parameters based on information received from the consumer of parameter data.

[0022] For each parameter, PIC circuit 108 determines whether the parameter is a periodic parameter to be updated at predetermined time intervals or an aperiodic parameter to be updated when a change in the parameter value is detected. A parameter is periodically updated when an update to the data associated with the parameter is sent and / or received when an update period expires. A parameter is aperiodically updated when an update is received only when the data associated with the parameter changes. PIC circuit 108 utilizes machine learning to determine whether updates to the data associated with the parameter are received periodically or when the data associated with the parameter changes as described elsewhere herein.

[0023] In some embodiments, PIC circuit 108 determines whether a parameter is a periodic parameter or a non-periodic parameter based on the frequency at which the parameter value changes. PIC circuit 108 may utilize machine learning to determine whether a parameter is a periodic parameter or a non-periodic parameter. For example, PIC circuit 108 may train a machine learning model based on historical data associated with the parameter to determine whether the parameter is a periodic parameter or a non-periodic parameter based on the frequency at which the parameter value changes. When the frequency at which the parameter value changes meets a threshold frequency, the parameter may be determined to be a periodic parameter.

[0024] The PIC circuit 108 may determine that the parameter is a non-periodic parameter when the parameter value is associated with a state change, such as a change from an open state to a closed state, a change from a first gear to a second gear, a change from a first user setting of a user interface (e.g., the number of columns to be displayed, font size, a format for displaying a date, a format for displaying the current time, etc.) to a second user setting of a user interface, etc.

[0025] PIC circuit 108 forms a first set of parameters and a second set of parameters. The first set of parameters includes one or more parameters determined to be periodic parameters. PIC circuit 108 generates first parameter information for the first set of parameters. The first parameter information includes information identifying an update period and / or information identifying a first port of client device 102. The update period corresponds to a frequency (e.g., every 0.5 ms, every 1.0 ms, every 1.5 ms, and / or another frequency) at which server device 104 is to provide parameter data for the first set of parameters. The first port is a port of client device 102 to which server device 104 sends parameter data for the first set of parameters.

[0026] The second set of parameters includes one or more parameters that are determined to be non-periodic parameters. The PIC circuit 108 determines second parameter information for the second set of parameters. The second information includes information indicating that parameter data for the second set of parameters will not be provided periodically and / or will only be provided when the value of the parameter value and / or the state of the parameter changes. In some embodiments, the second information may additionally include information identifying a second port of the client device 102. The second port is the port of the client device 102 to which the server device 104 sends parameter data for the second set of parameters. The PIC circuit 108 provides the information identifying the first set and the second set of parameters and the first and second parameter information to the PNS circuit 110.

[0027] PNS circuit 110 is configured to receive information identifying the first and second sets of parameters and the first and second parameter information from PIC circuit 108. PNS circuit 110 generates a request message for requesting a negotiation session with server device 104 based on the information received from PIC circuit 108.

[0028] The request message includes information identifying the requested session timeout. The requested session timeout indicates an amount of time for the server device 104 to provide updated parameter data for a negotiated set of parameters (e.g., the first set of parameters and the second set of parameters) to the client device 102. The client device 102 may extend the amount of time for the server device 104 to provide updated parameter data by sending a message to the server device 104 requesting a refresh of the session (e.g., resetting a timer associated with the session timeout) before the amount of time indicated by the session timeout elapses.

[0029] The PNS circuit 110 sends a request message to the server device 104 to request and subsequently establish a negotiation session with the server device 104. In some embodiments, the PNS circuit 110 uses Hypertext Transfer Protocol (HTTP) requests and responses to request and establish the negotiation session. In other embodiments, the PNS circuit 110 uses Extensible Service Oriented Middleware over IP (SOME / IP), Common Industrial Protocol (CIP), etc. to request and establish the negotiation session.

[0030] As described herein, server device 104 comprises a device that performs parameter group communication with a client (e.g., client device 102). Server device 104 and client device 102 may be included in the same or different devices and / or associated with the same or different machines. For example, server 104 and client 102 may be implemented with separate ECMs included in a single physical device, or may be implemented in two different devices. Figure 1 As shown in FIG. 1 , the server device 104 includes a PNS circuit 114 , a parameter update classification (PUC) circuit 116 , a periodic parameter update (PPU) circuit 118 , and a non-periodic parameter update (NPU) circuit 120 .

[0031] The PNS circuit 114 is configured to receive a request to establish a negotiation session from the PNS circuit 110 and establish the requested negotiation session. For example, as described above, the PNS circuit 114 may receive a request message generated by the PNS circuit 110. The PNS circuit 114 determines a set of session timeouts supported by the server based on the received request. The PNS circuit 114 selects a session timeout supported by the server that is closest to the requested session timeout. The PNS circuit 114 sends a response message to the PNS circuit 110 via HTTP or another communication protocol. The body of the response message may include information identifying the session timeouts supported by the server, and a protocol buffer message may be used as a data format. The PNS 110 receives the response message from the PNS 114 and sends a confirmation to the PNS 114 to establish the negotiation session.

[0032] PNS circuit 114 establishes a negotiation session with PNS circuit 110. PNS circuit 110 sends a message to PNS circuit 114 requesting to update parameter data of the first and second sets of parameters. The message may include information identifying the first and second sets of parameters, first parameter information, and / or second parameter information.

[0033] The body of the request message (protocol buffer message) uses a protocol buffer as a data format. A protocol buffer message is a logical record of information, containing a series of one or more fields. Each field includes a name-value pair corresponding to a parameter included in the first or second set of parameters. The name of the name-value pair corresponds to the name or identifier of the parameter. The value of the name-value pair is the type of value associated with the parameter (e.g., an integer value, a floating point value, a Boolean value, a string, raw bytes, an enumeration, another protocol buffer message, etc.). For example, the first set of parameters may include a temperature parameter. The protocol buffer message may include a field "floating point temperature = 1". The value "1" identifies the field as the first field in the protocol buffer message. The value "floating" identifies a floating point value as the value type associated with the parameter with the name "temperature".

[0034] The PNS circuit 114 receives the message via HTTP or another communication protocol and determines whether the server device 104 supports the parameters included in the first set of parameters and the second set of parameters. For example, for each parameter, the PNS circuit 114 determines whether an entity that updates the parameter data is available to provide the updated parameter data. The PNS circuit 114 provides information identifying each parameter supported by the server device 104 to the PNS circuit 110 via HTTP or another communication protocol. The PNS circuit 110 receives the information identifying each parameter supported by the server device 104 and sends an acknowledgment to the PNS circuit 114 via HTTP or another communication protocol to complete the parameter negotiation process.

[0035] The PNS circuit 114 receives the confirmation from the PNS circuit 110 and modifies the first set of parameters and / or the second set of parameters by removing any parameters not supported by the server device 104. The removal of unsupported parameters prevents the negotiation session from being terminated based on the server device 104 being unable to support all requested parameters. In this manner, the removal of unsupported parameters saves computing resources that would otherwise be used to conduct a new negotiation session. The PNS circuit 114 provides information identifying the parameters included in the first set and the second set of parameters to the PUC circuit 116.

[0036] The PUC circuit 116 is configured to classify the parameters included in the first set of parameters as periodic parameters and to classify the parameters included in the second set of parameters as non-periodic parameters. In some embodiments, the PUC circuit 116 includes a classification circuit that classifies the parameters included in the first set of parameters as periodic parameters based on the first parameter information. The classification circuit classifies the parameters included in the second set of parameters as periodic parameters based on the second parameter information. As described elsewhere herein, the PUC circuit 116 can utilize machine learning to classify the parameters.

[0037] PUC circuitry 116 provides information identifying the first set of parameters as periodic parameters to PPU circuitry 118 and provides information identifying the second set of parameters as non-periodic parameters to NPU circuitry 120 .

[0038] The PPU circuit 118 is configured to provide periodic updates of parameter data for the first set of parameters. The updated parameter data may be provided to the client device 102 using a message-based connectionless protocol, such as a user datagram protocol (UDP). The updated parameter data may be included in a UDP message (e.g., a datagram). The data provided in the datagram may be formatted as binary data having a session header and a message body containing the updated parameter data.

[0039] The PPU circuit 118 provides periodic updates for the set of periodic parameters based on the first parameter information. For example, a message received from the client device 102 may include the first parameter information. The PPU circuit 118 may analyze the first parameter information and determine an update period and / or a port of the client device 102 to which the periodic updates are to be sent.

[0040] The PPU circuitry 118 provides periodic updates based on the update cycles supported by the server. The PPU circuitry 118 may identify the update cycle supported by the server from a set of update cycles supported by the server based on the update cycle identified in the message received from the client device 102.

[0041] When the set of server-supported update cycles includes a server-supported update cycle that is the same as the update cycle identified in the message received from the client device 102, the PPU circuit 118 selects the server-supported update cycle. Otherwise, the PPU circuit 118 selects the server-supported update cycle that is closest to the update cycle identified in the message received from the client device 102.

[0042] The PPU circuit 118 periodically sends datagrams including updated parameter values ​​to the port identified in the message received from the client device 102 based on the update cycle identified in the message received from the client device 102 or an update cycle supported by the server (hereinafter referred to as “update cycle”).

[0043] The client device 102 receives the datagram and parses the datagram based on the identifier of the parameter included in the first set of parameters to determine the updated parameter value. The client device 102 stores the updated parameter value in the memory 112.

[0044] The NPU circuit 120 is configured to periodically obtain a current parameter value of a non-periodic parameter from a producer of the non-periodic parameter value and provide the current parameter value to the client device 102. The NPU circuit 120 periodically obtains updated parameter values ​​of the non-periodic parameter and, for each parameter value, determines whether the updated parameter value is different from the current parameter value. When the updated parameter value is different from the current parameter value, the NPU circuit 120 generates a UDP message (e.g., a datagram) including the updated parameter value and sends the datagram to the port of the client device 102 identified in the second parameter information. The NPU circuit 120 stores the updated parameter value as the current parameter value of the parameter and repeats the process using the stored updated parameter value as the current parameter value. When the updated parameter is the same as the current parameter value, the NPU circuit 120 discards the updated parameter value and does not provide the updated parameter value to the client device 102.

[0045] The client device 102 receives the updated parameter value at the port and parses the datagram to determine the updated parameter value. The client device 102 stores the updated parameter value in the memory 112. The ECM 106 retrieves the updated parameter value from the memory 112 and utilizes the updated parameter value and / or provides the updated parameter value to another device to control the operation of the machine.

[0046] Figure 2 200. The machine learning model is trained using a set of observations, as indicated by reference numeral 205. As described elsewhere herein, the set of observations is obtained and / or input from historical data (such as, for example, data obtained by the PIC circuit 108).

[0047] As shown in reference numeral 210, a feature set is derived from the set of observations. The feature set includes a set of variable types, called features. A particular observation includes a set of variable values ​​corresponding to the set of variable types. A set of variable or feature values ​​is specific to an observation. The machine learning system determines the variable values ​​for a particular observation based on input received from the PIC circuit 108.

[0048] As an example, a feature set for a set of observations includes a first feature of a parameter ID as an example (e.g., an identifier associated with a parameter), a second feature of a value range (e.g., a range of values ​​that a parameter value can fall into), a third feature of a value change frequency (e.g., the frequency with which the parameter value changes), and so on. As shown, for the first observation, the first feature has a value of vehicle speed, the second feature has a value of 0MPH-25MPH, the third feature has a value every 1.2 seconds (on average), and so on. These features and feature values ​​are provided as examples only and may be different in other examples. For example, a feature set may include the state of a parameter, the value type of a parameter value (e.g., an integer value, a floating point value, a string, etc.).

[0049] As indicated by reference numeral 215, the set of observations is associated with a target variable type. The target variable type may represent a variable having a numeric value (e.g., an integer value, a floating point value, etc.), a variable having a numeric value that falls within a range of values ​​or has some discrete possible values, a variable that can be selected from one of a plurality of options (e.g., one of a plurality of classes, classifications, labels, etc.), a variable having a Boolean value (e.g., 0 or 1, true or false, yes or no), etc. The target variable type may be associated with a target variable value that is specific to the observation.

[0050] The target variable represents the value that the machine learning model is being trained to predict, and the feature set represents the variables that are input to the trained machine learning model to predict the value of the target variable. The set of observations can include the target variable value, so that the machine learning model can be trained to identify the pattern in the feature set that leads to the target variable value. The machine learning model trained to predict the target variable value can be referred to as a supervised learning model, a prediction model, etc. When the target variable type is associated with a continuous target variable value (e.g., a numeric range, etc.), the machine learning model can use regression techniques. When the target variable type is associated with a categorical target variable value (e.g., a class, a label, etc.), the machine learning model can use classification techniques.

[0051] The machine learning model may be an unsupervised trained model trained on a set of observations that does not include the target variable (or includes the target variable but the machine learning model is not executed to predict the target variable). In this case, the machine learning model learns patterns from a set of observations without labels or supervision and provides outputs indicative of such patterns, such as by using clustering and / or association techniques to identify groups of related items in a set of observations.

[0052] As further shown, the machine learning system divides the set of observations into a training set 220, which includes a first subset of observations, and a test set 225, which includes a second subset of observations. The training set 220 is used to train (e.g., fit, adjust, etc.) the machine learning model, and the test set 225 is used to evaluate the machine learning model trained using the training set 220. For example, for supervised learning, the training set 220 can be used for initial model training using the first subset of observations, and the test set 225 can be used to test whether the trained model accurately predicts the target variable in the second subset of observations.

[0053] As shown in reference numeral 230, the machine learning system trains the machine learning model using the training set 220. The training includes executing the machine learning algorithm by the machine learning system to determine a set of model parameters based on the training set 220. The model parameters may include properties of the machine learning model learned from the data input to the model (e.g., the training set 220). For example, for a regression algorithm, the model parameters may include regression coefficients (e.g., weights). As an example, for a decision tree algorithm, the model parameters may include decision tree split positions.

[0054] As shown at 235, the machine learning system tunes the machine learning model using one or more hyperparameter sets 240. Hyperparameters include structural parameters that control the machine learning system's execution of the machine learning algorithm, such as constraints applied to the machine learning algorithm (e.g., constraints that check the size or magnitude of weights used in a neural network and scale the weights to keep the weights below a predefined threshold).

[0055] To train the machine learning model, the machine learning system uses the training set 220 to identify a set of machine learning algorithms to train the machine learning model. The machine learning system uses one or more hyperparameter sets 240 to tune each machine learning algorithm. The machine learning system can use a specific machine learning algorithm and a corresponding hyperparameter set 240 to train a specific machine learning model.

[0056] The machine learning system then tests the machine learning model using the test set 225 to generate a performance score, such as mean squared error (e.g., for regression), mean absolute error (e.g., for regression), area under a receiver operating characteristic curve (e.g., for classification), etc. If the machine learning model performs adequately (e.g., has a performance score that meets a threshold), the machine learning system stores the machine learning model as a trained machine learning model 245 for use in analyzing new observations, as described below in conjunction with Figure 3 described.

[0057] Figure 3 300 is a diagram showing an example of applying a trained machine learning model to a new observation. A new observation is input to a machine learning system that stores a trained machine learning model 305.

[0058] As shown in the reference numeral 310, the machine learning system receives a new observation (or a set of new observations) and inputs the new observation to the machine learning model 305. As shown, as an example, the new observation includes a first feature of a parameter ID (e.g., an identifier associated with a parameter), a second feature of a value range (e.g., a range of values ​​that a parameter value may fall into), a third feature of a value change frequency (e.g., the frequency of parameter value changes), and the like. The machine learning system applies the trained machine learning model 305 to the new observation to generate an output (e.g., a result). The type of output may depend on the type of machine learning model and / or the type of machine learning task being performed. For example, such as when supervised learning is used, the output may include a predicted (e.g., estimated) value of a target variable (e.g., a value within a continuous value range, a discrete value, a label, a class, a classification, etc.). Such as when unsupervised learning is used, the output may include information identifying the cluster to which the new observation belongs, information indicating the degree of similarity between the new observation and one or more previous observations (e.g., it may have previously been a new observation input to the machine learning model and / or an observation used to train the machine learning model), and the like.

[0059] The trained machine learning model 305 predicts the value of the periodic parameter or the non-periodic parameter of the target variable for the new observation, as shown in reference numeral 315. The trained machine learning model 305 can classify (e.g., cluster) the periodic parameters of the new observation in periodic clusters, as shown in reference numeral 320.

[0060] In this way, the machine learning system can apply a rigorous and automated process to identify and classify parameters as periodic parameters or non-periodic parameters. The machine learning system enables the identification and / or identification of potentially thousands of features and / or feature values ​​for thousands of observations. The mapping of features, feature values, and observations improves the accuracy and consistency of identifying and classifying parameters, thereby saving valuable computing resources that would otherwise be required to manually perform thousands of operator identification and classification of parameters using features or feature values.

[0061] Figure 4 is a flow chart of an exemplary process 400 for negotiating and transmitting parameter data for a negotiated set of parameters. Figure 4 One or more processing blocks of may be performed by a client device (eg, client device 102).

[0062] like Figure 4 As shown in , as described above, process 400 may include that the client device 102 may determine a set of parameters associated with controlling operations associated with the client device at block 405 .

[0063] As described above, the client device 102 may determine at block 410 that a first parameter in the set of parameters is to be periodically updated.

[0064] As described above, the client device 102 may determine to update a second parameter in the parameter set based on a state change associated with the second parameter at block 415. The first parameter and the second parameter may be associated with measured or calculated data related to operations associated with the client device 102.

[0065] As described above, the client device 102 may utilize a protocol buffer message to define the body of a first request for establishing a parameter negotiation session at block 420. In some implementations, the first request includes information identifying a request session timeout associated with the parameter negotiation session.

[0066] At block 425, as described above, client device 102 may send a first request via a first communication protocol to server device 104. In some implementations, client device 102 may receive information from server device 104 indicating a session timeout indicated supported by the server based on the request session timeout determination.

[0067] At block 430 , the client device 102 may establish a parameter negotiation session based on the first request, as described above.

[0068] As described above, the client device 102 may send a second request to the server device via the first communication protocol at block 420. The second request indicates that the server device 104 will provide periodic notifications of the first parameter value and conditional notifications of the second parameter value when the second parameter changes from a current state to a new state. The client device 102 formats the body of the second request using protocol buffers. The client device 102 may receive information from the server device 104 indicating that the server device 104 is capable of supporting the second request.

[0069] At block 440 , the client device 102 may periodically receive, from the server device 104 and via the second communication protocol, a first datagram including a current value of the first parameter, as described above.

[0070] At block 445 , client device 102 may receive a second datagram including a second parameter value from server device 104 via a second communication protocol based on the server device determining that the state associated with the second parameter has changed from the current state to the new state, as described above.

[0071] The second request includes a destination address of the client device 102, and the client device 102 receives the second datagram at the destination address. The second request may also include information identifying a UDP port, and the client device 102 may receive the second datagram at the UDP port. The client device 102 may receive a third datagram including an updated value of the third parameter from the server device 104 based on the server device determining a state change associated with the third parameter.

[0072] At block 450 , the client device 102 may utilize the current value of the first parameter and the second parameter value to control the operation of a machine or a machine component, as described above.

[0073] Figure 5 is a flow chart of an exemplary process 500 for negotiating and transmitting parameter data for a negotiated set of parameters. Figure 5 One or more processing blocks of may be performed by a server device (eg, server device 104).

[0074] like Figure 5 As shown in, as described above, at block 510, the server device 104 may receive a first request for establishing a parameter negotiation session from the client device 102. The first request is received via a first communication protocol, and the body of the first request is defined using a protocol buffer message. The first request includes information indicating a requested session timeout for the parameter negotiation session.

[0075] As described above, server device 104 may establish a parameter negotiation session based on the first request at block 520. Server device 104 sends information to client device 102 via the first communication protocol indicating that server device 104 can support the parameter negotiation session, and the parameter negotiation session is established based on server device 104 sending the information to server device 104.

[0076] At block 530, server device 104 may receive a second request from client device 102 via the first communication protocol, as described above. The second request indicates that server device 104 will periodically provide information indicating a value of the first parameter, and will provide information indicating an updated value of the second parameter when the current value of the second parameter changes.

[0077] The body of the second request is defined using protocol buffers.Server device 104 may determine that the first parameter and the second parameter are included in a set of parameters supported by server device 104 and may send information identifying the set of parameters to client device 102.

[0078] As described above, the server device 104 may periodically send a first datagram including information indicating an updated value of the first parameter to the client device 102 and via the second communication protocol at block 540. In some implementations, the server device 104 may periodically send the first datagram based on determining that the first parameter is included in a parameter group supported by the server device 104.

[0079] At block 550 , server device 104 may determine that the current value of the second parameter has changed, as described above.

[0080] As described above, the server device 104 may send a second datagram to the client device 102 and via the second communication protocol based on the change in the current value of the second parameter at block 560, the second datagram including information indicating an updated value of the second parameter. In some implementations, the server device 104 sends the second datagram further based on determining that the second parameter is included in a parameter group supported by the server device 104. The second request may include information identifying a UDP port associated with the client device 102, and the server device 104 may send the second datagram to the UDP port.

[0081] Industrial Applicability

[0082] Implementations described herein may provide increased efficiency, adaptability, and reliability in the exchange of parameter data associated with parameters used to control and / or monitor the functionality of a machine and / or components of a machine.

[0083] Machine components such as ECUs and / or other devices that rely on accurate and timely input and updates of various forms of sensory data may benefit from the ability of the system 100 to dynamically negotiate exactly which parameters are needed at any particular time. By sending request and response messages between a server associated with a producer and a client associated with a consumer via HTTP, dynamic negotiation between a consumer and producer of parameter data for a set of parameters can be performed quickly, spontaneously, and with minimal required bandwidth.

[0084] The use of HTTP also ensures that the disclosed system will provide backward compatibility between client devices and server devices associated with consumers and producers of parameter data for a set of parameters when new machines are added to the system, new machine components are added to a machine, and / or existing machines or existing machine components are repaired and / or updated.

[0085] Request and response messages exchanged between a client device and a server device via HTTP during initial negotiations to determine exactly what parameters are to be included in a parameter group transfer may also be constructed using protocol buffer messages in the bodies of the request and response messages.

[0086] By utilizing protocol buffer messages, the size of request and response messages can be reduced relative to using extensible markup language (XML). The reduction in message size can save computing resources (e.g., processing resources, memory resources, communication resources, etc.). In addition, the data structure of the protocol buffer message can be changed without affecting the compatibility of deployed programs or applications compiled for the previous format of the data structure. Therefore, the costs associated with updating the deployed program or application based on the update of the format of the data structure can be reduced.

[0087] After negotiation results in identification of parameter data for specific parameters to be exchanged in one or more sets of parameters, updated parameter data associated with the negotiated parameters may be sent to the client device using UDP messages, thereby significantly improving the efficiency and timeliness of updates.

[0088] By utilizing UDP for data transfer of updated parameter data without establishing a TCP connection between the client device and the server device, messages with updated parameter data can be efficiently exchanged using a message-based connectionless protocol that does not require a handshake dialogue to ensure reliability, ordering, or data integrity. Using UDP, messages (e.g., datagrams) can be sent to other devices on an Internet Protocol (IP) network without prior communication to establish a special transmission channel or data path. In this way, after dynamically establishing one or more negotiated sets of parameters to be exchanged between the client device and the server device via HTTP, updates to the parameter data for the negotiated parameters can be efficiently and quickly transmitted to the client.

[0089] The foregoing disclosure provides illustration and description, but is not intended to be exhaustive or to limit the embodiments to the precise forms disclosed. Modifications and variations may be made in light of the above disclosure or may be acquired from the practice of the embodiments. This specification is intended to be considered as examples only, with the true scope of the invention being indicated by the appended claims and their equivalents. Even though specific combinations of features are recited in the claims and / or disclosed in the specification, these combinations are not intended to limit the disclosure of the various embodiments. Although each dependent claim listed below may directly depend on only one claim, the disclosure of the various embodiments includes each dependent claim in combination with each other claim in the claim set.

Claims

1. A method for transmitting parameters based on changes, comprising: determining, by a parameter classification component of a client device, a set of parameters associated with controlling an operation associated with the client device; Determining, by the parameter classification component, that a first parameter in the set of parameters is to be periodically updated; determining, by the parameter classification component, that a second parameter in the set of parameters is to be updated based on a change in state associated with the second parameter; The parameter negotiation session component of the client device defines a body of a first request for establishing a parameter negotiation session using a protocol buffer; The parameter negotiation session component sends the first request to the server device via a first communication protocol; The parameter negotiation session component establishes the parameter negotiation session based on the first request; The parameter negotiation session component sends a second request to the server device via the parameter negotiation session and via the first communication protocol; wherein the second request indicates that the server device will provide periodic notification of the value of the first parameter and conditional notification of the value of the second parameter when the second parameter changes from a current state to a new state, and wherein the client device formats the body of the second request using the protocol buffer; periodically receiving, by the client device, from the server device via a second communication protocol, a first datagram including a current value of the first parameter; receiving, by the client device from the server device and via the second communication protocol, a second datagram including the value of the second parameter based on the server device determining that the state associated with the second parameter has changed from the current state to the new state; and The current value of the first parameter and the value of the second parameter are utilized by the client device to control an operation associated with the client device.

2. The method according to claim 1, wherein: The first parameter and the second parameter are associated with measured or calculated data related to operation of the machine.

3. The method according to any one of claims 1 to 2, wherein: The first request includes information identifying a request session timeout associated with the parameter negotiation session; as well as Wherein, the method further comprises: Information is received from the server device indicating a server-supported session timeout determined based on the requested session timeout.

4. The method according to any one of claims 1 to 3, further comprising: Information is received from the server device indicating that the server device is capable of supporting the second request.

5. The method according to any one of claims 1 to 4, further comprising: receiving, from the server device and based on the second request, information identifying a set of parameters, wherein the set of parameters includes the second parameter and the third parameter; and Wherein, the method further comprises: Based on the server device determining a change in state associated with the third parameter, a third datagram including an updated value for the third parameter is received.

6. The method according to any one of claims 1 to 5, wherein: the second request comprising a destination address of the client device; as well as Wherein, receiving the second datagram comprises: The second datagram is received at the destination address.

7. The method according to any one of claims 1 to 6, wherein: The second request includes information identifying a User Datagram Protocol port associated with the client device; as well as Wherein, receiving the second datagram comprises: The second datagram is received at the User Datagram Protocol port.

8. An apparatus for transmitting a parameter based on a change, comprising: one or more memories; as well as one or more processors, communicatively coupled to the one or more memories, configured to: receiving a first request from a client device to establish a parameter negotiation session, wherein the first request is received via a first communication protocol, and wherein the body of the first request is defined using a protocol buffer; establishing the parameter negotiation session based on the first request; receiving, via the first communication protocol, a second request from the client device, wherein the second request indicates that the device will periodically provide information indicating a value of the first parameter, and that the device will provide information indicating an updated value of the second parameter when a current value of the second parameter changes, and wherein the body of the second request is defined using the protocol buffer; periodically sending, to the client device and via a second communication protocol, a first datagram including information indicating an updated value of the first parameter; determining that the current value of the second parameter has changed; and A second datagram is sent to the client device via the second communication protocol, the second datagram including information indicating the updated value of the second parameter based on the current value of the second parameter change.

9. The device according to claim 8, wherein: The one or more processors are further configured to: determining that the second parameter is included in a set of parameters supported by the device, Wherein, based on the second parameter being included in the set of parameters, the second datagram is sent to the client device.

10. The device according to any one of claims 8-9, wherein: The second request includes information identifying a User Datagram Protocol port associated with the client device, and Wherein, the one or more processors are further used for, when sending the second datagram: The second datagram is sent to the User Datagram Protocol port.

Citation Information

Patent Citations

  • Changing operation parameter of communication terminal

    US7546119B2

  • Method for acquiring parameter information of equipment, equipment network management device and system, electronic device and storage medium

    CN109495303A

  • Changing cache ownership in clustered multiprocessor

    US20160283374A1