A reviewer of the last paper I sent replied me that the it is very dangerous to update a PID with next kind of formula (paper is about quadrotor control):

$$ K_p (t + 1) = K_p (t)+e(t) (μ_1 (Pe(t)) + μ_4 (Pe(t))) $$

$Pe(t)$ is the % relationship between the desired angles and the real angles, and $e(t)$ is the difference between those angles. $μ_1$ and $μ_4$ are the membership functions of a fuzzy function. I think that the reviewer is talking about the time increment update rather than the fuzzy usage and specific formula.

How can stability of this formula be tested, please?


membership functions are represented in following graph: enter image description here

$e(t)$ is not the absolute difference between angles, just the difference. It can be negative

  • $\begingroup$ A time step of 1 second is rather large and less general. The stability is mainly dangerous because you basically use forward Euler integration. What would be the update formula for a time step of $dt$? $\endgroup$ – fibonatic May 13 '16 at 15:54
  • $\begingroup$ My $ dt=0.1segs. $ I do use Euler integration for calculating displacement and velocity out of acceleration. How to proof the stability in that case? Is transfer function and Bode diagram or something similar necessary? $\endgroup$ – galtor May 13 '16 at 19:56
  • $\begingroup$ Can you give us more information? To analyze stability, we need to know more about $\mu_1$ and $\mu_4$. Also, if the system is discretized, then $dt$ might need to be in the expression for $K_p(t+1)$. $\endgroup$ – JSycamore May 13 '16 at 19:56
  • $\begingroup$ Done it: triangular shape functions. I've seen Gaussian too, but this aspect think doesn't matter $\endgroup$ – galtor May 16 '16 at 17:38

I think I may have reason for your reviewer's caution. You are updating the proportional gain of a PID controller, and you are concerned with the stability of your update law. Restating your update: $$K_p(t+1)=K_p+e(t)(\mu_1(Pe(t))+\mu_4(Pe(t))).$$ You have re-stated that $e(t)$ is the difference, which means that the error is not positive semi-definite ($e(t)\geq 0$). However, the membership functions $\mu_1$ and $\mu_4$ are positive semi-definite; this implies that $E(t)=e(t)(\mu_1(Pe(t))+\mu_4(Pe(t)))$ is either positive or negative semi-definite, which means that $K_p$ grows unbounded in some region $D$.

At this point, it is clear that the update law is not stable in some region (in the sense of Lyapunov) for $e(t)\neq 0$. We can substantiate this with discrete-time Lyapunov analysis.

$Proof:$ Dropping the time dependence for clarity, let $$V(K_p)=\frac{1}{2}K_p^2$$ be a candidate Lyapunov function. The rate of change along solutions is given by $$\begin{align}\nabla V(K_p)&=V(K_p+E)-V(K_p)\\&=\frac{1}{2}(K_p+E)^2-\frac{1}{2}K_p^2\\&=K_pE+\frac{1}{2}E^2\end{align}.$$ For stability of the system, we must have $\nabla V(K_p)<0$. This implies $$K_pE+\frac{1}{2}E^2<0$$$$\to K_p<-\frac{1}{2}E.$$ We can conclude from converse Lyapunov results that the system is unstable for at least $K_p>-\frac{1}{2}E$, which is an obvious reason for concern. There may be a better Lyapunov candidate function to demonstrate this result, but we can be sure that the system is locally unstable.

| improve this answer | |
  • $\begingroup$ ok, I wrongly used "absolute difference" expression. It was just to differentiate from $Pe$, which is % based difference. $ e(t) $ is just the difference, but it can take negative values. Does this change your arguments? $\endgroup$ – galtor May 16 '16 at 20:30
  • $\begingroup$ This absolutely changes the argument. I will edit my response, but you should include your edit in the question. $\endgroup$ – JSycamore May 16 '16 at 20:45
  • $\begingroup$ @NBCKLY - Do you have time to make the edit? Your current answer is terrific for the absolute difference case; I'd love to see your response! $\endgroup$ – Chuck Jun 16 '16 at 14:05
  • $\begingroup$ I gave it a shot. The result was clear cut for the original post, but I think my response highlights at least one concern. The more I think about it, the more I am wondering what the general effect of controlling $K_p$ based on an error function will have on the stability of a system--I suspect that this is not a good practice, but if somebody can find a paper proposing this, I'm sure that OP would appreciate it. $\endgroup$ – JSycamore Jun 16 '16 at 15:53
  • $\begingroup$ I posted original question.Thx, i'm not expert in lyapunov, but I see the problem. Finally, do you have any suggestion about alternative update? $\endgroup$ – galtor Jun 21 '16 at 21:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.