Content area
DynPy is an open-source library implemented in Python (version 3.10.12) programming language which aims to provide a versatile set of functionalities for mechanical and electrical engineers. It enables the user to model, solve, simulate, and report analysis of dynamic systems with the use of a single environment. The DynPy library comes with a predefined collection of ready-to-use mechanical and electrical systems. A proprietary approach to creating new systems by combining independent elements defined as classes, such as masses, springs, dampers, resistors, capacitors, inductors, and more, allows for the quick creation of new, or the modification of existing systems. In the paper examples for obtaining analytical and numerical solutions of the systems described with ordinary differential equations were presented. The assessment of solver accuracy was conducted utilising a coupled electro-mechanical model of a direct current motor, with MATLAB/Simulink (R2022b) used as a reference tool. The model was solved in DynPy with the hybrid analytical–numerical method and fully analytically, while in MATLAB/Simulink strictly numerical simulations were run. The comparison of the results obtained from both tools not only proved the credibility of the developed library but also showed its superiority in specific conditions.
Full text
1. Introduction
Simulations are an essential part of modern science, as they provide a multitude of benefits. Starting with the possibility of analysing very complicated processes, impossible or barely impossible to be conducted in real-life conditions, to ‘what if’ scenarios, hypotheses evaluation, understanding of processes, and optimisations, ending with designing and testing new technologies and solutions. The goal of this article is to present the abilities of the independent, Python-programming-language-based DynPy (‘DynamicPython’) [1] library and compare the results obtained from simulations of a dynamic system conducted with well-known, field-tested commercial software. A growing demand for clean energy and transportation introduces new challenges to multiple engineering branches [2,3,4,5]. As a result, a continuous seeking for more reliable, durable, safe, and effective hardware design is seen. This usually means a necessity for analysing yet more complicated phenomena [6], for which nontrivial approaches are needed, most likely to be investigated with the use of some software.
DynPy is an open-source project aimed at providing an engineering tool that allows, among other functionalities: performing symbolic computations, conducting numerical simulations, and creating comprehensive reports of conducted calculations. It supports a few useful and suitable typesetting systems for reporting engineering and scientific activities, e.g., Markdown and LaTeX. Another advantage of the developed library is the significant number of dynamic components it provides. This allows for quickly simulating the behaviour of systems described by mathematical dependencies characterizing their dynamic states. DynPy is conceptualised, developed, and maintained by the authors and other developers. Throughout the years it has been utilized by various researchers in the field of mechanical engineering. Due to the constantly growing capabilities of the developed tool, its use in research could be categorized regarding the formerly available set of functionalities. In [7], the proprietary methodology for creating dynamic systems, as well as numerical and analytical solving algorithms, were utilised. Further, in [8,9], chosen elements of a text editing submodule were additionally used for adding formulas and other minor typesetting activities. Finally, the article in [10] was the first one to be created as a whole strictly with DynPy’s functionalities—from model creation, through simulations, to manuscript generation. The authors are not aware of any other examples but do not exclude such a possibility, as the library is available in a public GitHub (version 2.34.1) repository. Such circumstances are the effect of the current article being the first one explicitly about DynPy, as the state of development allows for presentation to the broader public.
In the case of electrical systems, the description of their dynamics most often takes the form of ordinary differential equations (further referred to as ODE). Due to the complexity of the formulas, solutions can be found in analytical forms or with the use of numerical algorithms. The biggest advantage of the analytical approach lies in the provision of exact solutions for the whole domain, which ensures high repeatability and, thus, reliability of achieved results. Even though it is not always possible to directly obtain closed-form formulas, the stated aspects push scientists to find different mathematical tools, which lead to overwork of hitherto numerically analysed phenomena with analytical methods also in the case of electrical circuits [11,12,13,14]. Although, in the current state, the DynPy library does not provide as specialised functionalities as presented in the cited literature, it is crucial to note its ability in this aspect. Firstly, a broad spectrum of typical electrical elements is predefined with the possibility of further enlargement. Secondly, basic analytical and numerical solvers are implemented. Thanks to the utilisation of an object-oriented paradigm and open-source code, more sophisticated approaches can be introduced on the user’s demand.
As noted earlier, the ability to achieve analytical solutions is case-specific and highly depends on the type of equations describing the system. Numerical simulations became such a powerful tool due to the provision of approximated results to problems, which could not be worked out by traditional means [15,16,17]. Multiple types of numerical solving methods have been introduced throughout the years [18]. In the case of ODE, three main families of algorithms can be recognised: explicit single-step, explicit multistep, and their implicit analogues dedicated to stiff systems of differential equations [19]. Typical single-step methods for ODE may be divided into the Runge–Kutta (RK, fixed step size) and Runge–Kutta–Fehlberg (RKF, variable step size) approaches. Examples of their utilisation in analyses of electrical circuits in both nonstiff and stiff ODEs can be found in [20,21,22,23,24,25,26,27,28]. Moving on to multistep algorithms, again two main groups could be highlighted, known as Adams and predictor–corrector methods. The Adams family methods in analyses of electrical circuits were presented in [29,30,31,32,33,34,35]. Predictor–corrector (PC) algorithms include both explicit and implicit algorithms at once, which results in obtaining a set of properties connecting their benefits. The sequence of operations is as follows: prediction (explicit, P), evaluation (E), correction (implicit, C), evaluation (E) [36,37]. The described rule is outright applicable to predictor–corrector algorithms based on Adams–Bashforth and Adams–Moulton methods, but constant research on the effects of numerical approximations in the development of different approaches including explicit–explicit or implicit–implicit PC algorithms [38,39,40,41,42,43,44,45]. The DynPy environment in its current state provides six types of numerical solving techniques, inherited from the SciPy (version 1.15.0) [46] module: RK45—explicit Runge–Kutta method of order ; RK23—explicit Runge–Kutta method of order ; DOP853—explicit Runge–Kutta method of order 8; Radau—implicit Runge-Kutta method of the Radau IIA family of order 5; BDF—implicit multistep variable-order (1 to 5) method based on a backward differentiation formula for the derivative approximation; and the LSODA —Adams/BDF method with automatic stiffness detection and switching. Simultaneously with other development and maintenance works, actions are taken to create DynPy-embedded, standalone versions of these and other useful algorithms, so a package can become more versatile and less susceptible to third-party changes in the code, possibly due to the previously stated inheritance.
Solving and simulating electrical circuit behaviour can be performed with the use of multiple software tools available on the market. While some of them strictly require the user to formulate code instructions, others have more advanced Graphical User Interfaces which provide the possibility to create a representation of analysed problems by block diagrams or 3D models. Vendors such as MathWorks (Natick, MA, USA) or Wolfram (Champaign, IL, USA) offer platforms of both types [47,48,49,50]. Each of them uses individual language, mutual between different developed environments. The mentioned programs serve a multipurpose function, being used by engineers of imaginably all branches. Throughout the years, many additional packages and add-ins were introduced, so the functionalities of interest for specific sectors of the industry could be grouped and state better fitment to the consumers [51,52]. When such universal tools are not found as a suitable solution for any reason, more task-oriented software is accessible, such as TINA, whose scope is restricted to electrical/electronic circuit modelling and simulations [53]. All of the highlighted examples, despite their undeniable advantages, share one undisputable drawback—to obtain a full experience of their abilities, whether in general or in exact context, a license has to be acquired, which often does not include additional toolboxes or add-ins offered independently at different prices. Although it is possible to find free and open-source alternatives, such as Scilab [54] or CircuitLab [55], they are not flawless—less developed or completely lack predefined electrical elements, one-off types of interfaces, and a smaller group of users effects in worse community support (what becomes a serious problem when diving into analyses of more complex phenomena, which, may even outcome as too complicated for the utilised software), and so on.
2. Materials and Methods
2.1. DynPy Library—General Overview
The decision to use Python programming language for the implementation of the DynPy library was dictated by its numerous advantages. It is used by hundreds of thousands of programmers worldwide in areas such as web scripting, system programming, user interfaces, and product customisation [56,57], and the opinion is becoming widespread that it is an optimal choice for scientists and engineers seeking a high-level language for writing scientific applications [58]. As a high-level language, its syntax is more comprehensible for users, putting more focus on the task that has to be carried out rather than analysing the aspects of computing areas that naturally are not taken into consideration by nonprogrammers, such as memory management. The general purpose character of the language results in a wide variety of up-to-date libraries addressing multiple fields, such as scientific computing, data analysis, data visualisation, and more. Thanks to that, it was possible to use pre-existing modules as a foundation to implement functionalities desired functionalities, instead of writing the code from scratch. NumPy (version 2.2.1), pandas (version 2.2.3), SciPy (version 1.15.0), and SymPy (version 1.13.3) [59] are concurrently used for data processing, computations, simulations, and various mathematical operations. Pandas, in collaboration with Matplotlib (version 3.10.0), is used for presenting data and results in tabular and graphical form, while PyLaTeX (version 1.4.2) provides crucial methods required for text formatting and generating
In the process of selecting a programming paradigm from multiple which Python (version 3.10.12) offers, the decision was made to adopt an object-oriented programming approach, as it enables the creation of structured and modular solutions. Object-oriented code is more transparent and flexible, facilitating project management and development and providing versatility and usefulness. In the context of the project, it enables easier management of multiple modules and provides a structure that facilitates collaboration among multiple software developers.
It is worth mentioning at this point that the work on the DynPy library project follows an Agile approach, which is based on flexibility, adaptability, and continuous adjustment to changing needs. In contrast to the classical technique, which assumes planning and implementation in one cycle, the Agile methodology focuses on short-cycle stages. The goal is divided into smaller parts, and work is carried out step by step with the possibility of adapting to new conditions. This not only provides greater flexibility but also enables faster delivery of useful engineering tools [61]. The project as a whole is not presented further in this work. Instead, individual sections are presented and discussed.
The algorithms implemented in the library allow the solving and simulating of linear and nonlinear systems, both numerically and analytically. The numerical techniques inherited from SciPy provide a possibility for the analysis of linear and weakly and strongly nonlinear problems. The analytical approaches are defined in
Linear: DynPy provides analytical and numerical solvers for linear systems. The scope of the application of analytical solvers is limited by the order of the equation and its parameters. The system of two second-order equations can be solved analytically in general cases (all parameters given as arbitrary symbols). For selected cases of parameter arrangement, equations of higher order are also possible to solve. All other linear cases can be efficiently solved with numerical solvers as described previously.
Nonlinear: This class of equations can be mostly solved by numerical solvers provided in DynPy. It results in the
TimeDataFrame object (DynPy modification of pandasDataFrame object, providing data structure optimised for handling results in time and frequency domain), a uniform interface for further analysis (e.g., calculations, transformations) and manipulation (embedding the tables and graphs in the report) of results. This approach is consistent with an analytical approach, which the user can handle in a standardised way as presented before. Moreover, the selected cases are possible to solve in an analytical way if the equation is solvable from the theoretical point of view. First-order and Bernoulli equations are implemented currently.Perturbational: Selected cases can be solved with the usage of the Multiple Scale Method, which is an analytical method for solving systems with weak nonlinearities or parametrical properties. The equation has to be described by the perturbational parameter (from a practical point of view—a small physical part of the system). DynPy provides several tools that allow to create a perturbational form of the equation and solve it with the same methodology and in the same environment as previously described cases.
The DynPy library is equipped with a series of dynamic models that simulate real systems, the base of which is a
2.2. Solvers
The core of the simulational capabilities of the DynPy library lies in its
Preparation of the defined model for simulations in the DynPy environment starts with the creation of
The prepared object allows for solving the system of equations analytically using the
To generate a dataset of numerical values for a chosen time span, three additional methods are called on the solution. Firstly,
An approach to obtain a strictly numerical solution is presented in Figure 6. The substitution of parameter values is provided on equations of motion derived from the
The presented methodology is well suited for analysing a system with a single set of chosen parameter values. The more sophisticated way of conducting simulations, which enables the possibility of analysing the changes in the system’s behaviour for multiple values of a single parameter is provided by
3. Theory and Calculation
3.1. DC Motor—Tested System
The accuracy and effectiveness of the developed DynPy library in the aspect of solving systems of ODEs and conducting simulations were investigated with a model of a direct current electric motor described by a system of two differential equations.
Based on the equivalent circuit (Figure 9) and Kirchhoff’s second law, the electrical equation of the motor was derived:
(1)
where:—voltage related to the rotor inductance;
E—electro-motive force of induction;
—voltage supplying the rotor;
—voltage across the rotor winding resistance.
(2)
where the following are used:—rotor winding current;
—equivalent resistance of the rotor windings.
(3)
where the following are used:—equivalent inductance of the rotor windings;
—rotor winding current rate of change.
(4)
where the following are used:—angular velocity of the rotor;
—back electro-motive force constant.
(5)
The rotor torque has to overcome torques opposing the movement and is proportional to the current flowing through it. Assuming that the magnetic flux of the stator remains constant, two formulas were derived:
(6)
(7)
where the following are used:—rotor torque;
—engine load torque;
—torque constant;
—rotor motion resistance torque;
—rotor angular acceleration torque.
(8)
(9)
where the following are used:B—coefficient of viscous friction reduced to the rotor shaft;
J—moment of inertia reduced to the rotor shaft;
—angular acceleration of the rotor.
(10)
As a result of the performed steps, equations of motion of the system were obtained:
(11)
(12)
The proposed model was solved with two techniques—with a hybrid approach, which utilises both analytical and numerical solutions at once (HAN), and strictly analytically, with forcing input as the Heaviside function. The HAN solution was completed in two steps. The system was first solved analytically for constant external forcing with the use of DynPy library (the solution was not calculated manually). Later, the obtained solution was updated numerically by alternately introducing dictionaries with parameter values filled in such a manner, so a step character of forcing could be imitated. As input functions in the model, the rotor supply voltage () and the motor load torque () were considered:
(13)
(14)
Both are represented by step functions described in Equations (13) and (14), with graphical interpretation shown in the plots (Figure 10 and Figure 11). A detailed view of selected mathematical dependencies of the analysed system derived from the
The equations of motion for a system with Heaviside step function forcing have the following form:
(15)
(16)
where the following are used:—Heaviside function;
T—cycle length.
3.2. DC Motor—Conducting Simulations Using the DynPy Library
The parameter values of the model were selected and presented in Table 1. Results of simulations for armature current and rotor angular velocity obtained with the HAN method are provided in Figure 12 and Figure 13, while plots presented in Figure 14 and Figure 15 apply to the fully analytical solution.
In Figure 16 and Figure 17, corresponding plots were juxtaposed. The fully analytical solution is visibly smoother in areas where rapid changes in analysed values occur (selected time stamps of 1 interval are presented in Table 2). The main reason behind this might be identified as a much bigger number of samples utilised to generate a plot (one thousand time stamps), but the aspect of a fully analytical solution being more accurate than HAN, in general, cannot be omitted and will be analysed in future works. Nonetheless, it is safe to assume that even if the HAN approach with reduced step size would result in results indistinguishable from the analytical solution, it will still require more preparation, resulting in higher overall time cost. Since the HAN solution provides the possibility to compare the behaviour of the numerical solution regarding changes in step size and a comparison with commercial software in this aspect, it was selected for further consideration in the study. The integration step is , and selected time stamps of 1 interval are presented in Table 3.
3.3. DC Motor—Conducting Simulations Using MATLAB/Simulink
MATLAB/Simulink, as a powerful tool for the simulation and modelling of dynamic systems, has found wide application in various engineering fields. In the context of this paper, it was used as a reference tool for comparison with the results obtained from the DynPy library, since its widespread use in the fields of control systems, drive systems, automation, and many other areas of engineering makes conducted simulations a reliable reference point.
Reference simulations were carried out using both variable and fixed step solvers. This approach enables a detailed analysis of the impact of different integration strategies on simulation results and allows for a direct comparison with the Python implementation, as the DynPy library HAN solution utilises a fixed step approach. The designed model of the DC motor used for conducting simulations in the MATLAB/Simulink environment is depicted in Figure 18.
The results obtained using the variable integration step are presented in Table 4 (Figure 19 and Figure 20), while those with a fixed step set to be the same as in the simulations using the DynPy library ( ) are in in Table 5 (Figure 21 and Figure 22).
After initial analysis of the simulation results obtained with variable and constant integration steps, significant differences were noticeable both in the achieved values and in the shape of the current intensity in the rotor windings and the rotor angular velocity. Therefore, a decision was made to reduce the constant integration step to a value of and conduct further simulations. In Figure 23 and Figure 24 are the results obtained after implementing this modification. Values of selected time stamps are listed in Table 6.
3.4. Application of DynPy for Electrical Circuits
DynPy library enables to modelling of electric circuits in a similar way as it handles electro-mechanical and mechanical systems. Electrical modelling was performed based on a serial DC RLC circuit (Figure 25). A single-degree-of-freedom, second-order system was introduced, in which the Heaviside function provides the variable value of the resistance. Such a definition of equations of motion introduces a more challenging problem, as the nonconstant parameter directly affects the behaviour of the first derivative of the dependent variable, while in the case of the DC motor system, the forcing vector was subjected to periodic changes:
(17)
where the following are used:R—amplitude of the variable part of the resistance;
—constant value of the resistance;
L—inductance;
C—capacitance;
U—source voltage;
q—electric charge;
—current;
—current rate of change.
The simulational model adopts the parameters for modulation control of the current in a power circuit. Values of the system’s parameters are provided in Table 7. Parameters were selected in a way that allows for presenting analysed phenomena in an understandable form. The period was selected arbitrarily, then other parameters were calculated to ensure decay times lower than the period. Under these conditions, the circuit can operate as a current control system that can be utilised to simulate electronic commutation processes or polarisation changes in direct current machines. The resistance signal is shown in Figure 26 and described with the following formula:
(18)
To solve the equation, the HAN method was utilised in a similar way as in the case of the DC motor. First, the solution (19) and its first derivative representing current (20) for a system with stationary resistance was returned from an instance of ODEs system class:
(19)
(20)
Formulas (19) and (20) were later introduced into a slightly modified (inputted system, data dictionaries, and number of time stamps)
The considered case underwent the entire process of electrical circuit modelling and its further analysis. The MATLAB/Simulink environment was used again as a reference tool for the assessment of the performance of the demonstrated library. A detailed view of the comparison between RLC circuit results generated with DynPy and MATLAB/Simulink is provided in Section 4.2. The results presented there confirm the outcomes obtained previously with the analysis of the DC motor.
4. Results and Discussion
4.1. DC Motor
The results of computer simulations were subjected to comparative analysis to assess the effectiveness of the developed library. The listed plots and tables show a comparison of the armature current and rotor angular velocity of the DC motor obtained using DynPy (with a constant integration step size of ) and the following:
MATLAB/Simulink with a variable integration step size (Figure 28, Table 8);
MATLAB/Simulink with a constant step of (Figure 29, Table 9);
MATLAB/Simulink with a constant step of (Figure 30, Table 10).
Next, the simulation results were compared, where in both software, a constant integration step of was specified (Figure 29). Significant differences in the characteristics of rotor current intensity are visible. In MATLAB/Simulink, the waveform of the rotor current intensity undergoes oscillations in regions of rapid changes in its value, while the corresponding plot generated using the DynPy library remains stable. In the same intervals as the rotor current intensity, there are discrepancies in the characteristics of angular velocity. However, they are less noticeable, and their differences are acceptable. The disagreement in the results may stem from various factors such as the numerical implementation of the algorithm in both environments or the handling of numerical errors.
Due to discrepancies in the simulation results with the specified constant integration step of , it was decided to reduce its value to in the case of MATLAB/Simulink software and conduct further simulations. The juxtaposed characteristics confirm the consistency of the simulation results, and for better presentation, the characteristics are overlaid (Figure 30). The graph is very similar to the plot in Figure 28, with only minor, negligible differences in the values of rotor current intensity and rotor angular velocity in the areas of rapid changes.
4.2. RLC Circuit
Similarly, the comparison was prepared for the RLC circuit:
With both solvers utilizing constant step of (Figure 31, Table 11);
With both solvers utilizing constant step of (Figure 32, Table 12);
With a variable integration step size in MATLAB/Simulink, and step size in DynPy (Figure 33, Table 13).
The plot in Figure 32 compares the results from both environments with the step size set to . In this scenario, only qualitative difference is exposed—both graphs are equally smooth and generally take the same shape. As previously, maximum current values at the fourth and eighth second are smaller in comparison with MATLAB/Simulink.
Finally, Figure 33 shows the comparison between both constant step size HAN solutions and variable step size output from MATLAB/Simulink. The graph obtained from MATLAB/Simulink performs marginally better qualitatively than the HAN curve. In both cases, small, general waviness appears, as well as sudden rises in amperage at the third and seventh seconds (which also happen at the second and sixth seconds in the case of the step size HAN solution). The step size HAN method utilised in DynPy performs the best from the compared approaches, ensuring the highest smoothness and reliability of results.
Regardless of the selected step size, from a quantitative point of view, the hybrid analytical–numerical method utilised with the DynPy library showed better performance than the strictly numerical approach. When considering the step size, when selected properly, it also ensures high smoothness, resulting in an overall high quality of the obtained results.
5. Conclusions
This paper presents a general investigation of the DynPy library and its application for scientific and engineering activities. An overview of the developed tool was presented, with deeper insight into its modules and functionalities responsible for the provision of analytical and numerical solutions to systems described with linear and nonlinear ordinary differential equations. Nonlinear (more realistic representation of physical systems) and linear (idealised for theoretical or simplified analysis) models can be adopted and solved in an efficient way.
The solution for a model under consideration obtained with the DynPy library was presented in hybrid analytical–numerical (HAN) and fully analytical forms, where in the case of the latter, Heaviside forcing inputs were included. The HAN methodology, which enables the possibility of setting the integration step size, was chosen for comparison with MATLAB/Simulink results. The results obtained from the HAN method were compared with numerical simulations conducted in MATLAB/Simulink environment.
The analysis of results for the DC motor case leads to the conclusion that for cases with a variable integration step and a constant step of in MATLAB/Simulink, the obtained results are consistent with the results obtained using the DynPy library with the specified constant step of . This confirms the correctness of the implementation in the developed library. However, in the case of a constant step of in MATLAB/Simulink, significant quantitative and qualitative discrepancies were observed between the results—both in terms of values and waveform shapes. Deviating values indicate that under specific conditions, the DynPy library may respond better to changes in system dynamics than the MATLAB/Simulink tool. Specifically, the hybrid analytical–numerical method not only proved to return proper results in opposition to simulation with the same step size in MATLAB/Simulink but also presented high accuracy with step simulations in the stated reference environment.
Summarizing the simulations of the RLC circuit, the main conclusion is that regardless of the selected step size, thanks to the solution being based on an analytical approach, the results are quantitatively better than the strictly numerical ones obtained from each analysed MATLAB/Simulink case. Qualitative discrepancies are different between approaches subjected to comparison. It is clearly visible that the DynPy HAN solution with a properly set step size provides smoother curves than MATLAB/Simulink with variable steps. Hence, the analytical solution updated numerically with appropriate frequency provides the most reliable results.
The comparisons of simulation results indicate that the numerical algorithms in the DynPy library have been implemented correctly, and the results obtained are accurate. The paper itself was generated strictly with the use of DynPy’s functionalities—all steps from building the model, through finding an analytical solution, conducting the simulations and their visualisation, to generating editable
By no means do the authors of this article imply the overall superiority of the DynPy library over well-known and field-tested software, but the main advantages have to be pointed out for comparison. Firstly, it is written in the Python programming language. Although it requires the user to obtain at least a basic knowledge of its structure and syntax, it also assures the fact that insight into developed algorithms and their working principles is possible, as well as local editing, in contrast to previously described software. Moreover, a large user community of the language, in general, ensures additional support on top of the one possible to obtain from DynPy’s built-in guides and functioning
D.S., data curation, formal analysis, software, supervision, validation, and writing—original draft; B.C., conceptualisation, formal analysis, software, supervision, and writing—review and editing; F.G., data curation, investigation, methodology, software, validation, and writing—original draft; P.P., formal analysis, supervision, and writing—review and editing; A.R., software and writing—original draft. All authors have read and agreed to the published version of the manuscript.
The data presented in this study are openly available in GitHub, at
The authors declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper.
Footnotes
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.
Figure 7. Numerical solutions for multiple values of analysed parameters obtained by NumericalAnalysisDataFrame.
Figure 8. Analytical solutions for multiple values of analysed parameters obtained by NumericalAnalysisDataFrame.
Figure 12. Armature current —simulational results obtained from DynPy library (HAN, fixed step size [Forumla omitted. See PDF.] [Forumla omitted. See PDF.]).
Figure 13. Rotor’s angular velocity—simulational results obtained from DynPy library (HAN, fixed step size [Forumla omitted. See PDF.] [Forumla omitted. See PDF.]).
Figure 14. Armature current—simulational results obtained from DynPy with fully analytical solution.
Figure 15. Rotor’s angular velocity—simulational results obtained from DynPy with fully analytical solution.
Figure 16. DynPy —comparison of results for armature current obtained with hybrid analytical–numerical and fully analytical solution.
Figure 17. DynPy —comparison of results for angular velocity of the rotor obtained with hybrid analytical–numerical and fully analytical solution.
Figure 20. Angular velocity of the rotor—simulation results in MATLAB/Simulink with variable integration step.
Figure 21. Armature current—simulation results in MATLAB/Simulink with a specified constant integration step of [Forumla omitted. See PDF.] [Forumla omitted. See PDF.].
Figure 22. Angular velocity of the rotor—simulation results in MATLAB/Simulink with a specified constant integration step of [Forumla omitted. See PDF.] [Forumla omitted. See PDF.].
Figure 23. Armature current—simulation results in MATLAB/Simulink with a specified constant integration step of [Forumla omitted. See PDF.] [Forumla omitted. See PDF.].
Figure 24. Angular velocity of the rotor—simulation results in MATLAB/Simulink with a specified constant integration step of [Forumla omitted. See PDF.] [Forumla omitted. See PDF.].
Figure 28. Comparison of simulations conducted using the DynPy library with a fixed integration step size of [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] and MATLAB/Simulink with a variable integration step size.
Figure 29. DC motor - comparison of simulations conducted using the DynPy library with a fixed integration step size of [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] and MATLAB/Simulink with a fixed integration step size of [Forumla omitted. See PDF.] [Forumla omitted. See PDF.].
Figure 30. Comparison of simulations conducted using the DynPy library with a fixed integration step size of [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] and MATLAB/Simulink with a fixed integration step size of [Forumla omitted. See PDF.] [Forumla omitted. See PDF.].
Figure 31. RLC circuit - comparison of simulations conducted using the DynPy library with a fixed integration step size of [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] and MATLAB/Simulink with a fixed integration step size of [Forumla omitted. See PDF.] [Forumla omitted. See PDF.].
Figure 32. Comparison of simulations conducted using the DynPy library with a fixed integration step size of [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] and MATLAB/Simulink with a fixed integration step size of [Forumla omitted. See PDF.] [Forumla omitted. See PDF.].
Figure 33. Comparison of simulations conducted using the DynPy library with a fixed integration step sizes of [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] and [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] compared with MATLAB/Simulink variable integration step size.
Parameter values adopted for calculations.
| Parameter | Unit | Value |
|---|---|---|
| | | 2.0 |
| | H | 0.1 |
| | | 0.1 |
| | | 0.1 |
| J | | 0.1 |
| B | | 0.5 |
| T | s | 4 |
Results of the simulation conducted using the DynPy library—fully analytical method.
| | | |
|---|---|---|
| 0.000000 | 0.000000 | −0.000000 |
| 1.000000 | 4.951052 | 0.979779 |
| 2.000000 | 4.754254 | 0.596283 |
| 3.000000 | −0.000552 | −0.381824 |
| 4.000000 | 0.384783 | −0.001621 |
| 5.000000 | 4.951041 | 0.972042 |
| 6.000000 | 4.384571 | 0.594716 |
| 7.000000 | −0.000541 | −0.374180 |
| 8.000000 | 0.739952 | 0.000653 |
| 9.000000 | 4.951030 | 0.964474 |
| 10.000000 | 4.950499 | 0.596505 |
Results of the simulation conducted using the DynPy library—HAN method.
| | | |
|---|---|---|
| 0.000000 | −0.000000 | 0.000000 |
| 1.000000 | 4.951055 | 0.981733 |
| 2.000000 | 4.970133 | 0.596505 |
| 3.000000 | 0.019241 | −0.387659 |
| 4.000000 | 0.000164 | −0.002446 |
| 5.000000 | 4.951056 | 0.981718 |
| 6.000000 | 4.970133 | 0.596505 |
| 7.000000 | 0.019241 | −0.387659 |
| 8.000000 | 0.000164 | −0.002446 |
| 9.000000 | 4.951056 | 0.981718 |
| 10.000000 | 4.970133 | 0.596505 |
Results of the simulation conducted with variable integration step in MATLAB/Simulink.
| | | |
|---|---|---|
| 0.000000 | 0.000000 | 0.000000 |
| 1.000000 | 4.950632 | 0.981745 |
| 2.000000 | 4.970501 | 0.596487 |
| 3.000000 | 0.019819 | −0.387680 |
| 4.000000 | −0.000201 | −0.002427 |
| 5.000000 | 4.950692 | 0.981726 |
| 6.000000 | 4.970500 | 0.596487 |
| 7.000000 | 0.019819 | −0.387680 |
| 8.000000 | −0.000201 | −0.002427 |
| 9.000000 | 4.950692 | 0.981726 |
| 10.000000 | 4.970500 | 0.596487 |
Results of the simulation conducted with a constant integration step of
| | | |
|---|---|---|
| 0.000000 | 0.000000 | 0.000000 |
| 1.000000 | 4.950963 | 0.982077 |
| 2.000000 | 4.970140 | 0.596408 |
| 3.000000 | 0.019333 | −0.388004 |
| 4.000000 | 0.000157 | −0.002349 |
| 5.000000 | 4.950964 | 0.982063 |
| 6.000000 | 4.970140 | 0.596408 |
| 7.000000 | 0.019333 | −0.388004 |
| 8.000000 | 0.000157 | −0.002349 |
| 9.000000 | 4.950964 | 0.982063 |
| 10.000000 | 4.970140 | 0.596408 |
Results of the simulation conducted with a specified constant integration step of
| | | |
|---|---|---|
| 0.000000 | 0.000000 | 0.000000 |
| 1.000000 | 4.951055 | 0.981734 |
| 2.000000 | 4.970133 | 0.596505 |
| 3.000000 | 0.019241 | −0.387659 |
| 4.000000 | 0.000164 | −0.002446 |
| 5.000000 | 4.951056 | 0.981718 |
| 6.000000 | 4.970133 | 0.596505 |
| 7.000000 | 0.019241 | −0.387659 |
| 8.000000 | 0.000164 | −0.002446 |
| 9.000000 | 4.951056 | 0.981718 |
| 10.000000 | 4.970133 | 0.596505 |
Parameter values adopted for simulations of RLC circuit.
| Parameter | Unit | Value |
|---|---|---|
| U | V | 10.0 |
| R | | 19.9 |
| | | 0.1 |
| L | H | 1 |
| C | F | 100 |
| T | s | 4 |
DC motor: comparison of results for chosen time stamps—MATLAB/Simulink with variable step and HAN method with
| MATLAB, | DynPy HAN, | |||
|---|---|---|---|---|
| | | | | |
| 0.100000 | 4.303243 | 0.246351 | 4.317466 | 0.236242 |
| 1.100000 | 4.954424 | 0.889913 | 4.955557 | 0.827837 |
| 2.100000 | 0.662744 | 0.345930 | 0.652732 | 0.359291 |
| 3.100000 | 0.015932 | −0.295513 | 0.014739 | −0.233768 |
| 4.100000 | 4.242498 | 0.233902 | 4.317565 | 0.234769 |
| 5.100000 | 4.954449 | 0.890017 | 4.955558 | 0.827828 |
| 6.100000 | 0.662744 | 0.345930 | 0.652732 | 0.359291 |
| 7.100000 | 0.015932 | −0.295513 | 0.014739 | −0.233768 |
| 8.100000 | 4.242498 | 0.233902 | 4.317565 | 0.234769 |
| 9.100000 | 4.954449 | 0.890017 | 4.955558 | 0.827828 |
DC motor: comparison of results for chosen time stamps—MATLAB/Simulink with
| MATLAB, | DynPy HAN, | |||
|---|---|---|---|---|
| | | | | |
| 0.100000 | 6.650000 | 0.083333 | 4.317466 | 0.236242 |
| 1.100000 | 4.952507 | 0.827282 | 4.955557 | 0.827837 |
| 2.100000 | −1.679797 | 0.512135 | 0.652732 | 0.359291 |
| 3.100000 | 0.017789 | −0.233214 | 0.014739 | −0.233768 |
| 4.100000 | 6.650094 | 0.081924 | 4.317565 | 0.234769 |
| 5.100000 | 4.952508 | 0.827273 | 4.955558 | 0.827828 |
| 6.100000 | −1.679797 | 0.512135 | 0.652732 | 0.359291 |
| 7.100000 | 0.017789 | −0.233214 | 0.014739 | −0.233768 |
| 8.100000 | 6.650094 | 0.081924 | 4.317565 | 0.234769 |
| 9.100000 | 4.952508 | 0.827273 | 4.955558 | 0.827828 |
DC motor: comparison of results for chosen time stamps—MATLAB/Simulink with
| MATLAB, | DynPy HAN, | |||
|---|---|---|---|---|
| | | | | |
| 0.100000 | 4.317996 | 0.236209 | 4.317466 | 0.236242 |
| 1.100000 | 4.955557 | 0.827836 | 4.955557 | 0.827837 |
| 2.100000 | 0.652203 | 0.359324 | 0.652732 | 0.359291 |
| 3.100000 | 0.014740 | −0.233768 | 0.014739 | −0.233768 |
| 4.100000 | 4.318094 | 0.234735 | 4.317565 | 0.234769 |
| 5.100000 | 4.955557 | 0.827827 | 4.955558 | 0.827828 |
| 6.100000 | 0.652203 | 0.359324 | 0.652732 | 0.359291 |
| 7.100000 | 0.014740 | −0.233768 | 0.014739 | −0.233768 |
| 8.100000 | 4.318094 | 0.234735 | 4.317565 | 0.234769 |
| 9.100000 | 4.955557 | 0.827827 | 4.955558 | 0.827828 |
RLC circuit: comparison of results for chosen time stamps—MATLAB/Simulink with
| DynPy, HAN, | MATLAB/Simulink, | |
|---|---|---|
| | | |
| 0.000000 | 0.000000 | 0.000000 |
| 1.000000 | 0.502298 | 0.497255 |
| 2.000000 | 0.502046 | 0.497013 |
| 3.000000 | 9.494228 | 10.368359 |
| 4.000000 | 17.585402 | 20.136108 |
| 5.000000 | 0.491754 | 0.486170 |
| 6.000000 | 0.491507 | 0.485625 |
| 7.000000 | 9.294929 | 10.130792 |
| 8.000000 | 17.216256 | 19.674735 |
| 9.000000 | 0.481431 | 0.475031 |
| 10.000000 | 0.481189 | 0.474498 |
RLC circuit: comparison of results for chosen time stamps—MATLAB/Simulink with
| DynPy, HAN, | MATLAB/Simulink, | |
|---|---|---|
| | | |
| 0.000000 | 0.000000 | 0.000000 |
| 1.000000 | 0.502287 | 0.497263 |
| 2.000000 | 0.502034 | 0.497013 |
| 3.000000 | 9.898286 | 10.368359 |
| 4.000000 | 18.310948 | 20.136108 |
| 5.000000 | 0.491532 | 0.485869 |
| 6.000000 | 0.491285 | 0.485625 |
| 7.000000 | 9.686345 | 10.130792 |
| 8.000000 | 17.918876 | 19.674735 |
| 9.000000 | 0.481007 | 0.474736 |
| 10.000000 | 0.480765 | 0.474498 |
RLC circuit: comparison of results for chosen time stamps—MATLAB/Simulink with variable step and HAN method with
| DynPy, | DynPy, | MATLAB/Simulink, | |
|---|---|---|---|
| | | | |
| 0.000000 | 0.000000 | 0.000000 | 0.000000 |
| 1.000000 | 0.502298 | 0.502287 | 0.497267 |
| 2.000000 | 0.502046 | 0.502034 | 0.497013 |
| 3.000000 | 9.494228 | 9.898286 | 10.295847 |
| 4.000000 | 17.585402 | 18.310948 | 20.144906 |
| 5.000000 | 0.491754 | 0.491532 | 0.485902 |
| 6.000000 | 0.491507 | 0.491285 | 0.485620 |
| 7.000000 | 9.294929 | 9.686345 | 10.099166 |
| 8.000000 | 17.216256 | 17.918876 | 19.692078 |
| 9.000000 | 0.481431 | 0.481007 | 0.474862 |
| 10.000000 | 0.481189 | 0.480765 | 0.474468 |
Appendix A. BatteryCell Class Code
Figure 33. Comparison of simulations conducted using the DynPy library with a fixed integration step sizes of [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] and [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] compared with MATLAB/Simulink variable integration step size.
Figure 33. Comparison of simulations conducted using the DynPy library with a fixed integration step sizes of [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] and [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] compared with MATLAB/Simulink variable integration step size.
Figure 33. Comparison of simulations conducted using the DynPy library with a fixed integration step sizes of [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] and [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] compared with MATLAB/Simulink variable integration step size.
Figure 33. Comparison of simulations conducted using the DynPy library with a fixed integration step sizes of [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] and [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] compared with MATLAB/Simulink variable integration step size.
Appendix B. DCMotor Class Code
Figure 33. Comparison of simulations conducted using the DynPy library with a fixed integration step sizes of [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] and [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] compared with MATLAB/Simulink variable integration step size.
Figure 33. Comparison of simulations conducted using the DynPy library with a fixed integration step sizes of [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] and [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] compared with MATLAB/Simulink variable integration step size.
Figure 33. Comparison of simulations conducted using the DynPy library with a fixed integration step sizes of [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] and [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] compared with MATLAB/Simulink variable integration step size.
Appendix C. Detailed View of DCMotor Class Dependencies and Equations of Motion Solutions
The structure of the
Figure 33. Comparison of simulations conducted using the DynPy library with a fixed integration step sizes of [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] and [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] compared with MATLAB/Simulink variable integration step size.
Figure 33. Comparison of simulations conducted using the DynPy library with a fixed integration step sizes of [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] and [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] compared with MATLAB/Simulink variable integration step size.
Figure 33. Comparison of simulations conducted using the DynPy library with a fixed integration step sizes of [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] and [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] compared with MATLAB/Simulink variable integration step size.
Figure 33. Comparison of simulations conducted using the DynPy library with a fixed integration step sizes of [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] and [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] compared with MATLAB/Simulink variable integration step size.
Figure 33. Comparison of simulations conducted using the DynPy library with a fixed integration step sizes of [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] and [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] compared with MATLAB/Simulink variable integration step size.
Figure 33. Comparison of simulations conducted using the DynPy library with a fixed integration step sizes of [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] and [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] compared with MATLAB/Simulink variable integration step size.
Figure 33. Comparison of simulations conducted using the DynPy library with a fixed integration step sizes of [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] and [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] compared with MATLAB/Simulink variable integration step size.
Similarly, a solution of equations of motion including Heaviside forcing based on sinewave and their derivatives are presented subsequently in (
Appendix D. Hybrid Analytical–Numerical Solution Code
Code snippet of the hybrid analytical–numerical solution:
Figure 33. Comparison of simulations conducted using the DynPy library with a fixed integration step sizes of [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] and [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] compared with MATLAB/Simulink variable integration step size.
Figure 33. Comparison of simulations conducted using the DynPy library with a fixed integration step sizes of [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] and [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] compared with MATLAB/Simulink variable integration step size.
Main procedure implemented in a loop:
Figure 33. Comparison of simulations conducted using the DynPy library with a fixed integration step sizes of [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] and [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] compared with MATLAB/Simulink variable integration step size.
Figure 33. Comparison of simulations conducted using the DynPy library with a fixed integration step sizes of [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] and [Forumla omitted. See PDF.] [Forumla omitted. See PDF.] compared with MATLAB/Simulink variable integration step size.
References
1. GitHub. Bogumilchilinski/Dynpy. Available online: https://github.com/bogumilchilinski/dynpy (accessed on 4 May 2024).
2. Guo, Y.; Liu, L.; Ba, X.; Lu, H.; Lei, G.; Yin, W.; Zhu, J. Designing High-Power-Density Electric Motors for Electric Vehicles with Advanced Magnetic Materials. World Electr. Veh. J.; 2023; 14, 114. [DOI: https://dx.doi.org/10.3390/wevj14040114]
3. Martinez, S.S.; Samaras, C. Electrification of Transit Buses in the United States Reduces Greenhouse Gas Emissions. Environ. Sci. Technol.; 2024; 58, pp. 4137-4144. [DOI: https://dx.doi.org/10.1021/acs.est.2c07296] [PubMed: https://www.ncbi.nlm.nih.gov/pubmed/38373231]
4. Siddhartha, P.; Sujeeth, T.; Shiva, B.; Ramprabhakar, J. Integration Of Renewable Energy Sources With Power Management Strategy For Effective Bidirectional Vehicle To Grid Power Transfer. Procedia Comput. Sci.; 2023; 218, pp. 9-23. [DOI: https://dx.doi.org/10.1016/j.procs.2022.12.397]
5. Kebede, A.A.; Kalogiannis, T.; Mierlo, J.V.; Berecibar, M. A comprehensive review of stationary energy storage devices for large scale renewable energy sources grid integration. Renew. Sustain. Energy Rev.; 2022; 159, 112213. [DOI: https://dx.doi.org/10.1016/j.rser.2022.112213]
6. Mathew, M.S.; Kolhe, M.L.; Kandukuri, S.T.; Omlin, C.W. Data driven approach for the management of wind and solar energy integrated electrical distribution network with high penetration of electric vehicles. J. Clean. Prod.; 2023; 421, 138467. [DOI: https://dx.doi.org/10.1016/j.jclepro.2023.138467]
7. Mackojć, A.; Chiliński, B. Preliminary modelling methodology of a coupled payload-vessel system for offshore lifts of light and heavyweight objects. Bull. Pol. Acad. Sci. Tech. Sci.; 2021; 70, 139003. [DOI: https://dx.doi.org/10.24425/bpasts.2021.139003]
8. Chilinski, B.; Mackojc, A.; Mackojc, K. Analytical solution of parametrically induced payload nonlinear pendulation in offshore lifting. Ocean. Eng.; 2022; 259, 111835. [DOI: https://dx.doi.org/10.1016/j.oceaneng.2022.111835]
9. Mackojc, A.; Chilinski, B.; Zalewski, R. Preliminary research of a symmetrical controllable granular damper prototype. Bull. Pol. Acad. Sci. Tech. Sci.; 2022; 70, 141002. [DOI: https://dx.doi.org/10.24425/bpasts.2022.141002]
10. Radomski, A.P.; Sierociński, D.J.; Chiliński, B.D. Proposition of a structural health monitoring model for a concept of an innovative variable mass pendular tuned mass damper. Diagnostyka; 2024; 25, pp. 1-10. [DOI: https://dx.doi.org/10.29354/diag/185458]
11. Hassan, M.S.; Safwat, I.M.; Abounemra, A.M.E.; Ahmed, H.N. A generalized closed-form analytic design technique for solid-state Marx generators. Int. J. Circuit Theory Appl.; 2024; 52, pp. 4026-4039. [DOI: https://dx.doi.org/10.1002/cta.3961]
12. Wang, B.; Zhang, C.; Xia, Y.; Zhang, F. Analytical solution of serial ferroresonance triggered by circuit breaker operation in solidly grounded power grids. Int. J. Electr. Power Energy Syst.; 2023; 154, 109447. [DOI: https://dx.doi.org/10.1016/j.ijepes.2023.109447]
13. Fevzi Çakmak, Z.A.; Tür, M.R. Analysis of Open Circuit Voltage MPPT Method with Analytical Analysis with Perturb and Observe (P&O) MPPT Method in PV Systems. Electr. Power Compon. Syst.; 2023; 52, pp. 1528-1542. [DOI: https://dx.doi.org/10.1080/15325008.2023.2296958]
14. Alqhtani, M.; Saad, K.M.; Shah, R.; Hamanah, W.M. Discovering novel soliton solutions for (3+1)-modified fractional Zakharov–Kuznetsov equation in electrical engineering through an analytical approach. Opt. Quantum Electron.; 2023; 55, 1149. [DOI: https://dx.doi.org/10.1007/s11082-023-05407-2]
15. Valbuena Godoy, J.; Negri, S.; Oliva, F.; Antoniazzi, A.; Faranda, R.S. Innovative Fault Current Evaluation Method for Active DC Grids. Electronics; 2024; 13, 847. [DOI: https://dx.doi.org/10.3390/electronics13050847]
16. Zhou, P.; Ghabeli, A.; Ainslie, M.; Grilli, F. Characterization of flux pump-charging of high-temperature superconducting coils using coupled numerical models. Supercond. Sci. Technol.; 2023; 36, 115002. [DOI: https://dx.doi.org/10.1088/1361-6668/acf739]
17. Du, Y.; Qiao, J.; Wu, J.; Xu, Y.; Nan, T.; Dong, S.; Hu, Z.; Liu, M. Performance analysis of acoustically actuated magnetoelectric antennas via equivalent circuit method. J. Appl. Phys.; 2024; 135, 114101. [DOI: https://dx.doi.org/10.1063/5.0192222]
18. Arnold, M. Numerical methods for simulation in applied dynamics. Simulation Techniques for Applied Dynamics; Arnold, M.; Schiehlen, W. Springer: Vienna, Austria, 2009; pp. 191-246. [DOI: https://dx.doi.org/10.1007/978-3-211-89548-1_5]
19. Tatjewski, P. Numerical Methods; 1st ed. Oficyna Wydawnicza Politechniki Warszawskiej: Warsaw, Poland, 2015.
20. Wang, Y.; Zhao, G. A comparative study of fractional-order models for lithium-ion batteries using Runge Kutta optimizer and electrochemical impedance spectroscopy. Control. Eng. Pract.; 2023; 133, 105451. [DOI: https://dx.doi.org/10.1016/j.conengprac.2023.105451]
21. Baron, B.; Kolanska-Płuska, J.; Łukaniszyn, M.; Spałek, D.; Kraszewski, T. Solution of nonlinear stiff differential equations for a three-phase no-load transformer using a Runge-Kutta implicit method. Arch. Electr. Eng. (Online); 2022; 71, pp. 1081-1106.
22. Yousri, D.; Mudhsh, M.; Shaker, Y.O.; Abualigah, L.; Tag-Eldin, E.; Abd Elaziz, M.; Allam, D. Modified Interactive Algorithm Based on Runge Kutta Optimizer for Photovoltaic Modeling: Justification Under Partial Shading and Varied Temperature Conditions. IEEE Access; 2022; 10, pp. 20793-20815. [DOI: https://dx.doi.org/10.1109/ACCESS.2022.3152160]
23. Malarvizhi, M.; Karunanithi, S. Study of electrical circuits using Runge Kutta method of order 4. J. Comput. Math.; 2021; 5, pp. 109-120.
24. Teoh, A.K. Transient Analysis of Electrical Circuits Using Runge-Kutta Method. 2017; Available online: https://api.semanticscholar.org/CorpusID:86832491 (accessed on 10 October 2024).
25. Maffezzoni, P.; Codecasa, L.; D’Amore, D. Time-Domain Simulation of Nonlinear Circuits Through Implicit Runge–Kutta Methods. IEEE Trans. Circuits Syst. I Regul. Pap.; 2007; 54, pp. 391-400. [DOI: https://dx.doi.org/10.1109/TCSI.2006.887476]
26. Suhag, A. Transient analysis of electrical circuits using Runge-Kutta method and its application. Int. J. Sci. Res. Publ.; 2013; 3, pp. 486-490.
27. Patil, M.B.; Hari, V.V.S.P.K. Circuit simulation using explicit methods. arXiv; 2023; arXiv: 2301.04595
28. Fadnavis, S. Round off Error propagation in simulation of RC circuit Subtitle: Simulation of RC circuit. Proceedings of the nternational Conference on Advances in Computing and Information Technology–ACIT 2014; Bangkok, Thailand, 4–5 January 2014.
29. Kazmierski, T.J.; Wang, L.; Al-Hashimi, B.M.; Merrett, G.V. An Explicit Linearized State-Space Technique for Accelerated Simulation of Electromagnetic Vibration Energy Harvesters. IEEE Trans.-Comput.-Aided Des. Integr. Circuits Syst.; 2012; 31, pp. 522-531. [DOI: https://dx.doi.org/10.1109/TCAD.2011.2176124]
30. MOHAMAD ZAKI, F.A.; Isa, S. Numerical Solutions of Applications in Ordinary Differential Equation by Implicit Multistep Method. Enhanc. Knowl. Sci. Technol.; 2022; 2, pp. 500-507.
31. Kuznyetsov, O. Modeling of electromechanical systems based on induction machine using method of average voltage on the integration step length. Sci. Bull. Ser. C Electr. Eng. Comput. Sci.; 2017; 79, pp. 169-180.
32. Adeniran, O. Numerical solution of some selected RLC circuits. Sospoly J. Sci. Agric.; 2017; 2, pp. 1-11.
33. Tural-Polat, S.N.; Dincel, A.T. Wavelet methods for fractional electrical circuit equations. Phys. Scr.; 2023; 98, 115203. [DOI: https://dx.doi.org/10.1088/1402-4896/acfacc]
34. Avci, I. Spectral collocation with generalized Laguerre operational matrix for numerical solutions of fractional electrical circuit models. Math. Model. Numer. Simul. Appl.; 2024; 4, pp. 110-132. [DOI: https://dx.doi.org/10.53391/mmnsa.1428035]
35. Doménech-Asensi, G.; Kazmierski, T.J. Generation of new power processing structures exploiting genetic programming. Proceedings of the 2017 IEEE 26th International Symposium on Industrial Electronics (ISIE); Edinburgh, UK, 19–21 June 2017; pp. 729-732. [DOI: https://dx.doi.org/10.1109/ISIE.2017.8001336]
36. Sels, T.; Craenenbroeck, T.V.; Hameyer, K.; Mertens, R.; Declercq, J. Comparison of a Combined Time-Harmonic—Transient Finite Element Analysis of Fast Transient Oscillations with Laboratory Measurements. 2000; Available online: https://api.semanticscholar.org/CorpusID:125250908 (accessed on 7 October 2024).
37. Condon, M.; Dautbegovic, E.; Brazil, T. An Efficient Numerical Algorithm for the Transient Analysis of High-Frequency Non-Linear Circuits. Proceedings of the 2002 32nd European Microwave Conference; Milan, Italy, 23–26 September 2002; [DOI: https://dx.doi.org/10.1109/EUMA.2002.339244]
38. Cai, Y.; Zhang, J.; Yu, W. A Predictor-Corrector Method for Power System Variable Step Numerical Simulation. IEEE Trans. Power Syst.; 2019; 34, pp. 3283-3285. [DOI: https://dx.doi.org/10.1109/TPWRS.2019.2908054]
39. Kurobe, H.; Sekine, T.; Asai, H. Predictor-corrector latency insertion method for fast transient analysis of ill-constructed circuits. Proceedings of the 17th Asia and South Pacific Design Automation Conference; Sydney, Australia, 30 January–2 February 2012; pp. 365-370.
40. Noda, T.; Yamamoto, K.; Nagaoka, N.; Ametani, A. A predictor-corrector scheme for solving a nonlinear circuit. Proceedings of the IPST 1997; Seattle, WA, USA, 22–26 June 2016; Volume 95, pp. 5-10.
41. Tripodi, E.; Musolino, A.; Rizzo, R.; Raugi, M. A new predictor–corrector approach for the numerical integration of coupled electromechanical equations. Int. J. Numer. Methods Eng.; 2016; 105, pp. 261-285. [DOI: https://dx.doi.org/10.1002/nme.4974]
42. Aadithya, K.; Keiter, E.; Mei, T. Predictor/Corrector Newton-Raphson (PCNR): A Simple, Flexible, Scalable, Modular, and Consistent Replacement for Limiting in Circuit Simulation. Scientific Computing in Electrical Engineering; Springer: Cham, Switzerland, 2020; pp. 201-208. [DOI: https://dx.doi.org/10.1007/978-3-030-44101-2_19]
43. Abdulsalam, S.; Xu, W.; Dinavahi, V. Modelling and simulation of three-phase transformers for inrush current studies. Gener. Transm. Distrib.; 2005; 152, pp. 328-333. [DOI: https://dx.doi.org/10.1049/ip-gtd:20041060]
44. Bayrak, M.A.; Can, E. Numerical Solution of Fuzzy Differential Equations by Milne’S Predictor-Corrector Method. Math. Sci. Appl. E-Notes; 2015; 3, pp. 137-153. [DOI: https://dx.doi.org/10.36753/mathenot.421232]
45. Sowa, M. A subinterval-based method for circuits with fractional order elements. Bull. Pol. Acad. Sci. Tech. Sci.; 2014; 62, pp. 449-454. [DOI: https://dx.doi.org/10.2478/bpasts-2014-0047]
46. Virtanen, P.; Gommers, R.; Oliphant, T.E.; Haberland, M.; Reddy, T.; Cournapeau, D.; Burovski, E.; Peterson, P.; Weckesser, W.; Bright, J. et al. SciPy 1.0: Fundamental Algorithms for Scientific Computing in Python. Nat. Methods; 2020; 17, pp. 261-272. [DOI: https://dx.doi.org/10.1038/s41592-019-0686-2]
47. Semenova, M.; Kazazaeva, D.; Sabychikova, A. Simulation and analysis of transition processes in linear electrical circuits using MatLab software package. E3s Web Conf.; 2023; 389, 1045. [DOI: https://dx.doi.org/10.1051/e3sconf/202338901045]
48. Khanahmedova, S. Investigation of Some Electrical Circuits Using Simulation in Matlab/Simulink. Available online: https://cyberleninka.ru/article/n/investigation-of-some-electrical-circuits-using-simulation-in-matlab-simulink/viewer (accessed on 8 October 2024).
49. Mladenović, V.M.; Porrat, D.; Lutovac, M.D. Simulation of OFDM transmitters and post processing with SchematicSolver and Mathematica as a computer algebra system. Proceedings of the Papers 5th European Conference on Circuits and Systems for Communications (ECCSC’10); Belgrade, Serbia, 23–25 November 2010; pp. 278-281.
50. Yadir, S.; Aazou, S.; Maouhoub, N.; Rais, K.; Benhmida, M.; Assaid, E. Illuminated solar cell physical parameters extraction using mathematica. Proceedings of the 2009 IEEE/ACS International Conference on Computer Systems and Applications; Rabat, Morocco, 10–13 May 2009; pp. 63-64.
51. MATLAB. Specialized Power Systems. Available online: https://www.mathworks.com/help/sps/specialized-power-systems.html?s_tid=CRUX_lftnav (accessed on 3 May 2024).
52. Modeler, W.S. Modelica: Electrical. Available online: https://reference.wolfram.com/system-modeler/libraries/Modelica/Modelica.Electrical.html (accessed on 3 May 2024).
53. Asadi, F. Electric and Electronic Circuit Simulation using TINA-TI. Electric and Electronic Circuit Simulation Using TINA-TI; River Publishers: Aalborg, Denmark, 2022.
54. Pérez Martínez, M.; Ramos Guardarrama, J.; Santos Baranda, J.; Silvério Freire, R.C. Use of Scilab software as a didactic tool in electrical circuits laboratory practices. Ing. Energética; 2022; 43, pp. 71-79.
55. CircuitLab. Online Circuit Simulator & Schematic Editor. Available online: https://www.circuitlab.com/ (accessed on 3 May 2024).
56. Boys, B.; Dodwell, T.; Hobbs, M.; Girolami, M. PeriPy—A high performance OpenCL peridynamics package. Comput. Methods Appl. Mech. Eng.; 2021; 386, 114085. [DOI: https://dx.doi.org/10.1016/j.cma.2021.114085]
57. Lutz, M. Programming Python; O’Reilly Media, Inc.: Sebastopol, CA, USA, 2001.
58. Oliphant, T. Python for Scientific Computing. Comput. Sci. Eng.; 2007; 9, pp. 10-20. [DOI: https://dx.doi.org/10.1109/MCSE.2007.58]
59. Meurer, A.; Smith, C.P.; Paprocki, M.; Čertík, O.; Kirpichev, S.B.; Rocklin, M.; Kumar, A.; Ivanov, S.; Moore, J.K.; Singh, S. et al. SymPy: Symbolic computing in Python. PeerJ Comput. Sci.; 2017; 3, e103. [DOI: https://dx.doi.org/10.7717/peerj-cs.103]
60. Kluyver, T.; Ragan-Kelley, B.; Pérez, F.; Granger, B.; Bussonnier, M.; Frederic, J.; Kelley, K.; Hamrick, J.; Grout, J.; Corlay, S. et al. Jupyter Notebooks—A publishing format for reproducible computational workflows. Positioning and Power in Academic Publishing: Players, Agents and Agendas; Loizides, F.; Schmidt, B. IOS Press: Amsterdam, The Netherlands, 2016; pp. 87-90.
61. Dyba, T.; Dingsoyr, T. What Do We Know about Agile Software Development?. IEEE Softw.; 2009; 26, pp. 6-9. [DOI: https://dx.doi.org/10.1109/MS.2009.145]
© 2025 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/). Notwithstanding the ProQuest Terms and Conditions, you may use this content in accordance with the terms of the License.