Products > Embedded Ch > Application Examples
Embedded Ch
System Requirements
FAQ for Embedded Ch
Our Customers
Application Examples

RecurDyn/CoLink powered by Embedded Ch

RecurDyn/CoLink is a complete CAE solution for design and simulation of multi-body dynamic (MBD) and control systems with Embedded Ch.

"Embedded Ch was easily integrated into our products. We are very satisfied with the performance of Embedded Ch for our large-scale complete CAE solutions.

The interface by which our customers communicate with RecurDyn and input their own functions is critical for effective use of our integrated design and simulation environment for multi-physics systems. Embedded Ch is an ideal solution for modeling and interface with the underlying RecurDyn solver. With Embedded Ch, our customers can not only model and interface with the underlying RecurDyn solver using C/C++ scripts, but also build modeling blocks in C/C++ scripts."

Embedded Ch saves us the cost for developing and maintaining a proprietary scripting language, and reduces the time for developing our products. We will launch the entire RecurDyn family of software integrated with Embedded Ch soon."

Michael Jang, CEO of FunctionBay, Inc.

RecurDyn is developed by FunctionBay, Inc., a global leader in CAE solutions. It is a enterprise CAE software for design and simulation of multi-body dynamics, FEM, finite element analysis, control, computational fluid dynamics, and optimization. Embedded Ch is used in RecurDyn for scripting and numerical computing.

With Embedded Ch, RecurDyn/CoLink can be used to design and simulate controllers of dynamic systems containing both rigid and flexible bodies in C/C++ scripts and blocks. Below is a detailed example illustrating its applications.

Problem definition: Inverse problem of an optic block. A laser beam is come into an optic block with an incidence angle. Its refracted ray of light arrives on substrate. One needs to know the rotational velocity profile of the optic block for the movement of refracted ray at a constant velocity.


Solution: Although it can be resolved with multi body dynamics modeling with bodies, and constraints, it is much easier to get the solution with Ch-script function. The RecurDyn model is modeled with two bodies, one translational joint with predefined motion(constant velocity), and one revolute joint. The motion of revolute joint takes the calculated result from ch function. The RecurDyn 3D model is shown below.

To use Ch function in RecurDyn. It is available in RecurDyn/CoLink.

RecurDyn/CoLink model consists of one ch function block, and one RecurDyn plan block with one plant input and output.

The RecurDyn/CoLink model is shown below.

(Click to enlarge)

The key function to solve this problem is the function fsolve() the Ch numerical library. This function solves the equation


t = thickness (known),
n = index of refraction (known)
L = it is predefined motion in RecurDyn model
With this condition, and the function fsolve(), we can get 'θ'. It is the motion of revolute joint. The script in the Ch function block is shown below.

#include <stdio.h> #include <numeric.h> #include <math.h> ... void func(double x[], double f[]) { ... f[0]= position - t*(tan(x[0]) - sin (x[0])/sqrt(n*n-sin(x[0])*sin(x[0])) ); ... } int ChFunction(double* y, double* u) { ''' status=fsolve(x, func, x0); ''' } As a result of this simulation, we can get motion of resolute joint in radians or degrees as shown below. At the same time, we can also get the joint velocity and acceleration profiles from RecurDyn.