New answers tagged

0

imbalance between the RPMs provided by the motors (max current not reached) ❌ The closed-loop control is purposely designed and implemented to overcome this type of imbalance. So, nope; this is unlikely to be the problem if your controllers are up to the task. Also, in case your speed sensors are not perfectly calibrated the speed control may be impeded. ...


1

It would be much better to determine a fixed sample rate for your controller. A really rough rule of thumb is that whatever the settling time you need out of the loop once it is operating in the linear regime, your sampling interval should be between 10 times and 100 times less than the settling time. Put another way, the sample rate should be 10 to 100 ...


2

Don't disengage your controller. The purpose of a controller is not only to steer your system to the desired setpoint according to a predetermined dynamical response but also to counteract potential external factors that may impede this task. Think of a disturbance that will drive the system far from the setpoint once it has been reached. Thus, the ...


1

We have two basic Ziegler-Nichols tuning rules: one method is used with the frequency response and one method is characterized by the use of the open-loop step response of the system. You ought to use the latter then, which sticks around the identification of two main parameters $a$ and $\tau$ that are the intercepts of the steepest tangent of the step ...


1

Consider the traditional control diagram below. If you set $G=(2\zeta\omega_ns+\omega_n^2)/(0.13s+1)$, then you'll get the following closed-loop system transfer function: $$ T=\frac{2\zeta\omega_ns+\omega_n^2}{s^2+2\zeta\omega_ns+\omega_n^2}. $$ This can be achieved through zero-pole cancelation, which is doable since $G$ has a zero in LHP. Finally, you can ...


2

I assume that you'd aim to place the poles in $-0.5 \pm 0.2 \cdot i$ for stability reasons. In the s-domain, the transfer function is: $$ \frac{\Phi_c}{\Phi}=\frac{K_p}{s^2+K_ds+K_p}. $$ Computing the closed-loop poles, hence the roots of the characteristics polynomial $s^2+K_ds+K_p$, gives you: $$ \begin{array}{cc} K_d=1 \\ K_p=1.16/4 \end{array}. $$


0

We can solve this problem by using MATLAB and specifically by applying the partial fraction expansion by means of the function residue. The MATLAB code below [r, p] = residue([20 100], [1 13.5 41 80 100]); syms s; F1 = r(1) / (s - p(1)); F2 = r(2) / (s - p(2)); F3 = r(3) / (s - p(3)); F4 = r(4) / (s - p(4)); F34 = (2*real(r(3))*s - 2*real(r(3))*real(p(3)) -...


1

Your intuition is right as a feedforward term always helps the PID do its job, which in this case means that the steady-state error is lower. We could have practical proof of this. Imagine that in your example the effort value to get $20$ rev/s amounts to $6$, for which the steady-state error $e$ is thus $0$ rev/s. Therefore the static gain of the process ...


0

I decided to build a V-plotter. I am using Arduino based software. I'd like to adapt your V-plotter math solution. Can you solve an example problem with your calculations? Can you help me. I will be waiting for your answer. thank you


1

Q1 Do I need to pass to the pid function the desired velocity as a signed or unsigned value? Definitely, you shall deal with signed velocities. The PID will take care of all the signs down the operations' chain, providing positive and or negative rotational velocities. Q2 What should I do with velocity values that would mean a lower pwm so the motor will ...


0

They are exactly the same equation, being the former only a compact version of the latter. From the Euler-Lagrange approach to the dynamics of a manipulator, you can build the $B$ and $C$ terms distinctively from the knowledge of your robot (e.g. distribution of masses of the links). Thus, for constructing the dynamics that you aim to control, you have to ...


2

Chuck's answer is spot on. Anyway, if you want to derive the reason mathematically, you can start off from the most common form of a PD controller where we employ a setpoint-weighting for the derivative part: $$ u(t) = K \cdot \left( e(t) - T_d \cdot \dot{y}(t) \right). $$ The Laplace transform of a feasible $D$ term is thus: $$ D(s) = -\frac{sKT_d}{1+sT_d/N}...


1

I don't know to which extent your pseudo-code can be taken as representative of your real code, but I can see the following concerns with it. Derivative term In practical applications, the derivative term computed as a one-step finite difference as below is completely useless: derivativeError = (currentError - previousError) / timeStep There is a large ...


1

As you pointed out, $y=f\left(u\right)$ is a static map, hence it does not represent in any way the temporal evolution of a dynamical system. With this in mind, resorting to an observer is fundamentally a wrong approach. An observer, in fact, provides you with an estimate of the temporal evolution of the dynamical system under subject; however, here $f\left(\...


0

Deciding where to deploy the FSM, either in the timer interrupt or in the main routine, is the easiest part. Either way will work just fine. Probably, the FSM is not that critical, hence it could be conveniently running within main(), whereas disabling/enabling the timer interrupt is not really necessary if you resort to the use of a dedicated flag (...


2

You are confusing the “robot + controller” with the robot itself. Every physical system has dynamic properties. As shown by your first equation, the dynamics are related to joint accelerations, velocities, and positions (embedded within the matrices). The desired state has nothing to do with how the physical system responds to its state variables. That ...


3

First, isolate the second order from the other terms: $$ a \, \ddot{x}_1 + b \, \ddot{x}_2 =- c \,\dot{x_1} - d \,\dot{x_2} - e + u_1 \\ f \, \ddot{x}_1 + g \, \ddot{x}_2 = - h \,\dot{x_1} - i \,\dot{x_2} - j + u_2 $$ Then, put it in a matrix form: $$ \left[\begin{matrix}a&b\\f&g\end{matrix}\right]\left[\begin{matrix}\ddot{x_1}\\\ddot{x_2}\end{matrix}...


0

$$ \begin{align} a \, \ddot{x}_1 + b \, \ddot{x}_2 + c \,\dot{x_1} + d \,\dot{x_2} + e &= u_1 \tag{1} \\ f \, \ddot{x}_1 + g \, \ddot{x}_2 + h \,\dot{x_1} + i \,\dot{x_2} + j &= u_2 \tag{2} \end{align} $$ Let's write Eq(1) without $\ddot{x}_2$, hence: $$ \begin{align} a \, \ddot{x}_1 + b \, \Big[\frac{u_2-f \, \ddot{x}_1 - h \,\dot{x}_1 - i \,\dot{x}...


-1

Before the question can be answered with mathematical terms, a bit meta knowledge may help to understand the thought system. The goal of creating a state space formula for robotics problems is a typical application of the matlab software. The students are educated how to use a commercial software package for describing real world problems. With this pre-...


2

As Ugo Pattacini said, the experiment must be rethought taking into account the dynamics of the ball. In this case, your system will have 4 states: current $j$, angular velocity $\omega$, ball height $h$, and ball speed $s=\dot{h}$. As pointed out, the dynamics of $s$, neglecting viscous friction and other aerodynamic effects, can be modeled as $\dot{s}={T\...


Top 50 recent answers are included