← Back to team overview

yade-users team mailing list archive

Re: [Question #707278]: Servo control of flexible membrane using ServoPIDController


Question #707278 on Yade changed:

    Status: Open => Answered

Jan Stránský proposed the following answer:

> don't know how to use the ServoPIDController to achieve servo control
of the flexible membrane with confining pressure.

To achieve confining pressure, probably the easiest approach is to
assign corresponding center-oriented forces to the grid nodes.

For the start, I **personally** would not use servo control, I
**personally** would start with a simpler approach - prescribe force to
the nodes directly using O.forces.setPermF.

If you insist on servo control, just use ServoPIDController for each grid node.
Something like (not tested):
confiningStress = ... # N/m2

def node2servo(node):
    x,y,z = node.state.pos
    area = ... # cylinder surface / number of nodes ?
    f = confiningStress * area
    return ServoPIDController(ids=[node.id],axis=axis,iterPeriod=...,target=f,...)

nodes = [b for b in O.bodies if isinstance(b.shape,GridNode)]
servos = [node2servo(node) for node in nodes]
O.engines = O.engines + servos


You received this question notification because your team yade-users is
an answer contact for Yade.