PID Control in Abaqus

View: New views
4 Messages — Rating Filter:   Alert me  

PID Control in Abaqus

by Clary, Chadd W :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello all-
 
I was curious if anyone has experience/references for implementation of PID control systems into an Abaqus Explicit model. In my application, I'm controlling muscle activation signals to generate a desired motion of the lower limb.  I'm currently using an external program (Matlab) to implement the controller, update amplitude cards, call abaqus using the RESTART command to evaluate the next step in the model, calculate error, then repeat on the next step.  However, it seems like there should be a more efficient way using user-subroutines (like VDLOAD) to accomplish the same goal within Abaqus.  Suggestions on implementation and efficiency from anyone with such experience would be greatly appreciated.
 
Thanks in advance,
Chadd Clary
 
Post-Doctoral Research Associate
University of Denver

Re: PID Control in Abaqus

by Dave Lindeman :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I've implemented PID control logic in ABAQUS/Standard, but not in
Explicit.  In Standard the problem is getting the degree-of-freedom
values you need as input to the control logic.  One trick is to define a
dummy user-defined MPC that involves all of the input DOFs.  Within the
MPC subroutine you can then retrieve the current DOF values and store
them in a COMMON block that is shared with the subroutine you are using
to define the response (DISP, DLOAD, DFLUX, etc.).  Within the MPC
subroutine you simply set LMPC=0 to avoid actually enforcing any sort of
constraint.

Within Explicit it appears the problem may be easier.  The VUAMP
subroutine provides access to a set of sensor values (history output
variables) that can be used as inputs to the control logic.  You then
directly modify the amplitude definition associated with your load.

In either case, use of user-defined subroutines should be much more
efficient than any method the requires interrupting the solution process.

Regards,

Dave

-------------------------
Dave Lindeman
Lead Research Specialist
3M Company
3M Center 235-3F-08
St. Paul, MN 55144
651-733-6383


Clary, Chadd W wrote:

>
>
>
> Hello all-
>
> I was curious if anyone has experience/references for implementation of
> PID control systems into an Abaqus Explicit model. In my application,
> I'm controlling muscle activation signals to generate a desired motion
> of the lower limb. I'm currently using an external program (Matlab) to
> implement the controller, update amplitude cards, call abaqus using the
> RESTART command to evaluate the next step in the model, calculate error,
> then repeat on the next step. However, it seems like there should be a
> more efficient way using user-subroutines (like VDLOAD) to accomplish
> the same goal within Abaqus. Suggestions on implementation and
> efficiency from anyone with such experience would be greatly appreciated.
>
> Thanks in advance,
> Chadd Clary
>
> Post-Doctoral Research Associate
> University of Denver
>
>

Re: PID Control in Abaqus

by WEYBRANT Eric :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Chad,

Take a look at user subroutines UAMP and VUAMP which were introduced in the 6.8 release. Should be just what you are looking for.

-Eric

--- In Abaqus@..., "Clary, Chadd W" <chadd@...> wrote:

>
> Hello all-
>  
> I was curious if anyone has experience/references for implementation of PID control systems into an Abaqus Explicit model. In my application, I'm controlling muscle activation signals to generate a desired motion of the lower limb.  I'm currently using an external program (Matlab) to implement the controller, update amplitude cards, call abaqus using the RESTART command to evaluate the next step in the model, calculate error, then repeat on the next step.  However, it seems like there should be a more efficient way using user-subroutines (like VDLOAD) to accomplish the same goal within Abaqus.  Suggestions on implementation and efficiency from anyone with such experience would be greatly appreciated.
>  
> Thanks in advance,
> Chadd Clary
>  
> Post-Doctoral Research Associate
> University of Denver
>



Different solutions using restart

by Clary, Chadd W :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello all-
 
I was curious if anyone else has experienced conflicting results using the *restart command in abaqus explicit (ver 6.7 - 6.8).  For example, differences that exist when comparing results for a particular analysis evaluated in two different ways: 1) with several small steps using the restart command between steps and 2) using a single step for the entire analysis.  Is it possible that there is some "round-off" error induced by writing the state of the model then reloading it, or might there be some aspects of the state of the model which are not conserved using restart?  Any related experiences would be appreciated.
 
 
Thanks in advance,
Chadd Clary
 
Post-Doctoral Research Associate
University of Denver