Method and system for automatic calibration of a vibration sensor

By combining a high-frequency standard vibration table and a cloud server, vibration data is automatically collected and processed, and compensation parameters are calculated. This solves the shortcomings of manual calibration in existing technologies, realizes automated calibration of vibration sensors, and improves calibration efficiency and accuracy.

CN115638868BActive Publication Date: 2026-02-06SUZHOU JIEJIE SENSOR TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210800529.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-07-08
Publication Date
2026-02-06
Estimated Expiration
2042-07-08

AI Technical Summary

Technical Problem

Current vibration sensor calibration relies on the accuracy of standard sensors, requiring manual readings and calculations, and cannot be automated.

Method used

By combining a high-frequency standard vibration table, vibration table control software, automatic calibration control software, and a cloud server, vibration data is automatically collected and processed, compensation parameters are calculated, and sent to the sensor to be calibrated, thus achieving automatic calibration.

Benefits of technology

It enables automated calibration of vibration sensors, avoiding manual data entry and calculation, and improving calibration efficiency and accuracy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115638868B_ABST
    Figure CN115638868B_ABST
Patent Text Reader

Abstract

The application provides an automatic calibration method and system of a new type of vibration sensor, wherein the method comprises the following steps: installing a vibration sensor to be calibrated on a table body of a high-frequency calibration vibration table; controlling the high-frequency standard vibration table to vibrate at a set vibration frequency and amplitude; uploading vibration data of the vibration sensor to be calibrated to a cloud server; collecting the vibration data by an automatic calibration control software through the cloud server, processing the vibration data, calculating compensation parameters, and delivering the compensation parameters to the vibration sensor to be calibrated. The automatic calibration control software acquires the vibration data from the cloud server, processes the vibration data, calculates the compensation parameters, and then delivers the compensation parameters to the vibration sensor to be calibrated, so that automatic calibration of the vibration sensor can be realized, manual reading and calculation are avoided, and calibration efficiency and accuracy are improved.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to sensor calibration technology, in particular to an automatic calibration method and system of a vibration sensor. BACKGROUND

[0002] The vibration sensor is used for testing the vibration signal of a test piece in a mechanical environment test or measuring the vibration signal of a test piece in other vibration environments. Before the vibration sensor is used, it needs to be inspected, and after the verification period is exceeded, it needs to be calibrated to ensure the accuracy of the vibration sensor.

[0003] The existing vibration sensor inspection and calibration usually adopts a comparison method, mainly by means of a signal generator, a power amplifier, a vibration table, a standard sensor, a signal adapter, a voltmeter and other components. A fixed-frequency sinusoidal signal is output by the signal generator, the vibration table is excited to work through the power amplifier, the standard sensor and the calibrated sensor installed on the vibration table in a back-to-back manner collect vibration signals, and the vibration signals are output to the voltmeter through the signal adapter. Then, the calibration personnel read the voltage value, and the sensitivity of the calibrated sensor is calculated by using the comparison formula, so as to inspect and calibrate the calibrated sensor. This calibration method depends on the accuracy of the standard sensor, and manual reading and calculation are required, and automatic calibration cannot be realized. SUMMARY

[0004] The present application aims to provide an automatic calibration method and system of a vibration sensor, which can reduce manual calculation and realize automatic calibration.

[0005] The following gives a brief summary of one or more aspects to provide a basic understanding of these aspects. This summary is not an exhaustive overview of all contemplated aspects, and neither is it intended to identify key or critical elements of all aspects nor to delineate the scope of any or all aspects. Its only purpose is to present some concepts of one or more aspects in a simplified form, as a prelude to the more detailed description given later.

[0006] According to an aspect of the present application, an automatic calibration method of a vibration sensor is provided, comprising the following steps:

[0007] S1, starting a vibration table control software and connecting a vibration table;

[0008] S2, selecting a sensor type, inputting a sensor number, and initializing calibration parameters;

[0009] S3, clicking a start test button;

[0010] S4, uploading the sensor number and the initial calibration parameters to the cloud;

[0011] S5, the cloud receives the corresponding information, and the initial calibration parameter is sent to the corresponding sensor;

[0012] S6, the vibration table control software opens the corresponding A file according to the sensor type;

[0013] S7, start the test;

[0014] S8, control the vibration table to collect N frequencies F1, F2……F n corresponding to the vibration value A1, A2……A n , generate a timestamp according to the vibration table frequency and save it to the local;

[0015] S9, the test is over, and the current test is exited;

[0016] S10, obtain the corresponding sensor data according to the stored timestamp;

[0017] S11, calculate the amplitude compensation parameter k0, k1……k m according to the formula

[0018]

[0019] ;

[0020] S12, upload the amplitude compensation parameter to the cloud;

[0021] S13, the cloud receives the corresponding information, and the amplitude compensation parameter is sent to the corresponding sensor;

[0022] S14, the vibration table control software opens the corresponding B file according to the sensor type;

[0023] S15, start the test;

[0024] S16, control the vibration table to collect M frequencies P1, P2……P m corresponding to the vibration value B1, B2……B m , generate a timestamp according to the vibration table frequency and save it to the local;

[0025] S17, the test is over, and the current test is exited;

[0026] S18, obtain the corresponding sensor data according to the stored timestamp;

[0027] S19, judge whether the error range of B1, B2……B m and B is within ±d% and whether the acceleration error, velocity error and displacement error meet the standard value;

[0028] S191, if yes, the calibration is completed, and a corresponding report is generated;

[0029] S192, No, return to S11, recalculate the amplitude compensation parameter.

[0030] In an embodiment, the S1 comprises: starting CalibExpert by jacob calling ActiveX file, CalibExpert connecting the vibration table, then acquiring the connection state of CalibExpert and the vibration table through the ActiveX file, and ensuring that CalibExpert is successfully connected with the vibration table.

[0031] In an embodiment, in the steps of S4 and S12, the sensor uploads data to the gateway, the gateway sends the data to the cloud in a transparent manner, and the cloud parses and stores the data into the server after receiving the data.

[0032] In an embodiment, in the steps of S5 and S13, after the cloud receives the sensor number and the coefficient to be issued, the cloud queries the isSetParam field in the t_zdt table in the database, if the data is 1, it indicates that the sensor needs to issue the coefficient, if the coefficient needs to be issued, the calibration parameter is issued through the command, the sensor receives the modification coefficient command, the sensor starts to modify the coefficient, and returns ACK to the cloud after the modification is completed, the cloud modifies the data in the isSetParam field in the t_zdt table in the database to 0 after receiving the ACK returned by the sensor, indicating that the sensor coefficient issuing is successful.

[0033] In an embodiment, after the steps of S5 and S13, the method further comprises: the PC directly accesses the isSetParam field in the t_zdt table in the database, and if the data is 0, it is considered that the cloud successfully issues the data to the corresponding sensor.

[0034] In an embodiment, after the steps of S4 and S12, the method further comprises: transmitting the ID number of the sensor to the cloud, and the cloud returns the data uploaded by the sensor in the first time period; if the data is empty, it is considered that the sensor has not uploaded the data to the cloud, and the reason needs to be checked to ensure that the sensor data can be uploaded to the cloud; if the data is not empty, it is considered that the sensor data is successfully uploaded to the cloud.

[0035] In an embodiment, in the step of S19: it is judged whether the acceleration error is less than ±1%, whether the speed error is less than ±1%, and whether the displacement error is less than ±2%.

[0036] In an embodiment, in the S6 and S14 steps, the method for opening the test file is that the pc end sends a command: Variant OpenTest = Dispatch.call(ds, "OpenTest", "the path of the test file to be opened"); tells CalibExpert the test file to be opened, waits for a second time period, and then receives the return value of the state of the test file opened by CalibExpert through int openTestResult = OpenTest.getint(); if the return value is 0, it indicates that the test file is opened successfully; if the return value is -1, it indicates that the test file fails to be opened.

[0037] According to another aspect of the present application, there is provided an automatic calibration system for performing any of the above-mentioned methods, comprising:

[0038] a high-frequency standard vibration table;

[0039] a vibration sensor to be calibrated, installed on the vibration table body of the high-frequency standard vibration table;

[0040] vibration table control software for controlling the vibration frequency and amplitude of the high-frequency standard vibration table;

[0041] automatic calibration control software for processing the vibration data and calculating compensation coefficients; and

[0042] a cloud server for receiving the vibration data of the vibration sensor to be calibrated and issuing the compensation coefficients of the automatic calibration control software to the vibration sensor to be calibrated.

[0043] The beneficial effects of the embodiments of the present application are that the automatic calibration control software obtains the vibration data from the cloud server, processes the vibration data and calculates the compensation coefficients, and then issues the compensation coefficients to the vibration sensor to be calibrated, so that the automatic calibration of the vibration sensor can be realized, manual input and calculation are avoided, and the calibration efficiency and accuracy are improved. BRIEF DESCRIPTION OF DRAWINGS

[0044] In order to more clearly illustrate the technical solutions of the embodiments of the present application, the following will briefly introduce the drawings needed to be used in the embodiments. It should be understood that the following drawings only show some embodiments of the present application, and therefore should not be regarded as a limitation on the scope. For those skilled in the art, other related drawings can also be obtained without creative labor.

[0045] The above features and advantages of the present application can be better understood after reading the detailed description of the embodiments of the present application in conjunction with the following drawings. In the drawings, the components are not necessarily drawn to scale, and components having similar related properties or features can have the same or similar reference numerals.

[0046] Figure 1 is a vibration table opening flowchart of the embodiment of the present application;

[0047] Figure 2 is a sensor information and data uploading confirmation flowchart of the embodiment of the present application;

[0048] Figure 3 is a sensor data uploading through a gateway flowchart of the embodiment of the present application;

[0049] Figure 4 is a sensor coefficient modification flowchart of the embodiment of the present application;

[0050] Figure 5 is a coefficient uploading flowchart of the embodiment of the present application;

[0051] Figure 6 is a coefficient modification confirmation flowchart of the embodiment of the present application;

[0052] Figure 7 is a fitting coefficient uploading flowchart of the embodiment of the present application;

[0053] Figure 8 is a total method flowchart of the embodiment of the present application;

[0054] Figure 9 is a system architecture schematic diagram of the embodiment of the present application;

[0055] Figure 10 is a system software operation interface schematic diagram of the embodiment of the present application. DETAILED DESCRIPTION

[0056] The present application will be described in detail below in conjunction with the drawings and specific embodiments. Note that the aspects described below in conjunction with the drawings and specific embodiments are only exemplary and should not be understood as limiting the scope of protection of the present application in any way.

[0057] As shown in Figures 1-8 , the present application provides an automatic calibration method of a vibration sensor, comprising the following steps:

[0058] S1, start the vibration table control software and connect the vibration table;

[0059] S2, select the sensor type, input the sensor number, and initialize the calibration parameters;

[0060] S3, click the start test button;

[0061] S4, upload the sensor number and initial calibration parameters to the cloud;

[0062] S5, after the cloud receives the corresponding information, the initial calibration parameters are sent to the corresponding sensor;

[0063] S6, the vibration table control software opens the corresponding A file according to the sensor type;

[0064] S7, start the test;

[0065] S8, control the vibration table to collect N frequencies F1, F2……F n corresponding to the vibration value A1, A2……A n , generate a timestamp according to the vibration table frequency and save it to the local;

[0066] S9, the test is over, exit the current test;

[0067] S10, obtain the corresponding sensor data according to the stored timestamp;

[0068] S11, calculate the amplitude compensation parameters k0, k1……k

[0069]

[0070] according to the formula m ;

[0071] S12, upload the amplitude compensation parameters to the cloud;

[0072] S13, after the cloud receives the corresponding information, the amplitude compensation parameters are sent to the corresponding sensor;

[0073] S14, the vibration table control software opens the corresponding B file according to the sensor type;

[0074] S15, start the test;

[0075] S16, control the vibration table to collect M frequencies P1, P2……P m corresponding to the vibration value B1, B2……B m , generate a timestamp according to the vibration table frequency and save it to the local;

[0076] S17, the test is over, exit the current test;

[0077] S18, obtain the corresponding sensor data according to the stored timestamp;

[0078] S19, judge whether the error range of B1, B2……B m and B is within ±d% and whether the acceleration error, velocity error and displacement error meet the standard value;

[0079] S191, if so, the calibration is completed, and a corresponding report is generated;

[0080] S192, if no, return to S11, recalculate the amplitude compensation parameter.

[0081] In possible embodiments, S1 comprises: starting CalibExpert by calling ActiveX file jacob, CalibExpert connects the vibration table, and then the connection state of CalibExpert and the vibration table is obtained through the ActiveX file to ensure that CalibExpert and the vibration table are successfully connected.

[0082] In possible embodiments, in steps S4 and S12, the sensor uploads data to the gateway, the gateway sends the data to the cloud in a transparent manner, and the cloud parses and stores the data into the server after receiving the data.

[0083] In possible embodiments, in steps S5 and S13, after the cloud receives the sensor number and the coefficient to be issued, the isSetParam field in the t_zdt table in the database is queried to determine whether the sensor needs to issue the coefficient. If the data is 1, it indicates that the sensor needs to issue the coefficient. If the coefficient needs to be issued, the calibration parameter is issued through a command. The sensor receives the modification coefficient command, and the sensor starts to modify the coefficient. After the modification is completed, an ACK is returned to the cloud. After the cloud receives the ACK returned by the sensor, the data in the isSetParam field in the t_zdt table in the database is modified to 0, indicating that the sensor coefficient issuing is successful.

[0084] In possible embodiments, after steps S5 and S13, the method further comprises: the PC directly accesses the isSetParam field in the t_zdt table in the database. If the data is 0, it is considered that the cloud has issued the coefficient to the corresponding sensor, and the sensor has successfully modified the coefficient.

[0085] In possible embodiments, after step S4 and S12, the method further comprises: transmitting the ID number of the sensor to the cloud, and the cloud returns the data uploaded by the sensor in the first time period (for example, 1 minute); if the data is empty, it is considered that the sensor has not uploaded the data to the cloud, and the reason needs to be checked to ensure that the sensor data can be uploaded to the cloud; if the data is not empty, it is considered that the sensor data has been successfully uploaded to the cloud.

[0086] In possible embodiments, S19 specifically comprises: determining whether the acceleration error is less than ±1%, whether the speed error is less than ±1%, and whether the displacement error is less than ±2%.

[0087] A file, B file, which is prescribed in the corresponding test project. In possible embodiments, the method of opening the test file is: the PC sends a command: Variant OpenTest = Dispatch. call (ds, "OpenTest", "the path of the test file to be opened"); tells CalibExpert the test file to be opened, waits for a second period of time (for example, 8s), and then receives the return value of CalibExpert opening the test file state through int openTestResult = OpenTest. getlnt ().

[0088] The following describes the specific command interaction process:

[0089] The method for determining whether CalibExpert is successfully connected to the vibration table is: the PC directly starts the sensor calibration software through the ActiveX interface, and the PC sends a command: Variant appState = Dispatch. get (ds, "AppState"); to obtain the connection state of CalibExpert and the vibration table, and then receives the return value of CalibExpert and the vibration table connection state through int state = appState. getlnt ():

[0090] 0: indicates success;

[0091] -1: indicates that it is not connected to the instrument;

[0092] -2: indicates that the password is incorrect;

[0093] After confirming that CalibExpert is connected to the vibration table, the start state needs to be judged before starting the vibration table. Only when the start state is 0, the operation can be performed.

[0094] The method for obtaining the current test type of the vibration table is: the PC sends a command: Variant testType = Dispatch. get (ds, "TestType"); to obtain the connection state of CalibExpert and the vibration table, and then receives the return value of the current test type of the vibration table through int testTypeCondition = testType. getlnt ():

[0095] 2: indicates an acceleration sensor calibration test

[0096] 3: indicates a speed sensor calibration test

[0097] 4: indicates a vibration meter calibration test

[0098] 5: indicates displacement sensor calibration test

[0099] 0: indicates that no test is performed

[0100] Method for opening saved test file: PC sends command Variant OpenTest = Dispatch. call (ds, "OpenTest", "test file path to be opened"); tells CalibExpert the test file to be opened, waits for 8s, and then receives CalibExpert's return value of the test file opening status by int openTestResult = OpenTest. getInt ().

[0101] 0: indicates that the test file is opened successfully

[0102] -1: indicates that the test file fails to be opened

[0103] Method for saving the current test: PC sends command Variant saveTest = Dispatch. call (ds, "bstrFileName", "test file name to be saved"); tells CalibExpert the test file name to be saved, waits for 8s, and then receives CalibExpert's return value of the test file saving status by int saveTestResult = saveTest. getInt ().

[0104] 0: indicates that the test file is saved successfully

[0105] -1: indicates that the test file fails to be saved

[0106] Method for obtaining the current test running status: PC sends command Variant runStatus = Dispatch. get (ds, "RunStatus"); obtains the current test status, and then receives the current test running status return value by int runStatusCondition = runStatus. getInt ().

[0107] -1: indicates that the current test running status is unknown

[0108] 0: indicates idle

[0109] 1: indicates that the current test is being initialized

[0110] 3: indicates that the test noise is being measured

[0111] 7: indicates that the current test is running

[0112] 8: indicates that the current test is suspended

[0113] 11: indicates that the current test is ended

[0114] 12: indicates that the current test is interrupted

[0115] Method for stopping the current test: the PC end acquires the running state of the current test, when runStatusCondition!= 0 or runStatusCondition!= 12 or runStatusCondition!= 1, the PC end tells CalibExpert to stop the current test by sending the command: Dispatch.callSub(ds, "StopTest"); CalibExpert stops the current test after receiving the instruction, and waits for 3-5s before acquiring the current test state, when runStatusCondition = 0 or runStatusCondition = 11, it indicates that the current test has been stopped.

[0116] Method for exiting the current test: the PC end acquires the running state of the current test, when runStatusCondition!= 0 or runStatusCondition!= 12, the PC end stops the current test, and confirms that the current test is stopped, and then the PC end tells CalibExpert to exit the current test by sending the command: Dispatch.callSub(ds, "CloseTest").

[0117] Method for confirming whether the current test is exited successfully: the PC end tells CalibExpert to exit the current test by sending the command: Dispatch.callSub(ds, "CloseTest"). After waiting for 3-5s, the current test type is acquired, if testTypeCondition = 0, it indicates that the current test is exited successfully.

[0118] Method for the PC end to control CalibExpert to reconnect the console: when state!= 0, it indicates that CalibExpert fails to connect the vibration table and needs to be reconnected, the PC end tells CalibExpert to try to reconnect the vibration table by sending the command: Dispatch.callSub(ds, "Reconnect").

[0119] Method for CalibExpert to reconnect the console successfully: after the PC end sends the command for CalibExpert to reconnect the vibration table, it waits for 3-5s to acquire the connection state of CalibExpert and the vibration table, when state = 0, it indicates that the reconnection is successful.

[0120] Method of getting test abort alarm information: When runStatusCondition = 12, PC sends the command:

[0121] Variant abortAlarmlnfo = Dispatch.get(ds, "AbortAlarmlnfo"); get the reason of the current test being aborted, and then through String alarmInfo = abortAlarmlnfo.getString(); receive the specific reason of the current test being aborted and display it on the corresponding unknown of the software interface, making it convenient to solve the problem.

[0122] abortAlarmlnfo.getString(); receive the specific reason of the current test being aborted and display it on the corresponding unknown of the software interface, making it convenient to solve the problem.

[0123] Method of getting the control peak value of the vibration table: When runStatusCondition = 7, PC sends the command:

[0124] Variant controlValue = Dispatch.get(ds, "ControlValue"); get the peak value of CalibExpert controlling the vibration table, and then through float control = controlValue.getFloat(); receive the peak value of the current vibration table.

[0125] Method of getting the target peak value of the vibration table: When runStatusCondition = 7, PC sends the command:

[0126] Variant demandValue = Dispatch.get(ds, "DemandValue"); get the target peak value of CalibExpert controlling the vibration table, and then through float demand = demandValue.getFloat(); receive the target peak value of the current test vibration table.

[0127] Method of getting the current frequency information of the vibration table: When runStatusCondition = 7, PC sends the command:

[0128] Variant curFrequency = Dispatch.get(ds, "CurFrequency"); get the frequency of CalibExpert controlling the vibration table, and then through float frequency = curFrequency.getFloat(); receive the frequency of the current test vibration table.

[0129] The method for PC terminal to control the vibration table to start the current test is as follows: when openTestResult=0, the PC terminal sends a command: Dispatch.callSub(ds, "StartTest"); after CalibExpert receives the command from the PC terminal, the current test is controlled to start running, and after waiting for 3-5, the current test running is acquired; when runStatusCondition=7 or runStatusCondition=1, it indicates that the current test starts running successfully.

[0130] The method for ensuring normal communication between the gateway and the cloud is as follows:

[0131] 1、socketserver---network server framework

[0132] (1) The module has a basic entity server class:

[0133] A、class socketserver.TCPServer

[0134] (server_address,RequestHandlerClass,bind_and_activate=True) The class uses the Internet TCP protocol, which can provide continuous data flow between the client and the server. If bind_and_activate is true, the constructor of the class will automatically attempt to initiate a call server_bind() and server_activate(). Other parameters will be passed to the BaseServer base class.

[0135] B、class socketserver.UDPServer

[0136] (server_address,RequestHandlerClass,bind_and_activate=True) The class uses data packets, that is, a series of discrete information packets, which may arrive out of order or be lost in transmission. The class parameters are the same as TCPServer.

[0137] The two classes synchronously process requests; each request must be completed before the next request can begin. This results in its inadaptability to the case where each request takes a long time to complete, or because it needs a lot of calculation, or it returns a lot of data and the client processes it slowly, so the gateway uploads the received sensor data to the cloud. The cloud creates separate processes or threads to process each request; through the ForkingMixIn and ThreadingMixIn mixed classes, the asynchronous processing of requests is realized, and the problems are solved.

[0138] (2) To create a server, do the following:

[0139] A. Create a request handler class by subclassing the BaseRequestHandler class and overriding its handle() method; this method will handle incoming requests.

[0140] B. Instantiate the server class, passing it the server address and the request handler class. Use the server in a with statement.

[0141] C. Call the handle_request() or serve_forever() method of the server object to handle one or more requests.

[0142] D. Call server_close() to close the socket (unless you used a with statement).

[0143] (3) class socketserver.ForkingMixIn

[0144] class socketserver.ThreadingMixln implements request asynchronous processing

[0145] For example, a ThreadingUDPServer is created as follows:

[0146] class ThreadingUDPServer(ThreadingMixln,UDPServer):

[0147] pass

[0148] The mixin class comes first because it overrides a method defined in UDPServer. Setting various attributes also changes the behavior of the underlying server machinery.

[0149] A. ForkingMixIn and the forking classes mentioned below are only available on POSIX platforms that support fork().

[0150] B. socketserver.ForkingMixln.server_close() waits until all child processes are finished, unless the socketserver.ForkingMixIn.block_on_close attribute is a false value.

[0151] C. socketserver.ThreadingMixln.server_close() will wait until all non-daemon threads are finished, unless the socketserver.ThreadingMixIn.block_on_close attribute is false. Set ThreadingMixIn.daemon_threads to True to use daemon threads so that the server will not wait for threads to finish.

[0152] (4) Server objects

[0153] class socketserver.BaseServer(server_address, RequestHandlerClass)

[0154] The superclass of all Server objects in the module. It defines the interface given below, but does not implement most of the methods, which should be implemented in subclasses. The two arguments are stored in the corresponding server_address and RequestHandlerClass attributes.

[0155] A. fileno()

[0156] Returns the file descriptor in integer representation of the socket the server is listening on. This function is passed to selectors to implement monitoring multiple servers in the same process.

[0157] B. handle_request()

[0158] Handles a single request. Calls get_request(), verify_request(), and process_request() in turn. If the handle() method of the request handler class raises an exception, the handle_error() method of the server is called. If no request is received within timeout seconds, handle_timeout() is called and handle_request() is returned.

[0159] C. serve_forever(poll_interval=0.5)

[0160] Handles requests until the server is shut down. Polls for shutdown every poll_interval seconds. Ignores the timeout attribute.

[0161] D. service_actions()

[0162] It is called within the `serve_forever()` loop. This method can be overridden by subclasses or hybrid classes to perform operations such as cleanup.

[0163] E、shutdown()

[0164] Notify the serve_forever() loop to stop and wait for it to complete.

[0165] F. server_close()

[0166] Clean up the server. This method can be reloaded.

[0167] G, RequestHandlerClass

[0168] The gateway provides a request handling handle class; an instance of this class will be created for each request.

[0169] H, server_address

[0170] The address that the server is listening on.

[0171] socket

[0172] The socket object that the server will use to listen for inbound requests.

[0173] (5) The server class supports the following class variables:

[0174] A. allow_reuse_address

[0175] Whether the server should allow address reuse. The default value is False.

[0176] B. request_queue_size

[0177] The length of the request queue. If processing a single request takes a long time, any requests arriving while the server is busy will be added to the queue.

[0178] C. timeout

[0179] The timeout limit, expressed in seconds, or None if no timeout is specified. If no `handle_request()` is received within the timeout period, the `handle_timeout()` method will be called.

[0180] D. finish_request(request,client_address)

[0181] Instantiate RequestHandlerClass and call its handle() method to actually process the request.

[0182] E. handle_error(request, client_address)

[0183] Called when the handle() method of a RequestHandlerClass instance raises an exception. Exceptions derived from the Exception class are handled

[0184] F. process_request(request, client_address)

[0185] Create an instance of RequestHandlerClass. Create a new process or thread to handle the request; ForkingMixln and ThreadingMixln.

[0186] G. server_bind()

[0187] Called by the constructor of the server to bind the socket to the desired address.

[0188] H. verify_request(request, client_address)

[0189] Returns a boolean value; if the value is True, the request will be processed. If the value is False, the request will be rejected.

[0190] (6) Request processing handle objects

[0191] A. setup()

[0192] Called before the handle() method to perform any necessary initialization. The default implementation does nothing.

[0193] B. handle()

[0194] Provides all the operations needed to serve a request.

[0195] C. finish()

[0196] Called after the handle() method to perform any needed cleanup.

[0197] 2. socket - the underlying network interface

[0198] The server socket listens to the port number request and is ready to receive the connection sent by the client at any time. At this time, the socket of the server has not been opened. The client creates a socket, the client opens the socket, and attempts to connect the server socket according to the server IP address and port number. The server socket receives the client socket request and is passively opened to start receiving the client request. After the TCP server listens to the client request, the accept() function is called to receive the request. The socket is in a blocked state until the client returns the connection information. The so-called blocking means that the accept() method returns only after the client returns the connection information, and then the next client request is received. The client successfully connects to the server and sends the connection status information to the server. The accept method of the server returns, and the connection is successful. The client writes information to the socket, the server reads the information, the client closes, and the server closes.

[0199] As shown in Figure 9 The embodiment of the application also provides an automatic calibration system of a vibration sensor, which comprises a high-frequency standard vibration table, a vibration sensor to be calibrated, and a cloud server. The vibration sensor to be calibrated is rigidly connected to a vibration table body of the high-frequency standard vibration table. Vibration table control software is used to control the vibration frequency and amplitude of the high-frequency standard vibration table. Automatic calibration control software is used to process vibration data and calculate compensation parameters. The vibration table control software and the automatic calibration control software can be installed on a PC. The operation interface of the software is as shown in Figure 10 .

[0200] The vibration sensor can be directly connected to the cloud server or connected through a gateway or a base station. Taking the gateway connection mode as an example, in the calibration process, the vibration sensor to be calibrated uploads vibration data to the gateway. The gateway sends the data to the cloud server in a transparent manner. The automatic calibration control software collects vibration data and calculates compensation parameters. The cloud server sends the compensation parameters from the automatic calibration control software to the vibration sensor to be calibrated.

[0201] In summary, the application provides an automatic calibration method and system of a vibration sensor. The automatic calibration control software obtains vibration data from the cloud server, processes the vibration data, calculates compensation parameters, and then sends the compensation parameters to the vibration sensor to be calibrated. The automatic calibration of the vibration sensor can be realized, manual input and calculation are avoided, and the calibration efficiency and accuracy are improved.

[0202] The prior description of this disclosure is provided to enable any person skilled in the art to make or use this disclosure. Various modifications to this disclosure will be apparent to those skilled in the art, and the general principles defined herein may be applied to other variations without departing from the spirit or scope of this disclosure. Therefore, this disclosure is not intended to be limited to the examples and designs described herein, but should be accorded the widest scope consistent with the principles and novel features disclosed herein.

[0203] The above description is merely a preferred example of this application and is not intended to limit this application. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application shall be included within the scope of protection of this application.

Claims

1. An automatic calibration method for a vibration sensor, characterized in that, Includes the following steps: S1. Start the vibration table control software and connect the vibration table; S2. Select the sensor type, enter the sensor number, and initialize the calibration parameters; S3. Click the "Start Test" button; S4. Upload the sensor number and initial calibration parameters to the cloud; S5. After receiving the corresponding information, the cloud sends the initial calibration parameters to the corresponding sensor. S6. The vibration table control software opens the corresponding A file according to the sensor type. S7. Begin the experiment; S8. Control the vibration table to collect N frequencies F1, F2...F when the amplitude A is the same. n The corresponding vibration values ​​are A1, A2...A n The timestamp is generated based on the vibration table frequency and saved locally; S9. The experiment ends, and the current experiment is exited; S10. Obtain the corresponding sensor data based on the stored timestamp; S11, According to the formula Calculate the amplitude compensation parameters k0, k1...k m ; S12. Upload the amplitude compensation parameters to the cloud; S13. After receiving the corresponding information, the cloud sends the amplitude compensation parameters to the corresponding sensor. S14. The vibration table control software opens the corresponding B file according to the sensor type. S15, Begin the experiment; S16. Control the vibration table to collect M frequencies P1, P2...P when the vibration table is at the same amplitude B. m The corresponding vibration values ​​are B1, B2...B m The timestamp is generated based on the vibration table frequency and saved locally; S17. The experiment ends, and the current experiment is exited; S18. Obtain the corresponding sensor data based on the storage timestamp; S19. Determine whether B1, B2, ..., B m Check whether the error range of amplitude B is within ±d%, and determine whether the acceleration error, velocity error and displacement error reach the standard value; S191. If so, calibration is complete, and the corresponding report is generated. S192. If not, return to S11 and recalculate the amplitude compensation parameters.

2. The automatic calibration method for a vibration sensor according to claim 1, characterized in that, S1 includes: starting CalibExpert by calling an ActiveX file through Jacob, connecting CalibExpert to the vibration table, and then obtaining the connection status between CalibExpert and the vibration table through the ActiveX file to ensure that CalibExpert is successfully connected to the vibration table.

3. The automatic calibration method for a vibration sensor according to claim 1, characterized in that, In steps S4 and S12, the sensor uploads data to the gateway, the gateway sends the data to the cloud via transparent transmission, and the cloud receives the data, parses it, and stores it on the server.

4. The automatic calibration method for a vibration sensor according to claim 1, characterized in that, In steps S5 and S13, after the cloud receives the sensor number and the coefficients to be sent, it queries the isSetParam field in the t_zdt table of the database. If the data is 1, it means that the sensor needs to send coefficients. If the coefficients need to be sent, the calibration parameters are sent through a command. The sensor receives the command to modify the coefficients and starts to modify the coefficients. After the modification is completed, it returns an ACK to the cloud. After the cloud receives the ACK returned by the sensor, it modifies the data in the isSetParam field of the t_zdt table of the database to 0, indicating that the sensor coefficients have been successfully sent.

5. The automatic calibration method for a vibration sensor according to claim 4, characterized in that, Following steps S5 and S13, the process further includes: the PC directly accesses the isSetParam field in the t_zdt table of the database; if the data is 0, it is considered that the cloud has successfully sent the data to the corresponding sensor.

6. The automatic calibration method for a vibration sensor according to claim 1, characterized in that, After steps S4 and S12, the method further includes: transmitting the sensor's ID number to the cloud, and the cloud returning the data uploaded by the sensor within the first time period; if the data is empty, it is considered that the sensor has not uploaded the data to the cloud, and the cause needs to be investigated to ensure that the sensor data can be uploaded to the cloud; if the data is not empty, it is considered that the sensor data has been successfully uploaded to the cloud.

7. The automatic calibration method for a vibration sensor according to claim 1, characterized in that, In S19: it is determined whether the acceleration error is less than ±1%, the velocity error is less than ±1%, and the displacement error is less than ±2%.

8. The automatic calibration method for a vibration sensor according to claim 1, characterized in that, In steps S6 and S14, the method for opening the test file is as follows: The PC sends the command: Variant0penTest = Dispatch.call(ds,"OpenTest","path to the test file to be opened"); to tell CalibExpert the test file to be opened. After waiting for a second time period, the PC receives the return value of the test file opening status from CalibExpert by int openTestResult = 0penTest.getInt(); If the return value is 0, it means that the test file was opened successfully; if the return value is -1, it means that the test file was opened unsuccessfully.

9. An automatic calibration system for performing the method as described in any one of claims 1 to 8, characterized in that, include: High-frequency standard vibration table; The vibration sensor to be calibrated is mounted on the vibration table body of the high-frequency standard vibration table; Vibration table control software is used to control the vibration frequency and amplitude of a high-frequency standard vibration table. Automatic calibration control software is used to process vibration data and calculate compensation coefficients; and The cloud server is used to receive vibration data from the sensor to be calibrated and to send the compensation coefficients of the automatic calibration control software to the vibration sensor to be calibrated.

Citation Information

Patent Citations

  • Method for multi-frequency hybrid calibration of vibration measuring sensor

    CN103759814A

  • Noise sensor vibration sensitivity calibration method and device based on acoustic vibration decoupling

    CN112649087A