@@ -4,7 +4,11 @@ const mathml_ns = "http://www.w3.org/1998/Math/MathML"
4
4
5
5
create_var (x) = Num (Variable (Symbol (x))). val
6
6
create_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
8
12
9
13
to_symbol (x:: Symbol ) = x
10
14
to_symbol (x:: AbstractString ) = Symbol (x)
@@ -157,7 +161,7 @@ function translate_connections(doc::Document, systems, class)
157
161
sys2 = systems[c2]
158
162
for w in variables_of .(list_connection_variables (k))
159
163
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)]
161
165
var1 = getproperty (sys1, v1)
162
166
var2 = getproperty (sys2, v2)
163
167
push! (a, var1 ~ var2)
@@ -181,7 +185,7 @@ function pre_substitution(doc::Document, comp, class)
181
185
vars = to_symbol .(list_component_variables (comp))
182
186
183
187
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ₘ) ]
185
189
ivsub = [create_var (ivₘ) => ivₚ]
186
190
187
191
return states ∪ params ∪ ivsub
@@ -287,7 +291,7 @@ function process_component(doc::Document, comp, class)
287
291
end
288
292
289
293
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ₚ) ]
291
295
states = [last (x) for x in values (pre_sub) if ! (last (x) isa Sym)]
292
296
293
297
ODESystem (eqs, ivₚ, states, ps; name= to_symbol (comp))
0 commit comments