System and method for centralized data management of software models
By receiving software component models and model reference blocks, storing component data and generating system models, the problems of software model integration complexity and professional knowledge requirements in the prior art are solved, and centralized data management of software models and simplifying the integration process is realized.
Patent Information
- Application Number
- CN202411209627.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-08-30
- Filing Date
- 2024-08-30
- Publication Date
- 2025-02-28
AI Technical Summary
The prior art has complexity and expertise requirements in the integration process of software model, which makes integration tools difficult to use and limited components to support.
By receiving the software component model and model reference blocks, the component data is stored in the model reference blocks, and the system model is generated based on these models, and finally the system model is converted into a programming language.
Centralized data management of software models is implemented, the component model integration process is simplified, the need for expertise is reduced, and the ease of use of integration tools is improved.
Smart Images

Figure CN119536631A_ABST
Abstract
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This patent application claims priority to U.S. Provisional Patent Application No. 63 / 579,746, filed on August 30, 2023, which is incorporated herein by reference in its entirety. Technical Field
[0002] The present disclosure relates to software model data management, and more particularly to a system and method for centralized data management of software models. Background Art
[0003] Vehicles (such as cars, trucks, SUVs, crossovers, minivans, boats, airplanes, ATVs, recreational vehicles, or other suitable forms of transportation) typically include various systems, such as a steering system (which may include an electric power steering (EPS) system, a steer-by-wire (SbW) steering system, a hydraulic steering system, or other suitable steering systems), and / or other suitable systems (e.g., such as a braking system, a propulsion system, etc.). These systems of the vehicle typically control various aspects of vehicle steering (e.g., including providing steering assistance to an operator of the vehicle, controlling a steering wheel of the vehicle, etc.), vehicle propulsion, vehicle braking, etc. Summary of the invention
[0004] The present disclosure generally relates to steering systems.
[0005] An aspect of the disclosed embodiment includes a method for centralized data management of software models. The method includes receiving at least one software component model, receiving at least one model reference block, and storing component data associated with the software component model in the at least one model reference block. The method also includes generating a system model based on the at least one software component model and the at least one model reference block. The method also includes converting the system model into at least one programming language.
[0006] Another aspect of the disclosed embodiment includes a system for centralized data management of software models. The system includes a processor and a memory. The memory includes instructions that, when executed by the processor, enable the processor to: receive at least one software component model; receive at least one model reference block; store component data associated with the software component model in the at least one model reference block; generate a system model based on the at least one software component model and the at least one model reference block; and convert the system model into at least one programming language.
[0007] Another aspect of the disclosed embodiment includes a method for centralized data management of software models. The method includes receiving at least one software component model, receiving at least one model reference block associated with the at least one software component model, and extracting component data from the at least one model reference block. The method also includes storing the component data in a data store, the data store including other component data from other reference blocks associated with the at least one software component model, retrieving the component data and at least some of the other component data from the data store, and generating a system model based on the at least one software component model, the component data, and at least some of the other component data.
[0008] Another aspect of the disclosed embodiment includes a system for centralized data management of software models. The system includes a processor and a memory. The memory includes instructions that, when executed by the processor, enable the processor to: receive at least one software component model; receive at least one model reference block associated with the at least one software component model; extract component data from the at least one model reference block; store the component data in a data memory that includes other component data from other reference blocks associated with the at least one software component model; obtain the component data and at least part of the other component data from the data memory; and generate a system model based on the at least one software component model, the component data, and at least part of the other component data.
[0009] Another aspect of the disclosed embodiment includes an apparatus for centralized data management of software models. The apparatus includes a computing device configured to: receive at least one software component model; receive at least one model reference block associated with the at least one software component model; extract component data from the at least one model reference block; store the component data in a data storage device, the data storage device including other component data from other reference blocks associated with the at least one software component model; retrieve the component data and at least a portion of the other component data from the data storage device; and, based on the at least one software component model, the component data and at least a portion of the other component data, generate a system model associated with a steering system, wherein at least one aspect of the steering system is controlled based on the system model.
[0010] These and other aspects of the present disclosure are disclosed in the following detailed description of the embodiments, the appended claims and the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0011] The present disclosure can be better understood by reading the following detailed description in conjunction with the accompanying drawings. It should be emphasized that, according to convention, the various features of the drawings are not drawn to scale. On the contrary, the sizes of the various features are arbitrarily enlarged or reduced for clarity.
[0012] Figure 1 A vehicle in accordance with the principles of the present disclosure is generally shown.
[0013] Figure 2 A controller according to the principles of the present disclosure is generally shown.
[0014] Figure 3 A model workspace approach according to the principles of the present disclosure is generally shown.
[0015] Figure 4 A data dictionary approach according to the principles of the present disclosure is generally shown.
[0016] Figure 5 A block parameter approach according to the principles of the present disclosure is generally shown.
[0017] Figure 6 A flow chart generally illustrates a centralized software model data management method according to the principles of the present disclosure.
[0018] Figure 7 A flow chart generally illustrates an alternative centralized software model data management method according to the principles of the present disclosure.
[0019] Figure 8 A computing device in accordance with the principles of the present disclosure is generally shown. DETAILED DESCRIPTION
[0020] Various embodiments of the present disclosure are discussed below. Although one or more of these embodiments may be preferred, the disclosed embodiments should not be interpreted or otherwise used to limit the scope of disclosure including the claims. In addition, those skilled in the art will understand that the following description has broad applicability, and the discussion of any embodiment is only meant to be exemplary of that embodiment, and is not intended to imply that the scope of disclosure including the claims is limited to that embodiment.
[0021] As described above, vehicles (such as cars, trucks, SUVs, crossovers, minivans, boats, airplanes, all-terrain vehicles, recreational vehicles, or other suitable forms of transportation) typically include various systems, such as a steering system (which may include an electric power steering (EPS) system, a steer-by-wire (SbW) steering system, a hydraulic steering system, or other suitable steering systems), and / or other suitable systems (e.g., such as a braking system, a propulsion system, etc.). These systems of the vehicle typically control various aspects of vehicle steering (e.g., including providing steering assistance to an operator of the vehicle, controlling the steering wheels of the vehicle, etc.), vehicle propulsion, vehicle braking, etc.
[0022] Typically, such systems may rely on various software programs to provide control of various aspects of the vehicle system. Such software programs may include embedded software and / or other suitable software. The complexity of embedded software in the automotive industry has increased dramatically, with modern programs consisting of hundreds of thousands of lines of code. In order to manage complexity, software is broken down into multiple components that are then integrated together to form a complete software product.
[0023] However, software component integration can be relatively complex and require specialized knowledge and / or skills. For example, in addition to understanding where different components belong within the context of a software application, a significant amount of manual work is required to connect inputs and outputs, route specialized component requirements to locations within the application where they can be met, and ensure that system resources are allocated correctly.
[0024] Typical integration tools may be difficult to use and may be relatively limited in terms of support for components including code (e.g., written in C or other suitable programming languages) and configuration files (e.g., written in Extensible Markup Language (XML) or other suitable programming languages).
[0025] To compensate for the shortcomings of such integrated tools, model components can be created and auto-coding can be used to convert the models into C and / or XML, or other suitable programming languages. Such models include information that is not relevant to the functionality of the components involved. Such models necessarily include information that is not relevant to functionality, and modeling and testing component interactions for relatively large systems becomes increasingly difficult.
[0026] Therefore, systems and methods configured to provide automatic integration of such models, such as described herein, would be desirable. In some embodiments, the systems and methods described herein can be configured to complement various software architectures using a modeling interface layer. The systems and methods described herein can be configured to provide integration of component models to create and automatically encode complete systems.
[0027] In some embodiments, the systems and methods described herein may be configured to use a library of building blocks that include at least one partition block used in the first layer of a model. A partition block may include dedicated subsystem blocks that can contain other blocks as sub-blocks. A partition block contains information about how to integrate associated sub-blocks, including parameters for execution rate, MPU allocation, and task priority. A model may be built in a parameter block, or a model reference block of a library may be used to include the model, which may propagate specific requirements of the model to an associated parent (e.g., and may work in the same manner as a standard model reference block). All other blocks included in a partition block may contain useful integration parameters (e.g., execution rate, MPU designation, priority, and / or similar parameters).
[0028] The systems and methods described herein can be configured to provide for the creation of modular models. The systems and methods described herein can be configured to provide for relatively simple components (e.g., requiring fewer non-functional blocks). The systems and methods described herein can be configured to provide for a more portable solution (e.g., where the components specify fewer integration parameters).
[0029] The systems and methods described herein can be configured to infer integration parameters from a model after automatically encoding a larger system. The systems and methods described herein can be configured to allow scripting (eg, automatic) of integration based on model parameters.
[0030] In some embodiments, a modeling interface layer is used to supplement the usual software architecture to correct many of the previous problems. For example, the systems and methods described herein can be configured to use a modeling interface layer to integrate models to create a complete system at the modeling level, rather than automatically coding individual components and integrating code / xml files. The systems and methods described herein can be configured to automatically code the entire system.
[0031] In some embodiments, the systems and methods described herein can be configured to provide a component model that is greatly simplified compared to traditional methods. Components can be designed without specific integration information (such as execution rate). Instead, the functionality of the component can be used, thereby improving clarity (e.g., by removing non-functional integration blocks). Additionally or alternatively, because the design of the component can be done without considering execution rate, memory protection unit (MPU) allocation, or most other integration issues, the component is more portable (e.g., a component can be moved from one partition to another without changing the component model even if the execution rate is different).
[0032] In some embodiments, the systems and methods described herein can be configured to use custom blocks so that the information for integration is inherent in the model. The systems and methods described herein can be configured to access the information within the blocks after the system is automatically coded using the model interface layer to assign the generated code to the appropriate location and configure the lower level software (e.g., RTE, operating system, communication channel).
[0033] In some embodiments, the systems and methods described herein can be configured to integrate component models and / or improve the representation of the final product of the model. The systems and methods described herein can be configured to include information such as execution rate into the model to automatically integrate the generated code as the system is coded from the integrated model.
[0034] Additionally or alternatively, there are several standard options for managing data in software models, such as the base workspace approach, the model workspace approach (e.g., Figure 3 ) or data dictionary methods (e.g. Figure 4 Data in the base workspace method is usually not persistent, while the model workspace method and data dictionary method can be used for persistent data storage.
[0035] Typically, a data dictionary can be used to manage data for a software component model. This approach is useful for tracking data. However, this approach can make it relatively difficult to read the data (e.g., because the data is stored in a special file format that may be difficult to access or read without specialized tools), and the data can be changed outside the model, which may affect functionality within the model. In addition, multiple files must be tracked, which can be further complicated if files with the same name cannot be distinguished (e.g., this can lead to manual file management).
[0036] Therefore, as described herein, it may be desirable to be configured to provide systems and methods for centralized data management of software models. In some embodiments, the systems and methods described herein may be configured to use a data manager for software model data management. Figure 6 Generally shown, the systems and methods described herein can be configured to store component data within a model (eg, not in a common model workspace, but rather within block parameters to which the component data intuitively belongs).
[0037] The systems and methods described herein can be configured to parse models for related data. The systems and methods described herein can be configured to use custom blocks, which include dedicated block parameters assigned to categories (e.g., such as calibration, display, or other suitable categories). The systems and methods described herein can be configured to extract data from these blocks using parameter blocks, and compile data storage in the set with all required model data. The systems and methods described herein can be configured to create required data structures to support the execution of these blocks. The systems and methods described herein can be configured to use the collected data during code generation (e.g., configuring low-level software), creating required variables for execution within a software modeling program, generating files related to embedded software (e.g., such as ASAM MCD-2MC or SCP files), simulation, analysis, and / or any other related tasks.
[0038] The systems and methods described herein can be configured to store data in the manner described to remove the need for a data dictionary file, which can simplify the file structure of the component. The systems and methods described herein can be configured to provide available data sets within blocks where the data sets are used, which along with the potential for centralized data reporting can improve data clarity.
[0039] In some embodiments, the systems and methods described herein may be configured to collect and compile data from a data dictionary, and / or configured to parse model nuggets.
[0040] In some embodiments, the systems and methods described herein can be configured to provide centralized data management for software models. The systems and methods described herein can be configured to receive at least one software component model. The systems and methods described herein can be configured to receive at least one model reference block. The systems and methods described herein can be configured to store component data associated with the software component model in at least one model reference block.
[0041] The systems and methods described herein can be configured to generate a system model based on at least one software component model and at least one model reference block. The system model can be associated with a steering system of a vehicle (such as an electric power steering system, a steer-by-wire steering system, a hydraulic steering system, and / or any other suitable steering system). Additionally or alternatively, the system model can be associated with any suitable vehicle system or component. The systems and methods described herein can be configured to convert the system model into at least one programming language.
[0042] Figure 1A vehicle 10 is generally shown in accordance with the principles of the present disclosure. Vehicle 10 may include any suitable vehicle, such as a car, truck, sport utility vehicle, minivan, crossover, any other passenger vehicle, any suitable commercial vehicle, or any other suitable vehicle. Although vehicle 10 is shown as a passenger vehicle having wheels and used on a road, the principles of the present disclosure may be applicable to other vehicles, such as airplanes, boats, trains, drones, or other suitable vehicles.
[0043] The vehicle 10 includes a vehicle body 12 and a hood 14. The vehicle body 12 at least partially defines a passenger compartment 18. Another portion of the vehicle body 12 defines an engine compartment 20. The hood 14 may be removably attached to a portion of the vehicle body 12 such that when the hood 14 is in a first or open position, the hood 14 provides access to the engine compartment 20, and when the hood 14 is in a second or closed position, the hood 14 covers the engine compartment 20. In some embodiments, the engine compartment 20 may be disposed at the rear of the vehicle 10, rather than in the location generally shown.
[0044] The passenger compartment 18 may be disposed rearward of the engine compartment 20, but in embodiments where the engine compartment 20 is disposed at the rear of the vehicle 10, the passenger compartment 18 may be disposed forward of the engine compartment 20. The vehicle 10 may include any suitable propulsion system, including an internal combustion engine, one or more electric motors (e.g., an electric vehicle), one or more fuel cells, and a hybrid (e.g., a hybrid vehicle) propulsion system including a combination of an internal combustion engine, one or more electric motors, and / or any other suitable propulsion system.
[0045] In some embodiments, the vehicle 10 may include a gasoline or kerosene fuel engine, such as a spark ignition engine. In some embodiments, the vehicle 10 may include a diesel engine, such as a compression ignition engine. The engine compartment 20 houses and / or encloses at least some components of the propulsion system of the vehicle 10. Additionally or alternatively, propulsion controls, such as an accelerator actuator (e.g., an accelerator pedal), a brake actuator (e.g., a brake pedal), a steering wheel, and other such components are disposed in the passenger compartment 18 of the vehicle 10. The propulsion controls may be driven or controlled by an operator of the vehicle 10 and may be directly connected to corresponding components of the propulsion system, such as a throttle, a brake, a vehicle axle, a vehicle transmission, etc., respectively. In some embodiments, the propulsion controller may communicate a signal to an onboard computer (e.g., via a drive-by-wire), which in turn may control corresponding propulsion components of the propulsion system. Thus, in some embodiments, the vehicle 10 may be an autonomous vehicle.
[0046] In some embodiments, the vehicle 10 includes a transmission that communicates with the crankshaft via a flywheel or a clutch or a fluid coupling. In some embodiments, the transmission includes a manual transmission. In some embodiments, the transmission includes an automatic transmission. The vehicle 10 may include one or more pistons that work in conjunction with the crankshaft to generate force in the case of an internal combustion engine or a hybrid vehicle, which is transmitted through the transmission to one or more shafts that rotate the wheels 22. When the vehicle 10 includes one or more electric motors, the vehicle battery and / or fuel cell provides energy to the electric motors to rotate the wheels 22.
[0047] The vehicle 10 may include an automatic vehicle propulsion system, such as cruise control, adaptive cruise control, automatic braking control, other automatic vehicle propulsion systems, or combinations thereof. The vehicle 10 may be an autonomous or semi-autonomous vehicle, or other suitable type of vehicle. The vehicle 10 may include additional or fewer features than those generally shown and / or disclosed herein.
[0048] In some embodiments, the vehicle 10 may include an Ethernet component 24, a controller area network (CAN) bus 26, a media oriented system transport component (MOST) 28, a FlexRay component 30 (e.g., a wire control brake system, etc.), and a local interconnect network component (LIN) 32. The vehicle 10 may communicate various information, such as sensors inside or outside the vehicle, to various processors or controllers, such as inside or outside the vehicle, using the CAN bus 26, MOST 28, FlexRay component 30, LIN 32, other suitable networks or communication systems, or combinations thereof. The vehicle 10 may include additional or fewer features than those generally shown and / or disclosed herein.
[0049] In some embodiments, the vehicle 10 may include a steering system, such as an EPS system, a steer-by-wire steering system (e.g., which may include or communicate with one or more controllers that control steering system components without using a mechanical connection between a steering wheel and wheels 22 of the vehicle 10), a hydraulic steering system (e.g., which may include a magnetic actuator incorporated into a valve assembly of the hydraulic steering system), or other suitable steering systems.
[0050] The steering system may include an open-loop feedback control system or mechanism, a closed-loop feedback control system or mechanism, or a combination thereof. The steering system may be configured to receive various inputs, including but not limited to steering wheel position, input torque, one or more wheel positions, other suitable inputs or information, or a combination thereof.
[0051] Additionally or alternatively, the input may include steering wheel torque, steering wheel angle, motor speed, vehicle speed, estimated motor torque command, other suitable inputs, or combinations thereof. The steering system may be configured to provide steering functionality and / or control to the vehicle 10. For example, the steering system may generate assist torque based on various inputs. The steering system may be configured to selectively control a motor of the steering system using the assist torque to provide steering assistance to the operator of the vehicle 10.
[0052] like Figure 2 As generally shown, in some embodiments, the vehicle 10 may include a controller, such as the controller 100. The controller 100 may include any suitable controller, such as an electronic control unit or other suitable controller. The controller 100 may be configured to control, for example, various functions of the steering system and / or various functions of the vehicle 10. The controller 100 may include a processor 102 and a memory 104. The processor 102 may include any suitable processor, such as the processor described herein. Additionally or alternatively, in addition to the processor 102, the controller 100 may include any suitable number of processors. The memory 104 may include a single disk or multiple disks (e.g., a hard disk drive), and include a storage management module that manages one or more partitions within the memory 104. In some embodiments, the memory 104 may include flash memory, semiconductor (solid-state) memory, etc. The memory 104 may include a random access memory (RAM), a read-only memory (ROM), or a combination thereof. The memory 104 may include instructions that, when executed by the processor 102, cause the processor 102 to control at least various aspects of the vehicle 10.
[0053] The controller 100 may receive one or more signals from various measurement devices or sensors 106 indicating sensed or measured characteristics of the vehicle 10. The sensors 106 may include any suitable sensors, measurement devices, and / or other suitable mechanisms. For example, the sensors 106 may include one or more torque sensors or devices, one or more steering wheel position sensors or devices, one or more motor position sensors or devices, one or more position sensors or devices, one or more radar sensors or devices, one or more lidar sensors or devices, one or more sonar sensors or devices, one or more image capture sensors or devices, other suitable sensors or devices, or combinations thereof. The one or more signals may indicate steering wheel torque, steering wheel angle, motor speed, vehicle speed, other suitable information, or combinations thereof.
[0054] In some embodiments, the controller 100 may be configured to provide automatic software model integration. The controller 100 may receive at least one software component model. The controller 100 may receive at least one integration requirement. The controller 100 may receive at least one partition and a model reference block.
[0055] The controller 100 may generate a system model based on at least one software component model, at least one integration requirement, at least one partition, and a model reference block. The controller 100 may convert the system model into at least one programming language.
[0056] like Figure 8 As generally shown in FIG. 5 , in some embodiments, a computing device, such as computing device 500, can be configured to provide software model centralized data management. Computing device 500 can include any suitable computing device, such as a mobile computing device, a desktop computing device, a laptop computing device, a server computing device, other suitable computing devices, or a combination thereof.
[0057] The computing device 500 may include a processor 530 configured to control the overall operation of the computing device 500. The processor 530 may include any suitable processor, such as the processors described herein. The computing device 500 may also include a user input device 532 configured to receive input from a user of the computing device 500 and to communicate a signal representing the input received from the user to the processor 530. For example, the user input device 532 may include a button, a keyboard, a dial, a touch screen, an audio input interface, a visual / image capture input interface, input in the form of sensor data, etc.
[0058] The computing device 500 may include a display 536 that may be controlled by the processor 530 to display information to a user. A data bus 538 may be configured to facilitate data transfer between at least a storage device 540 and the processor 530. The computing device 500 may also include a network interface 542 configured to couple or connect the computing device 500 to various other computing devices or network devices via a network connection (such as a wired or wireless connection). In some embodiments, the network interface 542 includes a wireless transceiver.
[0059] The storage device 540 may include a single disk or multiple disks (e.g., a hard disk drive), one or more solid-state drives, one or more hybrid hard disk drives, etc. The storage device 540 may include a storage management module that manages one or more partitions within the storage device 540. In some embodiments, the storage device 540 may include flash memory, semiconductor (solid-state) memory, etc. The computing device 500 may also include a memory 544. The memory 544 may include a random access memory (RAM), a read-only memory (ROM), or a combination thereof. The memory 544 may store programs, utilities, or processes executed by the processor 530. The memory 544 may provide volatile data storage and store instructions related to the operation of the computing device 500.
[0060] In some embodiments, computing device 500 using processor 530 may be configured to execute instructions stored on memory 544 to at least perform the systems and methods described herein. For example, computing device 500 may receive at least one software component model. Computing device 500 may receive at least one model reference block. Computing device 500 may store component data associated with the software component model in at least one model reference block.
[0061] The computing device 500 may generate a system model based on at least one software component model and at least one model reference block. The system model may be associated with a steering system of the vehicle 10, such as an electric power steering system, a steer-by-wire steering system, a hydraulic steering system, and / or any other suitable steering system. Additionally or alternatively, the system model may be associated with any suitable vehicle system or component of the vehicle 10. The computing device 500 may convert the system model into at least one programming language.
[0062] Additionally or alternatively, in some embodiments, computing device 500 may receive at least one software component model. Computing device 500 may receive at least one model reference block associated with at least one software component model. Computing device 500 may extract component data from at least one model reference block. In some embodiments, at least one model reference block may include at least one block parameter associated with a category. Computing device 500 may extract component data from at least one model reference block based on or using at least one block parameter.
[0063] The computing device 500 may store the component data in a data storage, the data storage including other component data from other reference blocks associated with the at least one software component model. The computing device 500 may retrieve the component data and at least some of the other component data from the data storage. The computing device 500 may generate a system model based on the at least one software component model, the component data, and at least some of the other component data.
[0064] In some embodiments, computing device 500 may generate code using the system model, generate simulation variables using the system model, and / or perform at least one simulation using the system model.
[0065] In some embodiments, the controller 100 can control at least one aspect of the vehicle 10 based on the system model, including one or more aspects of the steering system or other suitable aspects of vehicle control. For example, the computing device 108 or other suitable computing device can be used to program the controller 100 based on the system model. The controller 100 can control various aspects of the vehicle 10 based on information and / or data associated with the system model. Additionally or alternatively, the controller 100 can access the system model to control various aspects of the vehicle 10 (e.g., via a data memory or other suitable data storage location) and / or can use the system model to obtain data associated with one or more systems of the vehicle 10.
[0066] In some embodiments, the controller 100 and / or the computing device 500 can implement the methods described herein. However, the methods described herein implemented by the controller 100 and / or the computing device 500 are not meant to be limiting, and any type of software executed on a controller or processor can implement the methods described herein without departing from the scope of the present disclosure. For example, a controller (such as a processor executing software within a computing device) can implement the methods described herein.
[0067] Figure 6 is a flow chart of a centralized software model data management method 300 generally shown in accordance with the principles of the present disclosure. At 302, the method 300 receives at least one software component model. For example, the computing device 500 may receive the at least one software component model.
[0068] At 304, method 300 receives at least one model reference block. For example, computing device 500 may receive at least one model reference block.
[0069] At 306, method 300 stores component data associated with the software component model in at least one model reference block.For example, computing device 500 may store component data associated with the software component model in at least one model reference block.
[0070] At 308, method 300 generates a system model based on at least one software component model and at least one model reference block. For example, computing device 500 may generate a system model based on at least one software component model and at least one model reference block.
[0071] At 310, method 300 converts the system model into at least one programming language. For example, computing device 500 may convert the system model into at least one programming language.
[0072] Figure 7 4 is a flow chart generally illustrating an alternative centralized software model data management method 400 according to the principles of the present disclosure. At 402, the method 400 receives at least one software component model. For example, the computing device 500 may receive the at least one software component model.
[0073] At 404, method 400 receives at least one model reference block associated with at least one software component model.For example, computing device 500 may receive at least one model reference block associated with at least one software component model.
[0074] At 406, method 400 extracts component data from at least one model reference block. For example, computing device 500 may extract component data from at least one model reference block.
[0075] At 408, method 400 stores the component data in a data store that includes other component data from other reference blocks associated with at least one software component model. For example, computing device 500 may store the component data in a data store that includes other component data from other reference blocks associated with at least one software component model.
[0076] At 410, method 400 retrieves component data and at least some of the other component data from a data storage. For example, computing device 500 may retrieve component data and at least some of the other component data from a data storage.
[0077] At 412, method 400 generates a system model based on at least one software component model, component data, and at least some of the other component data. For example, computing device 500 can generate a system model based on at least one software component model, component data, and at least some of the other component data.
[0078] In some embodiments, a method for centralized data management of software models includes: receiving at least one software component model; receiving at least one model reference block; and storing component data associated with the software component model in the at least one model reference block. The method also includes generating a system model based on the at least one software component model and the at least one model reference block. The method also includes converting the system model into at least one programming language.
[0079] In some embodiments, the system model is associated with a steering system of a vehicle. In some embodiments, the steering system includes an electric power steering system. In some embodiments, the steering system includes a steer-by-wire steering system. In some embodiments, the steering system includes a hydraulic steering system.
[0080] In some embodiments, a centralized data management system for software models includes a processor and a memory. The memory includes instructions that, when executed by the processor, enable the processor to: receive at least one software component model; receive at least one model reference block; store component data associated with the software component model in the at least one model reference block; generate a system model based on the at least one software component model and the at least one model reference block; and convert the system model into at least one programming language.
[0081] In some embodiments, the system model is associated with a steering system of a vehicle. In some embodiments, the steering system includes an electronic power steering system. In some embodiments, the steering system includes a steer-by-wire steering system. In some embodiments, the steering system includes a hydraulic steering system.
[0082] In some embodiments, a method for centralized data management of software models includes: receiving at least one software component model; receiving at least one model reference block associated with the at least one software component model; and extracting component data from the at least one model reference block. The method also includes: storing the component data in a data storage, the data storage including other component data from other reference blocks associated with the at least one software component model; obtaining the component data and at least part of the other component data from the data storage; and generating a system model based on the at least one software component model, the component data, and at least part of the other component data.
[0083] In some embodiments, the method further includes generating code using the system model. In some embodiments, the method further includes generating simulation variables using the system model. In some embodiments, the method further includes performing at least one simulation using the system model. In some embodiments, at least one model reference block includes at least one block parameter. In some embodiments, component data is extracted from at least one model reference block based on at least one block parameter. In some embodiments, at least one block parameter is associated with a category. In some embodiments, the system model is associated with a steering system of a vehicle. In some embodiments, the steering system includes an electric power steering system. In some embodiments, the steering system includes a steering system with steer-by-wire. In some embodiments, the steering system includes a hydraulic steering system. In some embodiments, the method further includes controlling at least one aspect of the vehicle based on the system model.
[0084] In some embodiments, a system for centralized data management of software models includes: a processor and a memory. The memory includes instructions, which, when executed by the processor, enable the processor to: receive at least one software component model; receive at least one model reference block associated with the at least one software component model; extract component data from the at least one model reference block; store the component data in a data memory, the data memory including other component data from other reference blocks associated with the at least one software component model; obtain the component data and at least some other component data from the data memory; and generate a system model based on at least one software component model, the component data, and at least some of the other component data.
[0085] In some embodiments, the instructions further enable the processor to generate code using the system model. In some embodiments, the instructions further enable the processor to generate simulation variables using the system model. In some embodiments, the instructions further enable the processor to perform at least one simulation using the system model. In some embodiments, at least one model reference block includes at least one block parameter. In some embodiments, component data is extracted from at least one model reference block based on at least one block parameter. In some embodiments, at least one block parameter is associated with a category.
[0086] In some embodiments, an apparatus for centralized data management of software models includes a computing device configured to: receive at least one software component model; receive at least one model reference block associated with at least one software component model; extract component data from at least one model reference block; store the component data in a data storage device, the data storage device including other component data from other reference blocks associated with at least one software component model; obtain the component data and at least some other component data from the data storage device; and generate a system model associated with a steering system based on at least one software component model, the component data, and at least part of the component data in the other component data, wherein at least one aspect of the steering system is controlled based on the system model.
[0087] The above discussion is intended to illustrate the principles and various embodiments of the present disclosure. Once the above disclosure is fully understood, many changes and modifications will be apparent to those skilled in the art. The following claims are intended to be interpreted as covering all such changes and modifications.
[0088] The word "example" as used herein means as an example, instance or illustration. Any aspect or design described herein as an "example" is not necessarily to be construed as superior to other aspects or designs. On the contrary, the use of the word "example" is intended to present the concept in a concrete way. When used in this application, the term "or" is intended to mean an inclusive "or" rather than an exclusive "or". That is, unless otherwise stated or it is clear from the context, "X includes A or B" is intended to mean any natural inclusive arrangement. That is, if X includes A; X includes B; or X includes both A and B, then "X includes A or B" is satisfied in any of the above cases. In addition, the articles "one" and "an" used in this application and the appended claims should generally be interpreted as "one or more" unless otherwise stated or clearly indicated from the context to point to the singular form. In addition, unless so described, the use of the word "one embodiment" or "an implementation" is not intended to mean the same embodiment or implementation.
[0089] The implementation of the systems, algorithms, methods, instructions, etc. described herein can be implemented in hardware, software, or any combination thereof. For example, the hardware can include a computer, an intellectual property (IP) core, an application specific integrated circuit (ASIC), a programmable logic array, an optical processor, a programmable logic controller, microcode, a microcontroller, a server, a microprocessor, a digital signal processor, or any other suitable circuit. In the claims, the term "processor" should be understood to cover any of the above hardware, whether alone or in combination. The terms "signal" and "data" can be used interchangeably.
[0090] As used herein, the term module can include a packaged functional hardware unit designed for use with other components, an instruction set that can be executed by a controller (e.g., a processor executing software or firmware), a processing circuit configured to perform a specific function, and a self-contained hardware or software component that interfaces with a larger system. For example, a module can include an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), an electrical circuit, a digital logic circuit, an analog circuit, a combination of discrete circuits, a gate circuit, and other types of hardware or combinations thereof. In other embodiments, a module can include a memory that stores instructions that can be executed by a controller to implement the features of the module.
[0091] Furthermore, for example, in one aspect, the systems described herein can be implemented using a general purpose computer or general purpose processor with a computer program that, when executed, performs any corresponding method, algorithm and / or instruction described herein. Additionally or alternatively, for example, a special purpose computer / processor can be utilized that can include other hardware for performing any method, algorithm or instruction described herein.
[0092] In addition, all or part of the embodiments of the present invention can take the form of a computer program product that can be obtained from, for example, a computer-usable or computer-readable medium. A computer-usable or computer-readable medium can be any device that can, for example, tangibly contain, store, communicate or transmit for use by or in connection with any processor. The medium can be, for example, an electronic, magnetic, optical, electromagnetic or semiconductor device. Other suitable media are also available.
[0093] The embodiments, implementation modes and aspects described above are for facilitating understanding of the present disclosure and are not intended to limit the present disclosure. Instead, the present disclosure is intended to cover various modifications and equivalent arrangements included within the scope of the appended claims, which are consistent with the broadest interpretation so as to cover all such modifications and equivalent structures permitted by law.
Claims
1. A method for centralized data management of software models, the method comprising: receiving at least one software component model; receiving at least one model reference block associated with the at least one software component model; extracting component data from the at least one model reference block; storing the component data in a data store, the data store including other component data from other reference blocks associated with the at least one software component model; Retrieve the component data and at least part of the other component data from the data storage; as well as A system model is generated based on the at least one software component model, the component data, and at least part of the other component data.
2. The method according to claim 1, further comprising: Code is generated using the system model.
3. The method according to claim 1, further comprising: Simulation variables are generated using the system model.
4. The method according to claim 1, further comprising: At least one simulation is performed using the system model.
5. The method according to claim 1, wherein: The at least one model reference block comprises at least one block parameter.
6. The method according to claim 5, wherein: The component data is extracted from the at least one model reference block based on the at least one block parameter.
7. The method according to claim 5, wherein: The at least one block parameter is associated with a category.
8. The method according to claim 1, wherein: The system model is associated with a steering system of a vehicle.
9. The method according to claim 8, wherein: The steering system includes an electric power steering system.
10. The method according to claim 8, wherein: The steering system comprises a steer-by-wire steering system.
11. The method according to claim 8, wherein: The steering system includes a hydraulic steering system.
12. The method according to claim 1, further comprising: At least one aspect of a vehicle is controlled based on the system model.
13. A system for centralized data management of software models, the system comprising: processor; as well as a memory comprising instructions which, when executed by the processor, enable the processor to: receiving at least one software component model; receiving at least one model reference block associated with the at least one software component model; extracting component data from the at least one model reference block; storing the component data in a data store, the data store including other component data from other reference blocks associated with the at least one software component model; Retrieving the component data and at least part of the other component data from the data storage; and A system model is generated based on the at least one software component model, the component data, and at least part of the other component data.
14. The system according to claim 13, wherein: The instructions further enable the processor to generate code using the system model.
15. The system of claim 13, wherein: The instructions further enable the processor to generate simulation variables using the system model.
16. The system of claim 13, wherein: The instructions also enable the processor to perform at least one simulation using the system model.
17. The system of claim 13, wherein: The at least one model reference block comprises at least one block parameter.
18. The system of claim 17, wherein: The component data is extracted from the at least one model reference block based on the at least one block parameter.
19. The system of claim 17, wherein: The at least one block parameter is associated with a category.
20. A device for centralized data management of software models, the device comprising: A computing device configured to: receiving at least one software component model; receiving at least one model reference block associated with the at least one software component model; extracting component data from the at least one model reference block; storing the component data in a data store, the data store including other component data from other reference blocks associated with the at least one software component model; Retrieving the component data and at least part of the other component data from the data storage; and A system model associated with a steering system is generated based on the at least one software component model, the component data, and at least a portion of the other component data, wherein at least one aspect of the steering system is controlled based on the system model.