उदाहरण 4 चरण, एक सत्र में क्रम से चलाए गए। हर चरण इंजन पर निष्पादित हुआ और नीचे का आउटपुट वही है जो उसने उत्पन्न किया।
vi[t_] = Sin[t];
vr[t_] = Abs[vi[t]]//PiecewiseExpand[#, t∈Reals]&;
Plot[{vi[t], vr[t]}, {t, 0, 16}]-Graphics-system = {vo'[t] == charging[t]vr'[t] - (1 - charging[t])vo[t] / (r c), vo[0] == 0};
control = {charging[0] == 1, WhenEvent[vr'[t] < 0, charging[t] -> 0], WhenEvent[And[vo[t] < vr[t], charging[t] == 0, vr'[t] > 0], charging[t] -> 1]};कोई आउटपुट नहीं - यह चरण अगले के लिए कुछ तैयार करता है।
pars = {r -> 0.1, c -> 1000};
sol = NDSolve[{system, control} /. pars, vo, {t, 0, 16}, DiscreteVariables -> charging∈{0, 1}];कोई आउटपुट नहीं - यह चरण अगले के लिए कुछ तैयार करता है।
Plot[{vo[t] /. sol, vr[t]}, {t, 0, 16}]-Graphics-सभी रेसिपी · फ़ंक्शन संदर्भ · इसे किसी MCP क्लाइंट से उपयोग करें