CN117786537A - Distributed fault diagnosis method of Boltzmann machine voting network based on FPGA - Google Patents

Distributed fault diagnosis method of Boltzmann machine voting network based on FPGA Download PDF

Info

Publication number
CN117786537A
CN117786537A CN202410211486.7A CN202410211486A CN117786537A CN 117786537 A CN117786537 A CN 117786537A CN 202410211486 A CN202410211486 A CN 202410211486A CN 117786537 A CN117786537 A CN 117786537A
Authority
CN
China
Prior art keywords
voting
fpga
boltzmann machine
matrix
core
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202410211486.7A
Other languages
Chinese (zh)
Other versions
CN117786537B (en
Inventor
周颖
严颖
宋睿
袁蕴宸
章伟杰
陈心云
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University of Information Science and Technology
Original Assignee
Nanjing University of Information Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing University of Information Science and Technology filed Critical Nanjing University of Information Science and Technology
Priority to CN202410211486.7A priority Critical patent/CN117786537B/en
Publication of CN117786537A publication Critical patent/CN117786537A/en
Application granted granted Critical
Publication of CN117786537B publication Critical patent/CN117786537B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The invention discloses a distributed fault diagnosis method based on a Boltzmann machine voting network, which comprises the following steps: constructing a Boltzmann machine voting network platform; based on a training data set of an air conditioner sensor, training a Boltzmann machine voting network platform in a core FPGA, and sending the obtained optimal credibility matrix to a non-core FPGA; the non-core FPGA is adopted to respectively call the corresponding credibility vector to multiply with the voting value calculated by the activation function so as to obtain the voting edge weight between the sensor nodes, and the voting edge weight is sent to the core FPGA; integrating the voting value matrix, carrying out symmetry processing on the voting value matrix to obtain a symmetric Boltzmann machine, iterating the state of the Boltzmann machine to obtain a state value of each sensor node of the Boltzmann machine, and displaying the state value by the non-core FPGA. The invention can accurately determine the fault position and diagnosis of each sensor in the heating ventilation air conditioning system.

Description

Distributed fault diagnosis method of Boltzmann machine voting network based on FPGA
Technical Field
The invention belongs to the technical field of air conditioning unit sensor fault detection, and particularly relates to a distributed fault diagnosis method of a Boltzmann machine voting network based on an FPGA.
Background
The intelligent building of the new era is more and more widely used in daily use of people, and the heating ventilation air conditioning system is one of the most widely used representatives of the intelligent building clusters. It is counted that about 42% of refrigeration energy consumption and 26% of maintenance cost in the hvac system are caused by equipment faults, and the fault diagnosis of hvac can reduce the energy waste rate to below 15%. Besides energy waste, equipment faults of heating ventilation and air conditioning can cause that the system can not meet the requirements of people on temperature, humidity, air quality and the like, so that people feel uncomfortable. The fault diagnosis of the heating ventilation air conditioning equipment can reduce energy waste to a great extent, and meet the requirements of people on comfortable indoor environment and respiratory health. Therefore, as one of the important research points of intelligent building energy conservation, the fault diagnosis of the heating ventilation air conditioner has extremely important practical significance. However, the fault is very costly to artificially add to the real hvac during the diagnosis process, which can result in unnecessary energy waste and discomfort to the person. If a simulation method is adopted, the problem of insufficient accuracy of a simulation model can be faced.
Disclosure of Invention
The technical problems to be solved are as follows: the invention discloses a distributed fault diagnosis method of a Boltzmann machine voting network based on an FPGA, which comprises the steps of constructing a sensor in a simulation unit based on the FPGA, connecting the node by taking the FPGA as a node and combining a constraint equation corresponding to a target sensor, constructing a Boltzmann machine voting network platform, and carrying out voting diagnosis on a fault component; the invention can accurately determine the fault position and diagnosis of each sensor in the heating ventilation air conditioning system.
The technical scheme is as follows:
a distributed fault diagnosis method of a boltzmann machine voting network based on an FPGA, the distributed fault diagnosis method comprising the steps of:
step A, preparing n+1 FPGAs, wherein one FPGA is defined as a core FPGA, and the other n FPGAs are defined as non-core FPGAs; respectively representing n sensor nodes by n non-core FPGA, and combining constraint equation connection nodes corresponding to air conditioner sensors to construct a Boltzmann machine voting network platform; n is a positive integer greater than 1;
step B, training a Boltzmann machine voting network platform in a core FPGA based on a training data set of an air conditioner sensor, and transmitting the obtained optimal credibility matrix to n non-core FPGAs;
step C, n non-core FPGAs are adopted to respectively call corresponding credibility vectors to multiply voting values calculated by an activation function so as to obtain voting edge weights among the sensor nodes, and the voting edge weights are sent to the core FPGAs;
and D, integrating all voting edge weights into a voting value matrix by using a core FPGA, carrying out symmetrical treatment on the voting value matrix to obtain a symmetrical Boltzmann machine, iterating the Boltzmann machine state to obtain a state value of each sensor node of the Boltzmann machine, transmitting the state value of each sensor node to a non-core FPGA corresponding to the sensor node, and calling a tool library function to display the state value after the non-core FPGA receives the state value.
In the step B, a JupyterNotook called by a PS end double ARM Cortex-A9 kernel of pynq-z2 is adopted to upload a training data set of a Py file and an air conditioner sensor of the Boltzmann machine neural network into the JupyterNotook; the boltzmann machine neural network py file trains the boltzmann machine voting network platform.
Further, in step B, based on the training data set of the air conditioner sensor, the process of training the boltzmann machine voting network platform in the core FPGA includes the following steps:
step B1, calculating the kth fault featureAverage value of +.>Standard deviation isThe method comprises the steps of carrying out a first treatment on the surface of the Wherein->Is the ith sample of the training set corresponding to the kth fault signature of the data under normal conditions,/for the data under normal conditions>The number of samples of data in the normal state, which is the kth fault signature;
step B2, obtaining the confidence interval upper bound of the kth fault feature by adopting a 3-sigma statistical control methodThe method comprises the steps of carrying out a first treatment on the surface of the Use of an activation function->Converting the fault characteristics into voting values among the sensor nodes;
step B3, adopting an n-by-n credibility matrix C to represent the credibility of votes among different sensor nodes, wherein the elements of the ith row and the jth column in the matrixRepresenting the reliability of the vote from sensor node i to sensor node j; let the initial value of the confidence matrix C be +.>
Step B4, substituting the activation function in the step B2 into the value of the confidence interval and then passing through the formula(t) =Obtaining a voting value of a sensor node i to a sensor node j at the moment t>(t), wherein>Is a set of all fault signatures associated with both sensor node i and sensor node j; />Is a vote value based on the fault feature k; />The number of fault signatures associated with both sensor node i and sensor node j;
step B5, combining the voting values into a voting matrix V (t) =Multiplying the reliability value C to be used as the edge weight of the Boltzmann machine;
step B6, symmetry processing is carried out on the voting matrix V (t), so that W=V, and the matrix after the symmetry processing isThe input of the new boltzmann machine is: />The method comprises the steps of carrying out a first treatment on the surface of the Obtaining the edge weight of the newly added node>Substituting the edge weight of the newly added node into the voting matrix W to obtain a corresponding symmetrical Boltzmann machine;
wherein w is i,j Representing the voting result of sensor node i on sensor node j, i=1, 2, …, n, j=1, 2, …, n;voting results for each sensor node i and other nodes in the new boltzmann machine respectively; v i The state value corresponding to the sensor node i; />Representing the offset vector for each node> i A node deviation vector matrix composed of equal to 0; />Representing a state value matrix corresponding to a new Boltzmann machine formed by combining state values of the new nodes to be equal to 1;
step B7, performing state iteration on the sensor nodes of the symmetrical Boltzmann machine until the iteration converges;
and B8, taking the reliability matrix C as a decision variable, adopting a particle swarm algorithm to continuously update the reliability matrix, repeating the steps B4 to B7 to obtain the fault diagnosis precision and the optimal reliability matrix C, and storing the data on the core FPGA in a csv format.
Further, in step B, the data transmission method based on UDP communication transmits the obtained optimal reliability matrix to n non-core FPGAs, and the transmission process includes the following steps:
importing a numpy library, and converting the optimal credibility matrix into a column vector by using a radial () function;
the server binds a target IP address and a port number and sets a floating point number list to be sent; the server creates a UDP socket for network communication;
setting the length of the fragmented data packet as IPv4 header length, UDP header length and voting value column vectors of corresponding nodes;
defining a UDP data packet header, wherein the UDP data packet header comprises a source address port number, a destination address port number, a data packet length and a checksum;
defining a data load and a sequence stamp, packaging the data load and voting value column vector data to be transmitted by using a pack () function of a struct library of python, and transmitting the set data according to a big-end byte order;
decoding 20 floating point numbers in the original matrix data in a binary format, and packaging according to byte order;
and inputting the IP and port numbers of the source address and the target address, packaging the UDP data packet header and the data load by using the sendto () function of the socket library to generate a UDP data packet, and sending the UDP data packet to the non-core FPGA corresponding to the target address.
Further, in the jupyternotbook environment, network communication is performed by using a socket module of Python; specifically, a socket object is created on each FPGA, the protocol type of the socket object is set to be UDP, and the socket object is bound to a specific address and a port allocated for each FPGA; with sendto () and recvfrom () functions, for each sensor node I i Transmit and receive weight vector v ij And transmitting the data to the corresponding non-core FPGA.
Further, in step C, after the ith uncore FPGA receives the data, the ith uncore FPGA is activated according to the function formula=Calculating a voting value, calling the jth credibility multiplication in the corresponding credibility vector, and calculating the Boltzmann machine edge weight m from the ith non-core FPGA to the jth non-core FPGA ij And the edge weight m ij Matrix m integrated as 1*n i Binding the IP address and port number of the ith non-core FPGA, and sending the UDP data packet to the core FPGA through sendto () function; wherein x represents the absolute value of the kth fault signature based on the current fault signature, which can be expressed as +.>;/>Fault signature absolute value +.>The corresponding upper limit of the current confidence interval, the upper label ub, indicates up boundary.
Further, in the step D, the process of obtaining the state value of each sensor node of the boltzmann machine includes the following steps:
performing state iteration on the sensor nodes of the Boltzmann machine to obtain a state value S of each sensor node of the Boltzmann machine, wherein the state value S of the ith non-core FPGA i ,S i =,i=1,2,3,…n。
Further, in step D, the core FPGA sends the status value of each sensor node to the non-core FPGA of the corresponding sensor node, calls the lcdpackage file burned in PYNQ-z2, and interacts with the liquid crystal display screen through the Arduino interface on the PYNQ board to initialize the LCD, display the IP address, communicate the LCD, and clear the LCD; wherein, the LCDpackage library is named as lcd when being called, and the lcd.lcd_string () function is used to store the state value S of each uncore FPGA i And displaying on the corresponding liquid crystal display screen.
The beneficial effects are that:
the invention discloses a distributed fault diagnosis method of a Boltzmann machine voting network based on an FPGA, which comprises the steps of constructing a sensor in a simulation unit based on the FPGA, connecting the node by taking the FPGA as a node and combining a constraint equation corresponding to a target sensor, constructing a Boltzmann machine voting network platform, and carrying out voting diagnosis on a fault component; the invention can accurately determine the fault position and diagnosis of each sensor in the heating ventilation air conditioning system.
Drawings
FIG. 1 is a schematic diagram of a Boltzmann machine voting network;
fig. 2 is a schematic diagram of the structure of a UDP packet;
FIG. 3 is a flow chart of a distributed fault diagnosis method of an FPGA-based Boltzmann machine voting network in an embodiment of the invention;
fig. 4 is a schematic diagram of a simulation system corresponding to a distributed fault diagnosis method based on a boltzmann machine voting network according to an embodiment of the present invention.
Detailed Description
The following examples will provide those skilled in the art with a more complete understanding of the invention, but are not intended to limit the invention in any way.
The embodiment of the invention discloses a distributed fault diagnosis method of a Boltzmann machine voting network based on an FPGA, which comprises the following steps:
step A, preparing n+1 FPGAs, wherein one FPGA is defined as a core FPGA, and the other n FPGAs are defined as non-core FPGAs; respectively representing n sensor nodes by n non-core FPGA, and combining constraint equation connection nodes corresponding to air conditioner sensors to construct a Boltzmann machine voting network platform; n is a positive integer greater than 1;
step B, training a Boltzmann machine voting network platform in a core FPGA based on a training data set of an air conditioner sensor, and transmitting the obtained optimal credibility matrix to n non-core FPGAs;
step C, n non-core FPGAs are adopted to respectively call corresponding credibility vectors to multiply voting values calculated by an activation function so as to obtain voting edge weights among the sensor nodes, and the voting edge weights are sent to the core FPGAs;
and D, integrating all voting edge weights into a voting value matrix by using a core FPGA, carrying out symmetrical treatment on the voting value matrix to obtain a symmetrical Boltzmann machine, iterating the Boltzmann machine state to obtain a state value of each sensor node of the Boltzmann machine, transmitting the state value of each sensor node to a non-core FPGA corresponding to the sensor node, and calling a tool library function to display the state value after the non-core FPGA receives the state value.
The embodiment establishes a heating ventilation and air conditioning simulation system based on a plurality of Xilinx FPGA PYNQ-Z2 development boards of element companies. In this system, each FPGA development board characterizes one sensor. Based on the programmability, parallel computing capability and control of the pynq-z2 development board software on the hardware structure of the FPGA, simulation of the FPGA on the heating ventilation and air conditioning system is realized by importing measured data of the heating ventilation and air conditioning in two projects of ASHRAE RP-1312 and ASHRAE RP-1043 into the FPGA, so that fault positions and diagnosis are determined.
Referring to fig. 3 and 4, the distributed fault diagnosis method based on the boltzmann machine voting network according to the embodiment of the present invention includes the steps of:
1. the preparation of an n+1 block Xilinx pynq-z2 development board, the distributed fault of this embodiment, is performed in two phases, the training phase and the testing phase, respectively. 1 pynq-z2 development board was intended to be used as the core FPGA during the training phase, which was designated as I 0 The remaining n pynq-z2 development boards were designated as non-core FPGAs, respectively as I i (i=1, 2,3 …, n) training of boltzmann machine voting neural network, the process uses jupyterNotook called by PS-side dual ARM Cortex-A9 kernel of pynq-z2 to upload the jupyttmann machine neural network's file and training dataset of air conditioning sensors into jupyterNotook.
In core FPGA I 0 The py file completes the following steps:
a. calculating the average value of the kth fault feature |rk| asStandard deviation isThe method comprises the steps of carrying out a first treatment on the surface of the Wherein->Is the ith sample of the kth fault signature corresponding to data in normal state in the training set,/for the training set>Is the number of samples of data in the normal state of the kth fault signature.
b. The step aAnd->Confidence of kth fault feature is obtained through 3-sigma statistical control methodZone upper bound->. Use of an activation function->The fault signature is translated into a vote value between the sensor nodes.
c. For votes between different sensor nodes with different credibility, we initially use an n x n credibility matrix c=To represent the credibility of votes between different sensor nodes, wherein the element of row i and column j in the matrix +.>Representing the reliability of the vote from sensor node i to sensor node j.
d. Bringing the activation function in step b to the value of the confidence interval by the formulaObtaining a voting value of a sensor node i to a sensor node j at the moment t>(t), wherein>Is a set of all fault signatures associated with both sensor node i and sensor node j; />Is a vote value based on the fault feature k; />Is the number of fault signatures associated with both sensor node i and sensor node j.
e. After the vote values are obtained in the training phase, the vote values are combined to form a vote matrix V (t) =And multiplies the reliability value C as the edge weight of the Boltzmann machine.
f. The voting matrix V (t) is symmetric, W=V, and the matrix after the symmetric treatment isThe input of the new boltzmann machine is +.>. Thus, the edge weight +.>Substituting the edge weight of the newly added node into the voting matrix W to obtain a corresponding symmetrical Boltzmann machine; wherein w is i,j A voting result of the node sensor i to the node sensor j is shown; a, a i Defining the mutual voting results of the new node and other nodes in the new boltzmann machine for initialization; v i The state value corresponding to the sensor node i in the new boltzmann machine is formed; />Representing the offset vector for each node> i A node deviation vector matrix composed of equal to 0; />And representing a state value matrix corresponding to the new Boltzmann machine formed by combining the state values of the new nodes to be equal to 1.
g. And (3) starting state iteration by the nodes of the symmetrical Boltzmann machine, and determining the node state after convergence, namely realizing fault positioning. In order to obtain an optimal reliability matrix, the reliability matrix C is used as a decision variable, a particle swarm algorithm is adopted to continuously update the reliability matrix, and then the process is repeated to obtain fault diagnosis precision. Finally, an optimal credibility matrix C is obtained, and the data is stored in a core FPGA I in a csv format 0 And (3) upper part. To this endThe training phase ends. Fig. 1 is a schematic diagram of a boltzmann machine voting network.
2. In the test stage, the rest n pynq-z2 development boards are used for building the sensor of the Boltzmann machine voting network, and each FPGA is used as one sensor node in the sensor corresponding voting network and is numbered as I i (i=1, 2,3, … n). The ith row credibility matrix trained in the training stage is sent to the corresponding FPGA node according to the following data transmission method based on UDP communication:
a. a numpy library is imported and the matrix is converted to column vectors using the radial () function.
b. The method comprises the steps that a server side firstly binds a target IP address and a port number, and sets a floating point number list to be sent; the server creates a UDP socket for network communication.
c. The IPv4 packet includes an IPv4 header, a UDP header, and a data payload, and the fragmentation length of the network layer is determined by the MTU (maximum transmission unit), and defaults to 1500 bytes, including an IPv4 header (typically 20 bytes) and a UDP header (8 bytes). The length of the fragmented packet is set to be the IPv4 header length, the UDP header length, and the voting value column vector of the corresponding node (double-precision floating point number type column vector with length of n, total length of 8n bytes).
d. Referring to fig. 2, defining a header portion of 8 bytes in length includes:
source address port number;
destination address number;
packet length (including UDP header and total length of data in bytes);
checksum (detects whether a packet has an error in the transmission process).
e. A data payload is defined in which sequence control (sequence stamp) is customized and packed with voting value column vector data to be transmitted using the pack () function of the struct library of python, with the data being set to be transmitted in big-end byte order (MSB).
f. And decoding 20 floating point numbers in the original matrix data in a binary format, and packaging according to byte order.
g. The fields comprise a UDP data packet head (comprising a source address port number, a target address port number, a length and a checksum), a data load (comprising a sequence stamp), a sendto () function of a socket library is used, a UDP data packet is automatically generated by inputting the IP and the port numbers of the source address and the target address, the data packet is sent to an FPGA corresponding to the target address, and the target is node I i
h. In the jupyternotbook environment, network communication is implemented using socket modules of Python.
i. And creating a socket object on each FPGA, setting the protocol type of the socket object as UDP, and binding the socket object to a specific address and a port allocated for each FPGA.
j. For each corresponding node I, a sendto () and recvfrom () function is utilized i Transmit and receive weight vector v ij And the data can be ensured to be correctly transmitted to the corresponding non-core FPGA.
3. And the n-block pynq-z2 development boards in the test stage also need to upload voting network, and the py file is uploaded to the JupyterNotebook, and the ith non-core FPGA receives and stores the ith row in the credibility matrix in the UDP data packet sent by the core FPGA I0 at each moment. Py file of voting network after receiving data from ith non-core FPGA, according to formula of activation function in the py fileCalculating a voting value, then calling the j-th credibility multiplication in the corresponding credibility vector to calculate the Boltzmann machine edge weight m from the i-th non-core FPGA to the j-th non-core FPGA ij And integrates the edge weight into a matrix m of 1*n i Binding I i Developing the IP address and port number of the board, repeating the steps a-j of the step 2, and transmitting the UDP data packet to the core FPGA I through sendto () function 0
4. After receiving all the edge weights, the core FPGA can form an asymmetric Boltzmann machine, and then the step 1f is repeated to obtain newly added node edge weights, and the symmetric Boltzmann machine is obtained through symmetry.
5. The state of the boltzmann machine can be based on the edgesThe weight is iterated to obtain the state value S of each node of the Boltzmann machine, such as the state value S of the ith non-core FPGA i (i=1,2,3,…n),S i =
6. State S i (i=1, 2,3, … n) through the main development board I 0 And (3) repeating the steps a-k in the step (2), sending the data to be transmitted to the rest n development boards in a UDP data packet, calling the LCDpackage file recorded in the PYNQ-z2 in advance, and realizing the functional processes of initializing the LCD, displaying the IP address, communicating the LCD and clearing the LCD by interacting with a 16x2 Liquid Crystal Display (LCD) through an Arduino interface on the PYNQ board.
7. The LCDpackage library call time is named lcd, and the final state value S is obtained by using an lcd.lcd_string () function i And displaying on the liquid crystal display devices on the n non-core FPGAs in the test stage.
The above is only a preferred embodiment of the present invention, and the protection scope of the present invention is not limited to the above examples, and all technical solutions belonging to the concept of the present invention belong to the protection scope of the present invention. It should be noted that modifications and adaptations to the invention without departing from the principles thereof are intended to be within the scope of the invention as set forth in the following claims.

Claims (8)

1. The distributed fault diagnosis method of the Boltzmann machine voting network based on the FPGA is characterized by comprising the following steps of:
step A, preparing n+1 FPGAs, wherein one FPGA is defined as a core FPGA, and the other n FPGAs are defined as non-core FPGAs; respectively representing n sensor nodes by n non-core FPGA, and combining constraint equation connection nodes corresponding to air conditioner sensors to construct a Boltzmann machine voting network platform; n is a positive integer greater than 1;
step B, training a Boltzmann machine voting network platform in a core FPGA based on a training data set of an air conditioner sensor, and transmitting the obtained optimal credibility matrix to n non-core FPGAs;
step C, n non-core FPGAs are adopted to respectively call corresponding credibility vectors to multiply voting values calculated by an activation function so as to obtain voting edge weights among the sensor nodes, and the voting edge weights are sent to the core FPGAs;
and D, integrating all voting edge weights into a voting value matrix by using a core FPGA, carrying out symmetrical treatment on the voting value matrix to obtain a symmetrical Boltzmann machine, iterating the Boltzmann machine state to obtain a state value of each sensor node of the Boltzmann machine, transmitting the state value of each sensor node to a non-core FPGA corresponding to the sensor node, and calling a tool library function to display the state value after the non-core FPGA receives the state value.
2. The distributed fault diagnosis method of the boltzmann machine voting network based on the FPGA according to claim 1, wherein in the step B, a training data set of a file and an air conditioner sensor of the boltzmann machine neural network is uploaded into the jupyternotibook by using jupyternotibook called by a PS-end double ARM Cortex-A9 kernel of the pynq-z 2; the boltzmann machine neural network py file trains the boltzmann machine voting network platform.
3. The distributed fault diagnosis method of the boltzmann machine voting network based on the FPGA according to claim 1, wherein in the step B, the process of training the boltzmann machine voting network platform in the core FPGA based on the training data set of the air conditioner sensor comprises the steps of:
step B1, calculating the kth fault featureMean value of>Standard deviation->The method comprises the steps of carrying out a first treatment on the surface of the Wherein->Is the ith sample of the training set corresponding to the kth fault signature of the data under normal conditions,/for the data under normal conditions>The number of samples of data in the normal state, which is the kth fault signature;
step B2, obtaining the confidence interval upper bound of the kth fault feature by adopting a 3-sigma statistical control methodThe method comprises the steps of carrying out a first treatment on the surface of the Use of an activation function->Converting the fault characteristics into voting values among the sensor nodes;
step B3, adopting an n-by-n credibility matrix C to represent the credibility of votes among different sensor nodes, wherein the elements of the ith row and the jth column in the matrixRepresenting the reliability of the vote from sensor node i to sensor node j; let the initial value of the confidence matrix C be +.>
Step B4, substituting the activation function in the step B2 into the value of the confidence interval and then passing through the formula(t) =/>Obtaining a voting value of a sensor node i to a sensor node j at the moment t>(t), wherein>Is a set of all fault signatures associated with both sensor node i and sensor node j; />Is a vote value based on the fault feature k; />The number of fault signatures associated with both sensor node i and sensor node j;
step B5, combining the voting values into a voting matrix V (t) =Multiplying the reliability value C to be used as the edge weight of the Boltzmann machine;
step B6, symmetry processing is carried out on the voting matrix V (t), so that W=V, and the matrix after the symmetry processing isThe input of the new boltzmann machine is: />The method comprises the steps of carrying out a first treatment on the surface of the Obtaining the edge weight of the newly added node>Substituting the edge weight of the newly added node into the voting matrix W to obtain a corresponding symmetrical Boltzmann machine;
wherein w is i,j Representing the voting result of sensor node i on sensor node j, i=1, 2, …, n, j=1, 2, …, n;voting results for each sensor node i and other nodes in the new boltzmann machine respectively; v i The state value corresponding to the sensor node i; />Representing the offset vector for each node> i A node deviation vector matrix composed of equal to 0; />Representing a state value matrix corresponding to a new Boltzmann machine formed by combining state values of the new nodes to be equal to 1;
step B7, performing state iteration on the sensor nodes of the symmetrical Boltzmann machine until the iteration converges;
and B8, taking the reliability matrix C as a decision variable, adopting a particle swarm algorithm to continuously update the reliability matrix, repeating the steps B4 to B7 to obtain the fault diagnosis precision and the optimal reliability matrix C, and storing the data on the core FPGA in a csv format.
4. The distributed fault diagnosis method of the boltzmann machine voting network based on the FPGA according to claim 1, wherein in step B, the data transmission method based on UDP communication transmits the obtained optimal reliability matrix to n non-core FPGAs, and the transmission process includes the steps of:
importing a numpy library, and converting the optimal credibility matrix into a column vector by using a radial () function;
the server binds a target IP address and a port number and sets a floating point number list to be sent; the server creates a UDP socket for network communication;
setting the length of the fragmented data packet as IPv4 header length, UDP header length and voting value column vectors of corresponding nodes;
defining a UDP data packet header, wherein the UDP data packet header comprises a source address port number, a destination address port number, a data packet length and a checksum;
defining a data load and a sequence stamp, packaging the data load and voting value column vector data to be transmitted by using a pack () function of a struct library of python, and transmitting the set data according to a big-end byte order;
decoding 20 floating point numbers in the original matrix data in a binary format, and packaging according to byte order;
and inputting the IP and port numbers of the source address and the target address, packaging the UDP data packet header and the data load by using the sendto () function of the socket library to generate a UDP data packet, and sending the UDP data packet to the non-core FPGA corresponding to the target address.
5. The distributed fault diagnosis method of the boltzmann machine voting network based on the FPGA according to claim 1, wherein in a jupyterNotook environment, network communication is performed by using a socket module of Python; specifically, a socket object is created on each FPGA, the protocol type of the socket object is set to be UDP, and the socket object is bound to a specific address and a port allocated for each FPGA; with sendto () and recvfrom () functions, for each sensor node I i Transmit and receive weight vector v ij And transmitting the data to the corresponding non-core FPGA.
6. The distributed fault diagnosis method for an FPGA-based boltzmann machine voting network according to claim 1, wherein in step C, after the ith uncore FPGA receives the data, it uses an activation function formula=/>Calculating a voting value, calling the jth credibility multiplication in the corresponding credibility vector, and calculating the Boltzmann machine edge weight m from the ith non-core FPGA to the jth non-core FPGA ij And the edge weight m ij Matrix m integrated as 1*n i Binding the IP address and port number of the ith non-core FPGA, and sending the UDP data packet to the core FPGA through sendto () function; wherein x represents the absolute value of the kth fault signature based on the current fault signature, +.>Fault signature absolute value +.>The corresponding upper limit of the current confidence interval.
7. The distributed fault diagnosis method of the boltzmann machine voting network based on the FPGA according to claim 1, wherein in the step D, the process of obtaining the state value of each sensor node of the boltzmann machine includes the steps of:
performing state iteration on the sensor nodes of the Boltzmann machine to obtain a state value S of each sensor node of the Boltzmann machine, wherein the state value S of the ith non-core FPGA i ,S i =,i=1,2,3,…n。
8. The distributed fault diagnosis method of the boltzmann machine voting network based on the FPGA according to claim 1, wherein in the step D, the core FPGA sends the state value of each sensor node to the non-core FPGA of the corresponding sensor node, the LCDpackage file burnt in the PYNQ-z2 is called, and the functional processes of initializing LCD, displaying IP address, LCD communication and cleaning LCD are realized by interacting with a liquid crystal display screen through an Arduino interface on the PYNQ board; wherein, the LCDpackage library is named as lcd when being called, and the lcd.lcd_string () function is used to store the state value S of each uncore FPGA i And displaying on the corresponding liquid crystal display screen.
CN202410211486.7A 2024-02-27 2024-02-27 Distributed fault diagnosis method of Boltzmann machine voting network based on FPGA Active CN117786537B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410211486.7A CN117786537B (en) 2024-02-27 2024-02-27 Distributed fault diagnosis method of Boltzmann machine voting network based on FPGA

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410211486.7A CN117786537B (en) 2024-02-27 2024-02-27 Distributed fault diagnosis method of Boltzmann machine voting network based on FPGA

Publications (2)

Publication Number Publication Date
CN117786537A true CN117786537A (en) 2024-03-29
CN117786537B CN117786537B (en) 2024-04-30

Family

ID=90382058

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410211486.7A Active CN117786537B (en) 2024-02-27 2024-02-27 Distributed fault diagnosis method of Boltzmann machine voting network based on FPGA

Country Status (1)

Country Link
CN (1) CN117786537B (en)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103197231A (en) * 2013-04-03 2013-07-10 湖南大学 Field programmable gate array (FPGA) device for diagnosing and predicting artificial circuit faults
CN107451091A (en) * 2017-08-02 2017-12-08 上海金融期货信息技术有限公司 High speed information interactive system based on FPGA CPU mixed architectures
CN111259834A (en) * 2020-01-20 2020-06-09 武汉大学 Transformer fault diagnosis method and system based on integrated deep belief network
US20210136146A1 (en) * 2019-10-31 2021-05-06 Elasticsearch B.V. Node Clustering Configuration
CN114004374A (en) * 2021-10-22 2022-02-01 南京信息工程大学 Air conditioning unit sensor fault diagnosis method based on Boltzmann machine voting
CN115289608A (en) * 2022-07-31 2022-11-04 南京信息工程大学 Air conditioning unit fault diagnosis method based on supervised voting mechanism
CN116720549A (en) * 2023-07-03 2023-09-08 北京航空航天大学 FPGA multi-core two-dimensional convolution acceleration optimization method based on CNN input full cache
CN116842998A (en) * 2023-05-25 2023-10-03 同济大学 Distributed optimization-based multi-FPGA collaborative training neural network method
CN117521752A (en) * 2023-11-08 2024-02-06 电科云(北京)科技有限公司 Neural network acceleration method and system based on FPGA

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103197231A (en) * 2013-04-03 2013-07-10 湖南大学 Field programmable gate array (FPGA) device for diagnosing and predicting artificial circuit faults
CN107451091A (en) * 2017-08-02 2017-12-08 上海金融期货信息技术有限公司 High speed information interactive system based on FPGA CPU mixed architectures
US20210136146A1 (en) * 2019-10-31 2021-05-06 Elasticsearch B.V. Node Clustering Configuration
CN111259834A (en) * 2020-01-20 2020-06-09 武汉大学 Transformer fault diagnosis method and system based on integrated deep belief network
CN114004374A (en) * 2021-10-22 2022-02-01 南京信息工程大学 Air conditioning unit sensor fault diagnosis method based on Boltzmann machine voting
CN115289608A (en) * 2022-07-31 2022-11-04 南京信息工程大学 Air conditioning unit fault diagnosis method based on supervised voting mechanism
CN116842998A (en) * 2023-05-25 2023-10-03 同济大学 Distributed optimization-based multi-FPGA collaborative training neural network method
CN116720549A (en) * 2023-07-03 2023-09-08 北京航空航天大学 FPGA multi-core two-dimensional convolution acceleration optimization method based on CNN input full cache
CN117521752A (en) * 2023-11-08 2024-02-06 电科云(北京)科技有限公司 Neural network acceleration method and system based on FPGA

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
PRASHANT KUDESIA等: "Nano Ballot Box: A Low Power, Thermal Resistant FPGA Based Electronic Voting Machine", 2021 INTERNATIONAL CONFERENCE ON SIMULATION, AUTOMATION & SMART MANUFACTURING (SASM), 1 August 2022 (2022-08-01), pages 1 - 6 *
YF869778412: "云中的机器学习:FPGA 上的深度神经网络", Retrieved from the Internet <URL:https://www.cnblogs.com/chengqi521/p/8184712.html> *
严颖等: "基于投票机制的暖通空调空气处理单元传感器故障诊断", 电子与信息学报, vol. 46, no. 01, 20 February 2023 (2023-02-20), pages 258 - 266 *

Also Published As

Publication number Publication date
CN117786537B (en) 2024-04-30

Similar Documents

Publication Publication Date Title
US20230039182A1 (en) Method, apparatus, computer device, storage medium, and program product for processing data
CN109164707A (en) A kind of indoor environment negative-feedback regu- lation system based on artificial neural network algorithm
CN108665089B (en) Robust optimization model solving method for site selection problem
CN113096787A (en) Combined decision-making system and method for data-driven epidemic situation detection and medical resource allocation
CN112929218B (en) System and device for automatically generating virtual and real environments of industrial control target range
CN108399470B (en) Indoor PM2.5 prediction method based on multi-example genetic neural network
Norgaard et al. Neural network prediction of new aircraft design coefficients
CN109740026A (en) Smart city edge calculations platform and its management method, server and storage medium
CN115344883A (en) Personalized federal learning method and device for processing unbalanced data
CN113312177B (en) Wireless edge computing system and optimizing method based on federal learning
Etman et al. Aggregate modeling of semiconductor equipment using effective process times
CN105869181A (en) Body joint distributed information consistency estimation method based on interacting multiple models
CN115775085A (en) Smart city management method and system based on digital twin
CN117786537B (en) Distributed fault diagnosis method of Boltzmann machine voting network based on FPGA
CN113543026B (en) Multi-floor indoor positioning method based on radial basis function network
Saeed et al. An IoT-Based Network for Smart Urbanization
Jamil et al. Technological innovation capability evaluation of high-tech firms using conjunctive and disjunctive belief rule-based expert system: a comparative study
CN113537613B (en) Temporal network prediction method for die body perception
CN115310727A (en) Building cooling, heating and power load prediction method and system based on transfer learning
CN114065646A (en) Energy consumption prediction method based on hybrid optimization algorithm, cloud computing platform and system
CN114841361A (en) Model training method and related equipment thereof
CN110084358A (en) A kind of smart home multi-Sensor Information Fusion Approach neural network based
CN113822000B (en) Flow field real-time prediction system and method based on edge calculation
CN113852349B (en) Remote monitoring method and system for 5G photovoltaic power station
CN116700049B (en) Multi-energy network digital twin real-time simulation system and method based on data driving

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant