function dotq = open_link_PID_ode_param ...
(t,q, l1,lc1,m1,J1, l2,lc2,m2,J2, g, theta1d,theta2d, Kp1,Ki1,Kd1, Kp2,Ki2,Kd2)
% ŠJƒŠƒ“ƒN‹@�\ (2DOF) PID�§Œä •W�€Œ`
    theta1 = q(1); theta2 = q(2);
    omega1 = q(3); omega2 = q(4);
    xi1 = q(5); xi2 = q(6);
    H = open_link_inertia_matrix ( theta1, theta2, l1,lc1,m1,J1, l2,lc2,m2,J2 );
    [ lower, upper ] = open_link_lower_upper_terms ...
        (t, theta1,theta2,omega1,omega2, l1,lc1,m1,J1, l2,lc2,m2,J2, g);
    tau = [ lower - Kp1*(theta1-theta1d) - Kd1*omega1 - Ki1*xi1; ...
            upper - Kp2*(theta2-theta2d) - Kd2*omega2 - Ki2*xi2 ];
    dotomega = H\tau;
    dotq = [ omega1; omega2; dotomega; theta1-theta1d; theta2-theta2d ];
end
