JSCP Benchmarks

DSVerifier 2.0: A BMC Tool to Verify Fragility in Digital Systems with Uncertainties

Experimental Setup:
The experiments were executed in a computer with the following hardware configurations: Intel Core i7-2600 3.40 GHz processor, 24 GB of RAM, and Ubuntu 64-bits OS. The experiments used the Linux times command to measure CPU time used for each benchmark. The runtime was limited to one hour (i.e., 3600s).

Benchmarks Description:

IEEE Transaction on Computers Benchmarks: We extracted 4 digital systems (controller and plant) from Keel, L.H. and Bhattacharyya, S.P. 1997. Robust, fragile, or optimal? IEEE Trans. Automat. Control, 42, 1098–1105. All digital systems are designed in transfer-function format, and the discretized plant and controller are published by Bessa, I. V. et al. Formal Non-Fragile Stability Verification of Digital Control Systems with Uncertainty. In IEEE Transactions on Computers, v.66(3), pp. 545-552, 2017.
Reference: IEEE Transaction on Computers Publication, 2017

ACM International Conference on Hybrid Systems: Computation and Control (HSCC) Benchmarks:
The first set of benchmarks uses the discrete model of a cruise control system for a car, and accounts for rolling friction, aerodynamic drag, and the gravitational disturbance force.
The second set of benchmarks considers the discrete model of a simple spring-mass damper plant.
A third set of benchmarks uses the discrete model for satellite attitude dynamics, which require attitude control for orientation of antennas and sensors w.r.t. Earth.
The fourth and fifth set of benchmarks describe the discrete model of a DC servo motor velocity dynamics.
The sixth set of benchmarks contains a well-studied discrete non-minimal phase model. Non-minimal phase models cause additional difficulties for the design of stable controllers.
The seventh set of benchmarks describes the discrete model for the Helicopter Longitudinal Motion, which provides the longitudinal motion dynamics of a helicopter.
The eighth set of benchmarks contains the discrete model for the known Inverted Pendulum, which describes a pendulum dynamics with its center of mass above its pivot point.
The ninth set of benchmarks contains the Magnetic Suspension discrete model, which describes the dynamics of a mass that levitates with support only of a magnetic field.
The last set of benchmarks contains the Computer Tape Driver discrete model, which describes a system to read and write data on a storage device.
Reference: ACM International Conference on Hybrid Systems: Computation and Control (HSSC) Publication, 2017

Scripts to run the DSVerifier 2.0 over the benchmarks: Benchmarks Scripts .

Verification Results: All Benchmarks Results

IEEE Transaction on Computers Benchmarks:
Benchmark Id Controller Plant Sample Time
example-1 tf([-4.4366 , 9.177 , -3.6362 , -5.1444 , 5.9167 , -2.2791 , 0.31329 ],[-0.23339 , -1.5195 , 0.73999 , 0.51029 , -0.41403 , 0.073294]) tf([0 , 0.54869 , -0.88674],[1 , -3.3248 , 1.6487]) 5.000000e-01
example-2 tf([11.9255 , -11.8089],[ 1 , -1.0729]) tf([0 , 0.01 , -0.010101],[1 , -2.0103 , 1.0101]) 1.000000e-02
example-3 tf([-2.7056 , 4.9189 , -2.9898 , 0.60746],[1 , -0.24695 , -0.80001 , 0.35681]) tf([0 , 0.33528 , -0.55879],[1 , -1.8906 , 0.7788]) 1.000000e-02
example-4 tf([-45456.4327 , 37928.1361 , 25543.7663 , -38701.0881 , 16110.0087 , -2847.8579 , 182.2326 , 0.38487],[ 1 , 0.47737 , -1.4922 , -0.6236 , 0.64615 , 0.10413 , -0.12437 , 0.018243]) tf([0 , -0.0001492 , -0.00051649 , -7.2373e-05],[1 , -7.8381 , 2.9258 , -0.25393]) 3.000000e-02
Conference on Hybrid Systems: Computation and Control (HSSC) Benchmarks:
Benchmark Id Plant Controller Sample Time
cruiser tf([9.7541E-04],[1.0, -0.9512]) tf([0.00390625, 0.0009765625],[0.3134765625, -0.0009765625]) 0.2
dc-motor tf([0.1898, 1.8027E-4],[1.0, -0.9012, -1.0006E-16]) tf([-0.3466796875, 0.015625],[0.5, 0.19921875, 0]) 2
dc-servo-motor tf([0.0001929, 6.814e-09],[1.0, -0.6921, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) tf([0.5, -0.96875, -0.875, -0.5],[0.001190185546875, 0.0008544921875, 0.000152587890625, 0.000335693359375, 0, 0, 0, 0, 0]) 0.01
doyleetal tf([-0.01285, 0.02582, -0.01293],[1.0, -2.99, 2.983, -0.9929]) tf([-0.580535888671875, 0.919769287109375, 0.11871337890625, -0.951934814453125],[0.7188720703125, -0.38751220703125, -0.415924072265625, 0.437286376953125]) 0.02
helicopter tf([15.1315, 17.8600, 17.4549],[1.0, -2.6207, 2.3586, -0.6570]) tf([-0.0009765625, 0, 0],[ 0.76171875, 0, 0, 0 ]) 2
pendulum tf([0.2039, 0.2039],[1.0, 1.19999, 1.0 ]) tf([-0.96484375, 0.9833984375],[0.8896484375, -0.875, 0 ]) 2
satelliteB2 tf([1.250000e-1, 1.250000e-1],[1.000000, -2.000000, 1.000000]) tf([0.8359375, 0.265625, -0.96875],[0.9453125, 0.90625, -0.15625, -0.123046875]) 0.001
spgMsDamper tf([5.000000e-5, 5.000000e-5],[1.000000, -2.000000, 1.000000]) tf([-0.0000000004656612873077392578125, 1.0000000004656612873077392578125, -1.0000000004656612873077392578125 ],[1, -0.0000000004656612873077392578125, 0.0000000004656612873077392578125]) 0.001
suspension tf([0.25, 0.5, 0.25, -4.3341E-7],[1.0, 5.9150E-6, 1.0480E-11, -4.9349E-63, 7.0168E-225]) tf([-0.0224609375, 0, 0, 0 ],[0.138671875, 0, 0, 0, 0]) 2
tapedriver tf([0.0200, -3.8303E-176],[1.0, -4.6764E-166]) tf([ 0, 0.0625 ],[0.517578125, -0.4990234375]) 2