@@ -159,44 +159,51 @@ lsys, ssys = linearize(sat, [u], [y]; op = Dict(u => 2))
159
159
@test lsys. D[] == 0
160
160
161
161
# # Test that dummy_derivatives can be set to zero
162
- using LinearAlgebra
163
- using ModelingToolkit
164
- using ModelingToolkitStandardLibrary
165
- using ModelingToolkitStandardLibrary. Blocks
166
- using ModelingToolkitStandardLibrary. Mechanical. MultiBody2D
167
- using ModelingToolkitStandardLibrary. Mechanical. Translational
168
- using ControlSystemsMTK
169
- using ControlSystemsMTK. ControlSystemsBase
170
- connect = ModelingToolkit. connect
171
-
172
- @parameters t
173
- D = Differential (t)
162
+ if VERSION >= v " 1.8"
163
+ # The call to Link(; m = 0.2, l = 10, I = 1, g = -9.807) hangs forever on Julia v1.6
164
+ using LinearAlgebra
165
+ using ModelingToolkit
166
+ using ModelingToolkitStandardLibrary
167
+ using ModelingToolkitStandardLibrary. Blocks
168
+ using ModelingToolkitStandardLibrary. Mechanical. MultiBody2D
169
+ using ModelingToolkitStandardLibrary. Mechanical. Translational
170
+
171
+ using ControlSystemsMTK
172
+ using ControlSystemsMTK. ControlSystemsBase: sminreal, minreal, poles
173
+ connect = ModelingToolkit. connect
174
+
175
+ @parameters t
176
+ D = Differential (t)
174
177
175
- @named link1 = Link (; m = 0.2 , l = 10 , I = 1 , g = - 9.807 )
176
- @named cart = Translational. Mass (; m = 1 , s_0 = 0 )
177
- @named fixed = Fixed ()
178
- @named force = Force ()
179
-
180
- eqs = [connect (link1. TX1, cart. flange)
181
- connect (cart. flange, force. flange)
182
- connect (link1. TY1, fixed. flange)]
183
-
184
- @named model = ODESystem (eqs, t, [], []; systems = [link1, cart, force, fixed])
185
- def = ModelingToolkit. defaults (model)
186
- def[link1. y1] = 0
187
- def[link1. x1] = 10
188
- def[link1. A] = - pi / 2
189
- def[link1. dA] = 0
190
- def[cart. s] = 0
191
- def[force. flange. v] = 0
192
- lin_outputs = [cart. s, cart. v, link1. A, link1. dA]
193
- lin_inputs = [force. f. u]
194
-
195
- G = named_ss (model, lin_inputs, lin_outputs, allow_symbolic = true , op = def,
196
- allow_input_derivatives = true , zero_dummy_der = true )
197
- G = sminreal (G)
198
- G = minreal (G)
199
- ps = poles (G)
200
-
201
- @test minimum (abs, ps) < 1e-6
202
- @test minimum (abs, complex (0 , 1.3777260367206716 ) .- ps) < 1e-10
178
+ @named link1 = Link (; m = 0.2 , l = 10 , I = 1 , g = - 9.807 )
179
+ @named cart = Translational. Mass (; m = 1 , s_0 = 0 )
180
+ @named fixed = Fixed ()
181
+ @named force = Force ()
182
+
183
+ eqs = [connect (link1. TX1, cart. flange)
184
+ connect (cart. flange, force. flange)
185
+ connect (link1. TY1, fixed. flange)]
186
+
187
+ @show @named model = ODESystem (eqs, t, [], []; systems = [link1, cart, force, fixed])
188
+ def = ModelingToolkit. defaults (model)
189
+ def[link1. y1] = 0
190
+ def[link1. x1] = 10
191
+ def[link1. A] = - pi / 2
192
+ def[link1. dA] = 0
193
+ def[cart. s] = 0
194
+ def[force. flange. v] = 0
195
+ lin_outputs = [cart. s, cart. v, link1. A, link1. dA]
196
+ lin_inputs = [force. f. u]
197
+
198
+ @info " named_ss"
199
+ G = named_ss (model, lin_inputs, lin_outputs, allow_symbolic = true , op = def,
200
+ allow_input_derivatives = true , zero_dummy_der = true )
201
+ G = sminreal (G)
202
+ @info " minreal"
203
+ G = minreal (G)
204
+ @info " poles"
205
+ ps = poles (G)
206
+
207
+ @test minimum (abs, ps) < 1e-6
208
+ @test minimum (abs, complex (0 , 1.3777260367206716 ) .- ps) < 1e-10
209
+ end
0 commit comments