Co-design of output feedback laws and event-triggering conditions for linear systems

Co-design of output feedback laws and event-triggering conditions for linear systems

Mahmoud Abdelrahim, Romain Postoyan, Jamal Daafouz and Dragan Nešić M. Abdelrahim, R. Postoyan and J. Daafouz are with the Université de Lorraine, CRAN, UMR 7039 and the CNRS, CRAN, UMR 7039, France {othmanab1,romain.postoyan,jamal.daafouz}@univ-lorraine.fr. Their work is partially supported by the ANR under the grant COMPACS (ANR-13-BS03-0004-02).D. Nešić is with the Department of Electrical and Electronic Engineering, the University of Melbourne, Parkville, VIC 3010, Australia dnesic@unimelb.edu.au. His work is supported by the Australian Research Council under the Discovery Projects and Future Fellowship schemes.
Abstract

We present a procedure to simultaneously design the output feedback law and the event-triggering condition to stabilize linear systems. The closed-loop system is shown to satisfy a global asymptotic stability property and the existence of a strictly positive minimum amount of time between two transmissions is guaranteed. The event-triggered controller is obtained by solving linear matrix inequalities (LMIs). We then exploit the flexibility of the method to maximize the guaranteed minimum amount of time between two transmissions. Finally, we provide a (heuristic) method to reduce the amount of transmissions, which is supported by numerical simulations.

I Introduction

Networked control systems (NCS) and embedded systems are becoming essential in a wide range of control applications. A crucial challenge for these systems is the efficient use of their limited resources in terms of communication and/or computation. In this context, event-triggered control has been proposed as an alternative to the conventional periodic sampling paradigm. The idea is to close the loop and update the control input whenever a state-dependent criterion is verified, which is designed based on the stability/performance requirements, see e.g. [1, 2, 3, 4, 5, 6]. In this way, it is possible to significantly reduce the usage of the communication resources by the control task compared to periodic sampling. In this paper, we will focus on the scenario where we want to reduce the amount of control updates, which is relevant in the context of networked control systems for instance as this leads to a reduced usage of the network, which can thus be used by other tasks.

The vast majority of existing event-triggered controllers are designed by emulation, see [6, 5, 4] and the references therein. In other words, a stabilizing feedback law is first constructed in the absence of network and then the triggering condition is synthesized to preserve stability. The potential disadvantage of this technique is that it is difficult to obtain an optimal design since we are restricted by the initial choice of the feedback law. To overcome this issue, three directions of research are proposed in the literature: joint design of control inputs and self-triggering conditions, e.g. [7, 8], optimal event-triggered control, e.g. [9, 10], and co-design of feedback laws and event-triggering conditions, e.g. [11, 12, 13]. In this paper, we are interested in the last approach.

All of the aforementioned results focus on state feedback event-triggered controllers where the full state vector is assumed to be available for measurement. However, from a practical point of view, this is not realistic for many control applications where only a part of the plant is measured. It is important to highlight that the design of event-triggered controllers based on the output measurements is particularly challenging, even by emulation, see [14, 15, 16, 17, 18, 19, 20]. This is due to the fact that it is usually difficult to ensure the existence of a uniform strictly positive lower bound on the inter-transmission times contrary to the case where the full state is measured (see[15]).

The purpose of this paper is to develop a joint design procedure of the output feedback law and the event-triggering condition. To the best of the authors’ knowledge, this problem has been only addressed in [21], [22]. The proposed co-design methods in [21], [22] are concerned with periodic event-triggered controllers (PETC) in which the output measurements are sampled periodically and then it is the task of the triggering condition to decide whether the control input needs to be updated. However, an open question regarding these techniques is how to calculate the appropriate sampling period of the triggering mechanism. This is a key aspect in the construction of PETC since the sampling of the triggering mechanism may deteriorate the closed-loop performance or may require a higher network bandwidth than the available one, see [23].

Unlike [21], [22], we provide a co-design algorithm where the triggering condition is continuously evaluated. The scheme is based on our previous work in [20] where we have synthesized stabilizing output feedback event-triggered controllers by emulation. The proposed triggering mechanism in [20] guarantees a global asymptotic stability property for the closed-loop and enforces a minimum amount of time between two transmission instants by combining the event-triggering condition of [3] (adapted to output feedbacks) and the time-triggered results in [24]. The constant time corresponds to the maximum allowable sampling period (MASP) given by [24]. Contrary to [20], where the output feedback laws were assumed to be known a priori, in this paper, we simultaneously design the feedback controllers and the transmission rules for linear time-invariant (LTI) systems. The event-triggered controller is then obtained by solving LMIs. It is important to note that the results in [20] do not allow for co-design because the resulted LMI condition is nonlinear in this case. Furthermore, the encountered nonlinearity cannot be directly handled by congruence transformations like in standard output feedback design problems, which induces non-trivial technical difficulties. We thus needed to introduce an additional LMI constraint to linearize the LMI condition in [20] using the tools of [25]. We then take advantage of the flexibility of co-design to enhance the efficiency of the event-triggered controllers in two senses. We first maximize the minimum inter-transmission time which is essential in practice. Indeed, while the existence of dwell-time is typically ensured in emulation results, its value may be very small and may thus violate the hardware constraints. It is therefore important to propose designs which are able to ensure larger minimum times between two transmissions. We then propose a heuristic to reduce the amount of transmissions, whose efficiency is confirmed by simulations.

The rest of the paper is organised as follows. Preliminaries are given in Section II. The problem is formally stated in Section III. In Section IV, we give the main results and in Section V we explain how these results can be used to enlarge the guaranteed minimum inter-transmission time and to reduce the amount of transmissions. An illustrative example is proposed in Section VI. Conclusions are provided in Section VII. The proofs are given in the Appendix.

Ii Preliminaries

Let , , and . We denote the minimum and maximum eigenvalues of the symmetric matrix as and , respectively. We write and to respectively denote the transpose and the inverse of transpose of and is the block-diagonal matrix with the entries on the diagonal. The symbol stands for symmetric blocks. We use to denote the identity matrix of dimension . The shorthand stands for for any square matrix . The Euclidean norm is denoted as . We use to represent the vector for and .

In this paper, we consider hybrid systems of the following form using the formalism of [26]

(1)

where is the state, is the flow map, is the flow set, is the jump map and is the jump set. The vector fields and are assumed to be continuous and the sets and are closed. The solutions to system (1) are defined on so-called hybrid time domains. A set is called a compact hybrid time domain if for some finite sequence of times and it is a hybrid time domain if for all is a compact hybrid time domain. A function is a hybrid arc if is a hybrid time domain and if for each is locally absolutely continuous on . A hybrid arc is a solution to system (1) if: (i) ; (ii) for any , and for almost all ; (iii) for every such that , and . A solution to system (1) is maximal if it cannot be extended, and it is complete if its domain, , is unbounded.

Iii Problem statement

Consider the linear time-invariant system

(2)

where , , and are matrices of appropriate dimensions. We will design dynamic output feedback laws of the form

(3)

where and are matrices of appropriate dimensions. We focus on the case where the controller has the same dimension as the plant, i.e. . We emphasize that the -system is not necessarily an observer. We consider the scenario where controller (3) communicates with the plant via a digital channel. Hence, the plant output and the control input are sent only at transmission instants . In this paper, we are interested in an event-triggered implementation in the sense that the sequence of transmission instants is determined by a criterion based on the output measurements, like in [15, 17], see Figure 1.

Fig. 1: Event-triggered control schematic
(9)

At each transmission instant, the plant output is sent to the controller which computes a new control input that is instantaneously transmitted to the plant. We assume that this process is performed in a synchronous manner and we ignore the computation times and the possible transmission delays. In that way, like in [27], we obtain

(4)

where and respectively denote the last transmitted values of the plant output and the control input. We assume that zero-order-hold devices are used to generate the sampled values and , which leads to and . We introduce the network-induced error , where , and which are reset to at each transmission instant. We model the event-triggered control system using the hybrid formalism of [26] as in e.g. [15], [18], [5], for which a jump corresponds to a transmission. In that way, the system can be modeled as

(5)

where with , is a clock variable which describes the time elapsed since the last jump and

(6)

The flow and jump sets of (5) are defined according to the triggering condition we will design in the next section. As long as the triggering condition is not violated, the system flows on and a jump occurs when the state enters in . When , the solution may flow only if flowing keeps in , otherwise the system experiences a jump. The sets and will be closed (which ensure that system (5) is well-posed, see Chapter 6 in [26]).

The main objective of this paper is to simultaneously design the dynamic controller (3) and the flow and the jump sets of system (5), i.e. the triggering condition, to ensure a global asymptotic stability property for system (5).

Iv Main results

We use the same triggering condition as in [20], i.e.

(7)

where , are design parameters and is a constant which enforces a uniform dwell-time between any two jumps. This constant is designed such that , where corresponds to the maximum allowable sampling period given in [24], which is given by

(8)

where and .

The following theorem provides LMI-based conditions to simultaneously design the output feedback law (3) and the parameters of the flow and jump sets (7) such that a global asymptotic stability property holds for system (5), (7). We use boldface symbols to emphasize the LMIs decision variables.

Theorem 1

Consider system (5) with the flow and jump sets (7). Suppose that there exist symmetric positive definite real matrices , real matrices and such that (9) is verified and the following holds

(10)

Take , and

(11)

where are any square and invertible matrices such that111In view of the Schur complement of LMI (10), we deduce that which implies that and thus, is nonsingular. Hence, the existence of nonsingular matrices is always ensured. . Then, there exists such that any solution satisfies

(12)

and, if is maximal, it is also complete.

We note that LMIs (9), (10) are computationally tractable and can be solved using the SEDUMI solver [28] with the YALMIP interface [29]. Hence, by solving (9) and (10), we obtain the feedback law, see (11), and the triggering condition parameters and .

The proof of Theorem 1 consists in showing that the following holds

(13)

where is the Lyapunov matrix and . The LMI (13) corresponds to the condition in Proposition 1 in [20] in the context of emulation, i.e. when the controller is given. It is important to note that the derivation of LMIs for co-design from (13) is not trivial, because of the nonlinear term which depends on the controller matrices. This term never appeared in the classical output feedback design problems and it is the reason why the LMI (9) differs from the classical one and why the additional convex constraint (10) is needed in Theorem 1.

V Optimization problems

The flexibility of the co-design procedure proposed in Section IV can be exploited in many ways. In this section, we explain how to use the LMI conditions (9) and (10) to enlarge the guaranteed minimum amount of time between any two transmissions. We then propose a heuristic method to reduce the amount of transmissions. The efficiency of these methods is illustrated by simulations in Section VI.

V-a Enlarging the guaranteed minimum inter-transmission time

A key challenge in the design of output feedback event-triggered controllers is to ensure the existence of a uniform strictly positive lower bound on the inter-transmission times. Although the existence of that lower bound is guaranteed by different techniques in the literature, the available expressions are often subject to some conservatism. It is therefore unclear whether the event-triggered controller has a dwell-time which is compatible with the hardware limitations. We investigate in this section how to employ the LMIs conditions (9), (10) to maximize the guaranteed minimum inter-transmission time. We first state the following lemma to motivate our approach.

Lemma 1

Let be the set of solutions to system (5), (7).

(14)

Lemma 1 implies that the lower bound on the inter-transmission times guaranteed by (7) corresponds to the actual minimum inter-transmission time as defined by the right-hand side of (14). Hence, by maximizing , we enlarge the minimum inter-transmission time.

To maximize , we will maximize in (8). We see that increases as and decrease. Hence, our objective is to minimize and . Since corresponds to and enters linearly in the LMI (9), we can directly minimize under the LMIs constraints (9), (10). The minimization of , on the other hand, requires more attention. We recall that , where

(15)

hence,

(16)

Therefore, can be minimized up to which is fixed as it only depends on the plant matrices. In view of (11), we have that

(17)

Thus, depends nonlinearly on the LMI variables and and it can a priori not be directly minimized. To overcome this issue, we impose the following upper bound

(18)

for some . As a result, to minimize and may help to minimize as we will show on an example in Section VI. We translate inequality (18) into a LMI constraint and we state the following claim.

Claim 1

Assume that LMIs (9), (10) are verified. Then, there exist such that

(19)

which implies that inequality (18) holds.

We note that (19) does not introduce additional constraints on system (5) compared to LMIs (9), (10). This comes from the fact that there always exist (eventually large) such that (19) holds, in view of Schur complement of (19).

In conclusion, we formulate the problem as a multiobjective optimization problem as we want to minimize under the constraint (9), (10) and (19). Several approaches have been proposed in the literature to handle that kind of problems, see e.g. [30]. We choose the weighted sum strategy among others and we formulate the LMI optimization problem as follows

(20)

for some weights .

V-B Reducing the amount of transmissions

We present a heuristic way to reduce the amount of transmissions generated by the triggering mechanism. This goal can be achieved by optimizing the parameters of the event-triggered rule such that the triggering condition is violated after the longest possible time since the last transmission. In view of (7) and Theorem 1, since , the event-triggering condition is given by

(21)

As a consequence, in order to reduce the number of instants at which the rule (21) is not satisfied, we need to minimize the parameters and . More precisely, we need to minimize the product . Since the product is nonlinear, we simply minimize the weighted sum of the two parameters to maintain the convexity property. Moreover, we need to take into account the evolution of the -variable. Indeed, it is not because is minimized that less transmissions will occur because the variable may more rapidly reach the threshold in (21) in this case. To address this point, we notice that, in view of Assumption 1 and Proposition 1 in [20], the variable satisfies, for all and almost all

(22)

Thus, minimizing may lead to the reduction of the rate of growth of the norm of the error.

To summarize, the optimization problem below may be used to reduce the amount of transmissions

(23)

for some weights .

Vi Illustrative example

In this section, we demonstrate the potential of the proposed optimization problems on Example 2 in [15]. Consider the LTI plant model

(24)

First, we solve the optimization problem (20) to seek for the largest possible lower bound on the inter-transmission times. We set and we obtain

(25)

and

(26)

We note that, in view of (16), (24), (26), . Table I gives the minimum and the average inter-sampling times, respectively denoted as and , for 100 randomly distributed initial conditions such that and . The constant serves as a measure of the amount of transmissions (the bigger , the less transmissions). We observe from the corresponding entries in Table I that which implies that generated transmission instants are periodic. This may be explained by the fact that the product is very big and thus the output-dependent part in (21) is ‘quickly’ violated. To avoid that phenomenon, we optimize the parameters of the event-triggering condition such that the rule is violated after the longest possible time since the last transmission instant, as discussed in Section V-B. Thus, we minimize the weighted sum subject to (9), (10), (19). We take and we obtain

(27)

and the dynamic controller matrices are

(28)

We note from the corresponding entries in Table I that the guaranteed dwell-time is slightly smaller than the previous one but the average inter-transmission time is larger than the previous value (in this case ). Furthermore, we can play with the weight coefficients to further reduce transmissions. Since we know that cannot become less than 4 and that the value obtained above is already close to this lower bound, we will give the most relative importance by increasing the weight to further decrease the magnitude of . We found that the minimum value of is obtained with which yield

(29)

and the dynamic controller matrices are

(30)

We note that is twice bigger than with the controller (27), (28) in this case and the guaranteed minimum inter-transmission time is of the same order of magnitude compared to the previous values, as shown in Table I. It is noted in Table I that, for all cases, the guaranteed lower bound corresponds to the minimum inter-transmission time generated by the triggering mechanism. We provide the plot of the inter-transmission times for one simulation in Figure 2 to better see the impact of the constant on the triggering instants.

In comparison, the guaranteed lower bound on the inter-transmission times in [15] is while the observed lower bound and the average inter-transmission time during the simulations respectively are and , as shown in Table I. Moreover, the stability property achieved in [15] is a practical stability property, while we ensure a global asymptotic stability property. These observations justify the potential of the proposed co-design technique to reduce transmissions. In [22], the guaranteed and the the simulated lower bounds on the inter-transmission times are found to be the sampling period , which is 100 times smaller than those we ensure.

Fig. 2: Inter-transmission times for .
Guaranteed
dwell-time
Donkers & Heemels [15] 6.5
Optimization problem (20) 0.0114 0.0114 0.0114
Optimization problem (23) 0.0113 0.0113 0.0116
Optimization problem (23) 0.0109 0.0109 0.0261
TABLE I: Minimum and average inter-transmission times for 100 initial conditions in a ball of radius centered at the origin and for a simulation time of 20s.

Vii Conclusion

A co-design procedure for output-feedback event-triggered controllers has been presented. LMIs conditions have been developed for that purpose. The proposed scheme guarantees a global asymptotic stability property for the closed-loop and enforces a strictly positive lower bound on the inter-transmission times. We have then used these LMIs to minimize transmissions between the plant and the controller in two different senses, while guaranteeing the closed-loop stability. In future work, we will further exploit these co-design results to take into account performance requirements.

Appendix

Proof of Theorem 1. We define the following matrices

(31)

where are symmetric positive definite real matrices of appropriate dimension. Since , it holds that , , and . After some direct calculations, recall that , we obtain

(32)

Consequently, inequalities (9), (10) can be written as

(33)

By pre and post multiplying the first LMI respectively by and its transpose and by using the Schur complement of the second LMI, we obtain

(34)

and

(35)

As a consequence, it holds that

(36)

Let and pre and post multiply (36) respectively by and its transpose. Then, we have (note that )

(37)

By using the Schur complement of (37), we obtain

(38)

where . Hence, it holds that there exists sufficiently small such that

(39)

Thus, Theorem 1 holds in virtue of Proposition 1 in [20].

Proof of Lemma 1. Let . The definitions of the flow and jump sets in (7) guarantee that . We now show that . Let be such that . Then, for all , in view of (5). As a consequence, where for all and two successive jumps are separated by units of time. We have that . Consequently .

Proof of Claim 1. By using Schur complement of (19), we deduce that

(40)

Re-applying the Schur complement of the last inequality yields

(41)

where

(42)

Using the fact that

(43)

and since and , in view of the Schur complement of (10), inequality (41) implies that

(44)

It holds that

(45)

As a consequence

(46)

which implies that

(47)

On the other hand, in view (11), we have

(48)

As a result, in view of (47), (48), it holds that

(49)

Thus, Claim 1 is verified.

References

  • [1] K. Årzén, “A simple event-based PID controller,” In Proceedings of the 14 IFAC World Congress, Beijing, China, vol. 18, pp. 423–428, 1999.
  • [2] K. Åström and B. Bernhardsson, “Comparison of periodic and event based sampling for first order stochastic systems,” In Proceedings of the 14th IFAC World Congress, Beijing, China, pp. 301–306, 1999.
  • [3] P. Tabuada, “Event-triggered real-time scheduling of stabilizing control tasks,” IEEE Transactions on Automatic Control, vol. 52, no. 9, pp. 1680–1685, 2007.
  • [4] X. Wang and M. Lemmon, “Event-triggering in distributed networked control systems,” IEEE Transactions on Automatic Control, vol. 56, no. 3, pp. 586–601, 2011.
  • [5] R. Postoyan, A. Anta, D. Nešić, and P. Tabuada, “A unifying Lyapunov-based framework for the event-triggered control of nonlinear systems,” In Proceedings of the IEEE Conference on Decision and Control and European Control Conference, Orlando, U.S.A., pp. 2559–2564, 2011.
  • [6] W. Heemels, K. Johansson, and P. Tabuada, “An introduction to event-triggered and self-triggered control,” In Proceedings of the IEEE Conference on Decision and Control, Hawaii, U.S.A., pp. 3270–3285, 2012.
  • [7] M. Donkers, P. Tabuada, and W. Heemels, “On the minimum attention control problem for linear systems: A linear programming approach,” In Proceedings of the IEEE Conference on Decision and Control and European Control Conference, Orlando, U.S.A., pp. 4717–4722, 2011.
  • [8] T. Gommans, D. Antunes, M. Donkers, P. Tabuada, and W. Heemels, “Self-triggered linear quadratic control,” Automatica, to appear.
  • [9] D. Antunes, W. Heemels, and P. Tabuada, “Dynamic programming formulation of periodic event-triggered control: Performance guarantees and co-design,” In Proceedings of the IEEE Conference on Decision and Control, Hawaii, U.S.A., pp. 7212–7217, 2012.
  • [10] A. Molin and S. Hirche, “Optimal event-triggered control under costly observations,” In Proceedings of the International Symposium on Mathematical Theory of Networks and Systems, Budapest, Hungary, pp. 2203–2208, 2010.
  • [11] S. Hu and D. Yue, “Event-triggered control design of linear networked systems with quantizations,” ISA Transactions, vol. 51, no. 1, pp. 153–162, 2012.
  • [12] L. Shanbin and X. Bugong, “Co-design of event generator and controller for event-triggered control system,” In Proceedings of the Chinese Control Conference, Yantai, China, pp. 175–179, 2011.
  • [13] C. Peng and T. Yang, “Event-triggered communication and control co-design for networked control systems,” Automatica, vol. 49, no. 5, pp. 1326–1332, 2013.
  • [14] E. Kofman and J. Braslavsky, “Level crossing sampling in feedback stabilization under data-rate constraints,” In Proceedings of the IEEE Conference on Decision and Control, San Diego, U.S.A., pp. 4423–4428, 2006.
  • [15] M. Donkers and W. Heemels, “Output-based event-triggered control with guaranteed -gain and improved and decentralised event-triggering,” IEEE Transactions on Automatic Control, vol. 57, no. 6, pp. 1362–1376, 2012.
  • [16] C. Peng and Q. Han, “Output-based event-triggered control for sampled-data control systems with nonuniform sampling,” In Proceedings of the American Control Conference, Washington, U.S.A., pp. 1727–1732, 2013.
  • [17] P. Tallapragada and N. Chopra, “Event-triggered dynamic output feedback control for LTI systems,” In Proceedings of the IEEE Conference on Decision and Control, Hawaii, U.S.A., pp. 6597–6602, 2012.
  • [18] F. Forni, S. Galeani, D. Nešić, and L. Zaccarian, “Event-triggered transmission for linear control over communication channels,” Automatica, vol. 50, no. 2, pp. 490–498, 2014.
  • [19] H. Yu and P. Antsaklis, “Event-triggered output feedback control for networked control systems using passivity: Achieving stability in the presence of communication delays and signal quantization,” Automatica, vol. 49, no. 1, pp. 30–38, 2013.
  • [20] M. Abdelrahim, R. Postoyan, J. Daafouz, and D. Nešić, “Stabilization of nonlinear systems using event-triggered output feedback laws,” In Proceedings of the 21th International Symposium on Mathematics Theory of Networks and Systems, Groningen, The Netherlands, pp. 274–281, 2014.
  • [21] X. Zhang and Q. Han, “Event-based dynamic output feedback control for networked control systems,” In Proceedings of the American Control Conference, Washington, U.S.A., pp. 3008–3013, 2013.
  • [22] X. Meng and T. Chen, “Event detection and control co-design of sampled-data systems,” International Journal of Control, vol. 78, no. 4, pp. 777–786, 2014.
  • [23] R. Postoyan, A. Anta, W. Heemels, P. Tabuada, and D. Nešić, “Periodic event-triggered control for nonlinear systems,” In Proceedings of the IEEE Conference on Decision and Control, Florence, Italy, pp. 7397–7402, 2013.
  • [24] D. Nešić, A. Teel, and D. Carnevale, “Explicit computation of the sampling period in emulation of controllers for nonlinear sampled-data systems,” IEEE Transactions on Automatic Control, vol. 54, no. 3, pp. 619–624, 2009.
  • [25] C. Scherer, P. Gahinet, and M. Chilali, “Multiobjective output-feedback control via LMI optimization,” IEEE Transactions on Automatic Control, vol. 42, no. 7, pp. 896–911, 1997.
  • [26] R. Goebel, R. Sanfelice, and A. Teel, Hybrid Dynamical Systems: Modeling, Stability, and Robustness.   Princeton University Press, 2012.
  • [27] D. Dačić and D. Nešić, “Quadratic stabilization of linear networked control systems via simultaneous protocol and controller design,” Automatica, vol. 43, no. 7, pp. 1145–1155, 2007.
  • [28] J. Sturm, “Using Sedumi 1.02, a MATLAB toolbox for optimization over symmetric cones,” Optimization Methods and Software, vol. 11-12, Special issue on Interior Point Methods, pp. 625––653, 1999.
  • [29] J. Löfberg, “YALMIP: A toolbox for modeling and optimization in MATLAB,” In Proceedings of the CACSD Conference, Taipei, Taiwan, 2004.
  • [30] M. Ehrgott, Multicriteria Optimization, 2nd ed.   Springer, 2005.
Comments 0
Request Comment
You are adding the first comment!
How to quickly get a good reply:
  • Give credit where it’s due by listing out the positive aspects of a paper before getting into which changes should be made.
  • Be specific in your critique, and provide supporting evidence with appropriate references to substantiate general statements.
  • Your comment should inspire ideas to flow and help the author improves the paper.

The better we are at sharing our knowledge with each other, the faster we move forward.
""
The feedback must be of minimum 40 characters and the title a minimum of 5 characters
   
Add comment
Cancel
Loading ...
192218
This is a comment super asjknd jkasnjk adsnkj
Upvote
Downvote
""
The feedback must be of minumum 40 characters
The feedback must be of minumum 40 characters
Submit
Cancel

You are asking your first question!
How to quickly get a good answer:
  • Keep your question short and to the point
  • Check for grammar or spelling errors.
  • Phrase it like a question
Test
Test description