Engineering calculation-oriented algorithm editing system and method
By designing an algorithm editing system for engineering computing and decoupling engineering algorithms and software codes, the problems of complex and long development time in engineering algorithms in the existing technology are solved, and efficient algorithm development and simplified maintenance processes are achieved.
Patent Information
- Application Number
- CN202411445725.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-16
- Publication Date
- 2025-02-14
AI Technical Summary
In the prior art, engineering algorithms have a high degree of coupling to software code, resulting in complex algorithm development process and long development time, and software developers lack understanding of engineering algorithms, which increases the difficulty of development.
Design an algorithm editing system for engineering computing, including algorithm editing and entry module, algorithm generation module, algorithm management module, algorithm operation module and display module. By decoupling algorithm programming functions and software programming functions, algorithm engineers can independently edit engineering algorithms , no software engineer is required to participate.
It effectively improves the efficiency of engineering algorithm development, simplifies the development process, reduces code redundancy and maintenance difficulty, and shortens the algorithm development cycle and cost.
Smart Images

Figure CN119440503A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of software development management, and in particular to an algorithm editing system and method oriented to engineering calculation. Background Art
[0002] In the existing technology, engineering algorithm calculations often involve the application of multiple disciplines. For example, the algorithms used in the development of civil aircraft involve fields such as structural mechanics, material mechanics, and aerodynamics. They are complex algorithms that are difficult, high-precision, high-computation, cross-team, and cross-cycle. With the development and changes of engineering algorithms, algorithm modules are often updated continuously, and new algorithms need to be added to the original algorithm modules to verify whether the physical characteristics of a certain computing unit on the aircraft meet the requirements.
[0003] However, if the software platform in the existing technology is used for algorithm editing, different algorithm codes are relatively coupled at the program level. If the algorithm needs to be changed, the corresponding functional code must also be changed with the addition of the new algorithm. The frequency of bugs is high, which is not conducive to code maintenance.
[0004] Moreover, due to the high degree of code coupling between engineering algorithms and software in the existing technology, when algorithm engineers need to update engineering algorithms, software developers are required to first understand the algorithms that need to be updated, and then design corresponding software to execute the relevant algorithms.
[0005] However, the actual situation is that during the algorithm development process, software developers do not have a deep understanding of the relevant engineering algorithms. They need to spend a lot of time to understand the input and output parameters of the engineering algorithms and other details within the engineering algorithms. Therefore, the algorithm development time is greatly prolonged.
[0006] However, if algorithm engineers who understand engineering algorithms are allowed to develop algorithm modules, the time required to understand engineering algorithms will be reduced to a certain extent. However, the reality is that algorithm engineers are not familiar with the models and languages of software development, and therefore cannot develop software.
[0007] Based on the above reasons, the software development process for engineering algorithms in the prior art is very difficult. Summary of the invention
[0008] In view of the above-mentioned defects of the prior art, the present invention proposes an algorithm editing system and method for engineering calculations that decouples engineering algorithms from software codes, is easy to operate, effectively improves the efficiency of engineering algorithm development, and is easy to use.
[0009] In order to achieve the above-mentioned purpose, the algorithm editing system and method for engineering calculation of the present invention are as follows:
[0010] In a first aspect, an embodiment of the present invention provides an algorithm editing system for engineering calculations, the main feature of which is that the system includes:
[0011] The algorithm editing and input module is used to receive the algorithm editing instruction, wherein the algorithm editing instruction includes the name of the operator to be called by the engineering algorithm to be edited, the storage path of the operator to be called, the arrangement relationship of each operator to be called, and the parameter information involved in the engineering algorithm to be edited;
[0012] An algorithm generation module, used for pre-storing operators to be called and path information of each operator to be called, and for responding to the algorithm editing instruction call and arranging the operators required to be called by the engineering algorithm to be edited, so as to generate the engineering algorithm to be edited in combination with the parameter information involved in the engineering algorithm to be edited;
[0013] An algorithm management module, used for managing each of the engineering algorithms to be edited, and storing each of the engineering algorithms to be edited that meets the system preset conditions as the engineering algorithms to be called;
[0014] An algorithm operation module, used for selecting a corresponding engineering algorithm from the engineering algorithms to be called in the algorithm management module in response to an algorithm call instruction to calculate a target calculation object and generate a calculation result;
[0015] The display module is used to display the algorithm editing interface and the algorithm operation interface.
[0016] In some embodiments, the algorithm editing and entry module includes:
[0017] An operator information input unit, used for receiving the name of the operator to be called by the engineering algorithm to be edited and the storage path of the operator to be called;
[0018] An arrangement relationship input unit, used for receiving the arrangement relationship of each operator to be called by the engineering algorithm to be edited;
[0019] The parameter information input unit is used to receive the parameter information involved in the engineering algorithm to be edited.
[0020] In some embodiments, the algorithm editing and entry module further includes:
[0021] The algorithm operation configuration input unit is used to receive the algorithm operation configuration information corresponding to the engineering algorithm to be edited, and the algorithm operation configuration information includes: the project information that can be input when the engineering algorithm to be edited is allowed to be used and the project information that can be obtained.
[0022] In some embodiments, the algorithm editing and entry module further includes:
[0023] A calculation object input unit, used for receiving the calculation object information applied by the engineering algorithm to be edited;
[0024] The calculation type input unit is used to receive the calculation object type information applied by the engineering algorithm to be edited.
[0025] In some embodiments, the algorithm generation module includes:
[0026] The operator library unit is used to store operators to be called and path information of each operator to be called;
[0027] An operator calling unit, used to call the corresponding operator from the operator library unit according to the name of the operator to be called by the engineering algorithm to be edited in the algorithm editing instruction and the storage path where the operator to be called is located;
[0028] An operator arrangement unit, used to arrange the corresponding operators called from the operator library unit according to the arrangement relationship of each operator in the algorithm editing instruction, and generate an arranged operator combination;
[0029] The algorithm creation unit is used to associate the parameter information involved in the engineering algorithm to be edited with the arranged operator combination to generate the engineering algorithm to be edited.
[0030] In some embodiments, when the editing instruction also includes object information that can be analyzed by the engineering algorithm to be edited and the type of objects that can be analyzed, the algorithm creation unit, when generating the engineering algorithm to be edited, also associates the arranged operator combination with the object information that can be analyzed and the type of objects that can be analyzed.
[0031] In some embodiments, the algorithm operation module includes:
[0032] An algorithm matching unit, used to respond to the algorithm calling instruction and match an engineering algorithm matching the algorithm calling instruction from the algorithm management module;
[0033] The algorithm execution unit is used to calculate the target calculation object in the algorithm calling instruction using the engineering algorithm matched with the algorithm calling instruction to generate a calculation result.
[0034] In some embodiments, the algorithm matching unit may also match the engineering algorithm to be called in the algorithm management module and associated with the target computing object information according to the target computing object information in the algorithm calling instruction.
[0035] In some embodiments, the algorithm execution unit may also control the time node for starting to execute the calculation of the target computing object according to the operation time node information in the algorithm calling instruction.
[0036] In some embodiments, the algorithm editing system for engineering calculations is applied to the development of aircraft engineering algorithms.
[0037] In some embodiments, the system further comprises:
[0038] The algorithm operation recording module is used to record the data processing process of the called engineering algorithm to calculate the target computing object.
[0039] In a second aspect, an embodiment of the present invention further provides an algorithm editing method for engineering calculations, the method comprising:
[0040] In response to the received algorithm editing instruction, the corresponding operator is matched from the pre-stored operators to be called for arrangement, and the engineering algorithm to be edited is generated in combination with the parameter information involved in the algorithm editing instruction, wherein the algorithm editing instruction includes the name of the operator to be called by the engineering algorithm to be edited, the storage path of the operator to be called, the arrangement relationship of each operator to be called, and the parameter information involved in the engineering algorithm to be edited;
[0041] The engineering algorithms to be edited that meet the system preset conditions are stored as engineering algorithms to be called;
[0042] In response to the algorithm calling instruction, a corresponding engineering algorithm is selected from the engineering algorithms to be called to calculate the target calculation object and generate a calculation result.
[0043] In some embodiments, the algorithm editing instruction further includes information about a calculation object and type of calculation object used by the engineering algorithm to be edited, and the method further includes:
[0044] When the algorithm calling instruction is obtained, the engineering algorithm to be called and associated with the target computing object information in the algorithm calling instruction is matched for calling in the algorithm management module.
[0045] In a third aspect, an embodiment of the present invention further provides an algorithm editing device for engineering calculations, comprising: at least one processor; a memory coupled to the at least one processor, the memory storing executable instructions, wherein the executable instructions, when executed by the at least one processor, implement the method described in any one of the second aspects above.
[0046] In a fourth aspect, an embodiment of the present invention further provides a chip for executing the method in the second aspect. Specifically, the chip includes: a processor for calling and running a computer program from a memory, so that a device equipped with the chip is used to execute the method in the second aspect.
[0047] In a fifth aspect, an embodiment of the present invention further provides a computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, the method described in any one of the second aspects above is implemented.
[0048] In a sixth aspect, an embodiment of the present invention further provides a computer program product, comprising computer program instructions, which enable a computer to execute the method in the second aspect.
[0049] Beneficial effects of the algorithm editing system and method for engineering calculations of the present invention:
[0050] The algorithm editing system for engineering calculations of the present invention is provided with an algorithm editing entry module, an algorithm generation module, an algorithm management module, an algorithm operation module and a display module, wherein the algorithm editing instruction received by the algorithm editing entry module includes the storage path, arrangement relationship and related parameter information of the operator to be called, the algorithm generation module is provided with an operator library for calling when editing the engineering algorithm, and the operators to be called can be combined according to the arrangement instructions, so as to process the arranged operator combination in combination with the related parameter information in the algorithm editing instruction to generate the engineering algorithm to be edited, and the algorithm operation module can call the corresponding engineering algorithm to be called generated according to the engineering algorithm to be edited according to the user's needs to calculate the target calculation object and generate the calculation result. The overall device has built an algorithm editing and input module for algorithm engineers to program, and an algorithm generation module for editing operators according to algorithm editing instructions. The relevant modules are not affected by software upgrades, effectively decoupling the algorithm programming function from the software programming function. When algorithm engineers edit engineering algorithms, they can edit the algorithms without the participation of software engineers. Software engineers only need to provide fixed engineering algorithm editing interfaces to algorithm engineers. Subsequent editing of other software functions does not need to consider the impact of the engineering algorithm to be edited, so that software developers and algorithm developers can complement each other's advantages, decouple algorithm development at the code level, avoid changing the original functional interface, reduce the new functional interface brought by the new algorithm, reduce code redundancy, and improve algorithm development efficiency. At the same time, the relevant system can also store the edited engineering algorithms for operators to call and calculate.
[0051] The algorithm editing system and method for engineering calculations can effectively improve the development efficiency of engineering algorithms, facilitate the maintenance of later software, and effectively shorten the cycle and cost of algorithm development by engineering R&D personnel. At the same time, the entire system provides an integrated function from editing to application of engineering algorithms, which is convenient for engineering algorithm engineers to develop algorithms and also convenient for algorithm application. This integrated application system and method of algorithm development and algorithm application can help engineering algorithm developers understand whether there will be problems in the application process of engineering algorithms, so as to adjust the engineering algorithms in a timely manner and better improve the engineering algorithms. BRIEF DESCRIPTION OF THE DRAWINGS
[0052] The concept, specific structure and technical effects of the present invention will be further described below in conjunction with the accompanying drawings to fully understand the purpose, characteristics and effects of the present invention.
[0053] Figure 1 It is a flow chart of an algorithm editing method for engineering calculations of the present invention in one embodiment.
[0054] Figure 2 It is a relationship diagram between the processing and functional modules of the algorithm editing method for engineering calculation of the present invention when editing engineering algorithms in one embodiment.
[0055] Figure 3 It is a flow chart of the application of the algorithm editing method for engineering calculations of the present invention in one embodiment.
[0056] Figure 4 It is a processing flow chart of processing a generated engineering algorithm to be edited into an engineering algorithm to be called in an algorithm editing method for engineering calculation of the present invention in one embodiment. DETAILED DESCRIPTION
[0057] In order to make the technical means, creative features, objectives and effects of the invention easier to understand, the invention is further described below with reference to specific diagrams. However, the invention is not limited to the following implementation cases.
[0058] It should be noted that the structures, proportions, sizes, etc. illustrated in the drawings in this specification are only used to match the contents disclosed in the specification so as to facilitate understanding and reading by persons familiar with this technology. They are not used to limit the conditions under which the present invention can be implemented, and therefore have no substantive technical significance. Any structural modification, change in proportion or adjustment of size, without affecting the effects and purposes that can be achieved by the present invention, should still fall within the scope of the technical contents disclosed by the present invention.
[0059] It should be noted that, in this document, relational terms such as “first” and “second” are merely used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any actual relationship or order between these entities or operations.
[0060] When the software in the prior art provides the engineering algorithm editing function, the engineering algorithm editor needs to participate in the software editing process to edit the software that can execute the corresponding engineering algorithm. During the development process, the engineering algorithm is completely coupled with the software function code. The engineering algorithm developers are unfamiliar with the algorithm, which makes the development difficult. The engineering algorithm personnel are unfamiliar with software development, which makes it difficult to integrate the algorithm. The engineering algorithm and the software function code are mixed together, which leads to a large workload for developing a new algorithm. There are many modified interfaces, which is not conducive to later maintenance. The workload of engineering algorithm development is large and the efficiency is low.
[0061] Based on the above problems, the present invention provides an algorithm editing system and method for engineering calculations, so that software developers and algorithm developers can complement each other's advantages, decouple algorithm development at the code level, avoid changing the original functional interface, reduce the new functional interface brought by the new algorithm, reduce code redundancy, and improve algorithm development efficiency.
[0062] The embodiment of the present invention provides the following solution:
[0063] In a first aspect, the present invention provides an algorithm editing system for engineering calculations, wherein the system comprises:
[0064] The algorithm editing and input module is used to receive the algorithm editing instruction, wherein the algorithm editing instruction includes the name of the operator to be called by the engineering algorithm to be edited, the storage path of the operator to be called, the arrangement relationship of each operator to be called, and the parameter information involved in the engineering algorithm to be edited;
[0065] An algorithm generation module, used for pre-storing operators to be called and path information of each operator to be called, and for responding to the algorithm editing instruction call and arranging the operators required to be called by the engineering algorithm to be edited, so as to generate the engineering algorithm to be edited in combination with the parameter information involved in the engineering algorithm to be edited;
[0066] An algorithm management module, used for managing each of the engineering algorithms to be edited, and storing each of the engineering algorithms to be edited that meets the system preset conditions as the engineering algorithms to be called;
[0067] An algorithm operation module, used for selecting a corresponding engineering algorithm from the engineering algorithms to be called in the algorithm management module in response to an algorithm call instruction to calculate a target calculation object and generate a calculation result;
[0068] The display module is used to display the algorithm editing interface and the algorithm operation interface.
[0069] In this embodiment, the algorithm editing and inputting module collects the algorithm editing instructions, obtains the name of the operator to be called by the engineering algorithm to be edited, the storage path of the operator to be called, the arrangement relationship of each operator to be called, and the parameter information involved in the engineering algorithm to be edited, and uses the algorithm generation module to respond to the algorithm editing instructions to retrieve the matching operator from the pre-stored operators to be called for arrangement, and associates it with the parameter information involved in the engineering algorithm to be edited, so as to generate the engineering algorithm to be edited. During the entire algorithm generation process, the engineering algorithm developer only needs to understand the path of the operator to be called, and then input the combination relationship and parameter information of the operator into the software to edit the algorithm. The development of the engineering algorithm can be realized without understanding the working principle of the software. The software engineer provides the engineering algorithm developer with the relevant information input interface during the software development. The subsequent software modification process keeps the relevant input interface unchanged, so that the optimization of other functions of the software can be completed without understanding the engineering algorithm information, which effectively improves the software maintenance efficiency.
[0070] At the same time, the algorithm editing system for engineering calculations also provides an algorithm management module, which presets some system preset conditions. The relevant preset conditions may include: the calculation results of the engineering algorithm must match the objective laws, the value range of the relevant parameters is limited, etc., which are used to preset the conditions that the engineering algorithm in the system must meet. The specific conditions can be designed by the user independently, not limited to the examples mentioned above. The algorithm management module can assist algorithm engineers in editing engineering algorithms, improve the availability of the final generated algorithm, and reduce the problem of engineering algorithms being unusable due to operational errors.
[0071] At the same time, the algorithm editing system for engineering calculations in this embodiment also provides an algorithm operation module, and the user can call the corresponding engineering algorithm to calculate the target calculation object as needed to generate the calculation result.
[0072] The entire system provides integrated functions from editing to application of engineering algorithms, which is convenient for engineering algorithm engineers to develop algorithms and apply algorithms. This integrated application system of algorithm development and algorithm application can help engineering algorithm developers understand whether there will be problems in the application of engineering algorithms, so as to adjust the engineering algorithms in time and better improve the engineering algorithms.
[0073] In this embodiment, the algorithm editing and input module includes:
[0074] An operator information input unit, used for receiving the name of the operator to be called by the engineering algorithm to be edited and the storage path of the operator to be called;
[0075] An arrangement relationship input unit, used for receiving the arrangement relationship of each operator to be called by the engineering algorithm to be edited;
[0076] The parameter information input unit is used to receive the parameter information involved in the engineering algorithm to be edited.
[0077] By setting the operator information input unit, the arrangement relationship input unit and the parameter information input unit, the algorithm editing instructions input by the algorithm engineer (or other operator) can be received to understand the operators and their storage paths, arrangement relationships and parameter information required to form the algorithm.
[0078] In this embodiment, the algorithm editing and input module further includes:
[0079] The algorithm operation configuration input unit is used to receive the algorithm operation configuration information corresponding to the engineering algorithm to be edited, and the algorithm operation configuration information includes: project information that can be input when the user uses the engineering algorithm to be edited and project information that can be obtained.
[0080] Algorithm engineers (or other operators) can use the algorithm operation configuration entry unit to set the project information that technicians who apply the relevant engineering algorithms can input and the project information that technicians (or other users) can obtain. Through the algorithm operation configuration entry unit, the information displayed to the users of the engineering algorithm can be more closely matched with the information required to be called, reducing the interference of irrelevant information. The relevant permission conditions can be set directly by the engineering algorithm developers without the participation of software developers.
[0081] In this embodiment, the algorithm editing and input module further includes:
[0082] A calculation object input unit, used for receiving the calculation object information applied by the engineering algorithm to be edited;
[0083] The calculation type input unit is used to receive the calculation object type information applied by the engineering algorithm to be edited.
[0084] Through the design of the calculation object input unit and the calculation type input unit, the relevant engineering algorithm can be associated with the calculation object, so as to better apply the developed engineering algorithm to the test of complex mechanisms.
[0085] In this embodiment, the algorithm generation module includes:
[0086] The operator library unit is used to store the operators to be called and the path information of each operator to be called. The relevant operators and their paths are input into the operator library unit by the user in advance, and can be adjusted later according to user needs;
[0087] An operator calling unit, used to call the corresponding operator from the operator library unit according to the name of the operator to be called by the engineering algorithm to be edited in the algorithm editing instruction and the storage path where the operator to be called is located;
[0088] An operator arrangement unit is used to arrange the corresponding operators called from the operator library unit according to the arrangement relationship of each operator in the algorithm editing instruction, and generate an arranged operator combination; the operator arrangement unit can arrange the operators according to the operator arrangement relationship input by the engineering algorithm personnel through a sorting algorithm;
[0089] A parameter information storage unit, used to store the parameter information involved in the engineering algorithm to be edited;
[0090] The algorithm creation unit is used to associate the parameter information involved in the engineering algorithm to be edited with the arranged operator combination to generate the engineering algorithm to be edited.
[0091] In this embodiment, when the editing instruction also includes object information that can be analyzed by the engineering algorithm to be edited and the type of objects that can be analyzed, the algorithm creation unit will also associate the arranged operator combination with the object information that can be analyzed and the type of objects that can be analyzed when generating the engineering algorithm to be edited.
[0092] Such a design can assist technicians (or other users) who apply the algorithm to more easily find the required engineering algorithm to edit the calculation object.
[0093] In this embodiment, the algorithm operation module includes:
[0094] An algorithm matching unit, used to respond to the algorithm calling instruction and match an engineering algorithm matching the algorithm calling instruction from the algorithm management module;
[0095] The algorithm execution unit is used to calculate the target calculation object in the algorithm calling instruction using the engineering algorithm matched with the algorithm calling instruction to generate a calculation result.
[0096] In this embodiment, the algorithm matching unit may also match the engineering algorithm to be called in the algorithm management module and associated with the target computing object information according to the target computing object information in the algorithm calling instruction.
[0097] In this embodiment, the algorithm execution unit can also control the time node for starting to execute the calculation of the target calculation object according to the operation time node information in the algorithm call instruction. Through such a design, the algorithm can be started to run at the time when the user needs to execute it, which is convenient for the user to better allocate time.
[0098] In this embodiment, the system further includes:
[0099] The algorithm operation record module is used to record the data processing process of the called engineering algorithm to calculate the target computing object. The algorithm operation record module can be used to better understand the operation of the algorithm, so that the engineering algorithm developers can more conveniently review the state of the algorithm when it is running, so as to trace the source in time when problems are encountered. The relevant processing process can be stored in the system in the form of logs.
[0100] The algorithm editing system for engineering calculations in this embodiment effectively decouples the software function code and the engineering algorithm code. The key interface between the two is an unstable code, which can be optimized with the continuous iteration of software developers and algorithm developers. The interface inside the function code is a stable code and is almost not modified, which is conducive to code maintenance.
[0101] In this embodiment, the algorithm editing system for engineering calculation is applied to the development of aircraft engineering algorithms.
[0102] Engineering algorithm codes are open to engineering algorithm developers, and non-engineering algorithm codes are developed by software developers. This model can complement the advantages of both types of personnel. This algorithm editing system can be very well applied to the development of complex mechanisms such as aircraft, and can effectively assist in shortening the algorithm development cycle and algorithm development costs of civil aircraft R&D personnel.
[0103] It should be noted that the above-mentioned modules and units are divided only from the functional perspective, not the physical hardware structure. In specific applications, the relevant units can be operated by the same device or by separate devices.
[0104] In a second aspect, the present invention provides an algorithm editing method for engineering calculations, the method comprising:
[0105] In response to the received algorithm editing instruction, the corresponding operator is matched from the pre-stored operators to be called for arrangement, and the engineering algorithm to be edited is generated in combination with the parameter information involved in the algorithm editing instruction, wherein the algorithm editing instruction includes the name of the operator to be called by the engineering algorithm to be edited, the storage path of the operator to be called, the arrangement relationship of each operator to be called, and the parameter information involved in the engineering algorithm to be edited;
[0106] The engineering algorithms to be edited that meet the system preset conditions are stored as engineering algorithms to be called;
[0107] In response to the algorithm calling instruction, a corresponding engineering algorithm is selected from the engineering algorithms to be called to calculate the target calculation object and generate a calculation result.
[0108] For relevant processing procedures, please refer to Figure 1 It should be noted that the steps of using engineering algorithms to perform calculations can be called and run as long as the system contains relevant engineering algorithms, and it is not necessary to perform the previous engineering algorithm editing steps every time it is used.
[0109] In this embodiment, the algorithm editing instruction also includes calculation object information and calculation object type information applied by the engineering algorithm to be edited, and the method further includes:
[0110] When the algorithm calling instruction is obtained, the engineering algorithm to be called and associated with the target computing object information in the algorithm calling instruction is matched for calling in the algorithm management module.
[0111] The operating principle and beneficial effects of the algorithm editing method for engineering calculations are consistent with the system in the first aspect embodiment, and therefore, they will not be described in detail here.
[0112] In a third aspect, the present invention further provides an algorithm editing device for engineering calculations, comprising:
[0113] at least one processor;
[0114] A memory coupled to the at least one processor, the memory storing executable instructions, wherein the executable instructions, when executed by the at least one processor, implement the method described in the second aspect. The processor and the memory may be provided separately or integrated together.
[0115] For example, the memory may include a random access memory, a flash memory, a read-only memory, a programmable read-only memory, a non-volatile memory or a register, etc. The processor may be a central processing unit (CPU), etc., or a graphic processing unit (GPU). The memory may store executable instructions. The processor may execute the executable instructions stored in the memory to implement the various processes described herein.
[0116] It can be understood that the memory in this embodiment can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories. Among them, the non-volatile memory can be a ROM (Read-Only Memory), a PROM (Programmable ROM), an EPROM (Erasable PROM), an EEPROM (Electrically EPROM), or a flash memory. The volatile memory can be a RAM (Random Access Memory), which is used as an external cache. By way of example but not limitation, many forms of RAM are available, such as SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM), DDR SDRAM (Double Data Rate SDRAM), ESDRAM (Enhanced SDRAM), SLDRAM (Synchlink DRAM), and DRRAM (Direct Rambus RAM). The memories described herein are intended to include, but are not limited to, these and any other suitable types of memories.
[0117] In some embodiments, the memory stores the following elements, upgrade packages, executable units or data structures, or a subset thereof, or an extended set thereof: an operating system and an application program.
[0118] The operating system includes various system programs, such as a framework layer, a core library layer, a driver layer, etc., which are used to implement various basic services and process hardware-based tasks. The application program includes various application programs, which are used to implement various application services. The program for implementing the method of the embodiment of the present invention can be included in the application program.
[0119] In the embodiment of the present invention, the processor calls a program or instruction stored in the memory, specifically, a program or instruction stored in an application program, and the processor is used to execute the method steps provided in the second aspect.
[0120] In a fourth aspect, the present invention further provides a chip for executing the method in the second aspect. Specifically, the chip includes: a processor for calling and running a computer program from a memory, so that a device equipped with the chip is used to execute the method in the second aspect.
[0121] In a fifth aspect, the present invention further provides a computer-readable storage medium having a computer program stored thereon, and when the computer program is executed by a processor, the method described in any one of the second aspects above is implemented.
[0122] For example, machine-readable storage media may include, but are not limited to, various known and unknown types of non-volatile memory.
[0123] In a sixth aspect, an embodiment of the present invention further provides a computer program product, comprising computer program instructions, which enable a computer to execute an algorithm editing method for engineering calculations.
[0124] This computer program product provides a development model that allows software developers and engineering algorithm personnel to collaborate in development, which effectively isolates software function codes from engineering algorithm development codes and distinguishes between stable codes and unstable codes. When the overall solution is applied, it involves algorithm configuration modules and workflow modules. The relationship between the relevant modules can be found in Figure 2 shown.
[0125] The algorithm configuration module includes parameter configuration module, arrangement configuration module and result configuration module. The engineering algorithm developer can input the parameter configuration information, operator arrangement relationship and the content provided to the user when the user uses the engineering algorithm to be edited into the system through the algorithm configuration module. The engineering algorithm personnel can input the customized information of the engineering algorithm to be edited into the system through the algorithm configuration module.
[0126] The parameter configuration module is used to maintain the operator parameter information of the algorithm. The parameters mentioned here are not equivalent to the parameter information mentioned in the first aspect. The relevant operator parameter information specifically includes: the operator definition is used to describe the name of the operator (i.e., the name of the operator to be called by the engineering algorithm to be edited), the implementation path (i.e., the storage path of the operator to be called by the engineering algorithm to be edited in the system) and the calculation object and other information;
[0127] Operator parameter configuration is responsible for the configuration of the general page of operator parameters, which can be configured by engineering algorithm developers in a certain mode (i.e., for algorithm personnel to edit the project information that can be input and the project information that can be obtained when using the engineering algorithm to be edited).
[0128] The orchestration configuration module is used to connect operator information to form an algorithm module, including algorithm definition, which is used to describe the name of the algorithm, associated objects, and other information;
[0129] In specific implementation, the algorithm arrangement function allows algorithm developers to drag and drop operators on the front-end page to form a directed acyclic graph to illustrate the relationship between operators within the algorithm. In other embodiments, users can also use other operator relationship arrangement methods to input operator arrangement information;
[0130] The result configuration module is used to maintain the result display information of different algorithms, including the configuration of the front-end display, the configuration of the file content and other information.
[0131] The workflow module is used to maintain the process information required for the execution of engineering algorithms, including:
[0132] A calculation object creation module is used to create a calculation object of an engineering algorithm or to create a parent node of a calculation object;
[0133] The parameter page loading module is used to load the parameter page of the algorithm according to the operator parameter configuration. In specific applications, users can use ElementUI components, Vue technology and other interface generation methods to display the algorithm application interface. For example, a page that only includes information such as condition boxes can be dynamically displayed through ElementUI component technology, while pages involving image editing can be realized through Vue technology; among them, the page displayed through Vue technology allows users to select image areas in order to select calculation objects.
[0134] Among them, Element Ul is an open source UI component library based on Vue.js, which provides developers with a set of elegant and flexible UI components. It includes various commonly used web components, such as buttons, forms, navigation, etc., as well as advanced components such as date pickers, dialog boxes, etc.
[0135] Vue technology refers to a progressive framework for creating user interfaces, designed to better organize and simplify web development.
[0136] The parameter access module verifies the validity of the parameters input by the user and stores them in the database, which is convenient for other modules to read the parameter information;
[0137] The algorithm execution module is used to maintain information about the algorithm's operation, including algorithm orchestration and algorithm execution. Algorithm orchestration is used to maintain the algorithm's operator information and read the orchestration configuration module to obtain the execution order of the operators corresponding to the algorithm. Algorithm execution is used to control the state of algorithm execution, that is, immediate execution or scheduled execution. The operator module implements the operator code. The algorithm is implemented from the perspective of the operator, which is conducive to code reuse. This module also provides a basis for the orchestration configuration module. The language of this part can be fortran, matlab, python and other programming languages to facilitate development by engineering algorithm personnel. The result display module reads the result configuration module to extract the information that each algorithm needs to display.
[0138] Figure 2 The information in the algorithm configuration module is basically input by the user and then stored in the corresponding database. In this embodiment, the information in the arrangement configuration module can be stored in the database by the user by dragging and dropping.
[0139] For example: the storage of the relevant parameters and information involved in this embodiment can be stored in the following manner: the information defined by the algorithm and the operator can be stored in the first database and the second database respectively, the association information between the algorithm and the operator (i.e., the arrangement information of the operator) can be stored in the third database, the engineering algorithm to be edited after the arrangement is completed can be stored in the fourth database, and the engineering algorithm to be called can be stored in the fifth database for waiting for calling, the parameter information in the parameter page loading module can be set in the sixth database, and the parameters involved in the editing or running of the engineering algorithm can be set in the seventh database. Among them, the first database to the seventh database can all be composed of a database of distributed file storage (such as MongoDB), so that the parameters can be called and combined when the method is running. The algorithm execution module can be composed of a server that can run the relevant algorithm, and the relevant server can call the relevant instructions or parameters from the corresponding database according to the control instruction to run the algorithm. The specific database and server setting method is not the focus of the design of the present invention, and there are various optional methods. Therefore, there is no excessive restriction in this application.
[0140] In order to better reflect the relationship between each operation step and the called interface during the algorithm development process of the computer program product, the following Figure 3 Let's explain step by step:
[0141] Figure 3 Outside the dotted line are the operations that the engineering algorithm developers need to perform on the system to develop new algorithms, and inside the dotted line are the parts that the software developers need to design within the system for the engineering algorithm developers to develop engineering algorithms. The engineering algorithm developers can define operators and set operator configuration parameters when editing engineering algorithms through the interface or interface reserved by the software developer parameter configuration module, and can define and arrange algorithms through the interface or interface reserved by the software developer arrangement configuration module. At the same time, the engineering algorithm developers can also add parameter restrictions to the arranged operator combination through the parameter access module in the software.
[0142] Among them, the parameter configuration module basically includes operator definition and parameter configuration, and will also add other functions, such as modifying parameter configuration.
[0143] The operator defines the basic information of the operator: the operator name, the path for the operator to be implemented, the calculation object corresponding to the operator, the type of the operator, etc.
[0144] Parameter configuration is the parameters required to configure the operator and is used to display the parameter page on the front end.
[0145] The functions implemented by the parameter configuration module are displayed through the front end. The implementation logic belongs to the functional code and basically does not need to be modified after the software debugging is stable.
[0146] The code interface of the operator development in the software needs to be configured according to the module settings arranged by the software developer;
[0147] The algorithm arrangement module includes algorithm definition and arrangement. The algorithm definition includes information such as the algorithm type, display name, category, and calculation object. The arrangement is the algorithm association with the corresponding operator, and the algorithm execution is in the order of the topological sorting of the operator.
[0148] The result configuration is set by the result configuration module of the software developer. The result configuration module is used to configure the information output by the engineering algorithm result, and the configuration information is stored in the database.
[0149] Software developers can use tabular or textual formats to set interfaces or screens for algorithm developers, which makes it easy for engineering algorithm developers to sort out algorithm parameters and is simple to operate. Software developers store data in tabular or textual formats into a database, and information is transmitted between modules through the database, making it easy for software developers to maintain information.
[0150] In this embodiment, the arrangement configuration module allows engineering algorithm developers to use the directed acyclic graph formed by dragging on the interface to input the system, and the system uses the Kahn algorithm to obtain the topological sorting of the directed graph, and then obtain the execution order of the operator. This method can make the operation of engineering algorithm personnel more convenient.
[0151] The above interface or interface setting has decoupled the function code and algorithm code. The key interface between the two is unstable code, which can be optimized with the continuous iteration of software developers and algorithm developers. The interface inside the function code is stable code and is rarely modified, which is conducive to code maintenance.
[0152] The following is an example to illustrate the processing process of the computer program product in this embodiment when generating the final algorithm to be called. Figure 4 As described above, the following verification processing steps are also performed before generating the final usable engineering algorithm:
[0153] In the first step, the engineering algorithm editor can create a calculation object through the software. The creation of a calculation object is to create an algorithm object, which also includes the preparatory work of creating the algorithm object. For example, in the static strength algorithm of the engineering software, before creating the algorithm object, it is necessary to create an SE object and a SEA object, and then create an algorithm on the SE object or the SEA object (where SE stands for Structure Element and SEA stands for Structure Element Assembly), that is, the object created is the calculation object applied by the engineering algorithm to be edited.
[0154] The second step is to select the algorithm. In this process, when the software receives the algorithm editing instruction, it will receive the calculation object information applied by the engineering algorithm to be edited. Therefore, when the technician calls the algorithm, the algorithm matching the calculation object in the system can be provided to the user for browsing, so that the user can find the algorithm to be adopted more conveniently. The specific algorithm selection process is to let the user select one or more engineering algorithms from the created engineering algorithms.
[0155] The third step is for users to set parameters. Setting parameters means setting parameters for the selected algorithm on the page, such as input parameters, drop-down box selection parameters, material selection parameters, etc.
[0156] In the fourth step, the system verifies the parameters set by the user according to the preset conditions. For example, parameter verification includes: secondary parameter verification of the parameters input by the user, setting non-empty verification and type verification while setting the parameters, and performing validity verification on the parameters at the operator implementation level after the algorithm is executed, such as whether they conform to the physical meaning.
[0157] The fifth step is to execute the algorithm. In specific implementation, algorithm execution can be divided into immediate execution and scheduled execution. Scheduled execution is for algorithms with large computational volume and long time consumption, to avoid occupying the execution of other algorithms during prime time, while immediate execution allows users to get the running results faster.
[0158] During the software operation, the algorithm execution link is used to create analysis based on the calculation object. After the analysis is created, the parameter page loading module will be used to display the parameters. The user fills in the parameters, and the parameters are stored in the database through the parameter access module. The algorithm execution calls the orchestration configuration module to determine the order of calling operators. The operator module takes the operator parameters from the database and executes the operator to implement the logic. After the algorithm is executed, the result display module is called to display the results.
[0159] Step 6: Display the results. Users can check whether the algorithm's intermediate results and output results meet expectations through the algorithm test results displayed by the system and the recorded algorithm operation process. The results will automatically enter the test library.
[0160] Among them, for algorithms that do not meet expectations, you can go back to the third step above to adjust the parameters, or notify the corresponding algorithm developers to adjust the algorithm; for algorithms that meet expectations, they can be stored in the test library for algorithm managers to add the expected parameter results to the final algorithm library for subsequent calls.
[0161] The relevant computer program products can be well applied to the development of engineering algorithms used in aircraft design, and effectively assist the development of relevant algorithms. The computer program products involved in this embodiment distinguish between algorithms and function codes, and distinguish between stable codes and unstable codes, which is conducive to code maintenance. The engineering algorithm code is open to algorithm developers, and the non-algorithm code is open to software developers. This mode can complement the advantages of the two types of personnel well, and effectively shorten the cycle and cost of algorithm development by aircraft R&D personnel. Customizing the information of each algorithm by configuration can be more flexible and reduce the difficulty of algorithm developers.
[0162] At the same time, the computer program product can be constructed using a B / S architecture (i.e., Browser / Server mode), a front-end and back-end separation framework, and use code to implement common logic. The configuration information is stored in the database, and algorithm developers do not need to care about the internal logic, but only need to operate according to the front-end page. This is convenient for more engineering algorithm editors to use and reduces the requirements for hardware equipment when editing engineering algorithms.
[0163] Beneficial effects of the algorithm editing system and method for engineering calculations of the present invention:
[0164] The algorithm editing system for engineering calculations of the present invention is provided with an algorithm editing entry module, an algorithm generation module, an algorithm management module, an algorithm operation module and a display module, wherein the algorithm editing instruction received by the algorithm editing entry module includes the storage path, arrangement relationship and related parameter information of the operator to be called, the algorithm generation module is provided with an operator library for calling when editing the engineering algorithm, and the operators to be called can be combined according to the arrangement instructions, so as to process the arranged operator combination in combination with the related parameter information in the algorithm editing instruction to generate the engineering algorithm to be edited, and the algorithm operation module can call the corresponding engineering algorithm to be called generated according to the engineering algorithm to be edited according to the user's needs to calculate the target calculation object and generate the calculation result. The overall device has built an algorithm editing and input module for algorithm engineers to program, and an algorithm generation module for editing operators according to algorithm editing instructions. The relevant modules are not affected by software upgrades, effectively decoupling the algorithm programming function from the software programming function. When algorithm engineers edit engineering algorithms, they can edit the algorithms without the participation of software engineers. Software engineers only need to provide fixed engineering algorithm editing interfaces to algorithm engineers. Subsequent editing of other software functions does not need to consider the impact of the engineering algorithm to be edited, so that software developers and algorithm developers can complement each other's advantages, decouple algorithm development at the code level, avoid changing the original functional interface, reduce the new functional interface brought by the new algorithm, reduce code redundancy, and improve algorithm development efficiency. At the same time, the relevant system can also store the edited engineering algorithms for operators to call and calculate.
[0165] The algorithm editing system and method for engineering calculations can effectively improve the development efficiency of engineering algorithms, facilitate the maintenance of later software, and effectively shorten the cycle and cost of algorithm development by engineering R&D personnel.
[0166] It will be appreciated by those skilled in the art that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art may use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of the present invention.
[0167] In the embodiments of the present invention, the disclosed systems, devices and methods can be implemented in other ways. For example, the division of units is only a logical function division, and there can be other division methods in actual implementation. For example, multiple units or components can be combined or integrated into another system. In addition, the coupling between the units can be direct coupling or indirect coupling. In addition, the functional units in the embodiments of the present invention can be integrated into a processing unit, or can be separate physical existences, etc.
[0168] It should be understood that in various embodiments of the present invention, the size of the sequence number of each process does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present invention.
[0169] If the functions are implemented in the form of software functional units and sold or used as independent products, they can be stored in a machine-readable storage medium. Therefore, the technical solution of the present invention can be embodied in the form of a software product, which can be stored in a machine-readable storage medium, which can include several instructions for enabling an electronic device to perform all or part of the technical solution described in the embodiment of the present invention. The above-mentioned storage medium can include various media that can store program codes, such as ROM, RAM, removable disk, hard disk, magnetic disk or optical disk.
[0170] The preferred specific embodiments of the present invention are described in detail above. It should be understood that ordinary technicians in the field can make many modifications and changes based on the concept of the present invention without creative work. Therefore, all technical solutions that can be obtained by technicians in the technical field based on the concept of the present invention through logical analysis, reasoning or limited experiments on the basis of the prior art should be within the scope of protection determined by the claims.
Claims
1. An algorithm editing system for engineering calculations, characterized in that: The system comprises: The algorithm editing and input module is used to receive the algorithm editing instruction, wherein the algorithm editing instruction includes the name of the operator to be called by the engineering algorithm to be edited, the storage path of the operator to be called, the arrangement relationship of each operator to be called, and the parameter information involved in the engineering algorithm to be edited; An algorithm generation module, used for pre-storing operators to be called and path information of each operator to be called, and for responding to the algorithm editing instruction call and arranging the operators required to be called by the engineering algorithm to be edited, so as to generate the engineering algorithm to be edited in combination with the parameter information involved in the engineering algorithm to be edited; An algorithm management module, used for managing each of the engineering algorithms to be edited, and storing each of the engineering algorithms to be edited that meets the system preset conditions as the engineering algorithms to be called; An algorithm operation module, used for selecting a corresponding engineering algorithm from the engineering algorithms to be called in the algorithm management module in response to an algorithm call instruction to calculate a target calculation object and generate a calculation result; The display module is used to display the algorithm editing interface and the algorithm operation interface.
2. The algorithm editing system for engineering calculation according to claim 1, characterized in that: The algorithm editing and input module includes: An operator information input unit, used for receiving the name of the operator to be called by the engineering algorithm to be edited and the storage path of the operator to be called; An arrangement relationship input unit, used for receiving the arrangement relationship of each operator to be called by the engineering algorithm to be edited; A parameter information input unit, used for receiving the parameter information involved in the engineering algorithm to be edited; An algorithm operation configuration input unit, used to receive the algorithm operation configuration information corresponding to the engineering algorithm to be edited, wherein the algorithm operation configuration information includes: project information that can be input when the engineering algorithm to be edited is allowed to be used and project information that can be obtained; A calculation object input unit, used for receiving the calculation object information applied by the engineering algorithm to be edited; The calculation type input unit is used to receive the calculation object type information applied by the engineering algorithm to be edited.
3. The algorithm editing system for engineering calculation according to claim 1, characterized in that: The algorithm generation module comprises: The operator library unit is used to store operators to be called and path information of each operator to be called; An operator calling unit, used to call the corresponding operator from the operator library unit according to the name of the operator to be called by the engineering algorithm to be edited in the algorithm editing instruction and the storage path where the operator to be called is located; An operator arrangement unit, used to arrange the corresponding operators called from the operator library unit according to the arrangement relationship of each operator in the algorithm editing instruction, and generate an arranged operator combination; The algorithm creation unit is used to associate the parameter information involved in the engineering algorithm to be edited with the arranged operator combination to generate the engineering algorithm to be edited.
4. The algorithm editing system for engineering calculation according to claim 3, characterized in that: When the editing instruction also includes object information that can be analyzed by the engineering algorithm to be edited and the type of objects that can be analyzed, the algorithm creation unit will also associate the arranged operator combination with the object information that can be analyzed and the type of objects that can be analyzed when generating the engineering algorithm to be edited.
5. The algorithm editing system for engineering calculation according to claim 3, characterized in that: The algorithm operation module includes: An algorithm matching unit, used to respond to the algorithm calling instruction and match an engineering algorithm matching the algorithm calling instruction from the algorithm management module; An algorithm execution unit, used to calculate the target calculation object in the algorithm calling instruction using the engineering algorithm matched with the algorithm calling instruction, and generate a calculation result; The algorithm matching unit may also match the engineering algorithm to be called in the algorithm management module and associated with the target computing object information according to the target computing object information in the algorithm calling instruction.
6. The algorithm editing system for engineering calculation according to claim 5, characterized in that: The algorithm execution unit may also control the time node for starting to execute the calculation of the target computing object according to the calculation time node information in the algorithm calling instruction.
7. The algorithm editing system for engineering calculation according to claim 1, characterized in that: The system further comprises: The algorithm operation record module is used to record the data processing process of the called engineering algorithm to calculate the target computing object; The algorithm editing system for engineering calculation is applied to the development of aircraft engineering algorithms.
8. An algorithm editing method for engineering calculations, characterized in that: The method comprises: In response to the received algorithm editing instruction, the corresponding operator is matched from the pre-stored operators to be called for arrangement, and the engineering algorithm to be edited is generated in combination with the parameter information involved in the algorithm editing instruction, wherein the algorithm editing instruction includes the name of the operator to be called by the engineering algorithm to be edited, the storage path of the operator to be called, the arrangement relationship of each operator to be called, and the parameter information involved in the engineering algorithm to be edited; The engineering algorithms to be edited that meet the system preset conditions are stored as engineering algorithms to be called; In response to the algorithm calling instruction, a corresponding engineering algorithm is selected from the engineering algorithms to be called to calculate the target calculation object and generate a calculation result.
9. The algorithm editing method for engineering calculation according to claim 8, characterized in that: The algorithm editing instruction also includes the calculation object information and calculation object type information applied by the engineering algorithm to be edited, and the method further includes: When the algorithm calling instruction is obtained, the engineering algorithm to be called and associated with the target computing object information in the algorithm calling instruction is matched for calling in the algorithm management module.
10. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps of the method described in any one of claims 8 to 9 are implemented.