@@ -235,50 +235,29 @@ u = m.axis2.controller.PI.ctr_output.u
235235 ssys = multibody (oneaxis)
236236
237237 op = Dict ([
238- oneaxis. axis. motor. Rd4. i => 0
239- # D(oneaxis.axis.flange.phi) => 0
240- # D(D(oneaxis.axis.flange.phi)) => 0
241- # D(D(oneaxis.load.phi)) => 0
242- # D(oneaxis.axis.gear.gear.phi_b) => 0
243- # oneaxis.axis.controller.PI.T => 0.01
244- # oneaxis.axis.controller.PI.gainPI.k => 1
245- # oneaxis.axis.controller.P.k => 10
246- # oneaxis.load.J => 1.3*15
247- # oneaxis.load.phi => 0
238+ ssys. axis. motor. Rd4. i => 0
248239 ])
249- # matrices_S, simplified_sys = Blocks.get_sensitivity(oneaxis, :axis₊controller_e; op)
250-
251-
252- # using ControlSystemsBase
253- # S = ss(matrices_S...) |> minreal
254- # @test isstable(S)
255- # bodeplot(S)
256-
257-
258- # ssys = structural_simplify(oneaxis)
259- # cm = oneaxis
260- # prob = ODEProblem(ssys, [
261- # cm.axis.flange.phi => 0
262- # D(cm.axis.flange.phi) => 0
263- # ], (0.0, 5.0))
264-
265240
266241 prob = ODEProblem (ssys, op, (0.0 , 3 ),)
267242 sol = solve (prob, Tsit5 ());
268243 if doplot ()
269244 plot (sol, layout= length (unknowns (ssys)), size= (1900 , 1200 ))
270- plot! (sol, idxs= oneaxis . pathPlanning. controlBus. axisControlBus1. angle_ref)
245+ plot! (sol, idxs= ssys . pathPlanning. controlBus. axisControlBus1. angle_ref)
271246 display (current ())
272247 end
273248 @test SciMLBase. successful_retcode (sol)
274- # @test sol(10, idxs=oneaxis.axis.controller.PI.err_input.u) ≈ 0 atol=1e-8
249+ # @test sol(10, idxs=ssys.axis.controller.PI.err_input.u) ≈ 0 atol=1e-8
250+
251+ tv = 0 : 0.1 : 3.0
252+ control_error = sol (tv, idxs= ssys. pathPlanning. controlBus. axisControlBus1. angle_ref- ssys. load. phi)
275253
276- tv = 0 : 0.1 : 10.0
277- control_error = sol (tv, idxs= oneaxis. pathPlanning. controlBus. axisControlBus1. angle_ref- oneaxis. load. phi)
254+ # plot(sol, idxs=ssys.pathPlanning.controlBus.axisControlBus1.angle_ref)
255+ # plot!(sol, idxs=ssys.load.phi)
256+ # plot!(sol, idxs=idxs=ssys.pathPlanning.controlBus.axisControlBus1.angle_ref-ssys.load.phi)
278257
279- @test sol (tv[1 ], idxs= oneaxis . pathPlanning. controlBus. axisControlBus1. angle_ref) ≈ deg2rad (0 ) atol= 1e-8
280- @test sol (tv[end ], idxs= oneaxis . pathPlanning. controlBus. axisControlBus1. angle_ref) ≈ deg2rad (120 )
281- @test maximum (abs, control_error) < 1e -3
258+ @test sol (tv[1 ], idxs= ssys . pathPlanning. controlBus. axisControlBus1. angle_ref) ≈ deg2rad (0 ) atol= 1e-8
259+ @test sol (tv[end ], idxs= ssys . pathPlanning. controlBus. axisControlBus1. angle_ref) ≈ deg2rad (120 )
260+ @test maximum (abs, control_error) < 2e -3
282261end
283262
284263
0 commit comments