From 1321ee7628ee1f5149b62bf6d93a70397300b4af Mon Sep 17 00:00:00 2001 From: Patrick Musau Date: Thu, 18 Jun 2020 12:09:34 -0500 Subject: [PATCH] Added Stanford Benchmark --- benchmarks/double_pendulum/Specifications.txt | 12 ++ .../controller_double_pendulum_less_robust.h5 | Bin 0 -> 38116 bytes ...controller_double_pendulum_less_robust.mat | Bin 0 -> 7264 bytes ...ontroller_double_pendulum_less_robust.nnet | 114 ++++++++++++++++++ ...ontroller_double_pendulum_less_robust.onnx | Bin 0 -> 4081 bytes .../controller_double_pendulum_more_robust.h5 | Bin 0 -> 38116 bytes ...controller_double_pendulum_more_robust.mat | Bin 0 -> 7264 bytes ...ontroller_double_pendulum_more_robust.nnet | 114 ++++++++++++++++++ ...ontroller_double_pendulum_more_robust.onnx | Bin 0 -> 4081 bytes .../double_pendulum/double_pendulum_solver.m | 26 ++++ benchmarks/double_pendulum/dynamics.m | 20 +++ 11 files changed, 286 insertions(+) create mode 100644 benchmarks/double_pendulum/Specifications.txt create mode 100644 benchmarks/double_pendulum/controller_double_pendulum_less_robust.h5 create mode 100644 benchmarks/double_pendulum/controller_double_pendulum_less_robust.mat create mode 100644 benchmarks/double_pendulum/controller_double_pendulum_less_robust.nnet create mode 100644 benchmarks/double_pendulum/controller_double_pendulum_less_robust.onnx create mode 100755 benchmarks/double_pendulum/controller_double_pendulum_more_robust.h5 create mode 100644 benchmarks/double_pendulum/controller_double_pendulum_more_robust.mat create mode 100644 benchmarks/double_pendulum/controller_double_pendulum_more_robust.nnet create mode 100644 benchmarks/double_pendulum/controller_double_pendulum_more_robust.onnx create mode 100644 benchmarks/double_pendulum/double_pendulum_solver.m create mode 100644 benchmarks/double_pendulum/dynamics.m diff --git a/benchmarks/double_pendulum/Specifications.txt b/benchmarks/double_pendulum/Specifications.txt new file mode 100644 index 0000000..deac834 --- /dev/null +++ b/benchmarks/double_pendulum/Specifications.txt @@ -0,0 +1,12 @@ +Initial states: + +x1 = [0.6, 0.7] +x2 = [-0.7, -0.6] +x3 = [-0.4, -0.3] +x4 = [0.5, 0.6] + +t = 20 seconds + +Property: + +The system, states 1 to 3, always stays within the box x ∈ [-1,1] \ No newline at end of file diff --git a/benchmarks/double_pendulum/controller_double_pendulum_less_robust.h5 b/benchmarks/double_pendulum/controller_double_pendulum_less_robust.h5 new file mode 100644 index 0000000000000000000000000000000000000000..0f30dc2861ee620f091338c912801b391393b1c8 GIT binary patch literal 38116 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 literal 0 HcmV?d00001 diff --git a/benchmarks/double_pendulum/controller_double_pendulum_less_robust.mat b/benchmarks/double_pendulum/controller_double_pendulum_less_robust.mat new file mode 100644 index 0000000000000000000000000000000000000000..2dca0ce76dfe6d4b4ed4d437ef134f00e72cdea6 GIT binary patch literal 7264 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 literal 0 HcmV?d00001 diff --git a/benchmarks/double_pendulum/controller_double_pendulum_more_robust.nnet b/benchmarks/double_pendulum/controller_double_pendulum_more_robust.nnet new file mode 100644 index 0000000..fe64b2d --- /dev/null +++ b/benchmarks/double_pendulum/controller_double_pendulum_more_robust.nnet @@ -0,0 +1,114 @@ +// The contents of this file are licensed under the Creative Commons +// Attribution 4.0 International License: https://creativecommons.org/licenses/by/4.0/ +// Neural Network File Format by Kyle Julian, Stanford 2016 +3, 4, 2, 25 +4, 25, 25,2, 2 +0 +0 +0 +0 +0 +-0.65322, 0.56348, 0.11143, 0.43745 +-0.13917, -0.27471, -0.30453, -0.37446 +-0.81573, -0.80161, -0.06326, -0.08245 +0.21058, -2.07283, -0.04141, 0.45586 +-0.13611, -1.27570, -0.72408, 0.38146 +-1.45124, 0.44155, -0.43696, -0.15128 +0.95641, 0.78721, 0.13760, 0.34908 +0.00496, 0.81414, -0.27889, 0.39849 +0.75806, -1.56297, 0.10996, 0.11835 +-0.47206, -0.67700, -0.04122, 0.11931 +-1.22877, 0.94453, -0.24356, 0.10125 +0.86699, 0.12439, 0.34558, -0.22081 +-0.17207, -0.45277, 0.17072, -0.01408 +0.85946, -0.33742, 0.16125, 0.24754 +0.20474, -0.20941, -0.34172, -0.78301 +0.09495, -0.52044, 0.03385, 0.01021 +0.21600, -2.71416, -0.48748, -0.16733 +0.36326, -0.14624, 0.51307, -0.34693 +-0.38633, 0.40642, -0.10367, 1.32220 +-0.78796, -0.61202, -0.78609, -0.40472 +-0.36848, 0.09991, -0.08277, 0.13028 +-1.80681, 0.40541, -0.06432, -0.42338 +-0.26881, 0.15618, -0.70180, 0.56059 +1.94409, -1.86877, 0.32473, -0.30235 +1.20329, 0.44238, 0.13065, 0.11360 +0.07033 +1.23292 +1.21009 +0.81374 +-0.00478 +0.55039 +0.11128 +-0.09827 +-0.11808 +-0.36569 +-0.13560 +-0.36352 +-0.55360 +-1.31334 +-0.00413 +-0.31611 +0.13549 +0.19501 +-3.37608 +-0.12817 +-0.98037 +0.57819 +0.00285 +0.18375 +-0.62401 +-0.10258, -0.24838, -1.19408, 0.32203, -0.05487, -0.92653, 0.86263, -0.34522, 0.37473, 0.18312, -0.28196, 0.46491, -0.05792, -0.51639, -0.37231, -0.08184, -0.59525, 0.46965, -2.34504, 0.08800, 0.08161, 0.70005, -0.57812, -0.18592, 0.08441 +0.11913, -0.30372, -0.38501, 0.00399, 0.18771, -0.31573, -0.00110, -0.27918, -0.15205, -0.36622, -0.34478, 0.01238, -0.01444, 0.22477, 0.02308, -0.28371, 0.12537, -0.27683, 0.11467, 0.17533, 0.07332, -0.06274, -0.50956, -0.37021, 0.09153 +0.13345, -1.02695, -0.60796, -0.48779, -0.09040, 0.32463, -0.18559, -0.49684, -0.09698, -0.48191, -0.14445, -0.14695, 0.00575, -0.60529, -1.92049, -0.00228, -0.00665, -0.17871, -0.60232, -1.02675, -0.64732, -0.28146, -0.58657, -0.23959, -0.48865 +0.01874, 0.44423, 0.82098, -1.17922, 0.49353, 0.24924, -2.38860, -0.70643, 0.85253, 0.90542, 0.09119, -1.82342, 0.12007, -2.20346, 0.18377, -0.58466, 0.73521, -2.94466, -0.10003, 0.31910, -0.25398, -0.11769, -0.27998, 1.04429, -0.06584 +-0.09429, -0.13609, -0.08970, -0.52234, -0.12376, 0.03936, -0.23261, -0.15374, 0.01591, -0.05066, -0.16494, -0.26554, -0.06158, -0.06600, -0.00807, -0.16622, 0.00069, -0.06297, 0.39606, 0.16923, 0.17001, -0.40184, -0.21567, -0.01716, -0.01037 +1.50692, 0.21002, 1.66018, -0.79581, -0.14218, -0.33676, -0.86673, -0.61859, -2.54826, -0.83174, -5.34671, 0.39820, -0.04647, -0.11518, -0.83719, -0.25680, -2.00469, 0.71612, -0.19096, 0.97420, 0.95074, -0.92811, 0.68882, -2.39253, -0.71064 +-0.22415, 0.36144, -0.61142, 1.10224, -0.62317, 0.39586, -0.12116, -0.13050, 0.67693, 0.27519, 0.01433, -0.14649, 0.12094, -0.32695, -0.46181, 0.22183, 0.49116, -0.18330, -2.56542, 0.46022, -0.68973, 0.22690, 0.90301, -4.52128, -0.78871 +-0.13072, 0.31100, -1.65376, 0.42190, -0.10171, -0.44904, 0.22040, -1.44225, 0.28832, -0.26414, -1.07839, 0.01344, -0.33907, 0.12853, -0.30538, 0.18388, 0.04150, 0.27614, -0.71068, 0.98080, 0.10122, 0.28402, -0.30887, 0.45367, 0.02276 +0.44243, -3.14085, -1.00792, -1.64035, -0.57196, 0.70977, -0.04364, 0.35542, -0.45214, 0.01858, -0.30203, -0.16895, -0.35156, -0.30185, -1.36758, -0.13432, -1.53669, -0.43220, -1.17065, -1.05830, 0.15805, -0.44248, 0.32166, -1.38840, -0.51585 +-0.06042, -0.82768, 0.14040, -0.35379, -0.73813, 0.30596, -0.23918, 0.01284, -0.03455, -0.05977, -0.02289, -0.33908, 0.30991, -0.30571, -0.60105, -0.44386, 0.47264, -0.14649, -0.18889, 0.07189, -0.04780, -0.44592, -0.02213, -0.29868, -0.63757 +-0.14465, -0.45745, 0.98664, 0.05460, -0.54437, 1.17963, -0.69142, 0.44400, 0.20395, 0.53503, 0.59665, 0.95762, -0.09328, -0.78789, -0.08197, 0.01991, 1.13401, -0.32030, -0.26038, -0.13281, 0.26937, 0.26095, 0.53538, -0.67864, -0.36865 +-0.85727, 0.04966, 1.06689, 1.07668, -2.28115, -0.80987, 0.69224, 0.12433, -0.05185, 0.38244, -1.26043, -1.77280, -0.10070, -0.49995, -3.48264, 0.07201, -0.96433, -0.45720, -1.36092, -0.47070, -0.24438, -3.25391, -0.39299, -0.33304, -2.36933 +-0.21887, 0.12422, 0.65631, -0.06790, -1.51352, 0.19748, -0.15295, -0.07982, -0.18454, 0.06807, 0.00194, 0.50918, 0.46406, -0.67403, 0.70725, -0.27031, 0.61656, 0.12395, -2.60219, 0.39315, -0.05876, -0.22454, 0.41305, 0.26357, 0.21876 +0.34353, -0.69204, -1.01317, 1.16088, -0.15296, 0.19572, 0.31871, -0.09880, 0.41669, 0.21245, 0.33126, -0.03954, 0.01912, -0.02893, -0.11736, -0.10957, -4.02221, 0.16098, -1.97271, -0.72897, -0.30088, 0.20797, -0.64680, -0.26514, -0.13745 +0.20932, -1.04805, -1.12594, 0.17715, -0.37883, 0.24644, 0.57313, 0.48387, 0.21196, -0.38845, 0.16813, 0.12520, 0.23653, -0.56489, -0.43061, 0.01530, 0.01580, 0.09411, -3.10294, 0.40568, -0.10210, -0.27435, 0.42305, -0.06985, 0.16884 +-0.30473, 0.21065, 0.01190, 0.34130, 0.10153, -0.08743, -0.33133, 0.46656, -0.78213, 0.25482, 0.24082, -0.40954, 0.42671, -0.30212, 0.54068, 0.18825, 0.76677, 0.02483, 1.24235, 1.18777, -0.20882, -0.24504, 0.25614, 0.30210, -0.04524 +-0.50037, 0.23183, -0.81721, -0.44236, -0.29616, 0.18930, 0.19507, 0.47877, 0.83626, -0.18407, 0.12554, -0.47511, -0.10945, -0.19676, -0.28800, 0.14655, 0.18152, 0.00434, -1.84949, -0.28260, -0.23544, 0.91323, 0.45166, -1.02891, -0.17245 +-0.28327, 0.47691, 0.07065, -0.13697, -1.62073, -2.37556, 0.08533, -2.05948, -0.13328, -0.16982, -3.06072, -0.07632, 0.20134, 0.05375, -0.27505, 0.11381, -0.03724, 0.11220, -0.70603, -0.41312, 0.16816, -0.50219, -1.26019, -0.10327, -0.04227 +-0.41049, 0.15427, 0.00032, -0.71942, 0.25287, 0.20222, 0.01543, -0.76094, 1.03927, -0.42290, -0.21527, 0.48299, -0.34531, -1.42728, -0.37652, -0.42724, -0.00475, 0.70103, -2.08565, 0.12043, -0.10700, 0.69257, -0.18982, 0.32744, 0.06271 +-0.24657, -0.51702, -0.27771, -0.29991, -0.07707, -0.29422, -0.08720, -0.02487, -0.22748, -0.13818, -0.40504, -0.45884, 0.11483, -0.33570, -0.22799, 0.20092, -0.05981, -0.34365, -0.16645, -0.02094, -0.11956, 0.02993, -0.16749, -0.66520, -0.25281 +-1.62424, -0.01840, 0.59613, 0.01490, -0.80382, -0.40125, 0.91099, 0.61385, -1.20548, 0.08330, -3.05664, 0.31239, 0.36655, -1.18631, -0.32099, 0.04752, -0.62988, 0.09901, -0.73648, -0.59059, -0.55973, -0.43839, 1.32010, -4.23443, -6.35789 +0.07545, -0.10929, 0.01518, -0.19422, 0.13895, -0.16240, 0.00401, -0.04128, -0.25825, 0.21767, -0.45609, -0.41618, 0.23268, -0.04028, -0.49908, -0.32281, -0.08444, -0.40350, -0.29310, 0.06335, -0.35127, -0.15158, -0.43069, -0.49163, -0.48867 +0.39731, -0.54158, 0.73436, 0.77265, 1.52259, -0.79840, -0.40407, -4.12586, 0.36628, -0.42734, -0.48351, 0.53854, -0.01711, 1.01980, -0.13239, 0.22649, 0.49514, 1.09312, -1.15227, 0.26544, -0.17143, 0.23938, -1.25938, -0.06842, -0.24547 +-1.43038, 0.76075, -0.23818, 1.01672, 0.20675, -1.18741, 0.20272, -0.52338, -0.14747, -0.10802, 0.21426, -0.27463, 0.04986, -0.52692, -1.07034, -0.09160, -2.80514, -0.55144, -1.69579, -0.94322, -0.24468, -3.21814, -0.47197, -0.20468, -0.33145 +0.07029, -0.65586, 0.03391, 0.72134, 0.00240, 0.93639, -1.03944, 0.23261, 0.13435, -0.21882, -0.02579, -1.29813, -0.16605, -0.71788, -0.90025, 0.19813, -1.17859, -0.02102, -2.97173, 0.21008, -0.19900, 0.54103, 0.49366, -2.20122, -0.64250 +1.52000 +-0.30138 +0.29734 +0.15226 +-0.12107 +0.29952 +1.25426 +1.11472 +1.52959 +-0.20106 +-0.97487 +0.37101 +0.49843 +1.32355 +1.43992 +0.50424 +1.15586 +0.70909 +1.07831 +-0.21624 +0.79257 +-0.53454 +-0.26614 +1.45261 +-0.46211 +-0.48293, 0.06047, 0.02364, 0.38088, -0.32111, -0.47931, 0.31789, -0.30592, -0.11011, 0.11669, -0.09016, 2.27401, 0.04796, -0.34591, -0.25153, 0.31471, 0.47863, 0.00886, -0.18144, -0.36906, 1.22824, 0.00766, 0.22091, 0.47157, 0.76725 +-0.15094, -0.03531, 0.01539, 0.27162, -0.27052, -0.58085, 0.28679, -0.03020, -0.52610, -0.21955, -0.34578, 1.06163, 0.24263, -0.23639, -0.68732, 0.17131, -0.17235, 0.49812, 0.37649, 0.28723, 1.14548, 0.17161, 0.32568, 0.11248, 0.14659 +-1.05854 +-1.33805 diff --git a/benchmarks/double_pendulum/controller_double_pendulum_more_robust.onnx b/benchmarks/double_pendulum/controller_double_pendulum_more_robust.onnx new file mode 100644 index 0000000000000000000000000000000000000000..6fc3d4bd9e8b8fe461525d26e11cbdadad7754da GIT binary patch literal 4081 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