@@ -4,7 +4,11 @@ const mathml_ns = "http://www.w3.org/1998/Math/MathML"
44
55create_var (x) = Num (Variable (Symbol (x))). val
66create_var (x, iv) = Num (Variable {Symbolics.FnType{Tuple{Any},Real}} (Symbol (x)))(iv). val
7- create_param (x) = Num (Sym {ModelingToolkit.Parameter{Real}} (Symbol (x))). val
7+ function create_param (x)
8+ p = Sym {Real} (Symbol (x))
9+ ModelingToolkit. toparam (p)
10+ p
11+ end
812
913to_symbol (x:: Symbol ) = x
1014to_symbol (x:: AbstractString ) = Symbol (x)
@@ -157,7 +161,7 @@ function translate_connections(doc::Document, systems, class)
157161 sys2 = systems[c2]
158162 for w in variables_of .(list_connection_variables (k))
159163 v1, v2 = Symbol .(w)
160- if class[make_var (c1,v1)] && class[make_var (c2,v2)] && Symbol (sys1 . iv) != v1
164+ if class[make_var (c1,v1)] && class[make_var (c2,v2)]
161165 var1 = getproperty (sys1, v1)
162166 var2 = getproperty (sys2, v2)
163167 push! (a, var1 ~ var2)
@@ -181,7 +185,7 @@ function pre_substitution(doc::Document, comp, class)
181185 vars = to_symbol .(list_component_variables (comp))
182186
183187 states = [create_var (x) => create_var (x, ivₚ) for x in vars if class[make_var (comp,x)]]
184- params = [create_var (x) => create_param (x) for x in vars if ! class[make_var (comp,x)] && x != ivₘ]
188+ params = [create_var (x) => create_param (x) for x in vars if ! class[make_var (comp,x)] && ! isequal (x, ivₘ) ]
185189 ivsub = [create_var (ivₘ) => ivₚ]
186190
187191 return states ∪ params ∪ ivsub
@@ -287,7 +291,7 @@ function process_component(doc::Document, comp, class)
287291 end
288292
289293 ivₚ = get_ivₚ (doc)
290- ps = [last (x) for x in values (pre_sub) if last (x) isa Sym && last (x) != ivₚ]
294+ ps = [last (x) for x in values (pre_sub) if last (x) isa Sym && ! isequal ( last (x), ivₚ) ]
291295 states = [last (x) for x in values (pre_sub) if ! (last (x) isa Sym)]
292296
293297 ODESystem (eqs, ivₚ, states, ps; name= to_symbol (comp))
0 commit comments