Qurak

Proportional derivative controller

उदाहरण 3 चरण, एक सत्र में क्रम से चलाए गए। हर चरण इंजन पर निष्पादित हुआ और नीचे का आउटपुट वही है जो उसने उत्पन्न किया।

चरण 1
system = {x''[t] == u[t], x'[0] == x[0] == 0, u[0] == 1};
control = WhenEvent[Mod[t, τ], u[t] -> kp(xref - x[t] - td x'[t])];
params = {kp -> 1, td -> 1, τ -> 1, xref -> 1};

कोई आउटपुट नहीं - यह चरण अगले के लिए कुछ तैयार करता है।

चरण 2
sol = NDSolve[{system, control} /. params, {x, u}, {t, 0, 12}, DiscreteVariables -> u];

कोई आउटपुट नहीं - यह चरण अगले के लिए कुछ तैयार करता है।

चरण 3
Plot[Evaluate[{xref /. params, x[t], u[t]} /. sol], {t, 0, 12}, PlotLegends -> {"xref", "x(t)", "u(t)"}]
आउटपुट
-Graphics-

प्रयुक्त फ़ंक्शन

संबंधित रेसिपी

सभी रेसिपी · फ़ंक्शन संदर्भ · इसे किसी MCP क्लाइंट से उपयोग करें