diff --git a/Manifest.toml b/Manifest.toml index 6b0f60375fd8dbc30529b140f6eba01b4eca6ce6..f7d6a38400ad3c42e0409fdb5bcc479d11a5d352 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -17,9 +17,9 @@ uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" [[Bzip2_jll]] deps = ["Libdl", "Pkg"] -git-tree-sha1 = "92463331a641b19fc3baa427e0b76cdbd54dc05d" +git-tree-sha1 = "3663bfffede2ef41358b6fc2e1d8a6d50b3c3904" uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" -version = "1.0.6+1" +version = "1.0.6+2" [[CSSUtil]] deps = ["Colors", "Compat", "JSON", "Measures", "Pkg", "WebIO"] @@ -35,9 +35,9 @@ version = "1.0.2" [[Cairo_jll]] deps = ["Bzip2_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "LZO_jll", "Libdl", "Pixman_jll", "Pkg", "X11_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] -git-tree-sha1 = "a414ebdc4bd60b0fda62797f47c7409670c4ad1c" +git-tree-sha1 = "e7bd31d1588b711113d48c7013a7d8f0b5203940" uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" -version = "1.16.0+2" +version = "1.16.0+3" [[ColorTypes]] deps = ["FixedPointNumbers", "Random"] @@ -70,9 +70,9 @@ version = "1.1.0" [[DataStructures]] deps = ["InteractiveUtils", "OrderedCollections"] -git-tree-sha1 = "5a431d46abf2ef2a4d5d00bd0ae61f651cf854c8" +git-tree-sha1 = "73eb18320fe3ba58790c8b8f6f89420f0a622773" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.17.10" +version = "0.17.11" [[Dates]] deps = ["Printf"] @@ -94,9 +94,9 @@ uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" [[Expat_jll]] deps = ["Libdl", "Pkg"] -git-tree-sha1 = "e1b4190be75ba8d03ce2bec3a6cfc7a939c713ea" +git-tree-sha1 = "9cdd4b1523086c9d93604599e3a389e8941e52b0" uuid = "2e619515-83b5-522b-bb60-26c02a35a201" -version = "2.2.7+0" +version = "2.2.7+1" [[FFMPEG]] deps = ["FFMPEG_jll"] @@ -120,15 +120,15 @@ version = "0.7.1" [[Fontconfig_jll]] deps = ["Bzip2_jll", "Expat_jll", "FreeType2_jll", "Libdl", "Libuuid_jll", "Pkg", "Zlib_jll"] -git-tree-sha1 = "f610d280bfd1a3a43d5c815e63d395ff08692fe2" +git-tree-sha1 = "141fe5f6d4013304d2ca5af0ac20ef4855bcc4e5" uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" -version = "2.13.1+10" +version = "2.13.1+11" [[FreeType2_jll]] deps = ["Bzip2_jll", "Libdl", "Pkg", "Zlib_jll"] -git-tree-sha1 = "8e290780d75bc0f676548c3bb84c153f83d14bdc" +git-tree-sha1 = "7d900f32a3788d4eacac2bfa3bf5c770179c8afd" uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" -version = "2.10.1+1" +version = "2.10.1+2" [[FriBidi_jll]] deps = ["Libdl", "Pkg"] @@ -156,27 +156,27 @@ version = "3.24.11+1" [[GeometryTypes]] deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "StaticArrays"] -git-tree-sha1 = "9d7520999ca80a51f1bf41be2268a9ac0e4f0619" +git-tree-sha1 = "96fd99cf83b1952a7d8cb54f4c585a648275805a" uuid = "4d00f742-c7ba-57c2-abde-4428a4b178cb" -version = "0.8.1" +version = "0.8.2" [[Gettext_jll]] deps = ["Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] -git-tree-sha1 = "0b6b238d315698441a9bf24ea9b20ac19cc7e513" +git-tree-sha1 = "e43d686df1f45cab7a2570ff63642a3ea618ca5f" uuid = "78b55507-aeef-58d4-861c-77aaff3498b1" -version = "0.20.1+1" +version = "0.20.1+2" [[Glib_jll]] -deps = ["Gettext_jll", "Libdl", "Libffi_jll", "PCRE_jll", "Pkg", "Zlib_jll"] -git-tree-sha1 = "9a7e1ad28f1313da50e5ab8568725bed5f131ad1" +deps = ["Gettext_jll", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE_jll", "Pkg", "Zlib_jll"] +git-tree-sha1 = "09ea3797c586eedbb383eb8f1c950a12923f1541" uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" -version = "2.59.0+1" +version = "2.59.0+2" [[Graphene_jll]] deps = ["Glib_jll", "Libdl", "Pkg"] -git-tree-sha1 = "a46e501da1b4a006fb26fd03eb6d927f7d112604" +git-tree-sha1 = "9d0b534de52582b7f1f044d622b858915dc6b126" uuid = "75302f13-0b7e-5bab-a6d1-23fa92e4c2ea" -version = "1.10.0+1" +version = "1.10.0+2" [[Graphics]] deps = ["Colors", "LinearAlgebra", "NaNMath"] @@ -274,14 +274,14 @@ version = "3.100.0+0" [[LZO_jll]] deps = ["Libdl", "Pkg"] -git-tree-sha1 = "26ff20dc58051d7eda388662b90049d192f8d0a1" +git-tree-sha1 = "71119990371c93f027bee80547ee908ddfe7c5ca" uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" -version = "2.10.0+0" +version = "2.10.0+1" [[LabGUI]] deps = ["Interact", "Mux", "WebIO"] -git-tree-sha1 = "a3448740139bb8d52ffe1b95e98898fbb4064b93" -repo-rev = "julia1" +git-tree-sha1 = "6cb72e85bc2cb6e90d2daa6741579c5cd8576bf3" +repo-rev = "tanklabsim" repo-url = "https://gitlab.control.lth.se/processes/LabGUI.jl.git" uuid = "31661155-7747-5a32-9846-082300d6a5a6" version = "0.1.0" @@ -312,15 +312,15 @@ version = "1.5.4+0" [[Libffi_jll]] deps = ["Libdl", "Pkg"] -git-tree-sha1 = "f2c12e7da9c4f7fab577619626b772f607e67b04" +git-tree-sha1 = "68b165c609961207baa3174e03d6d56e7a37124c" uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" -version = "3.2.1+0" +version = "3.2.1+1" [[Libgcrypt_jll]] deps = ["Libdl", "Libgpg_error_jll", "Pkg"] -git-tree-sha1 = "9592d031aac2566fb5cf9eeb28e2d7b05db9b9ef" +git-tree-sha1 = "7efb7f5e75a0f7323cce366d3e44a2d225c5617a" uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" -version = "1.8.5+0" +version = "1.8.5+1" [[Libglvnd_jll]] deps = ["Libdl", "Pkg", "Xorg_libX11_jll", "Xorg_libXext_jll"] @@ -330,15 +330,21 @@ version = "1.3.0+1" [[Libgpg_error_jll]] deps = ["Libdl", "Pkg"] -git-tree-sha1 = "3332d872d131a6ee88f10f20d7d131ece886c424" +git-tree-sha1 = "334284a62d6b8592099d28b78c76aefc266c03a2" uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" -version = "1.36.0+0" +version = "1.36.0+1" [[Libiconv_jll]] deps = ["Libdl", "Pkg"] -git-tree-sha1 = "802f5b23c846cb4ed568cae0bfb0ce0d2ba1926d" +git-tree-sha1 = "e5256a3b0ebc710dbd6da0c0b212164a3681037f" uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" -version = "1.16.0+1" +version = "1.16.0+2" + +[[Libmount_jll]] +deps = ["Libdl", "Pkg"] +git-tree-sha1 = "621a6d7d527fd8e4812ca1154567bfdb81a3c517" +uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" +version = "2.34.0+1" [[Libtiff_jll]] deps = ["JpegTurbo_jll", "Libdl", "Pkg", "Zlib_jll", "Zstd_jll"] @@ -348,9 +354,9 @@ version = "4.0.10+0" [[Libuuid_jll]] deps = ["Libdl", "Pkg"] -git-tree-sha1 = "5b0aaf3f931102e18b8b4b1590fe69708d3eb7d6" +git-tree-sha1 = "7ae7eee3a9fe811b656347700c17fc9620ef4ecf" uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" -version = "2.34.0+3" +version = "2.34.0+4" [[LinearAlgebra]] deps = ["Libdl"] @@ -426,9 +432,9 @@ version = "1.3.3+0" [[OpenSSL_jll]] deps = ["Libdl", "Pkg"] -git-tree-sha1 = "33661eb9d5484220b4367d067f499b30bafc9c12" +git-tree-sha1 = "d2a6f25262d568b5a7e454cf7ff5066a79d16c7d" uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" -version = "1.1.1+1" +version = "1.1.1+2" [[Opus_jll]] deps = ["Libdl", "Pkg"] @@ -444,9 +450,9 @@ version = "1.1.0" [[PCRE_jll]] deps = ["Libdl", "Pkg"] -git-tree-sha1 = "859aa38f2823d45940312575bca3c856f4a1fbab" +git-tree-sha1 = "2c860a32ae9c421b52b654448bd31a31f437449a" uuid = "2f80f16e-611a-54ab-bc61-aa92de5b98fc" -version = "8.42.0+1" +version = "8.42.0+2" [[Pango_jll]] deps = ["Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "FriBidi_jll", "Glib_jll", "HarfBuzz_jll", "Libdl", "Pkg"] @@ -462,9 +468,9 @@ version = "0.12.0" [[Parsers]] deps = ["Dates", "Test"] -git-tree-sha1 = "0c16b3179190d3046c073440d94172cfc3bb0553" +git-tree-sha1 = "75d07cb840c300084634b4991761886d0d762724" uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" -version = "0.3.12" +version = "1.0.1" [[Pidfile]] deps = ["FileWatching", "Test"] @@ -474,9 +480,9 @@ version = "1.1.0" [[Pixman_jll]] deps = ["Libdl", "Pkg"] -git-tree-sha1 = "cdddc5aab6ae8e3034dbf3c264e636fbf19fdee0" +git-tree-sha1 = "ae66367153a89ecb2a5c7acc2df4ba082b729b6a" uuid = "30392449-352a-5448-841d-b1acce4e97dc" -version = "0.38.4+1" +version = "0.38.4+2" [[Pkg]] deps = ["Dates", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Test", "UUIDs"] @@ -484,15 +490,15 @@ uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" [[PlotThemes]] deps = ["PlotUtils", "Requires", "Statistics"] -git-tree-sha1 = "df772cc7c78862da96af1ee85cd0111c6640e44e" +git-tree-sha1 = "87a4ea7f8c350d87d3a8ca9052663b633c0b2722" uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" -version = "1.0.1" +version = "1.0.3" [[PlotUtils]] deps = ["Colors", "Dates", "Printf", "Random", "Reexport"] -git-tree-sha1 = "132e468bf7d67ee6c997c160b982a7ab2e7c3e37" +git-tree-sha1 = "51e742162c97d35f714f9611619db6975e19384b" uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" -version = "0.6.4" +version = "0.6.5" [[Plots]] deps = ["Base64", "Contour", "Dates", "FFMPEG", "FixedPointNumbers", "GR", "GeometryTypes", "JSON", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "Printf", "REPL", "Random", "RecipesBase", "Reexport", "Requires", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs"] @@ -587,9 +593,9 @@ uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" [[Wayland_jll]] deps = ["Expat_jll", "Libdl", "Libffi_jll", "Pkg", "XML2_jll"] -git-tree-sha1 = "0e7ae7fab73d43299b6b0332716dc2d0149f6b03" +git-tree-sha1 = "77e7b942a796bc9530f089099e3caeef6cc123f9" uuid = "a2964d1f-97da-50d4-b82a-358c7fce9d89" -version = "1.17.0+0" +version = "1.17.0+1" [[Wayland_protocols_jll]] deps = ["Libdl", "Pkg", "Wayland_jll"] @@ -623,15 +629,15 @@ version = "1.6.8+5" [[XML2_jll]] deps = ["Libdl", "Libiconv_jll", "Pkg", "Zlib_jll"] -git-tree-sha1 = "ed5603a695aefe3e9e404fc7b052e02cc72cfab6" +git-tree-sha1 = "39a309feb51413d39bdf544cf2fd09357bae37d2" uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" -version = "2.9.9+1" +version = "2.9.9+2" [[XSLT_jll]] deps = ["Libdl", "Libgcrypt_jll", "Pkg", "XML2_jll"] -git-tree-sha1 = "77d0086a876532cb4fae005d4c9ecc8236dcdceb" +git-tree-sha1 = "d0baa21427b6621126bd9e9941b4f51bef5f9fca" uuid = "aed1982a-8fda-507f-9586-7b0439959a61" -version = "1.1.33+0" +version = "1.1.33+1" [[Xorg_compositeproto_jll]] deps = ["Libdl", "Pkg"] @@ -653,9 +659,9 @@ version = "5.0.0+0" [[Xorg_inputproto_jll]] deps = ["Libdl", "Pkg"] -git-tree-sha1 = "a941739b553f589cd264dc16fdeaf5300af30f51" +git-tree-sha1 = "6f05096d08266571e6214fd2525f3e78b2c63060" uuid = "84d6cd60-beca-5f49-93c5-789031781a2d" -version = "2.3.2+0" +version = "2.3.2+1" [[Xorg_libX11_jll]] deps = ["Libdl", "Pkg", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] @@ -665,9 +671,9 @@ version = "1.6.9+1" [[Xorg_libXau_jll]] deps = ["Libdl", "Pkg", "Xorg_xproto_jll"] -git-tree-sha1 = "e47d249f952653b7f1b0d3d7d7ed40d081d7096b" +git-tree-sha1 = "711f2bbdbb0e90b90a71c5ccf835137e2def539a" uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" -version = "1.0.9+1" +version = "1.0.9+2" [[Xorg_libXcomposite_jll]] deps = ["Libdl", "Pkg", "Xorg_compositeproto_jll", "Xorg_libXfixes_jll", "Xorg_util_macros_jll"] @@ -689,9 +695,9 @@ version = "1.1.5+1" [[Xorg_libXdmcp_jll]] deps = ["Libdl", "Pkg", "Xorg_util_macros_jll", "Xorg_xproto_jll"] -git-tree-sha1 = "f477af835cd12647d253b9c7a86e768b14d04fff" +git-tree-sha1 = "1ffd7bc9c9d8bba6652516f3402ee1ef5f4cac70" uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" -version = "1.1.3+1" +version = "1.1.3+2" [[Xorg_libXext_jll]] deps = ["Libdl", "Pkg", "Xorg_libX11_jll", "Xorg_util_macros_jll", "Xorg_xextproto_jll"] @@ -737,9 +743,9 @@ version = "1.2.3+1" [[Xorg_libpthread_stubs_jll]] deps = ["Libdl", "Pkg"] -git-tree-sha1 = "5c2806e6e08b093ca2071e53602651f4a5e079da" +git-tree-sha1 = "ec1e2973e4e624069be95f806dbd7e225fee26c6" uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74" -version = "0.1.0+0" +version = "0.1.0+1" [[Xorg_libxcb_jll]] deps = ["Libdl", "Pkg", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll", "Xorg_util_macros_jll", "Xorg_xcb_proto_jll"] @@ -767,27 +773,27 @@ version = "1.14.2+0" [[Xorg_renderproto_jll]] deps = ["Libdl", "Pkg"] -git-tree-sha1 = "36dbfa838fc4faf019a6957f2eb8c1b5f31bb500" +git-tree-sha1 = "ce13e67a75e2e6338500f22af11003823bf189b5" uuid = "21e99dc2-7dba-5609-a726-b181bd3bbb6c" -version = "0.11.1+0" +version = "0.11.1+1" [[Xorg_util_macros_jll]] deps = ["Libdl", "Pkg"] -git-tree-sha1 = "a99f6275c9b2a9862d2cc4e714aad806c2daecc1" +git-tree-sha1 = "50c9763d05bdc0795a19877bae9274ada3e499d1" uuid = "7c09cfe3-afe2-5798-bcc9-d6b7fecfdca5" -version = "1.19.2+0" +version = "1.19.2+1" [[Xorg_xcb_proto_jll]] deps = ["Libdl", "Pkg"] -git-tree-sha1 = "1506cde098df4b6dedcc082bf9386a5808ee6dea" +git-tree-sha1 = "c0817a62c2a53dd97469f1934e32461cedaf400d" uuid = "c2e9c405-c068-5e7b-9b35-084fd074cae4" -version = "1.13.0+0" +version = "1.13.0+1" [[Xorg_xextproto_jll]] deps = ["Libdl", "Pkg"] -git-tree-sha1 = "0a1da65671cfc3b20926081b668c7dd098dd9c76" +git-tree-sha1 = "49ac1f9b3f5b775141690a64b40f401527996a76" uuid = "d13bc2ba-d276-5c6f-8a1c-29ed04aab5d0" -version = "7.3.0+0" +version = "7.3.0+1" [[Xorg_xineramaproto_jll]] deps = ["Libdl", "Pkg"] @@ -809,21 +815,21 @@ version = "2.27.0+1" [[Xorg_xproto_jll]] deps = ["Libdl", "Pkg"] -git-tree-sha1 = "fdb0d8bae06762e24dade427e7914d199cdd721e" +git-tree-sha1 = "1528b6cef487b060c47bb5894824f30143489023" uuid = "46797783-dccc-5433-be59-056c4bde8513" -version = "7.0.31+0" +version = "7.0.31+1" [[Xorg_xtrans_jll]] deps = ["Libdl", "Pkg"] -git-tree-sha1 = "b18f01c3b50be7bde08be131934112db3137f28b" +git-tree-sha1 = "b6e7d70f5fc9e3fde505539194c8caaab3c40ebf" uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" -version = "1.4.0+0" +version = "1.4.0+1" [[Zlib_jll]] deps = ["Libdl", "Pkg"] -git-tree-sha1 = "fd36a6739e256527287c5444960d0266712cd49e" +git-tree-sha1 = "2f6c3e15e20e036ee0a0965879b31442b7ec50fa" uuid = "83775a58-1f1d-513f-b197-d71354ab007a" -version = "1.2.11+8" +version = "1.2.11+9" [[Zstd_jll]] deps = ["Libdl", "Pkg"] @@ -869,9 +875,9 @@ version = "4.3.0+1" [[libass_jll]] deps = ["Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "Libdl", "Pkg", "Zlib_jll"] -git-tree-sha1 = "3fd3ea3525f2e3d337c54a52b2ca78a5a272bbf5" +git-tree-sha1 = "d0259e0624e08ae9ebae16c80257caabc25f2048" uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" -version = "0.14.0+0" +version = "0.14.0+1" [[libfdk_aac_jll]] deps = ["Libdl", "Pkg"] @@ -881,9 +887,9 @@ version = "0.1.6+1" [[libpng_jll]] deps = ["Libdl", "Pkg", "Zlib_jll"] -git-tree-sha1 = "30c6baf453f2603faedb846289f955d307ddf3b2" +git-tree-sha1 = "594cb058723c13941cf463fd09e5859499594f50" uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" -version = "1.6.37+2" +version = "1.6.37+3" [[libvorbis_jll]] deps = ["Libdl", "Ogg_jll", "Pkg"] diff --git a/src/doubletank.jl b/src/doubletank.jl index 64225df696abbd4f1c981c06092b20ca054bfeae..651a63bb04caf76976414acb07340d08839d9ac2 100644 --- a/src/doubletank.jl +++ b/src/doubletank.jl @@ -81,14 +81,14 @@ function qu(p, u) u*p.α end -function control(p::DoubleTankSimulator, u::Number, load::Number, flow::Bool) +function control(p::DoubleTankSimulator, u::Number, uflow::Bool) @unpack a1, a2, g, x, A, h, scale = p x *= scale #The simulator should operate on physical values but u should be in [0,1] - u = clamp(u, inputrange(p)[1]...) + load + u = clamp(u, inputrange(p)[1]...) - qut = flow ? a1*sqrt(2*g*x[1]) : 0 #m^3/s + qut = uflow ? a1*sqrt(2*g*x[1]) : 0 #m^3/s dA1 = qu(p,u) - qut #m^3/s if -dA1*h>x[1]*A diff --git a/src/tankdemo.jl b/src/tankdemo.jl index 9ad96608d03611ce84c0a386178f6b75098ad835..30add6a2227b96268feb95b9e20ffb989fb335d9 100644 --- a/src/tankdemo.jl +++ b/src/tankdemo.jl @@ -24,14 +24,14 @@ function runsimulation(;simulated=true, webservice=true, port=8000, σ = 0.001, n = 2 end onv = Int.([gui[s]=="On" for s in [:pOn, :iOn, :dOn]]) - load = gui[:load]=="Upper" ? 0.1 : 0 - flow = gui[:flow]=="None" + load = gui[:load]=="On" ? 0.2 : 0 + uflow = gui[:uflow]=="On" rv = pidcontroller(r, y, onv) if gui[:mode]=="Automatic" gui[:u] = clamp(round(rv,digits=2), 0, 1) #u's constructor has only a dummy graphic so this is fine - control(P, rv, load, flow) + control(P, rv-load, uflow) elseif gui[:mode]=="Manual" - control(P, gui[:u], load, flow) + control(P, gui[:u]-load, uflow) #bumpless transfer: if gui[:iOn]=="On" pidcontroller.I = gui[:u]-(pidcontroller.Tot-pidcontroller.I) @@ -45,12 +45,10 @@ function runsimulation(;simulated=true, webservice=true, port=8000, σ = 0.001, push!(gui, pidcontroller.Tot, 6) push!(gui, t, 7) - end_time = time() - sleep_time = P.h + start_time - end_time + sleep_time = start_time + t - time() if sleep_time ≥ 0.001 sleep(sleep_time) end - start_time = end_time end end diff --git a/src/tankgraphic.jl b/src/tankgraphic.jl index d139abbf56c76afe158f01faafa8912231dcc4d3..b5873a308f7ef2c1790b5e6eaeae85612600ee82 100644 --- a/src/tankgraphic.jl +++ b/src/tankgraphic.jl @@ -34,7 +34,7 @@ function stream(width, height, x, y) end -function water_container(width, height, fill, x=0, y=0) +function water_container(width, height, fill, x=0, y=0, flow=true) #Produces an SVG water container of size height, width, filled from the #bottom to the height fill (as a proportion of height fill_level = fill*height @@ -48,13 +48,13 @@ function water_container(width, height, fill, x=0, y=0) svg_rect(width, fill_level, 0, height-fill_level, water_style), svg_rect(wall_thickness, height, 0, 0, wall_style), svg_rect(wall_thickness, height, width-wall_thickness, 0, wall_style), - svg_rect((width-mouth_width)/2, wall_thickness, 0, height-wall_thickness, wall_style), + svg_rect((width-mouth_width)/2+!flow*mouth_width, wall_thickness, 0, height-wall_thickness, wall_style), svg_rect((width-mouth_width)/2, wall_thickness, (width+mouth_width)/2, height-wall_thickness, wall_style), attributes = container_attr) end -function tank_construct(upper, lower, pump_speed = 1, tnum = 0, r = -1, load = 0, blocked = false) +function tank_construct(upper, lower, pump_speed = 1, tnum = 0, r = -1, load = 0, uflow = true) height = 250 width = 200 @@ -85,21 +85,20 @@ function tank_construct(upper, lower, pump_speed = 1, tnum = 0, r = -1, load = 0 (tank_width/2+pipe_thickness*2, 4*pt)], s_black) - w1 = mouth_width*sqrt(max(0,pump_speed)) - w2 = blocked ? 0 : mouth_width*sqrt(max(0, upper)) + w1 = mouth_width*sqrt(max(0,pump_speed-load)) + w2 = uflow ? mouth_width*sqrt(max(0, upper)) : 0 w3 = mouth_width*sqrt(max(0, lower)) w4 = mouth_width*sqrt(max(0, load)) - container1 = water_container(width, height, upper, upper_x, upper_y) + container1 = water_container(width, height, upper, upper_x, upper_y, uflow) container2 = water_container(width, height, lower, lower_x, lower_y) - #The order of svg objects is important, latter elements are laid on top of existing ones node(svgsvg_symb, stream(w1, height+50, upper_x+(width-w1)/2, 50)..., stream(w2, height+50, upper_x+(width-w2)/2, height+100)..., stream(w3, 100, upper_x+(width-w3)/2, 2*height+150)..., - stream(w4, height, upper_x, 100)..., + stream(w4, 2*height+250, upper_x-20-w4, 0)..., container1, container2, redarrow, svg_rect(tank_width, tank_height, tank_x, tank_y), pipe, diff --git a/src/tanklabgui.jl b/src/tanklabgui.jl index 2169bc0b1f4a7b8e4778cea9df23d740efdff761..aac98b3034b7abf47b202715dd84321b74469bd1 100644 --- a/src/tanklabgui.jl +++ b/src/tanklabgui.jl @@ -25,20 +25,20 @@ function makegui(P, run_process, plottingframerate = 10, guiframerate = 10) #This contains all settings w0, dummygraphic2 = @construct for - u in slider(0:0.01:1, label=" um"), + u in slider(0:0.01:1, value=0.1, label="u"), #run in button("Run"), #This should only exist in the simulated version #cali in button("Calibrate"), - K in slider(0:0.1:30, label="K"), + K in slider(0:0.1:30, value=5, label="K"), Ti in slider(0:0.1:30, label="Ti"), Td in slider(0:0.1:30, label="Td"), - mode in togglebuttons(["Manual", "Automatic"], label=""), - tankno in togglebuttons(["Upper", "Lower"], label=""), + mode in togglebuttons(["Manual", "Automatic"], label="mode"), + tankno in togglebuttons(["Upper", "Lower"], label="tank"), pOn in togglebuttons(["On", "Off"], label="P"), - iOn in togglebuttons(["On", "Off"], label="I"), - dOn in togglebuttons(["On", "Off"], label="D"), - load in togglebuttons(["None", "Upper"], label="load disturbance"), - flow in togglebuttons(["None", "Upper"], label="stop outflow "), - freeze in togglebuttons(["On", "Freeze"], label="plots "), + iOn in togglebuttons(["On", "Off"], index=2, label="I"), + dOn in togglebuttons(["On", "Off"], index=2, label="D"), + load in togglebuttons(["On", "Off"], index=2, label="load disturbance"), + uflow in togglebuttons(["On", "Off"], label="upper outflow"), + plotset in togglebuttons(["Follow", "Freeze"], label="plot setting"), #expcsv in button("Export Data"), rbox in textbox("0.5", label="r") @@ -65,10 +65,12 @@ function makegui(P, run_process, plottingframerate = 10, guiframerate = 10) if observe(tankno)[] == "Upper" tankg = tank_construct(measure(P)..., observe(u)[]*ptfr, 1, observe(r).val, - observe(load)[] == "Upper" ? 0.1*ptfr : 0, observe(flow)[] == "Upper") + observe(load)[] == "On" ? 0.2*ptfr : 0, + observe(uflow)[] == "On") elseif observe(tankno)[] == "Lower" tankg = tank_construct(measure(P)..., observe(u)[]*ptfr, 2, observe(r).val, - observe(load)[] == "Upper" ? 0.1*ptfr : 0, observe(flow)[] == "Upper") + observe(load)[] == "On" ? 0.2*ptfr : 0, + observe(uflow)[] == "On") end Node(:div, tankg, id="tanks", attributes=tankattr) end @@ -101,8 +103,8 @@ function makegui(P, run_process, plottingframerate = 10, guiframerate = 10) end end - on(observe(freeze)) do val - if val=="On" + on(observe(plotset)) do val + if val=="Follow" plotfreeze = -1 else plotfreeze = length(gui.data[1]) @@ -144,8 +146,8 @@ function makegui(P, run_process, plottingframerate = 10, guiframerate = 10) settings_element = setindex_(settings_element, i_element, 6, 1) settings_element = setindex_(settings_element, d_element, 7, 1) settings_element = setindex_(settings_element, dom"div"(gui.widgets[:load]), 8, 1) - settings_element = setindex_(settings_element, dom"div"(gui.widgets[:flow]), 9, 1) - settings_element = setindex_(settings_element, dom"div"(gui.widgets[:freeze]), 10, 1) + settings_element = setindex_(settings_element, dom"div"(gui.widgets[:uflow]), 9, 1) + settings_element = setindex_(settings_element, dom"div"(gui.widgets[:plotset]), 10, 1) layout = setindex_(layout, graphic2, 1, 1) layout = setindex_(layout, Node(:div, graphic1, dummygraphic1, dummygraphic2,