Find below a call diagram showing the tree of created model operators. “OverallSystem” is the root operator, which includes all the operators in a closed-loop architecture.
1.OverallSystem
1.1. nPID
1.1.1. PIDBlock [3]
1.1.1.1. linear::Derivative
1.1.1.2. linear::Gain [3]
1.1.1.3. linear::IntegrTrapezoid
1.1.2. Voter
1.1.2.1. math::Abs [3]
1.1.2.2. math::Mean [3]
1.1.2.3. math::Mean3
1.2. TransferFunction
1.2.1. SumDelay
Utilizing the libraries and predefined operators available within the Ansys Scade Suite application, a basic PID regulator has been created as depicted in the Figure below. Here, '𝑃𝐼𝐷𝑖𝑛' represents the input, '𝑃𝐼𝐷𝑜𝑢𝑡' signifies the output, while '𝐾𝑝', '𝐾𝑑', and '𝐾𝑖' stand as constant values configured as 'hidden input'. The derivative, integral, and gain blocks have been sourced from the 'liblinear' library. The values associated with these blocks are provided in the table below.
Figure 1 PID Block
Operator | Pin | Name | Value |
Derivative | 1 | TimeCycle | 0.1 |
Integral Trapezoid |
1 2 3 4 |
Reset TimeCycle LowLimit HighLimit |
False 0.1 0 UpLim |
A simple algorithm acting as a selector operator has been designed to choose values coming from three different PID blocks, according to the swan model shown below, and send the selected value to the system's transfer function.
Figure 2 Voter block
This algorithm has been modeled in Ansys Scade Suite software as shown in the figure above. Here, the “Abs” operator is used for obtaining absolute values, and the 'Mean' and 'Mean3' operators taking arithmetic averages are sourced from the 'libmath” library. This operator has inputs 'pid1', 'pid2', and 'pid3' from three different PID blocks and an output 'val'.
The 'Nv-PID' operator has been modeled using the 'PIDBlock' operator as depicted in the Figure below. This operator has a '𝑅𝑒𝑓' reference input and a '𝐹𝑒𝑒𝑑𝑏𝑎𝑐𝑘' negative feedback input, with pid1, pid2 and pid3 outputs. The used coefficients were described in the table of the section Data types and constants.
Figure 3 N-Version PID