[MBDyn-users] Help finding error in model

Richard Crozier r.crozier at ed.ac.uk
Thu May 3 16:04:08 CEST 2018


Hi Andrea,

Thanks very  much for this help, but in this case, I haven't even put 
any external wave forces on the system, it's just gravity. I think these 
forces are just the weight of the flap and base, so I'm not sure how to 
get rid of them.

In any case, if I remove gravity, I get the same result, if I leave 
gravity in, but make it really small so these forces are small (about 
-58 and -3.7), I still get the same error.

If I take out the gear components, leaving just the flap and base, the 
forces are there but the system works, see attached mbd file for example.

Thanks,

Richard

On 03/05/18 14:29, Andrea Zanoni wrote:
> Hi Richard,
> 
> the error you are getting is not related to a redundant constraint 
> (actually, underconstrained systems are fine in MBDyn and generally in 
> every multibody software, overconstrained systems are to be treated a 
> little bit more carefully), but to a very large imbalance in the 
> vertical force equilibrium of some of the nodes.
> 
> If you look at the residual output, you'll notice it immediately:
> 
> Derivatives t=0 coef=1e-06
> Residual(0:0) t=0 dt=0.1
> [...]
> Eq         9:          -5.7839e+07 StructNode(1): force equilibrium Fz
> [...]
> Eq        21:         -3.73608e+06 StructNode(2): force equilibrium Fz
> [...]
> Eq        33:             -10714.4 StructNode(3): force equilibrium Fz
> [...]
> Eq        57:             -11771.2 StructNode(5): force equilibrium Fz
> [...]
> 
> The imbalance is such as to render the Jacobian matrix of the system 
> singular to working precision: hence the error.
> I'll suggest you to "ease" your system into the configuration you want 
> to model, for example scaling the wave forces by a factor that grows 
> from 0 to 1 gradually at the beginning of the simulation.
> 
> Cheers
> Andrea
> 
> 
> On 05/02/2018 10:53 PM, Richard Crozier wrote:
>> Hello,
>>
>> I'm developing a model of a wave energy converter which is an 
>> oscillating flap, attached to a magnetic gear. I have developed an 
>> mbdyn file for this (attached), but when I run it I get the error below:
>>
>> NaiveSolver: ENOPIV(89)
>> Initial derivatives failed because no pivot element could be found for 
>> column 90 (PlaneHingeJoint(16): reaction couple mx); aborting...
>> An error occurred during the execution of MBDyn; aborting...
>>
>> A diagram of the system is also attached as a png, the yellow part is 
>> supposed to be moved by waves, while the base below it is stationary. 
>> Energy is extracted by the relative motion of the two bodies. The 
>> lines and crosses and things are representations of some of the 
>> joints, the cyinder is the magnetic gear.
>>
>> Note that in the real system the deformable axial joint scalar 
>> function elastic isotropic function is a sin function, not 'pow' as in 
>> this file (I have modified MBDyn to have this, but made this file just 
>> so it can run in official MBDyn). The wave forces in the real case are 
>> provided by Matlab/Octave via an external structural force. I get the 
>> same error for the real system.
>>
>> I just can't figure out what I've done wrong to get this error. I 
>> think this means that I haven't constrained things sufficiently, but I 
>> don't see what else I have to do?
>>
>> If anyone can offer any tips I would really appreciate it.
>>
>> Best regards,
>>
>> Richard
>>
>>
>>
>>
>> _______________________________________________
>> MBDyn-users mailing list
>> MBDyn-users at mbdyn.org
>> https://mail.mbdyn.org/cgi-bin/mailman/listinfo/mbdyn-users
> 
> -- 
> ---
> Andrea Zanoni
> Dipartimento di Scienze e Tecnologie Aerospaziali
> Politecnico di Milano
> Ph. (+39) 02 2399 8035
> 
> 
> 
> _______________________________________________
> MBDyn-users mailing list
> MBDyn-users at mbdyn.org
> https://mail.mbdyn.org/cgi-bin/mailman/listinfo/mbdyn-users
> 

-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.

-------------- next part --------------

begin: data;
    problem: initial value;
end: data;

# initial value problem
begin: initial value;
    initial time: 0.0;
    final time: 1.0;
    time step: 0.100000000000000006;
    tolerance: 0.00001;
    max iterations: 200;
    linear solver: naive ;
    output: residual, messages, counter, iterations;

    derivatives tolerance: 1000;

end: initial value;


begin: control data;
    structural nodes: 2
                      #+1
                      #+1
                      #+1
    ;
    rigid bodies: 2
                # +1
                #+1
                #+1
    ;
    joints: 2
            #+3
            #+1
            #+1
    ;
    forces: 0
            +1
    ;
    gravity;
    default orientation: orientation matrix;
end: control data;

begin: nodes;

    # flap node
    structural : 1, dynamic, # label, type
        position, 0.0, 0.0, -3.899999999999999911, # absolute position
        orientation, 
        matr,
        1.0, 0.0, 0.0, 
        0.0, 1.0, 0.0, 
        0.0, 0.0, 1.0, # absolute orientation
        velocity, 0.0, 0.0, 0.0, # absolute velocity
        angular velocity, 0.0, 0.0, 0.0 # absolute angular velocity
    ; # end structural node

    # base node
    structural : 2, dynamic, # label, type
        position, 0.0, 0.0, -10.900000000000000355, # absolute position
        orientation, 
        matr,
        1.0, 0.0, 0.0, 
        0.0, 1.0, 0.0, 
        0.0, 0.0, 1.0, # absolute orientation
        velocity, 0.0, 0.0, 0.0, # absolute velocity
        angular velocity, 0.0, 0.0, 0.0 # absolute angular velocity
    ; # end structural node

#    # high speed gear node
#    structural : 3, dynamic, # label, type
#        position, 0.0, -10.800000000000000711, -8.900000000000000355, # absolute position
#        orientation, 
#        matr,
#        0.000000000000000061, -1.0, 0.0, 
#        1.0, 0.000000000000000061, 0.0, 
#        0.0, 0.0, 1.0, # absolute orientation
#        velocity, 0.0, 0.0, 0.0, # absolute velocity
#        angular velocity, 0.0, 0.0, 0.0 # absolute angular velocity
#    ; # end structural node
#
#    # intermediate gear node
#    structural : 4, dynamic, # label, type
#        position, 0.0, -10.800000000000000711, -8.900000000000000355, # absolute position
#        orientation, 
#        matr,
#        0.000000000000000061, -1.0, 0.0, 
#        1.0, 0.000000000000000061, 0.0, 
#        0.0, 0.0, 1.0, # absolute orientation
#        velocity, 0.0, 0.0, 0.0, # absolute velocity
#        angular velocity, 0.0, 0.0, 0.0 # absolute angular velocity
#    ; # end structural node
#
#    # low speed gear node
#    structural : 5, dynamic, # label, type
#        position, 0.0, -10.800000000000000711, -8.900000000000000355, # absolute position
#        orientation, 
#        matr,
#        0.000000000000000061, -1.0, 0.0, 
#        1.0, 0.000000000000000061, 0.0, 
#        0.0, 0.0, 1.0, # absolute orientation
#        velocity, 0.0, 0.0, 0.0, # absolute velocity
#        angular velocity, 0.0, 0.0, 0.0 # absolute angular velocity
#    ; # end structural node

end: nodes;

begin: elements;

    # flap body
    body : 6, 1, # label, node label
        5895922.202046523801982403, # mass
        0.0, 0.0, 0.0, # relative centre of mass
        matr,
        2684340.060223340522497892, 0.0, 0.0, 
        0.0, 7580294.975728010758757591, 0.0, 
        0.0, 0.0, 28964669.383384887129068375 # inertia matrix
    ; # end one-mass body

    # base body
    body : 7, 2, # label, node label
        380843.845784933306276798, # mass
        0.0, 0.0, 0.0, # relative centre of mass
        matr,
        1455165.812211751705035567, 0.0, 0.0, 
        0.0, 74850.663576950057176873, 0.0, 
        0.0, 0.0, 2235068.478945992887020111 # inertia matrix
    ; # end one-mass body

#    # gear low speed to intermediate hinge
#    joint : 8, revolute hinge,
#        3, # node 1 label
#            position, reference, node, 0.0, 0.0, 0.0,
#            orientation, reference, node, matr,
#            0.0, 0.0, 1.0, 
#            1.0, 0.0, 0.0, 
#            0.0, 1.0, 0.0,
#        4, # node 2 label
#            position, reference, other node, 0.0, 0.0, 0.0,
#            orientation, reference, other node, matr,
#            0.0, 0.0, 1.0, 
#            1.0, 0.0, 0.0, 
#            0.0, 1.0, 0.0,
#            friction, 0.100000000000000006, # friction radius
#                preload, 1.0, # friction preload
#                discrete coulomb,
#                    "constant roller bearing inner", const, 0.0018, # friction model
#                simple # friction shape function
#    ; # end revolute hinge
#
#    # gear cogging force
#    joint : 9, deformable axial joint,
#        3, # node 1 label
#            position, reference, node, 0.0, 0.0, 0.0,
#            orientation, reference, node, matr,
#            0.0, 0.0, 1.0, 
#            1.0, 0.0, 0.0, 
#            0.0, 1.0, 0.0,
#        4, # node 2 label
#            position, reference, other node, 0.0, 0.0, 0.0,
#            orientation, reference, other node, matr,
#            0.0, 0.0, 1.0, 
#            1.0, 0.0, 0.0, 
#            0.0, 1.0, 0.0,
#        scalar function elastic isotropic, "test", const, 0.0
#    ; # end deformable axial joint
#
#    # gear speed increase
#    joint : 10, axial rotation,
#        4, # node 1 label
#            position, reference, node, 0.0, 0.0, 0.0,
#            orientation, reference, node, matr,
#            0.0, 0.0, 1.0, 
#            1.0, 0.0, 0.0, 
#            0.0, 1.0, 0.0,
#        5, # node 2 label
#            position, reference, other node, 0.0, 0.0, 0.0,
#            orientation, reference, other node, matr,
#            0.0, 0.0, 1.0, 
#            1.0, 0.0, 0.0, 
#            0.0, 1.0, 0.0,
#        mult,
#            node, 4, structural, string, "omega[1]", direct,
#            const, 1.0 #-0.902818270165208991
#    ; # end axial rotation
#    # force low speed gear side to keep same orientation as flap
#    joint : 10, prismatic,
#        4, # flap node
#        5, # node 2 label
#            orientation, reference, node, 
#            matr,
#            1.0, 0.0, 0.0, 
#            0.0, 1.0, 0.0, 
#            0.0, 0.0, 1.0
#    ; # end prismatic
#
#    # gear high speed rotor
#    body : 11, 3, # label, node label
#        1092.188509028168255099, # mass
#        0.0, 0.0, 0.0, # relative centre of mass
#        matr,
#        248.229600813522239378, 0.0, 0.0, 
#        0.0, 357.11501566610371583, 0.0, 
#        0.0, 0.0, 357.11501566610371583 # inertia matrix
#    ; # end one-mass body
#
#    # gear intermediate node 
#    body : 20, 4, # label, node label
#        1.0, # mass
#        0.0, 0.0, 0.0, # relative centre of mass
#        matr,
#        0.248, 0.0, 0.0, 
#        0.0, 0.357, 0.0, 
#        0.0, 0.0, 0.357 # inertia matrix
#    ; # end one-mass body
#
#    # gear low speed rotor
#    body : 12, 5, # label, node label
#        1199.917491030946848696, # mass
#        0.0, 0.0, 0.0, # relative centre of mass
#        matr,
#        329.11006966686773012, 0.0, 0.0, 
#        0.0, 420.537432920035826101, 0.0, 
#        0.0, 0.0, 420.537432920035826101 # inertia matrix
#    ; # end one-mass body
#
    # flap-base hinge
    joint : 13, revolute hinge,
        2, # base node
            position, reference, global, 0.0, 0.0, -8.900000000000000355,
            orientation, reference, global, matr,
            1.0, 0.0, 0.0, 
            0.0, 0.0, -1.0, 
            0.0, 1.0, 0.0,
        1, # flap node
            position, reference, global, 0.0, 0.0, -8.900000000000000355,
            orientation, reference, global, matr,
            1.0, 0.0, 0.0, 
            0.0, 0.0, -1.0, 
            0.0, 1.0, 0.0
    ; # end revolute hinge

    # base clamp
    joint : 14, clamp,
        2, # base node
            position, node, # absolute position
            orientation, node # absolute orientation
    ; # end clamp

#    # force low speed gear side to keep same orientation as flap
#    joint : 15, prismatic,
#        1, # flap node
#        5, # node 2 label
#            orientation, reference, node, 
#            matr,
#            0.0000000000000000, -1.0, 0.0, 
#            1.0, 0.0000000000000000, 0.0, 
#            0.0, 0.0, 1.0
#    ; # end prismatic
#
#    # 
#    joint : 17, spherical pin,
#        5, # gear low speed node
#            position, reference, node, 0.0, 0.0, 0.0,
#        position, reference, node, 0.0, 0.0, 0.0
#    ; # end spherical pin
#
#    joint : 17, spherical hinge,
#        5, 2, # gear low speed node
#    ; # end spherical pin

    couple : 1, absolute, 1, single, 0., 1., 0., const, 100000;

#    # hinge to support gear relative to base
#    joint : 16, revolute hinge,
#        2, # base node
#            position, reference, global, 0.0, 0.0, -8.900000000000000355,
#            orientation, reference, global, matr,
#            1.0, 0.0, 0.0, 
#            0.0, 0.0, -1.0, 
#            0.0, 1.0, 0.0,
#        5, # gear low speed node
#            position, reference, global, 0.0, 0.0, -8.900000000000000355,
#            orientation, reference, global, matr,
#            1.0, 0.0, 0.0, 
#            0.0, 0.0, -1.0, 
#            0.0, 1.0, 0.0,
#        friction, 0.100000000000000006, # friction radius
#            preload, 1.0, # friction preload
#            discrete coulomb,
#                "constant roller bearing inner 2", const, 0.0018, # friction model
#            simple # friction shape function
#    ; # end revolute hinge

    gravity: uniform, single, 0., 0., -1., const, 9.81;

end: elements;


More information about the MBDyn-users mailing list