From a848f995ae9b6ca93d76ebc4c237d6f2166b7632 Mon Sep 17 00:00:00 2001 From: pilar Date: Fri, 28 Nov 2025 11:14:16 +0100 Subject: [PATCH 01/10] more work on dae support --- toolbox/examples/daeExamples/daeExampleRHS.m | 21 ++++ .../examples/daeExamples/daeExample_README.md | 108 +++++++++++++++++ .../examples/daeExamples/daeExample_main.m | 98 ++++++++++++++++ .../daeExamples/dae_stats/MaxOrder_1.png | Bin 0 -> 31214 bytes .../daeExamples/dae_stats/MaxStep_0.08.png | Bin 0 -> 35668 bytes .../daeExamples/dae_stats/MaxStep_0.1.png | Bin 0 -> 27514 bytes .../daeExamples/dae_stats/acceptedSteps.csv | 19 +++ .../daeExamples/dae_stats/allRHSCalls.csv | 51 ++++++++ .../dae_stats/integrator_steps_ifdiff.txt | 31 +++++ .../dae_stats/integrator_steps_ifdiff_1.txt | 57 +++++++++ .../daeExamples/dae_stats/max_order1.fig | Bin 0 -> 11835 bytes .../daeExamples/dae_stats/maxstep_0.05.fig | Bin 0 -> 11145 bytes .../daeExamples/dae_stats/maxstep_0.08.fig | Bin 0 -> 11173 bytes .../daeExamples/dae_stats/maxstep_0.1.fig | Bin 0 -> 10839 bytes .../dae_stats/no_maxorder_no_maxstep.fig | Bin 0 -> 11701 bytes .../daeExamples/dae_stats/rejectedSteps.csv | 51 ++++++++ .../daeExamples/dae_stats/solver_stats.txt | 8 ++ .../daeExamples/dae_stats/solver_stats_1.txt | 8 ++ .../daeExamples/dae_stats/solver_stats_2.txt | 6 + .../daeExamples/dae_stats/solver_stats_3.txt | 6 + .../daeExamples/solveODEWithLogging.m | 110 ++++++++++++++++++ toolbox/examples/daeExamples/stepTracker.m | 14 +++ .../solving/extendODEuntilSwitch_t1_to_t2.m | 4 + 23 files changed, 592 insertions(+) create mode 100644 toolbox/examples/daeExamples/daeExampleRHS.m create mode 100644 toolbox/examples/daeExamples/daeExample_README.md create mode 100644 toolbox/examples/daeExamples/daeExample_main.m create mode 100644 toolbox/examples/daeExamples/dae_stats/MaxOrder_1.png create mode 100644 toolbox/examples/daeExamples/dae_stats/MaxStep_0.08.png create mode 100644 toolbox/examples/daeExamples/dae_stats/MaxStep_0.1.png create mode 100644 toolbox/examples/daeExamples/dae_stats/acceptedSteps.csv create mode 100644 toolbox/examples/daeExamples/dae_stats/allRHSCalls.csv create mode 100644 toolbox/examples/daeExamples/dae_stats/integrator_steps_ifdiff.txt create mode 100644 toolbox/examples/daeExamples/dae_stats/integrator_steps_ifdiff_1.txt create mode 100644 toolbox/examples/daeExamples/dae_stats/max_order1.fig create mode 100644 toolbox/examples/daeExamples/dae_stats/maxstep_0.05.fig create mode 100644 toolbox/examples/daeExamples/dae_stats/maxstep_0.08.fig create mode 100644 toolbox/examples/daeExamples/dae_stats/maxstep_0.1.fig create mode 100644 toolbox/examples/daeExamples/dae_stats/no_maxorder_no_maxstep.fig create mode 100644 toolbox/examples/daeExamples/dae_stats/rejectedSteps.csv create mode 100644 toolbox/examples/daeExamples/dae_stats/solver_stats.txt create mode 100644 toolbox/examples/daeExamples/dae_stats/solver_stats_1.txt create mode 100644 toolbox/examples/daeExamples/dae_stats/solver_stats_2.txt create mode 100644 toolbox/examples/daeExamples/dae_stats/solver_stats_3.txt create mode 100644 toolbox/examples/daeExamples/solveODEWithLogging.m create mode 100644 toolbox/examples/daeExamples/stepTracker.m diff --git a/toolbox/examples/daeExamples/daeExampleRHS.m b/toolbox/examples/daeExamples/daeExampleRHS.m new file mode 100644 index 00000000..9aa1cfdf --- /dev/null +++ b/toolbox/examples/daeExamples/daeExampleRHS.m @@ -0,0 +1,21 @@ +function f = daeExampleRHS(t, x, p) + + global TimeLog + global logEnabled + + if logEnabled % ifdiff::ignore + TimeLog = [TimeLog, t]; + end + + %% RHS + f = zeros(2,1); + % algebraic constraint + z = x(1) + x(2); + f(2) = z; + % differential variables + if x(2) < p + f(1) = x(2); + else + f(1) = 0; + end +end diff --git a/toolbox/examples/daeExamples/daeExample_README.md b/toolbox/examples/daeExamples/daeExample_README.md new file mode 100644 index 00000000..64ca2f26 --- /dev/null +++ b/toolbox/examples/daeExamples/daeExample_README.md @@ -0,0 +1,108 @@ + + + +# Switched DAE Example + +## Introduction + + +A **differential algebraic equation (DAE)** is a system that involves both differential equations and algebraic constraints. These systems may exhibit switching behavior, meaning the system dynamics change depending on certain conditions. +IFDIFF can solve such switched DAEs. + +Let's take a look at the following example for $t \in [0,n]$ where $n \in \mathbb{N}$ : + +$(D) \hspace{0.2cm} \begin{cases} \dot{x}_1 = f_1(x_2) = \begin{cases} x_2, \hspace{0.2cm} \text{if} \hspace{0.2cm} x_2 < p\\ 0 \hspace{0.2cm} \text{if} \hspace{0.2cm} x_2 \geq p \end{cases} \\ f_2(x) = x_1 + x_2 = 0 \\ x_0 = (1,-1)^T, p \in \mathbb{R} \end{cases}$ + + +## Analytical solution + +The DAE $(D)$ is of index 1 since the algebraic constraint can be differentiated once to achieve $x_1 + x_2 = 0 \Rightarrow \dot{x_1} + \dot{x_2} = 0 \iff \dot{x_2} = - \dot{x_1}$ which then gives us the ODE system: + +$(D_{\text{ODE}})$ $ \begin{cases} \dot{x}_1 = f_1(x_2) = \begin{cases} x_2, \hspace{0.2cm} \text{if} \hspace{0.2cm} x_2 < p\\ 0 \hspace{0.2cm} \text{if} \hspace{0.2cm} x_2 \geq p \end{cases} \\ f_2(x) = - \dot{x_1} = \begin{cases} -x_2 \hspace{0.2cm} \text{if} \hspace{0.2cm} x_2 < p\\ 0 \hspace{0.2cm} \text{if} \hspace{0.2cm} x_2 \geq p \end{cases} \\ x_0 = (1,-1)^T, p \in \mathbb{R} \end{cases} $ + +The system $(D_{\text{ODE}})$ will only exhibit switching behaviour at $p \in (-1,0)$ since: + +1. Let $ p \leq -1 $ : +At $t = 0 $ we have $x_2(0)= -1 \geq p$. Therefore $\dot{x}_2(t)=0$, meaning we stay in the second branch of $f_1$ and no switch occurs. + +2. Let $p \geq 0 $ : +At $ t = 0 $ we have $x_2(0)= -1 < p$.Therefore we only have $\dot{x_2} = - \dot{x_1} \Rightarrow x_1(t) = e^{-t}$ and $x_2(t) = -e^{-t} \hspace{0.2cm} \forall t \in I$. Since $-e^{-t} < 0 \leq p$, not switch occurs in this situation either. + +3. So, let $p \in (-1, 0)$: +In this situation the system starts in case 2, so exponential growth in the 1st and exponential decay in the 2nd component. +We now determine the switching point $t_s \in (0,2)$. The switching point satisfies $x_2(t_s)=p$, so $x_2(t_s)=p \iff -e^{-t_s} = p \iff t_s = -\text{ln}(-p) $. (Remember that $-p$ is positive!) + +We also notice from the formula $t_s = -\text{ln}(-p)$ that the switching point $t_s$ will be larger as $p$ gets smaller. This means, depending on the parameter, we need to choose a fitting time horizon $[0,n]$ + +## Solution with IFDIFF + +Numerically, an index 1 DAE system is not solved by converting it to an ODE system. instead, MATLAB offers the solver `ode15s` for solving DAEs which we will use IFDIFF with. + +### Step 1: Right Hand Side +We code the Right Hand Side (RHS) as follows. + +``` +function f = daeExampleRHS(~, x, p) +f = zeros(2,1); + +% algebraic constraint +z = x(1) + x(2); +f(2) = z; + +% differential variables +if x(2) < p + f(1) = x(2); +else + f(1) = 0; +end +``` + +### Step 2: Setup & Integration +For the main script, we first need to set up the initial value $x_0 = (1,-1)^T$ and a mass matrix $M$ such that the algebraic constant is set to 0 while the differential variables remain as coded in the RHS. +We now need to choose a parameter $ p \in (-1,0) $, e.g. $p = -0.5$ and a suitable time horizon, e.g. $[0,2]$. (You can choose any time horizon large enough to contain the switching point.). +At last for this step, we set up integrator options and the datahandle and then integrate using `solveODE`. To compare our solution with the solution by plain `ode15s`, we can call it with the same options as we set for IFDIFF. + +``` +integrator = @ode15s; +x0 = [1; -1]; +tspan = [0 5]; +M = [1 0; 0 0]; +p = -0.5; + +opts = odeset('Mass', M, 'MassSingular', 'yes', ... + 'AbsTol', 1e-6, 'RelTol', 1e-3) +datahandle = prepareDatahandleForIntegration('daeExampleRHS', ... + 'integrator', integrator, 'options', opts; +sol_ifdiff = solveODE(datahandle, tspan, x0, p); +sol_plain = integrator(@(t, x) daeExampleRHS(t, x, p), tspan, x0, opts_ode); +``` + +### Step 3: Visualising + +To look at our solution and compare them to the plain `ode15s` we can plot both in one plot as follows. + +``` +t = -2:0.0001:0; +fig = figure(123); +clf; +hold on +p1 = plot(sol_ifdiff.x, sol_ifdiff.y, 'ro'); +p2 = plot(sol_plain.x, sol_plain.y, 'b'); +legend([p1(1), p2(2)], {'IFDIFF','plain ode15s'}); +hold off +``` + +This gives us the following plot: + +% Plot fehlt noch + +## Sensitivities + +Analytically, the sensitivities of $(D)$ are computed by: + + +However, we can investigate the sensitivities with IFDIFF via +To further investigate this example go to `daeExample_main.m` and `daeExampleRHs.m` diff --git a/toolbox/examples/daeExamples/daeExample_main.m b/toolbox/examples/daeExamples/daeExample_main.m new file mode 100644 index 00000000..03a988ea --- /dev/null +++ b/toolbox/examples/daeExamples/daeExample_main.m @@ -0,0 +1,98 @@ +%% DAE Example Main +integrator = @ode15s; +x0 = [1; -1]; +tspan = [0 5]; +M = [1 0; 0 0]; +p = -0.3; + +global globalTimeLog +global logEnabled +logEnabled = true; + +opts_ifdiff = odeset('Mass', M, 'MassSingular', 'yes', 'AbsTol', 1e-10, ... + 'RelTol', 1e-6); +opts_ode = odeset('Mass', M, 'MassSingular', 'yes', 'AbsTol', 1e-10, ... + 'RelTol', 1e-6); + +datahandle = prepareDatahandleForIntegration('daeExampleRHS', 'integrator', integrator, 'options', opts_ifdiff); +sol_ifdiff= solveODEWithLogging(datahandle, tspan, x0, p); +sol_plain = integrator(@(t, x) daeExampleRHS(t, x, p), tspan, x0, opts_ode); +%diff(globalTimeLog) + + +%% Solver Statistics + +% Rejected steps + +function uniqueList = removeConsecutiveDuplicates(inputList) + uniqueList = inputList(1); + + for i = 2:length(inputList) + if inputList(i) ~= inputList(i - 1) + uniqueList = [uniqueList, inputList(i)]; + end + end +end + +%% Plots + +% DAE solution plot +fig1 = figure(01); +hold on +IFDIFF_plot_1 = plot(sol_ifdiff.x, sol_ifdiff.y, 'ro--', 'DisplayName', 'IFDIFF'); % 'ro--' +%Plain_plot_1 = plot(sol_plain.x, sol_plain.y, 'bx-', 'DisplayName', 'plain ode15s'); % 'bx-' +legend(); +hold off + +%% Visualization of Integrator Steps +%{ +fig2 = figure(02); +clf; +hold on; +% all RHS calls +allRHScalls_plot_1 = plot(allT, zeros(size(allT)), 'ko-', 'DisplayName', 'All RHS Calls'); +% Accepted steps +AcceptedSteps_plot_1 = plot(accT, -0.1*ones(size(accT)), 'go-', 'DisplayName', 'Accepted Steps'); +% Rejected steps +RejectedSteps_plot_1 = plot(rejT, 0.1*ones(size(rejT)), 'mo-', 'DisplayName', 'Rejected Steps'); + +xlabel('Time t'); +yticks([]); +title('Integrator Step Analysis'); +legend(); +hold off + +% Both in 1 Plot +fig3 = figure(03); +clf; +hold on + +IFDIFF_plot_2 = plot(sol_ifdiff.x, sol_ifdiff.y, 'ro--', 'DisplayName', 'IFDIFF'); % 'ro--' +%Plain_plot_2 = plot(sol_plain.x, sol_plain.y, 'bx-', 'DisplayName', 'plain ode15s'); % 'bx-' + +allRHSCalls_plot_2 = plot(allT, zeros(size(allT)), 'ko-', 'DisplayName', 'All RHS Calls'); +AcceptedSteps_plot_2 = plot(accT, -0.1*ones(size(accT)), 'go-', 'DisplayName', 'Accepted Steps'); +RejectedSteps_plot_2 = plot(rejT, 0.1*ones(size(rejT)), 'mo-', 'DisplayName', 'Rejected Steps'); + +xlabel('Time t'); +yticks([]); +title('Integrator Step Analysis'); +legend(); +hold off + +%} + +%disp(sol_ifdiff.switches); + +fig4 = figure(04); +clf; +hold on; +%timelog_diff = abs(diff(globalTimeLog)); +unique_globalTimeLog = removeConsecutiveDuplicates(globalTimeLog); +%disp(unique_globalTimeLog); +plot_1 = plot(unique_globalTimeLog, 'o-', 'DisplayName', 'globalTimeLog'); +xlabel('Integrator Steps'); +ylabel('Zeit'); +plot_switch = yline(sol_ifdiff.switches, 'rx-', 'LineWidth', 2.0, 'DisplayName', 'Switch'); +legend(); +hold off; \ No newline at end of file diff --git a/toolbox/examples/daeExamples/dae_stats/MaxOrder_1.png b/toolbox/examples/daeExamples/dae_stats/MaxOrder_1.png new file mode 100644 index 0000000000000000000000000000000000000000..0a96240cf8ecd7370e4cb6a6c55d5580501900f0 GIT binary patch literal 31214 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 literal 0 HcmV?d00001 diff --git a/toolbox/examples/daeExamples/dae_stats/MaxStep_0.08.png b/toolbox/examples/daeExamples/dae_stats/MaxStep_0.08.png new file mode 100644 index 0000000000000000000000000000000000000000..e38f86d401bae822f9f7843f6542497f74127cf7 GIT binary patch literal 35668 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 Xx%S|>Vd-iTW}cRi7mqn{@%DcM$#3(i literal 0 HcmV?d00001 diff --git a/toolbox/examples/daeExamples/dae_stats/acceptedSteps.csv b/toolbox/examples/daeExamples/dae_stats/acceptedSteps.csv new file mode 100644 index 00000000..5d330ed0 --- /dev/null +++ b/toolbox/examples/daeExamples/dae_stats/acceptedSteps.csv @@ -0,0 +1,19 @@ +1.5896054073814 +1.5896079073814 +1.5896104073814 +1.5896354073814 +1.5896604073814 +1.5896854073814 +1.5899354073814 +1.5901854073814 +1.5904354073814 +1.59241857891223 +1.59440175044307 +1.5963849219739 +1.59836809350474 +1.60035126503557 +1.6023344365664 +1.60431760809724 +1.60630077962807 +1.60828395115891 +1.60943462268974 diff --git a/toolbox/examples/daeExamples/dae_stats/allRHSCalls.csv b/toolbox/examples/daeExamples/dae_stats/allRHSCalls.csv new file mode 100644 index 00000000..3cf12451 --- /dev/null +++ b/toolbox/examples/daeExamples/dae_stats/allRHSCalls.csv @@ -0,0 +1,51 @@ +1.5896029073814 +1.70367415006303 +1.64663852872222 +1.61812071805181 +1.6038618127166 +1.61099126538421 +1.60742653905041 +1.60920890221731 +1.61010008380076 +1.60965449300903 +1.60943169761317 +1.6095430953111 +1.60948739646213 +1.60945954703765 +1.60944562232541 +1.60943865996929 +1.60943517879123 +1.6094334382022 +1.60943430849671 +1.60943474364397 +1.60943452607034 +1.60943463485716 +1.60943458046375 +1.60943460766045 +1.6094345940621 +1.60943458726293 +1.60943458386334 +1.60943458216354 +1.60943458301344 +1.60943458343839 +1.60943458322591 +1.60943458311968 +1.6094345831728 +1.60943458319936 +1.60943458321263 +1.60943458321927 +1.60943458321595 +1.60943458321429 +1.60943458321512 +1.60943458321554 +1.60943458321533 +1.60943458321523 +1.60943458321518 +1.60943458321515 +1.60943458321514 +1.60943458321514 +1.60943458321514 +1.60943458321514 +1.60943458321514 +1.60943458321514 +1.60943458321514 diff --git a/toolbox/examples/daeExamples/dae_stats/integrator_steps_ifdiff.txt b/toolbox/examples/daeExamples/dae_stats/integrator_steps_ifdiff.txt new file mode 100644 index 00000000..13ace999 --- /dev/null +++ b/toolbox/examples/daeExamples/dae_stats/integrator_steps_ifdiff.txt @@ -0,0 +1,31 @@ +Time Steps, Sol Vals 1st component, Difference of (i+1)th and ith step of 1st component +--------------------------------- +-2.000000 1.000000 -0.002495 +-1.997500 0.997505 -0.002489 +-1.995000 0.995017 -0.002482 +-1.992500 0.992534 -0.024302 +-1.967500 0.968232 -0.023720 +-1.942500 0.944511 -0.023141 +-1.917500 0.921370 -0.184716 +-1.694490 0.736654 -0.001278 +-1.692753 0.735377 -0.001276 +-1.691016 0.734101 -0.001273 +-1.689279 0.732828 -0.003979 +-1.683824 0.728849 -0.003958 +-1.678370 0.724891 -0.003936 +-1.672916 0.720955 -0.003919 +-1.667462 0.717036 -0.003900 +-1.662007 0.713136 -0.003879 +-1.656553 0.709257 -0.003858 +-1.651099 0.705399 -0.003837 +-1.645644 0.701562 -0.003986 +-1.639947 0.697576 0.000000 +-1.275952 0.697576 0.000000 +-0.911958 0.697576 0.000000 +-0.547963 0.697576 0.000000 +-0.183968 0.697576 0.000000 +0.180027 0.697576 0.000000 +0.544021 0.697576 0.000000 +0.908016 0.697576 0.000000 +1.272011 0.697576 0.000000 +1.636005 0.697576 0.000000 diff --git a/toolbox/examples/daeExamples/dae_stats/integrator_steps_ifdiff_1.txt b/toolbox/examples/daeExamples/dae_stats/integrator_steps_ifdiff_1.txt new file mode 100644 index 00000000..b2efb3c3 --- /dev/null +++ b/toolbox/examples/daeExamples/dae_stats/integrator_steps_ifdiff_1.txt @@ -0,0 +1,57 @@ +Time Steps, Sol Vals 1st comp, Diff of (i+1)th and ith step of 1st comp. +--------------------------------0.000000 1.000000 +-0.000002 0.000002 0.999998 +-0.000002 0.000005 0.999995 +-0.000002 0.000007 0.999993 +-0.000024 0.000032 0.999968 +-0.000024 0.000056 0.999944 +-0.000024 0.000081 0.999919 +-0.000244 0.000325 0.999675 +-0.000244 0.000569 0.999431 +-0.000244 0.000813 0.999187 +-0.002436 0.003254 0.996751 +-0.002430 0.005696 0.994321 +-0.002425 0.008137 0.991896 +-0.002419 0.010579 0.989477 +-0.023867 0.034993 0.965611 +-0.015775 0.051463 0.949836 +-0.015517 0.067934 0.934319 +-0.015263 0.084404 0.919056 +-0.015014 0.100874 0.904042 +-0.030919 0.135673 0.873123 +-0.029861 0.170471 0.843263 +-0.028839 0.205269 0.814424 +-0.027853 0.240067 0.786571 +-0.026900 0.274866 0.759670 +-0.043687 0.334093 0.715984 +-0.000002 0.334096 0.715982 +-0.000002 0.334098 0.715980 +-0.000002 0.334101 0.715978 +-0.000018 0.334126 0.715960 +-0.000018 0.334151 0.715942 +-0.000018 0.334176 0.715924 +-0.000179 0.334426 0.715746 +-0.000179 0.334676 0.715567 +-0.000179 0.334926 0.715388 +-0.001613 0.337183 0.713774 +-0.001610 0.339441 0.712165 +-0.001606 0.341699 0.710559 +-0.001602 0.343957 0.708956 +-0.001599 0.346214 0.707357 +-0.001595 0.348472 0.705762 +-0.001592 0.350730 0.704170 +-0.001588 0.352988 0.702582 +-0.001584 0.355245 0.700998 +-0.000998 0.356671 0.699999 +0.000000 0.521004 0.699999 +0.000000 0.685337 0.699999 +0.000000 0.849670 0.699999 +0.000000 1.014002 0.699999 +0.000000 1.178335 0.699999 +0.000000 1.342668 0.699999 +0.000000 1.507001 0.699999 +0.000000 1.671334 0.699999 +0.000000 1.835667 0.699999 +0.000000 .699999 +0.000000 0.000000 +1.835667 0.699999 0.000000 diff --git a/toolbox/examples/daeExamples/dae_stats/max_order1.fig b/toolbox/examples/daeExamples/dae_stats/max_order1.fig new file mode 100644 index 0000000000000000000000000000000000000000..60679136b75e3379fa8421bb5abf66aca28eb15d GIT binary patch literal 11835 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 literal 0 HcmV?d00001 diff --git a/toolbox/examples/daeExamples/dae_stats/maxstep_0.05.fig b/toolbox/examples/daeExamples/dae_stats/maxstep_0.05.fig new file mode 100644 index 0000000000000000000000000000000000000000..df61334170a74560390da6da9fc4aebf7f21d2b8 GIT binary patch literal 11145 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 literal 0 HcmV?d00001 diff --git a/toolbox/examples/daeExamples/dae_stats/maxstep_0.1.fig b/toolbox/examples/daeExamples/dae_stats/maxstep_0.1.fig new file mode 100644 index 0000000000000000000000000000000000000000..ca4bd14869dc587835ec5f79beb78533400148d8 GIT binary patch literal 10839 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 literal 0 HcmV?d00001 diff --git a/toolbox/examples/daeExamples/dae_stats/no_maxorder_no_maxstep.fig b/toolbox/examples/daeExamples/dae_stats/no_maxorder_no_maxstep.fig new file mode 100644 index 0000000000000000000000000000000000000000..7d9c68941c29cbbcbcbac39cbe044513c76bac36 GIT binary patch literal 11701 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 Ikt5`P0avGNivR!s literal 0 HcmV?d00001 diff --git a/toolbox/examples/daeExamples/dae_stats/rejectedSteps.csv b/toolbox/examples/daeExamples/dae_stats/rejectedSteps.csv new file mode 100644 index 00000000..3cf12451 --- /dev/null +++ b/toolbox/examples/daeExamples/dae_stats/rejectedSteps.csv @@ -0,0 +1,51 @@ +1.5896029073814 +1.70367415006303 +1.64663852872222 +1.61812071805181 +1.6038618127166 +1.61099126538421 +1.60742653905041 +1.60920890221731 +1.61010008380076 +1.60965449300903 +1.60943169761317 +1.6095430953111 +1.60948739646213 +1.60945954703765 +1.60944562232541 +1.60943865996929 +1.60943517879123 +1.6094334382022 +1.60943430849671 +1.60943474364397 +1.60943452607034 +1.60943463485716 +1.60943458046375 +1.60943460766045 +1.6094345940621 +1.60943458726293 +1.60943458386334 +1.60943458216354 +1.60943458301344 +1.60943458343839 +1.60943458322591 +1.60943458311968 +1.6094345831728 +1.60943458319936 +1.60943458321263 +1.60943458321927 +1.60943458321595 +1.60943458321429 +1.60943458321512 +1.60943458321554 +1.60943458321533 +1.60943458321523 +1.60943458321518 +1.60943458321515 +1.60943458321514 +1.60943458321514 +1.60943458321514 +1.60943458321514 +1.60943458321514 +1.60943458321514 +1.60943458321514 diff --git a/toolbox/examples/daeExamples/dae_stats/solver_stats.txt b/toolbox/examples/daeExamples/dae_stats/solver_stats.txt new file mode 100644 index 00000000..9a371b36 --- /dev/null +++ b/toolbox/examples/daeExamples/dae_stats/solver_stats.txt @@ -0,0 +1,8 @@ +Solver Statistics for DAE example +Parameter: -2.000000e-01 +Total number of steps: 69 +Successful steps: 63 +Rejected steps: 6 +Total of function evaluations 131 + +% MaxStep 0.05 \ No newline at end of file diff --git a/toolbox/examples/daeExamples/dae_stats/solver_stats_1.txt b/toolbox/examples/daeExamples/dae_stats/solver_stats_1.txt new file mode 100644 index 00000000..1d04cf81 --- /dev/null +++ b/toolbox/examples/daeExamples/dae_stats/solver_stats_1.txt @@ -0,0 +1,8 @@ +Solver Statistics for DAE example +Parameter: -2.000000e-01 +Total number of steps: 42 +Successful steps: 35 +Rejected steps: 7 +Total of function evaluations: 93 + +% MaxStep 0.1 \ No newline at end of file diff --git a/toolbox/examples/daeExamples/dae_stats/solver_stats_2.txt b/toolbox/examples/daeExamples/dae_stats/solver_stats_2.txt new file mode 100644 index 00000000..559f9293 --- /dev/null +++ b/toolbox/examples/daeExamples/dae_stats/solver_stats_2.txt @@ -0,0 +1,6 @@ +Solver Statistics for DAE example +Parameter: -2.000000e-01 +Total number of steps: 60 +Successful steps: 54 +Rejected steps: 6 +Total of function evaluations: 131 diff --git a/toolbox/examples/daeExamples/dae_stats/solver_stats_3.txt b/toolbox/examples/daeExamples/dae_stats/solver_stats_3.txt new file mode 100644 index 00000000..fa162d80 --- /dev/null +++ b/toolbox/examples/daeExamples/dae_stats/solver_stats_3.txt @@ -0,0 +1,6 @@ +Solver Statistics for DAE example +Parameter: -5.000000e-01 +Total number of steps: 41 +Successful steps: 34 +Rejected steps: 7 +Total of function evaluations: 82 diff --git a/toolbox/examples/daeExamples/solveODEWithLogging.m b/toolbox/examples/daeExamples/solveODEWithLogging.m new file mode 100644 index 00000000..1769d734 --- /dev/null +++ b/toolbox/examples/daeExamples/solveODEWithLogging.m @@ -0,0 +1,110 @@ +function varargout = solveODEWithLogging(datahandle, tspan, initialvalues, parameters) +% Integrate the preprocessed RHS with switching point detection. +% On detecting a SWP (marked by one or more ctrlifs changing value in a time step (t_i -> t_{i+1})), stop +% integration, find the exact switching point t_s. Then, extend the solution to just slightly past t_s and +% restart integration with the new model, checking for SWPs again. +% Notation: when a SWP t_s is found in the time step (t_i -> t_{i+1}), we write t1 := t_i, t2 := t_s, t3 := t_{i+1}. +% +% INPUT: +% 'datahandle': data handle containing all the data +% for the switching point detection (calulated by +% prepareDatahandleForIntegration) +% 'tspan': time interval of the integration +% 'initialvalues, parameters': initial values and parameters of the rhs +% +% OUTPUT: +% nargout = 1 -> ode solution object +% nargout = 2 -> ode solution object and datahandle with all data. + +config = makeConfig; +initDatahandleFields(datahandle, tspan, initialvalues, parameters); + + +% Step loggers +global TimeLog +global globalTimeLog +global logEnabled + +if logEnabled + TimeLog = []; +end + +%logEnabled = false; only after switch +solveODE_firstTime(datahandle) +if logEnabled + globalTimeLog = TimeLog; +end +switch_detected = checkForSwitchingIndices(datahandle); + +% Prepare class instances for switching/jump/model functions. +solveODE_setupFunctionStores(datahandle); + +while switch_detected + % cut last step in solution_until_t3 and it becomes solution_until_t1 + %sectionTimeLog = TimeLog; + if logEnabled + TimeLog = []; + end + solveODE_solution_until_t1(datahandle) + if logEnabled + globalTimeLog = [globalTimeLog, TimeLog]; + end + solveODE_getSwitchingFunctions(datahandle); + + solveODE_computeSwitchingPoint(datahandle); + + %logEnabled = false; + extendODEuntilSwitch(datahandle); + + % Determine state jump, if any + jumpCtrlifIndices = solveODE_getJumpIndices(datahandle); + data = datahandle.getData(); + if length(jumpCtrlifIndices) > 1 + error('Multiple jumps apply to the switch at t=%.16g\n', data.SWP_detection.switchingpoints{end}); + elseif isempty(jumpCtrlifIndices) + data.SWP_detection.jumpFunction{end + 1} = []; + datahandle.setData(data); + else + data.SWP_detection.jumpFunction{end + 1} = solveODE_getJumpFunction(datahandle, jumpCtrlifIndices); + datahandle.setData(data); + end + + % Set the starting value and signature for the next stage + solveODE_prepareNextStage(datahandle); + + % chattering/inconsistent switching? --> filippov regime + chattering = solveODE_recognizeFilippovSwitching(datahandle); + if chattering + solveODE_setFilippovRHS(datahandle); + % extend solution from t2 until end of filippov regime + extendODE_filippov_regime(datahandle); + if checkForSwitchingIndices(datahandle) + error('IFDIFF:switchInFilippov', 'Switching during or right after Filippov mode.'); + end + if datahandle.getData().SWP_detection.t2 == tspan(2) + break; % reached end of time span + else + if config.debugMode + fprintf('Left Filippov regime.\n'); + end + solveODE_prepareNextStage(datahandle); + end + end + + % extend solution object from t2 ongoing until the next switch occurs + logEnabled = true; + % logenabled = false % when set to true only tracks steps before switch + if logEnabled + TimeLog = []; + end + extendODE_t2_to_tend_with_SWP_detection(datahandle); + if logEnabled + globalTimeLog = [globalTimeLog, TimeLog]; + end + + switch_detected = checkForSwitchingIndices(datahandle); +end + +varargout = solveODE_assembleOutput(datahandle, nargout); + +end \ No newline at end of file diff --git a/toolbox/examples/daeExamples/stepTracker.m b/toolbox/examples/daeExamples/stepTracker.m new file mode 100644 index 00000000..38f82532 --- /dev/null +++ b/toolbox/examples/daeExamples/stepTracker.m @@ -0,0 +1,14 @@ +function status = stepTracker(t, y, flag) + persistent acceptedT + + if strcmp(flag,'init') + acceptedT = []; + elseif isempty(flag) + acceptedT(end+1,1) = t; + elseif strcmp(flag,'done') + assignin('base','AcceptedSteps',acceptedT); + end + + status = 0; +end + diff --git a/toolbox/internal/solving/extendODEuntilSwitch_t1_to_t2.m b/toolbox/internal/solving/extendODEuntilSwitch_t1_to_t2.m index f6fe78b3..3a0ea209 100644 --- a/toolbox/internal/solving/extendODEuntilSwitch_t1_to_t2.m +++ b/toolbox/internal/solving/extendODEuntilSwitch_t1_to_t2.m @@ -11,7 +11,11 @@ function extendODEuntilSwitch_t1_to_t2(datahandle) solution = data.SWP_detection.solution_until_t1; end_point = data.SWP_detection.t2; + +% test with odeset +data.integratorSettings.options.InitialStep = 0.01; %% step formula options = data.integratorSettings.options; +disp(options); ctrlif_setForcedBranchingSignature(datahandle, t, x); data = datahandle.getData(); From 58afedb65d49ab5de7859dcb608d7c3ef030d87d Mon Sep 17 00:00:00 2001 From: pilar Date: Thu, 4 Dec 2025 22:37:08 +0100 Subject: [PATCH 02/10] Implementation of formula of new initial step fo 2nd integration, updates on daeExample_README.md --- .../examples/daeExamples/daeExample_README.md | 50 +++++++++++------- .../examples/daeExamples/daeExample_main.m | 19 ++++--- toolbox/examples/daeExamples/plot1.png | Bin 0 -> 25730 bytes toolbox/examples/daeExamples/plot1_close.png | Bin 0 -> 21744 bytes .../switching_point_ifdiff_plain.fig | Bin 0 -> 11756 bytes .../internal/solving/extendODEuntilSwitch.m | 4 ++ .../solving/extendODEuntilSwitch_t1_to_t2.m | 22 +++++--- 7 files changed, 63 insertions(+), 32 deletions(-) create mode 100644 toolbox/examples/daeExamples/plot1.png create mode 100644 toolbox/examples/daeExamples/plot1_close.png create mode 100644 toolbox/examples/daeExamples/switching_point_ifdiff_plain.fig diff --git a/toolbox/examples/daeExamples/daeExample_README.md b/toolbox/examples/daeExamples/daeExample_README.md index 64ca2f26..f656f118 100644 --- a/toolbox/examples/daeExamples/daeExample_README.md +++ b/toolbox/examples/daeExamples/daeExample_README.md @@ -12,21 +12,21 @@ A **differential algebraic equation (DAE)** is a system that involves both differential equations and algebraic constraints. These systems may exhibit switching behavior, meaning the system dynamics change depending on certain conditions. IFDIFF can solve such switched DAEs. -Let's take a look at the following example for $t \in [0,n]$ where $n \in \mathbb{N}$ : - -$(D) \hspace{0.2cm} \begin{cases} \dot{x}_1 = f_1(x_2) = \begin{cases} x_2, \hspace{0.2cm} \text{if} \hspace{0.2cm} x_2 < p\\ 0 \hspace{0.2cm} \text{if} \hspace{0.2cm} x_2 \geq p \end{cases} \\ f_2(x) = x_1 + x_2 = 0 \\ x_0 = (1,-1)^T, p \in \mathbb{R} \end{cases}$ +Let's take a look at the following example for $t \in [0,n]$ where $n \in \mathbb{N}$: +$(D) \quad \begin{cases} \dot{x}_ 1 = f_1(x_2) = \begin{cases} x_2, \quad \text{if} \quad x_2 < p \\ 0 \quad \text{if} \quad x_2 \geq p \end{cases} \\ f_2(x) = x_1 + x_2 = 0 \\ x_0 = (1,-1)^T, p \in \mathbb{R} \end{cases}$ + ## Analytical solution The DAE $(D)$ is of index 1 since the algebraic constraint can be differentiated once to achieve $x_1 + x_2 = 0 \Rightarrow \dot{x_1} + \dot{x_2} = 0 \iff \dot{x_2} = - \dot{x_1}$ which then gives us the ODE system: -$(D_{\text{ODE}})$ $ \begin{cases} \dot{x}_1 = f_1(x_2) = \begin{cases} x_2, \hspace{0.2cm} \text{if} \hspace{0.2cm} x_2 < p\\ 0 \hspace{0.2cm} \text{if} \hspace{0.2cm} x_2 \geq p \end{cases} \\ f_2(x) = - \dot{x_1} = \begin{cases} -x_2 \hspace{0.2cm} \text{if} \hspace{0.2cm} x_2 < p\\ 0 \hspace{0.2cm} \text{if} \hspace{0.2cm} x_2 \geq p \end{cases} \\ x_0 = (1,-1)^T, p \in \mathbb{R} \end{cases} $ +$(D_{\text{ODE}})$ $\begin{cases} \dot{x}_ 1 = f_1(x_2) = \begin{cases} x_2, \quad \text{if} \hspace{0.2cm} x_2 < p\\ 0 \hspace{0.2cm} \text{if} \quad x_2 \geq p \end{cases} \\ f_2(x) = - \dot{x_1} = \begin{cases} -x_2 \quad \text{if} \quad x_2 < p\\ 0 \quad \text{if} \quad x_2 \geq p \end{cases} \\ x_0 = (1,-1)^T, p \in \mathbb{R} \end{cases}$ The system $(D_{\text{ODE}})$ will only exhibit switching behaviour at $p \in (-1,0)$ since: 1. Let $ p \leq -1 $ : -At $t = 0 $ we have $x_2(0)= -1 \geq p$. Therefore $\dot{x}_2(t)=0$, meaning we stay in the second branch of $f_1$ and no switch occurs. +At $ t = 0 $ we have $x_2(0)= -1 \geq p$. Therefore $\dot{x}_ 2(t)=0$, meaning we stay in the second branch of $f_1$ and no switch occurs. 2. Let $p \geq 0 $ : At $ t = 0 $ we have $x_2(0)= -1 < p$.Therefore we only have $\dot{x_2} = - \dot{x_1} \Rightarrow x_1(t) = e^{-t}$ and $x_2(t) = -e^{-t} \hspace{0.2cm} \forall t \in I$. Since $-e^{-t} < 0 \leq p$, not switch occurs in this situation either. @@ -39,7 +39,7 @@ We also notice from the formula $t_s = -\text{ln}(-p)$ that the switching point ## Solution with IFDIFF -Numerically, an index 1 DAE system is not solved by converting it to an ODE system. instead, MATLAB offers the solver `ode15s` for solving DAEs which we will use IFDIFF with. +Numerically, an index 1 DAE system is not solved by converting it to an ODE system. Instead, MATLAB offers the solver `ode15s` for solving DAEs which we will use IFDIFF with. ### Step 1: Right Hand Side We code the Right Hand Side (RHS) as follows. @@ -62,7 +62,7 @@ end ### Step 2: Setup & Integration For the main script, we first need to set up the initial value $x_0 = (1,-1)^T$ and a mass matrix $M$ such that the algebraic constant is set to 0 while the differential variables remain as coded in the RHS. -We now need to choose a parameter $ p \in (-1,0) $, e.g. $p = -0.5$ and a suitable time horizon, e.g. $[0,2]$. (You can choose any time horizon large enough to contain the switching point.). +We now need to choose a parameter $ p \in (-1,0) $, e.g. $p = -0.2$ and a suitable time horizon, e.g. $[0,2]$. (You can choose any time horizon large enough to contain the switching point.). At last for this step, we set up integrator options and the datahandle and then integrate using `solveODE`. To compare our solution with the solution by plain `ode15s`, we can call it with the same options as we set for IFDIFF. ``` @@ -70,7 +70,7 @@ integrator = @ode15s; x0 = [1; -1]; tspan = [0 5]; M = [1 0; 0 0]; -p = -0.5; +p = -0.2; opts = odeset('Mass', M, 'MassSingular', 'yes', ... 'AbsTol', 1e-6, 'RelTol', 1e-3) @@ -82,27 +82,41 @@ sol_plain = integrator(@(t, x) daeExampleRHS(t, x, p), tspan, x0, opts_ode); ### Step 3: Visualising -To look at our solution and compare them to the plain `ode15s` we can plot both in one plot as follows. +To look at our solution and compare them to the plain `ode15s` we can plot both in one plot as follows. Optionally ``` -t = -2:0.0001:0; -fig = figure(123); -clf; +fig1 = figure(01); hold on -p1 = plot(sol_ifdiff.x, sol_ifdiff.y, 'ro'); -p2 = plot(sol_plain.x, sol_plain.y, 'b'); -legend([p1(1), p2(2)], {'IFDIFF','plain ode15s'}); +IFDIFF_plot_1 = plot(sol_ifdiff.x, sol_ifdiff.y, 'ro--', 'DisplayName', 'IFDIFF'); +Plain_plot_1 = plot(sol_plain.x, sol_plain.y, 'ko-', 'DisplayName', 'plain ode15s'); +Switch_plot = xline(sol_ifdiff.switches, 'g', 'LineWidth', 1.0, 'DisplayName', 'Switch'); +legend([Plain_plot_1(1), IFDIFF_plot_1(1), Switch_plot]); hold off ``` This gives us the following plot: -% Plot fehlt noch +![](plot1.png) + +When we take a closer look, we see, that the integration with IFDIFF is accurate around the switch. +![](plot1_close.png) ## Sensitivities -Analytically, the sensitivities of $(D)$ are computed by: +Analytically, the sensitivities with respect to the parameter $p$ of the DAE $(D)$ are computed by + +$ \frac{d t_s}{d p} = \frac{d}{d p} \left( - \ln (-p) \right) = \frac{1}{p} $ + +where $t_s$ is the switching point. + +Looking at a small initial perturbation $\tilde{x}_ 2(t) = - e^{-t} + \varepsilon x_2(0)$ of $x_2$ for an $\varepsilon > 0$ small enough, we get the perturbation $\tilde{t}_ s$ of the original switching point $t_s$ + + +$ \tilde{x}_ 2(t_s) = - e^{-t_s} + \varepsilon x_2(0) = p \Leftrightarrow \tilde{t}_ s = -\ln(-p - \varepsilon x_2(0)) $ + +Then we see: + +$ \frac{d \tilde{t}_ s}{d x_2(0)} = \frac{d}{d x_2(0)} \left( - \ln (-p- \varepsilon x_2(0)) \right) = \frac{1}{-p - \varepsilon x_2(0)} = \frac{1}{-p + \varepsilon} = \frac{1}{\varepsilon - p} $. -However, we can investigate the sensitivities with IFDIFF via To further investigate this example go to `daeExample_main.m` and `daeExampleRHs.m` diff --git a/toolbox/examples/daeExamples/daeExample_main.m b/toolbox/examples/daeExamples/daeExample_main.m index 03a988ea..4722d3a5 100644 --- a/toolbox/examples/daeExamples/daeExample_main.m +++ b/toolbox/examples/daeExamples/daeExample_main.m @@ -3,7 +3,7 @@ x0 = [1; -1]; tspan = [0 5]; M = [1 0; 0 0]; -p = -0.3; +p = -0.2; global globalTimeLog global logEnabled @@ -24,6 +24,7 @@ % Rejected steps +%{ function uniqueList = removeConsecutiveDuplicates(inputList) uniqueList = inputList(1); @@ -33,15 +34,17 @@ end end end +%} %% Plots % DAE solution plot fig1 = figure(01); hold on -IFDIFF_plot_1 = plot(sol_ifdiff.x, sol_ifdiff.y, 'ro--', 'DisplayName', 'IFDIFF'); % 'ro--' -%Plain_plot_1 = plot(sol_plain.x, sol_plain.y, 'bx-', 'DisplayName', 'plain ode15s'); % 'bx-' -legend(); +IFDIFF_plot_1 = plot(sol_ifdiff.x, sol_ifdiff.y, 'ro--', 'DisplayName', 'IFDIFF'); +Plain_plot_1 = plot(sol_plain.x, sol_plain.y, 'ko-', 'DisplayName', 'plain ode15s'); +Switch_plot = xline(sol_ifdiff.switches, 'g', 'LineWidth', 1.0, 'DisplayName', 'Switch'); +legend([Plain_plot_1(1), IFDIFF_plot_1(1), Switch_plot]); hold off %% Visualization of Integrator Steps @@ -84,15 +87,17 @@ %disp(sol_ifdiff.switches); +%{ fig4 = figure(04); clf; hold on; %timelog_diff = abs(diff(globalTimeLog)); -unique_globalTimeLog = removeConsecutiveDuplicates(globalTimeLog); +%unique_globalTimeLog = removeConsecutiveDuplicates(globalTimeLog); %disp(unique_globalTimeLog); -plot_1 = plot(unique_globalTimeLog, 'o-', 'DisplayName', 'globalTimeLog'); +plot_1 = plot(globalTimeLog, 'o-', 'DisplayName', 'globalTimeLog'); xlabel('Integrator Steps'); ylabel('Zeit'); plot_switch = yline(sol_ifdiff.switches, 'rx-', 'LineWidth', 2.0, 'DisplayName', 'Switch'); legend(); -hold off; \ No newline at end of file +hold off; +%} \ No newline at end of file diff --git a/toolbox/examples/daeExamples/plot1.png b/toolbox/examples/daeExamples/plot1.png new file mode 100644 index 0000000000000000000000000000000000000000..e88b5970472c2e32cb2afcb6c6333b91399be973 GIT binary patch literal 25730 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 NpQ(jOfw5EAzX8!WGj;#~ literal 0 HcmV?d00001 diff --git a/toolbox/examples/daeExamples/plot1_close.png b/toolbox/examples/daeExamples/plot1_close.png new file mode 100644 index 0000000000000000000000000000000000000000..fa5aa7bb35cf9ddd1f353f28a3c32554012d2d6c GIT binary patch literal 21744 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 XJLQG5={WIibW<70>k^r`JCFVsF^PU; literal 0 HcmV?d00001 diff --git a/toolbox/examples/daeExamples/switching_point_ifdiff_plain.fig b/toolbox/examples/daeExamples/switching_point_ifdiff_plain.fig new file mode 100644 index 0000000000000000000000000000000000000000..9ad10f39adbf6685b5a586f05f31fc14c46be308 GIT binary patch literal 11756 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 literal 0 HcmV?d00001 diff --git a/toolbox/internal/solving/extendODEuntilSwitch.m b/toolbox/internal/solving/extendODEuntilSwitch.m index 28d96be0..4fc986d7 100644 --- a/toolbox/internal/solving/extendODEuntilSwitch.m +++ b/toolbox/internal/solving/extendODEuntilSwitch.m @@ -35,6 +35,9 @@ function extendODEuntilSwitch(datahandle) t2FromRootFinding = data.SWP_detection.t2; baseOffset = 16*eps(data.SWP_detection.t2); iter = 0; + +%disp(config.switchingPointErrorThreshold) + while isempty(switchingIndices) data = datahandle.getData(); @@ -51,6 +54,7 @@ function extendODEuntilSwitch(datahandle) % We can not start integrating from the old t2 because this would result in integration over a tiny % interval whose result would vanish due to limited floating point accuracy. data.SWP_detection.t2 = data.SWP_detection.t2 + baseOffset * 10^min(iter, config.switchingPointMaxPower); + datahandle.setData(data); % Check if there is a new signature. diff --git a/toolbox/internal/solving/extendODEuntilSwitch_t1_to_t2.m b/toolbox/internal/solving/extendODEuntilSwitch_t1_to_t2.m index 3a0ea209..95857bd4 100644 --- a/toolbox/internal/solving/extendODEuntilSwitch_t1_to_t2.m +++ b/toolbox/internal/solving/extendODEuntilSwitch_t1_to_t2.m @@ -6,18 +6,26 @@ function extendODEuntilSwitch_t1_to_t2(datahandle) config = makeConfig(); data = datahandle.getData(); -t = data.SWP_detection.solution_until_t1.x(end); -x = deval(data.SWP_detection.solution_until_t1, data.SWP_detection.solution_until_t1.x(end)); + +% Last integrator step before switch +ti = data.SWP_detection.solution_until_t1.x(end); +% Solution at the last time point before switch +x = deval(data.SWP_detection.solution_until_t1, ti); solution = data.SWP_detection.solution_until_t1; end_point = data.SWP_detection.t2; -% test with odeset -data.integratorSettings.options.InitialStep = 0.01; %% step formula -options = data.integratorSettings.options; -disp(options); +delta_t = end_point - ti; + +% options = odeset('InitialStep', 0.000001, 'RelTol', 1, 'AbsTol', 1); +data.integratorSettings.options.InitialStep = delta_t; +data.integratorSettings.options.RelTol = 1; +data.integratorSettings.options.RelTol = 1; +data.integratorSettings.options.MinStep = data.integratorSettings.options.MaxStep; +options = data.integratorSettings.options; +disp(options) -ctrlif_setForcedBranchingSignature(datahandle, t, x); +ctrlif_setForcedBranchingSignature(datahandle, ti, x); data = datahandle.getData(); data.caseCtrlif = config.caseCtrlif.extendODEuntilSwitch; datahandle.setData(data); From 0b5f42297c55093f2b12fdf7eb5b991dca69a56f Mon Sep 17 00:00:00 2001 From: Pilar Keller Date: Mon, 1 Dec 2025 16:13:11 +0100 Subject: [PATCH 03/10] Update README.md ( func2str) changed func2str(integrator) to integrator since func2str is not necessary anymore --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d0ee00e5..1c7f27d6 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ We set ODE solver and its options as usual. If not set, default values are used. initIFDIFF(); % Initialise the paths for ifdiff -- needed only once per Matlab session integrator = @ode45; odeoptions = odeset('AbsTol', 1e-14, 'RelTol', 1e-12); - datahandle = prepareDatahandleForIntegration('canonicalExampleRHS', 'integrator', func2str(integrator), 'options', odeoptions); + datahandle = prepareDatahandleForIntegration('canonicalExampleRHS', 'integrator', integrator, 'options', odeoptions); ``` From 1ea277c91b7826aa6d56a1a30a438345a7c219e3 Mon Sep 17 00:00:00 2001 From: pilar Date: Tue, 16 Dec 2025 11:18:02 +0100 Subject: [PATCH 04/10] updates on DAE Examples --- .../examples/daeExamples/daeExample_main.m | 20 +----------------- .../examples/daeExamples/plot1_close_2.png | Bin 0 -> 42880 bytes .../solving/extendODEuntilSwitch_t1_to_t2.m | 9 ++++---- 3 files changed, 5 insertions(+), 24 deletions(-) create mode 100644 toolbox/examples/daeExamples/plot1_close_2.png diff --git a/toolbox/examples/daeExamples/daeExample_main.m b/toolbox/examples/daeExamples/daeExample_main.m index 4722d3a5..94964349 100644 --- a/toolbox/examples/daeExamples/daeExample_main.m +++ b/toolbox/examples/daeExamples/daeExample_main.m @@ -3,7 +3,7 @@ x0 = [1; -1]; tspan = [0 5]; M = [1 0; 0 0]; -p = -0.2; +p = -0.3; global globalTimeLog global logEnabled @@ -17,24 +17,6 @@ datahandle = prepareDatahandleForIntegration('daeExampleRHS', 'integrator', integrator, 'options', opts_ifdiff); sol_ifdiff= solveODEWithLogging(datahandle, tspan, x0, p); sol_plain = integrator(@(t, x) daeExampleRHS(t, x, p), tspan, x0, opts_ode); -%diff(globalTimeLog) - - -%% Solver Statistics - -% Rejected steps - -%{ -function uniqueList = removeConsecutiveDuplicates(inputList) - uniqueList = inputList(1); - - for i = 2:length(inputList) - if inputList(i) ~= inputList(i - 1) - uniqueList = [uniqueList, inputList(i)]; - end - end -end -%} %% Plots diff --git a/toolbox/examples/daeExamples/plot1_close_2.png b/toolbox/examples/daeExamples/plot1_close_2.png new file mode 100644 index 0000000000000000000000000000000000000000..88c2ec7eb596e689798964b77a0f2a2a4c297b83 GIT binary patch literal 42880 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 literal 0 HcmV?d00001 diff --git a/toolbox/internal/solving/extendODEuntilSwitch_t1_to_t2.m b/toolbox/internal/solving/extendODEuntilSwitch_t1_to_t2.m index 95857bd4..eff4cae1 100644 --- a/toolbox/internal/solving/extendODEuntilSwitch_t1_to_t2.m +++ b/toolbox/internal/solving/extendODEuntilSwitch_t1_to_t2.m @@ -7,9 +7,9 @@ function extendODEuntilSwitch_t1_to_t2(datahandle) data = datahandle.getData(); -% Last integrator step before switch +% last integrator step before switch ti = data.SWP_detection.solution_until_t1.x(end); -% Solution at the last time point before switch +% solution at the last time point before switch x = deval(data.SWP_detection.solution_until_t1, ti); solution = data.SWP_detection.solution_until_t1; @@ -17,11 +17,9 @@ function extendODEuntilSwitch_t1_to_t2(datahandle) delta_t = end_point - ti; -% options = odeset('InitialStep', 0.000001, 'RelTol', 1, 'AbsTol', 1); data.integratorSettings.options.InitialStep = delta_t; +data.integratorSettings.options.AbsTol = 1; data.integratorSettings.options.RelTol = 1; -data.integratorSettings.options.RelTol = 1; -data.integratorSettings.options.MinStep = data.integratorSettings.options.MaxStep; options = data.integratorSettings.options; disp(options) @@ -32,6 +30,7 @@ function extendODEuntilSwitch_t1_to_t2(datahandle) z = odextend(solution, [], end_point, [], options); + data = datahandle.getData(); data.SWP_detection.solution_until_t2 = z; From 4ae09c21c87545fa5f093fa01b7d346592eb455f Mon Sep 17 00:00:00 2001 From: pilar Date: Tue, 16 Dec 2025 11:36:31 +0100 Subject: [PATCH 05/10] more updates on README for daeExamples --- .../examples/daeExamples/{ => Plots}/plot1.png | Bin toolbox/examples/daeExamples/Plots/plot1_2.png | Bin 0 -> 54229 bytes .../daeExamples/{ => Plots}/plot1_close.png | Bin .../daeExamples/Plots/plot1_close2.png | Bin 0 -> 24519 bytes .../switching_point_ifdiff_plain.fig | Bin .../examples/daeExamples/daeExample_README.md | 17 +++++++++-------- toolbox/examples/daeExamples/daeExample_main.m | 2 +- .../daeExamples/{ => dae_stats}/stepTracker.m | 0 toolbox/examples/daeExamples/plot1_close_2.png | Bin 42880 -> 0 bytes 9 files changed, 10 insertions(+), 9 deletions(-) rename toolbox/examples/daeExamples/{ => Plots}/plot1.png (100%) create mode 100644 toolbox/examples/daeExamples/Plots/plot1_2.png rename toolbox/examples/daeExamples/{ => Plots}/plot1_close.png (100%) create mode 100644 toolbox/examples/daeExamples/Plots/plot1_close2.png rename toolbox/examples/daeExamples/{ => Plots}/switching_point_ifdiff_plain.fig (100%) rename toolbox/examples/daeExamples/{ => dae_stats}/stepTracker.m (100%) delete mode 100644 toolbox/examples/daeExamples/plot1_close_2.png diff --git a/toolbox/examples/daeExamples/plot1.png b/toolbox/examples/daeExamples/Plots/plot1.png similarity index 100% rename from toolbox/examples/daeExamples/plot1.png rename to toolbox/examples/daeExamples/Plots/plot1.png diff --git a/toolbox/examples/daeExamples/Plots/plot1_2.png b/toolbox/examples/daeExamples/Plots/plot1_2.png new file mode 100644 index 0000000000000000000000000000000000000000..5b657293e9cab60631282d8a3c54222a1c8472ff GIT binary patch literal 54229 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

g4yY7d)l=Pv;nhg>{2D|8Q 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 literal 0 HcmV?d00001 diff --git a/toolbox/examples/daeExamples/plot1_close.png b/toolbox/examples/daeExamples/Plots/plot1_close.png similarity index 100% rename from toolbox/examples/daeExamples/plot1_close.png rename to toolbox/examples/daeExamples/Plots/plot1_close.png diff --git a/toolbox/examples/daeExamples/Plots/plot1_close2.png b/toolbox/examples/daeExamples/Plots/plot1_close2.png new file mode 100644 index 0000000000000000000000000000000000000000..0f9ce4507cae967e2b6f852058f14b1b632d08f5 GIT binary patch literal 24519 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 From eca5aae542b6525808ee74f3f7119bdaae6875bb Mon Sep 17 00:00:00 2001 From: pilar Date: Tue, 16 Dec 2025 11:52:43 +0100 Subject: [PATCH 06/10] removed display of options in extendODEuntilSwitch_t1_to_t2! --- toolbox/internal/solving/extendODEuntilSwitch_t1_to_t2.m | 1 - 1 file changed, 1 deletion(-) diff --git a/toolbox/internal/solving/extendODEuntilSwitch_t1_to_t2.m b/toolbox/internal/solving/extendODEuntilSwitch_t1_to_t2.m index eff4cae1..58d46ab7 100644 --- a/toolbox/internal/solving/extendODEuntilSwitch_t1_to_t2.m +++ b/toolbox/internal/solving/extendODEuntilSwitch_t1_to_t2.m @@ -21,7 +21,6 @@ function extendODEuntilSwitch_t1_to_t2(datahandle) data.integratorSettings.options.AbsTol = 1; data.integratorSettings.options.RelTol = 1; options = data.integratorSettings.options; -disp(options) ctrlif_setForcedBranchingSignature(datahandle, ti, x); data = datahandle.getData(); From 3239f3a38cd0e5e1669dd078199782dd14774e79 Mon Sep 17 00:00:00 2001 From: pilar Date: Mon, 12 Jan 2026 19:39:50 +0100 Subject: [PATCH 07/10] Added exception rule for ode15s in extendODEuntilSwitch_t1_to_t2 for previously implemented formula. Also, small changes in daeExample. --- .../examples/daeExamples/daeExample_main.m | 1 + .../solving/extendODEuntilSwitch_t1_to_t2.m | 46 +++++++++++++------ 2 files changed, 32 insertions(+), 15 deletions(-) diff --git a/toolbox/examples/daeExamples/daeExample_main.m b/toolbox/examples/daeExamples/daeExample_main.m index 6e86e2e0..1e7f160c 100644 --- a/toolbox/examples/daeExamples/daeExample_main.m +++ b/toolbox/examples/daeExamples/daeExample_main.m @@ -5,6 +5,7 @@ M = [1 0; 0 0]; p = -0.2; +% Timelogging global globalTimeLog global logEnabled logEnabled = true; diff --git a/toolbox/internal/solving/extendODEuntilSwitch_t1_to_t2.m b/toolbox/internal/solving/extendODEuntilSwitch_t1_to_t2.m index 58d46ab7..05fabdd3 100644 --- a/toolbox/internal/solving/extendODEuntilSwitch_t1_to_t2.m +++ b/toolbox/internal/solving/extendODEuntilSwitch_t1_to_t2.m @@ -6,32 +6,48 @@ function extendODEuntilSwitch_t1_to_t2(datahandle) config = makeConfig(); data = datahandle.getData(); - % last integrator step before switch ti = data.SWP_detection.solution_until_t1.x(end); + % solution at the last time point before switch x = deval(data.SWP_detection.solution_until_t1, ti); solution = data.SWP_detection.solution_until_t1; end_point = data.SWP_detection.t2; - delta_t = end_point - ti; -data.integratorSettings.options.InitialStep = delta_t; -data.integratorSettings.options.AbsTol = 1; -data.integratorSettings.options.RelTol = 1; options = data.integratorSettings.options; -ctrlif_setForcedBranchingSignature(datahandle, ti, x); -data = datahandle.getData(); -data.caseCtrlif = config.caseCtrlif.extendODEuntilSwitch; -datahandle.setData(data); - -z = odextend(solution, [], end_point, [], options); - - -data = datahandle.getData(); -data.SWP_detection.solution_until_t2 = z; +solver = solution.solver; +switch solver + case {'ode23', 'ode45', 'ode78', 'ode89', 'ode113', 'ode23t', 'ode23tb'} + + data.integratorSettings.options.InitialStep = delta_t; + data.integratorSettings.options.AbsTol = 1; + data.integratorSettings.options.RelTol = 1; + + ctrlif_setForcedBranchingSignature(datahandle, ti, x); + data = datahandle.getData(); + data.caseCtrlif = config.caseCtrlif.extendODEuntilSwitch; + datahandle.setData(data); + + z = odextend(solution, [], end_point, [], options); + + data = datahandle.getData(); + data.SWP_detection.solution_until_t2 = z; + case {'ode15s'} + ctrlif_setForcedBranchingSignature(datahandle, ti, x); + data = datahandle.getData(); + data.caseCtrlif = config.caseCtrlif.extendODEuntilSwitch; + datahandle.setData(data); + + z = odextend(solution, [], end_point, [], options); + + data = datahandle.getData(); + data.SWP_detection.solution_until_t2 = z; + otherwise + error('The solver is not known to the programm - can not continue.'); +end datahandle.setData(data); end From dafcc3cb33e183fd5714262714116016e46b431c Mon Sep 17 00:00:00 2001 From: pilar Date: Sat, 17 Jan 2026 13:36:30 +0100 Subject: [PATCH 08/10] Refactored last step strategy for one-step solvers --- .../RLC Circuit example/circuitRHS.m | 27 +++++++++ .../RLC Circuit example/circuit_main.m | 28 +++++++++ .../{ => daeExample_1}/daeExampleRHS.m | 0 .../{ => daeExample_1}/daeExample_main.m | 0 .../{ => daeExample_1}/solveODEWithLogging.m | 0 ...xample_README.md => daeExamples_README.md} | 0 .../solving/extendODEuntilSwitch_t1_to_t2.m | 57 +++++++++---------- toolbox/makeConfig.m | 3 + 8 files changed, 85 insertions(+), 30 deletions(-) create mode 100644 toolbox/examples/daeExamples/RLC Circuit example/circuitRHS.m create mode 100644 toolbox/examples/daeExamples/RLC Circuit example/circuit_main.m rename toolbox/examples/daeExamples/{ => daeExample_1}/daeExampleRHS.m (100%) rename toolbox/examples/daeExamples/{ => daeExample_1}/daeExample_main.m (100%) rename toolbox/examples/daeExamples/{ => daeExample_1}/solveODEWithLogging.m (100%) rename toolbox/examples/daeExamples/{daeExample_README.md => daeExamples_README.md} (100%) diff --git a/toolbox/examples/daeExamples/RLC Circuit example/circuitRHS.m b/toolbox/examples/daeExamples/RLC Circuit example/circuitRHS.m new file mode 100644 index 00000000..82e8e411 --- /dev/null +++ b/toolbox/examples/daeExamples/RLC Circuit example/circuitRHS.m @@ -0,0 +1,27 @@ +function dydt = circuitRHS(~, x, p_vec) + + dydt = zeros(3,1); + + iL = x(1); % Inductor current + vC = x(2); % Capacitor voltage + i_fuse = x(3); % Fuse current (algebraic) + + R1 = p_vec(1); + R2 = p_vec(2); + L = p_vec(3); + C = p_vec(4); + Vsrc = p_vec(5); + I_threshold = p_vec(6); + + dydt(3) = iL - i_fuse - vC/R2; + + if abs(i_fuse) <= I_threshold + dydt(1) = (Vsrc - R1*iL - vC)/L; % Inductor + dydt(2) = (iL - vC/R2)/C; % Capacitor + dydt(3) = iL - i_fuse - vC/R2; % KCL constraint + + else + dydt(1) = (Vsrc - R1*iL - vC)/L; % Inductor + dydt(2) = (iL - vC/R2)/C; % Capacitor + dydt(3) = i_fuse; % Fuse blown: i_fuse=0 + end \ No newline at end of file diff --git a/toolbox/examples/daeExamples/RLC Circuit example/circuit_main.m b/toolbox/examples/daeExamples/RLC Circuit example/circuit_main.m new file mode 100644 index 00000000..c5179be8 --- /dev/null +++ b/toolbox/examples/daeExamples/RLC Circuit example/circuit_main.m @@ -0,0 +1,28 @@ +%% RLC circuit with fuse + +%% Setup +integrator = @ode15s; +% Parameters +R1 = 2; % Resistor 1 (Ohm) +R2 = 5; % Resistor 2 (Ohm) +L = 0.1; % Inductor (H) +C = 0.01; % Capacitor (F) +Vsrc = 10; % Voltage source (V) +I_threshold = 3; % Fuse parameters (where fuse blows at) + +p_vec = [R1, R2, L, C, Vsrc, I_threshold]; + +% Initial vector, consistent as x = [i_L; v_C; i_fuse] +x0 = [0; 0; 0]; +M = [L 0 0; 0 C 0; 0 0 0]; +tspan = [0 0.2]; +opts = odeset('RelTol',1e-6, 'AbsTol',1e-8,'MassSingular','yes', 'Mass', M); + +datahandle = prepareDatahandleForIntegration('circuitRHS', 'integrator', integrator, 'options', opts); + +%% Integration +sol_circuit_ifdiff = solveODE(datahandle, tspan, x0, p_vec); +sol_test = integrator(@(t, x) circuitRHS(t, x, p_vec), tspan, x0, opts); + +% Plot +Plot_test = plot(sol_test.x, sol_test.y); \ No newline at end of file diff --git a/toolbox/examples/daeExamples/daeExampleRHS.m b/toolbox/examples/daeExamples/daeExample_1/daeExampleRHS.m similarity index 100% rename from toolbox/examples/daeExamples/daeExampleRHS.m rename to toolbox/examples/daeExamples/daeExample_1/daeExampleRHS.m diff --git a/toolbox/examples/daeExamples/daeExample_main.m b/toolbox/examples/daeExamples/daeExample_1/daeExample_main.m similarity index 100% rename from toolbox/examples/daeExamples/daeExample_main.m rename to toolbox/examples/daeExamples/daeExample_1/daeExample_main.m diff --git a/toolbox/examples/daeExamples/solveODEWithLogging.m b/toolbox/examples/daeExamples/daeExample_1/solveODEWithLogging.m similarity index 100% rename from toolbox/examples/daeExamples/solveODEWithLogging.m rename to toolbox/examples/daeExamples/daeExample_1/solveODEWithLogging.m diff --git a/toolbox/examples/daeExamples/daeExample_README.md b/toolbox/examples/daeExamples/daeExamples_README.md similarity index 100% rename from toolbox/examples/daeExamples/daeExample_README.md rename to toolbox/examples/daeExamples/daeExamples_README.md diff --git a/toolbox/internal/solving/extendODEuntilSwitch_t1_to_t2.m b/toolbox/internal/solving/extendODEuntilSwitch_t1_to_t2.m index 05fabdd3..2ea26a50 100644 --- a/toolbox/internal/solving/extendODEuntilSwitch_t1_to_t2.m +++ b/toolbox/internal/solving/extendODEuntilSwitch_t1_to_t2.m @@ -11,42 +11,39 @@ function extendODEuntilSwitch_t1_to_t2(datahandle) % solution at the last time point before switch x = deval(data.SWP_detection.solution_until_t1, ti); - solution = data.SWP_detection.solution_until_t1; + end_point = data.SWP_detection.t2; + +% new step size delta_t = end_point - ti; options = data.integratorSettings.options; - solver = solution.solver; -switch solver - case {'ode23', 'ode45', 'ode78', 'ode89', 'ode113', 'ode23t', 'ode23tb'} - - data.integratorSettings.options.InitialStep = delta_t; - data.integratorSettings.options.AbsTol = 1; - data.integratorSettings.options.RelTol = 1; - - ctrlif_setForcedBranchingSignature(datahandle, ti, x); - data = datahandle.getData(); - data.caseCtrlif = config.caseCtrlif.extendODEuntilSwitch; - datahandle.setData(data); - - z = odextend(solution, [], end_point, [], options); - - data = datahandle.getData(); - data.SWP_detection.solution_until_t2 = z; - case {'ode15s'} - ctrlif_setForcedBranchingSignature(datahandle, ti, x); - data = datahandle.getData(); - data.caseCtrlif = config.caseCtrlif.extendODEuntilSwitch; - datahandle.setData(data); - - z = odextend(solution, [], end_point, [], options); - - data = datahandle.getData(); - data.SWP_detection.solution_until_t2 = z; - otherwise - error('The solver is not known to the programm - can not continue.'); + +% Common setup for all solvers +ctrlif_setForcedBranchingSignature(datahandle, ti, x); +data = datahandle.getData(); +data.caseCtrlif = config.caseCtrlif.extendODEuntilSwitch; +datahandle.setData(data); + +z = odextend(solution, [], end_point, [], options); +data = datahandle.getData(); +data.SWP_detection.solution_until_t2 = z; + +% last point strategy for one-step solvers +compatible_solvers = {'ode23', 'ode45', 'ode78', 'ode89', 'ode113', 'ode23t', 'ode23tb'}; +if config.last_point_strategy && ismember(solver, compatible_solvers) + + data.integratorSettings.options.InitialStep = delta_t; + data.integratorSettings.options.AbsTol = 1; + data.integratorSettings.options.RelTol = 1; + + datahandle.setData(data); + + z = odextend(solution, [], end_point, [], options); + data = datahandle.getData(); + data.SWP_detection.solution_until_t2 = z; end datahandle.setData(data); diff --git a/toolbox/makeConfig.m b/toolbox/makeConfig.m index d235daf1..d4019c95 100644 --- a/toolbox/makeConfig.m +++ b/toolbox/makeConfig.m @@ -139,5 +139,8 @@ config.swfreq_haltOnWarning = false; +% last point strategy for one-step solvers +config.last_point_strategy = true; + config_out = config; end From bd7d9e04224f8b2604f5547e667bdc78a7c2990f Mon Sep 17 00:00:00 2001 From: pilar Date: Mon, 19 Jan 2026 20:55:12 +0100 Subject: [PATCH 09/10] Changes in DAE Readme and new RLC circuit example --- .../RLC Circuit example/circuitRHS.m | 27 --------- .../RLC Circuit example/circuit_main.m | 32 +++++----- .../daeExamples/RLC Circuit example/rlcRHS.m | 15 +++++ .../daeExamples/daeExamples_README.md | 23 ++++--- .../daeExamples/dae_stats/MaxOrder_1.png | Bin 31214 -> 0 bytes .../daeExamples/dae_stats/MaxStep_0.08.png | Bin 35668 -> 0 bytes .../daeExamples/dae_stats/MaxStep_0.1.png | Bin 27514 -> 0 bytes .../daeExamples/dae_stats/acceptedSteps.csv | 19 ------ .../daeExamples/dae_stats/allRHSCalls.csv | 51 ---------------- .../dae_stats/integrator_steps_ifdiff.txt | 31 ---------- .../dae_stats/integrator_steps_ifdiff_1.txt | 57 ------------------ .../daeExamples/dae_stats/max_order1.fig | Bin 11835 -> 0 bytes .../daeExamples/dae_stats/maxstep_0.05.fig | Bin 11145 -> 0 bytes .../daeExamples/dae_stats/maxstep_0.08.fig | Bin 11173 -> 0 bytes .../daeExamples/dae_stats/maxstep_0.1.fig | Bin 10839 -> 0 bytes .../dae_stats/no_maxorder_no_maxstep.fig | Bin 11701 -> 0 bytes .../daeExamples/dae_stats/rejectedSteps.csv | 51 ---------------- .../daeExamples/dae_stats/solver_stats.txt | 8 --- .../daeExamples/dae_stats/solver_stats_1.txt | 8 --- .../daeExamples/dae_stats/solver_stats_2.txt | 6 -- .../daeExamples/dae_stats/solver_stats_3.txt | 6 -- .../daeExamples/dae_stats/stepTracker.m | 14 ----- .../{ => first_daeExample}/Plots/plot1.png | Bin .../{ => first_daeExample}/Plots/plot1_2.png | Bin .../Plots/plot1_close.png | Bin .../Plots/plot1_close2.png | Bin .../Plots/switching_point_ifdiff_plain.fig | Bin .../daeExampleRHS.m | 0 .../daeExample_main.m | 0 .../solveODEWithLogging.m | 0 30 files changed, 43 insertions(+), 305 deletions(-) delete mode 100644 toolbox/examples/daeExamples/RLC Circuit example/circuitRHS.m create mode 100644 toolbox/examples/daeExamples/RLC Circuit example/rlcRHS.m delete mode 100644 toolbox/examples/daeExamples/dae_stats/MaxOrder_1.png delete mode 100644 toolbox/examples/daeExamples/dae_stats/MaxStep_0.08.png delete mode 100644 toolbox/examples/daeExamples/dae_stats/MaxStep_0.1.png delete mode 100644 toolbox/examples/daeExamples/dae_stats/acceptedSteps.csv delete mode 100644 toolbox/examples/daeExamples/dae_stats/allRHSCalls.csv delete mode 100644 toolbox/examples/daeExamples/dae_stats/integrator_steps_ifdiff.txt delete mode 100644 toolbox/examples/daeExamples/dae_stats/integrator_steps_ifdiff_1.txt delete mode 100644 toolbox/examples/daeExamples/dae_stats/max_order1.fig delete mode 100644 toolbox/examples/daeExamples/dae_stats/maxstep_0.05.fig delete mode 100644 toolbox/examples/daeExamples/dae_stats/maxstep_0.08.fig delete mode 100644 toolbox/examples/daeExamples/dae_stats/maxstep_0.1.fig delete mode 100644 toolbox/examples/daeExamples/dae_stats/no_maxorder_no_maxstep.fig delete mode 100644 toolbox/examples/daeExamples/dae_stats/rejectedSteps.csv delete mode 100644 toolbox/examples/daeExamples/dae_stats/solver_stats.txt delete mode 100644 toolbox/examples/daeExamples/dae_stats/solver_stats_1.txt delete mode 100644 toolbox/examples/daeExamples/dae_stats/solver_stats_2.txt delete mode 100644 toolbox/examples/daeExamples/dae_stats/solver_stats_3.txt delete mode 100644 toolbox/examples/daeExamples/dae_stats/stepTracker.m rename toolbox/examples/daeExamples/{ => first_daeExample}/Plots/plot1.png (100%) rename toolbox/examples/daeExamples/{ => first_daeExample}/Plots/plot1_2.png (100%) rename toolbox/examples/daeExamples/{ => first_daeExample}/Plots/plot1_close.png (100%) rename toolbox/examples/daeExamples/{ => first_daeExample}/Plots/plot1_close2.png (100%) rename toolbox/examples/daeExamples/{ => first_daeExample}/Plots/switching_point_ifdiff_plain.fig (100%) rename toolbox/examples/daeExamples/{daeExample_1 => first_daeExample}/daeExampleRHS.m (100%) rename toolbox/examples/daeExamples/{daeExample_1 => first_daeExample}/daeExample_main.m (100%) rename toolbox/examples/daeExamples/{daeExample_1 => first_daeExample}/solveODEWithLogging.m (100%) diff --git a/toolbox/examples/daeExamples/RLC Circuit example/circuitRHS.m b/toolbox/examples/daeExamples/RLC Circuit example/circuitRHS.m deleted file mode 100644 index 82e8e411..00000000 --- a/toolbox/examples/daeExamples/RLC Circuit example/circuitRHS.m +++ /dev/null @@ -1,27 +0,0 @@ -function dydt = circuitRHS(~, x, p_vec) - - dydt = zeros(3,1); - - iL = x(1); % Inductor current - vC = x(2); % Capacitor voltage - i_fuse = x(3); % Fuse current (algebraic) - - R1 = p_vec(1); - R2 = p_vec(2); - L = p_vec(3); - C = p_vec(4); - Vsrc = p_vec(5); - I_threshold = p_vec(6); - - dydt(3) = iL - i_fuse - vC/R2; - - if abs(i_fuse) <= I_threshold - dydt(1) = (Vsrc - R1*iL - vC)/L; % Inductor - dydt(2) = (iL - vC/R2)/C; % Capacitor - dydt(3) = iL - i_fuse - vC/R2; % KCL constraint - - else - dydt(1) = (Vsrc - R1*iL - vC)/L; % Inductor - dydt(2) = (iL - vC/R2)/C; % Capacitor - dydt(3) = i_fuse; % Fuse blown: i_fuse=0 - end \ No newline at end of file diff --git a/toolbox/examples/daeExamples/RLC Circuit example/circuit_main.m b/toolbox/examples/daeExamples/RLC Circuit example/circuit_main.m index c5179be8..baca943a 100644 --- a/toolbox/examples/daeExamples/RLC Circuit example/circuit_main.m +++ b/toolbox/examples/daeExamples/RLC Circuit example/circuit_main.m @@ -2,27 +2,23 @@ %% Setup integrator = @ode15s; -% Parameters -R1 = 2; % Resistor 1 (Ohm) -R2 = 5; % Resistor 2 (Ohm) -L = 0.1; % Inductor (H) -C = 0.01; % Capacitor (F) -Vsrc = 10; % Voltage source (V) -I_threshold = 3; % Fuse parameters (where fuse blows at) -p_vec = [R1, R2, L, C, Vsrc, I_threshold]; - -% Initial vector, consistent as x = [i_L; v_C; i_fuse] +p = [1; 5; 0.1; 1; 1; 0.5]; +M = diag([1,1,0]); +opts = odeset('RelTol',1e-6, 'AbsTol', 1e-8,'Mass', M, 'MassSingular', 'yes'); +tspan = [0 50]; x0 = [0; 0; 0]; -M = [L 0 0; 0 C 0; 0 0 0]; -tspan = [0 0.2]; -opts = odeset('RelTol',1e-6, 'AbsTol',1e-8,'MassSingular','yes', 'Mass', M); +[t, x] = ode15s(@(t,x) rlcRHS(t,x,p), tspan, x0, opts); -datahandle = prepareDatahandleForIntegration('circuitRHS', 'integrator', integrator, 'options', opts); -%% Integration -sol_circuit_ifdiff = solveODE(datahandle, tspan, x0, p_vec); -sol_test = integrator(@(t, x) circuitRHS(t, x, p_vec), tspan, x0, opts); +datahandle = prepareDatahandleForIntegration('rlcRHS', 'integrator', integrator, 'options', opts); +%% Integration +sol_ifdiff = solveODE(datahandle, tspan, x0, p); +sol_test = integrator(@(t, x) rlcRHS(t, x, p), tspan, x0, opts); % Plot -Plot_test = plot(sol_test.x, sol_test.y); \ No newline at end of file +clf; +fig1 = figure(01); +Plot_test = plot(sol_test.x, sol_test.y); +fig2 = figure(02); +Plot_ifdiff = plot(sol_ifdiff.x, sol_ifdiff.y); \ No newline at end of file diff --git a/toolbox/examples/daeExamples/RLC Circuit example/rlcRHS.m b/toolbox/examples/daeExamples/RLC Circuit example/rlcRHS.m new file mode 100644 index 00000000..6457d8e7 --- /dev/null +++ b/toolbox/examples/daeExamples/RLC Circuit example/rlcRHS.m @@ -0,0 +1,15 @@ +function dx = rlcRHS(~,x,p) + L = p(1); R1 = p(2); R2 = p(3); C = p(4); Vs = p(5); Vth = p(6); + iL = x(1); vC = x(2); iC = x(3); + + dx = zeros(3,1); + if vC > Vth % Mode 1: High resistance (e.g., fuse intact) + dx(1) = (Vs - R1*iL - vC)/L; + dx(2) = iC/C; + dx(3) = iL - iC; % KCL unchanged + else % Mode 2: Low resistance (e.g., fuse blown, shorted) + dx(1) = (Vs - R2*iL - vC)/L; + dx(2) = iC/C; + dx(3) = iL - iC; % Same algebraic constraint + end +end \ No newline at end of file diff --git a/toolbox/examples/daeExamples/daeExamples_README.md b/toolbox/examples/daeExamples/daeExamples_README.md index 6a3f35c6..1e047b0d 100644 --- a/toolbox/examples/daeExamples/daeExamples_README.md +++ b/toolbox/examples/daeExamples/daeExamples_README.md @@ -4,13 +4,14 @@ -# Switched DAE Example +# A first DAE Example ## Introduction -A **differential algebraic equation (DAE)** is a system that involves both differential equations and algebraic constraints. These systems may exhibit switching behavior, meaning the system dynamics change depending on certain conditions. -IFDIFF can solve such switched DAEs. +A **differential algebraic equation (DAE)** is a system of equations involving an unknown function and its derivatives together with algebraic equations, which impose constraints on the variables. Geometrically, the algebraic equations define a constraint manifold in the state space, and the solution trajectory of any DAE initial-value problem must remain on this manifold. + +In applications, DAEs can be combined with state-dependent events (e.g. contact/no-contact, switching circuits), which leads to systems whose dynamics change when certain state conditions are met. IFDIFF can solve such switched DAEs. Let's take a look at the following example for $t \in [0,n]$ where $n \in \mathbb{N}$: @@ -19,7 +20,7 @@ $$(D) \quad \begin{cases} \dot{x}_ 1 = f_1(x_2) = \begin{cases} x_2, \quad \text ## Analytical solution -The DAE $(D)$ is of index 1 since the algebraic constraint can be differentiated once to achieve $x_1 + x_2 = 0 \Rightarrow \dot{x_1} + \dot{x_2} = 0 \iff \dot{x_2} = - \dot{x_1}$ which then gives us the ODE system: +First we derive the analytical solution of $(D)$. We see that the DAE is of index 1 since the algebraic constraint can be differentiated once to achieve $x_1 + x_2 = 0 \Rightarrow \dot{x_1} + \dot{x_2} = 0 \iff \dot{x_2} = - \dot{x_1}$ which then gives us the ODE system: $$(D_{\text{ODE}})\begin{cases} \dot{x}_ 1 = f_1(x_2) = \begin{cases} x_2, \quad \text{if} \hspace{0.2cm} x_2 < p\\ 0 \hspace{0.2cm} \text{if} \quad x_2 \geq p \end{cases} \\ f_2(x) = - \dot{x_1} = \begin{cases} -x_2 \quad \text{if} \quad x_2 < p\\ 0 \quad \text{if} \quad x_2 \geq p \end{cases} \\ x_0 = (1,-1)^T, p \in \mathbb{R} \end{cases}$$ @@ -35,7 +36,7 @@ At $ t = 0 $ we have $x_2(0)= -1 < p$.Therefore we only have $\dot{x_2} = - \dot In this situation the system starts in case 2, so exponential growth in the 1st and exponential decay in the 2nd component. We now determine the switching point $t_s \in (0,2)$. The switching point satisfies $x_2(t_s)=p$, so $x_2(t_s)=p \iff -e^{-t_s} = p \iff t_s = -\text{ln}(-p) $. (Remember that $-p$ is positive!) -We also notice from the formula $t_s = -\text{ln}(-p)$ that the switching point $t_s$ will be larger as $p$ gets smaller. This means, depending on the parameter, we need to choose a fitting time horizon $[0,n]$ +We also notice from the formula $t_s = -\text{ln}(-p)$ that the switching point $t_s$ will be larger as $p$ gets smaller. This means, depending on the parameter, we need to choose a fitting time horizon $[0,n]$. ## Solution with IFDIFF @@ -61,7 +62,7 @@ end ``` ### Step 2: Setup & Integration -For the main script, we first need to set up the initial value $x_0 = (1,-1)^T$ and a mass matrix $M$ such that the algebraic constant is set to 0 while the differential variables remain as coded in the RHS. +For the main script, we first need to set up the initial value $x_0 = (1,-1)^T$ and a mass matrix $M$ such that the algebraic constraint is set to 0 while the differential variables remain as coded in the RHS. We now need to choose a parameter $ p \in (-1,0) $, e.g. $p = -0.2$ and a suitable time horizon, e.g. $[0,2]$. (You can choose any time horizon large enough to contain the switching point.). At last for this step, we set up integrator options and the datahandle and then integrate using `solveODE`. To compare our solution with the solution by plain `ode15s`, we can call it with the same options as we set for IFDIFF. @@ -96,11 +97,11 @@ hold off This gives us the following plot: -![](Plots/plot1.png) +![](first_daeExample/Plots/plot1.png) When we take a closer look, we see, that the integration with IFDIFF accurately dedects the switching point. -![](Plots/plot1_close2.png) +![](first_daeExample/Plots/plot1_close2.png) ## Sensitivities @@ -120,4 +121,8 @@ Then we see: $ \frac{d \tilde{t}_ s}{d x_2(0)} = \frac{d}{d x_2(0)} \left(\ln (-p- \varepsilon x_2(0)) \right) = \frac{1}{-p - \varepsilon x_2(0)} = \frac{1}{p - \varepsilon } $. -To further investigate this example take a look at the files `daeExample_main.m` and `daeExampleRHs.m` + +### Additional Content + +To further investigate this example take a look at the files `daeExample_main.m` and `daeExampleRHs.m`. +To get a grasp of some applications of what we have learned in this README go to the folder `RLC Circuit example` which is an example about modelling with switched DAEs. \ No newline at end of file diff --git a/toolbox/examples/daeExamples/dae_stats/MaxOrder_1.png b/toolbox/examples/daeExamples/dae_stats/MaxOrder_1.png deleted file mode 100644 index 0a96240cf8ecd7370e4cb6a6c55d5580501900f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31214 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 diff --git a/toolbox/examples/daeExamples/dae_stats/MaxStep_0.08.png b/toolbox/examples/daeExamples/dae_stats/MaxStep_0.08.png deleted file mode 100644 index e38f86d401bae822f9f7843f6542497f74127cf7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35668 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 Xx%S|>Vd-iTW}cRi7mqn{@%DcM$#3(i diff --git a/toolbox/examples/daeExamples/dae_stats/acceptedSteps.csv b/toolbox/examples/daeExamples/dae_stats/acceptedSteps.csv deleted file mode 100644 index 5d330ed0..00000000 --- a/toolbox/examples/daeExamples/dae_stats/acceptedSteps.csv +++ /dev/null @@ -1,19 +0,0 @@ -1.5896054073814 -1.5896079073814 -1.5896104073814 -1.5896354073814 -1.5896604073814 -1.5896854073814 -1.5899354073814 -1.5901854073814 -1.5904354073814 -1.59241857891223 -1.59440175044307 -1.5963849219739 -1.59836809350474 -1.60035126503557 -1.6023344365664 -1.60431760809724 -1.60630077962807 -1.60828395115891 -1.60943462268974 diff --git a/toolbox/examples/daeExamples/dae_stats/allRHSCalls.csv b/toolbox/examples/daeExamples/dae_stats/allRHSCalls.csv deleted file mode 100644 index 3cf12451..00000000 --- a/toolbox/examples/daeExamples/dae_stats/allRHSCalls.csv +++ /dev/null @@ -1,51 +0,0 @@ -1.5896029073814 -1.70367415006303 -1.64663852872222 -1.61812071805181 -1.6038618127166 -1.61099126538421 -1.60742653905041 -1.60920890221731 -1.61010008380076 -1.60965449300903 -1.60943169761317 -1.6095430953111 -1.60948739646213 -1.60945954703765 -1.60944562232541 -1.60943865996929 -1.60943517879123 -1.6094334382022 -1.60943430849671 -1.60943474364397 -1.60943452607034 -1.60943463485716 -1.60943458046375 -1.60943460766045 -1.6094345940621 -1.60943458726293 -1.60943458386334 -1.60943458216354 -1.60943458301344 -1.60943458343839 -1.60943458322591 -1.60943458311968 -1.6094345831728 -1.60943458319936 -1.60943458321263 -1.60943458321927 -1.60943458321595 -1.60943458321429 -1.60943458321512 -1.60943458321554 -1.60943458321533 -1.60943458321523 -1.60943458321518 -1.60943458321515 -1.60943458321514 -1.60943458321514 -1.60943458321514 -1.60943458321514 -1.60943458321514 -1.60943458321514 -1.60943458321514 diff --git a/toolbox/examples/daeExamples/dae_stats/integrator_steps_ifdiff.txt b/toolbox/examples/daeExamples/dae_stats/integrator_steps_ifdiff.txt deleted file mode 100644 index 13ace999..00000000 --- a/toolbox/examples/daeExamples/dae_stats/integrator_steps_ifdiff.txt +++ /dev/null @@ -1,31 +0,0 @@ -Time Steps, Sol Vals 1st component, Difference of (i+1)th and ith step of 1st component ---------------------------------- --2.000000 1.000000 -0.002495 --1.997500 0.997505 -0.002489 --1.995000 0.995017 -0.002482 --1.992500 0.992534 -0.024302 --1.967500 0.968232 -0.023720 --1.942500 0.944511 -0.023141 --1.917500 0.921370 -0.184716 --1.694490 0.736654 -0.001278 --1.692753 0.735377 -0.001276 --1.691016 0.734101 -0.001273 --1.689279 0.732828 -0.003979 --1.683824 0.728849 -0.003958 --1.678370 0.724891 -0.003936 --1.672916 0.720955 -0.003919 --1.667462 0.717036 -0.003900 --1.662007 0.713136 -0.003879 --1.656553 0.709257 -0.003858 --1.651099 0.705399 -0.003837 --1.645644 0.701562 -0.003986 --1.639947 0.697576 0.000000 --1.275952 0.697576 0.000000 --0.911958 0.697576 0.000000 --0.547963 0.697576 0.000000 --0.183968 0.697576 0.000000 -0.180027 0.697576 0.000000 -0.544021 0.697576 0.000000 -0.908016 0.697576 0.000000 -1.272011 0.697576 0.000000 -1.636005 0.697576 0.000000 diff --git a/toolbox/examples/daeExamples/dae_stats/integrator_steps_ifdiff_1.txt b/toolbox/examples/daeExamples/dae_stats/integrator_steps_ifdiff_1.txt deleted file mode 100644 index b2efb3c3..00000000 --- a/toolbox/examples/daeExamples/dae_stats/integrator_steps_ifdiff_1.txt +++ /dev/null @@ -1,57 +0,0 @@ -Time Steps, Sol Vals 1st comp, Diff of (i+1)th and ith step of 1st comp. ---------------------------------0.000000 1.000000 --0.000002 0.000002 0.999998 --0.000002 0.000005 0.999995 --0.000002 0.000007 0.999993 --0.000024 0.000032 0.999968 --0.000024 0.000056 0.999944 --0.000024 0.000081 0.999919 --0.000244 0.000325 0.999675 --0.000244 0.000569 0.999431 --0.000244 0.000813 0.999187 --0.002436 0.003254 0.996751 --0.002430 0.005696 0.994321 --0.002425 0.008137 0.991896 --0.002419 0.010579 0.989477 --0.023867 0.034993 0.965611 --0.015775 0.051463 0.949836 --0.015517 0.067934 0.934319 --0.015263 0.084404 0.919056 --0.015014 0.100874 0.904042 --0.030919 0.135673 0.873123 --0.029861 0.170471 0.843263 --0.028839 0.205269 0.814424 --0.027853 0.240067 0.786571 --0.026900 0.274866 0.759670 --0.043687 0.334093 0.715984 --0.000002 0.334096 0.715982 --0.000002 0.334098 0.715980 --0.000002 0.334101 0.715978 --0.000018 0.334126 0.715960 --0.000018 0.334151 0.715942 --0.000018 0.334176 0.715924 --0.000179 0.334426 0.715746 --0.000179 0.334676 0.715567 --0.000179 0.334926 0.715388 --0.001613 0.337183 0.713774 --0.001610 0.339441 0.712165 --0.001606 0.341699 0.710559 --0.001602 0.343957 0.708956 --0.001599 0.346214 0.707357 --0.001595 0.348472 0.705762 --0.001592 0.350730 0.704170 --0.001588 0.352988 0.702582 --0.001584 0.355245 0.700998 --0.000998 0.356671 0.699999 -0.000000 0.521004 0.699999 -0.000000 0.685337 0.699999 -0.000000 0.849670 0.699999 -0.000000 1.014002 0.699999 -0.000000 1.178335 0.699999 -0.000000 1.342668 0.699999 -0.000000 1.507001 0.699999 -0.000000 1.671334 0.699999 -0.000000 1.835667 0.699999 -0.000000 .699999 -0.000000 0.000000 -1.835667 0.699999 0.000000 diff --git a/toolbox/examples/daeExamples/dae_stats/max_order1.fig b/toolbox/examples/daeExamples/dae_stats/max_order1.fig deleted file mode 100644 index 60679136b75e3379fa8421bb5abf66aca28eb15d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11835 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 diff --git a/toolbox/examples/daeExamples/dae_stats/maxstep_0.05.fig b/toolbox/examples/daeExamples/dae_stats/maxstep_0.05.fig deleted file mode 100644 index df61334170a74560390da6da9fc4aebf7f21d2b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11145 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 diff --git a/toolbox/examples/daeExamples/dae_stats/maxstep_0.1.fig b/toolbox/examples/daeExamples/dae_stats/maxstep_0.1.fig deleted file mode 100644 index ca4bd14869dc587835ec5f79beb78533400148d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10839 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 diff --git a/toolbox/examples/daeExamples/dae_stats/no_maxorder_no_maxstep.fig b/toolbox/examples/daeExamples/dae_stats/no_maxorder_no_maxstep.fig deleted file mode 100644 index 7d9c68941c29cbbcbcbac39cbe044513c76bac36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11701 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 Ikt5`P0avGNivR!s diff --git a/toolbox/examples/daeExamples/dae_stats/rejectedSteps.csv b/toolbox/examples/daeExamples/dae_stats/rejectedSteps.csv deleted file mode 100644 index 3cf12451..00000000 --- a/toolbox/examples/daeExamples/dae_stats/rejectedSteps.csv +++ /dev/null @@ -1,51 +0,0 @@ -1.5896029073814 -1.70367415006303 -1.64663852872222 -1.61812071805181 -1.6038618127166 -1.61099126538421 -1.60742653905041 -1.60920890221731 -1.61010008380076 -1.60965449300903 -1.60943169761317 -1.6095430953111 -1.60948739646213 -1.60945954703765 -1.60944562232541 -1.60943865996929 -1.60943517879123 -1.6094334382022 -1.60943430849671 -1.60943474364397 -1.60943452607034 -1.60943463485716 -1.60943458046375 -1.60943460766045 -1.6094345940621 -1.60943458726293 -1.60943458386334 -1.60943458216354 -1.60943458301344 -1.60943458343839 -1.60943458322591 -1.60943458311968 -1.6094345831728 -1.60943458319936 -1.60943458321263 -1.60943458321927 -1.60943458321595 -1.60943458321429 -1.60943458321512 -1.60943458321554 -1.60943458321533 -1.60943458321523 -1.60943458321518 -1.60943458321515 -1.60943458321514 -1.60943458321514 -1.60943458321514 -1.60943458321514 -1.60943458321514 -1.60943458321514 -1.60943458321514 diff --git a/toolbox/examples/daeExamples/dae_stats/solver_stats.txt b/toolbox/examples/daeExamples/dae_stats/solver_stats.txt deleted file mode 100644 index 9a371b36..00000000 --- a/toolbox/examples/daeExamples/dae_stats/solver_stats.txt +++ /dev/null @@ -1,8 +0,0 @@ -Solver Statistics for DAE example -Parameter: -2.000000e-01 -Total number of steps: 69 -Successful steps: 63 -Rejected steps: 6 -Total of function evaluations 131 - -% MaxStep 0.05 \ No newline at end of file diff --git a/toolbox/examples/daeExamples/dae_stats/solver_stats_1.txt b/toolbox/examples/daeExamples/dae_stats/solver_stats_1.txt deleted file mode 100644 index 1d04cf81..00000000 --- a/toolbox/examples/daeExamples/dae_stats/solver_stats_1.txt +++ /dev/null @@ -1,8 +0,0 @@ -Solver Statistics for DAE example -Parameter: -2.000000e-01 -Total number of steps: 42 -Successful steps: 35 -Rejected steps: 7 -Total of function evaluations: 93 - -% MaxStep 0.1 \ No newline at end of file diff --git a/toolbox/examples/daeExamples/dae_stats/solver_stats_2.txt b/toolbox/examples/daeExamples/dae_stats/solver_stats_2.txt deleted file mode 100644 index 559f9293..00000000 --- a/toolbox/examples/daeExamples/dae_stats/solver_stats_2.txt +++ /dev/null @@ -1,6 +0,0 @@ -Solver Statistics for DAE example -Parameter: -2.000000e-01 -Total number of steps: 60 -Successful steps: 54 -Rejected steps: 6 -Total of function evaluations: 131 diff --git a/toolbox/examples/daeExamples/dae_stats/solver_stats_3.txt b/toolbox/examples/daeExamples/dae_stats/solver_stats_3.txt deleted file mode 100644 index fa162d80..00000000 --- a/toolbox/examples/daeExamples/dae_stats/solver_stats_3.txt +++ /dev/null @@ -1,6 +0,0 @@ -Solver Statistics for DAE example -Parameter: -5.000000e-01 -Total number of steps: 41 -Successful steps: 34 -Rejected steps: 7 -Total of function evaluations: 82 diff --git a/toolbox/examples/daeExamples/dae_stats/stepTracker.m b/toolbox/examples/daeExamples/dae_stats/stepTracker.m deleted file mode 100644 index 38f82532..00000000 --- a/toolbox/examples/daeExamples/dae_stats/stepTracker.m +++ /dev/null @@ -1,14 +0,0 @@ -function status = stepTracker(t, y, flag) - persistent acceptedT - - if strcmp(flag,'init') - acceptedT = []; - elseif isempty(flag) - acceptedT(end+1,1) = t; - elseif strcmp(flag,'done') - assignin('base','AcceptedSteps',acceptedT); - end - - status = 0; -end - diff --git a/toolbox/examples/daeExamples/Plots/plot1.png b/toolbox/examples/daeExamples/first_daeExample/Plots/plot1.png similarity index 100% rename from toolbox/examples/daeExamples/Plots/plot1.png rename to toolbox/examples/daeExamples/first_daeExample/Plots/plot1.png diff --git a/toolbox/examples/daeExamples/Plots/plot1_2.png b/toolbox/examples/daeExamples/first_daeExample/Plots/plot1_2.png similarity index 100% rename from toolbox/examples/daeExamples/Plots/plot1_2.png rename to toolbox/examples/daeExamples/first_daeExample/Plots/plot1_2.png diff --git a/toolbox/examples/daeExamples/Plots/plot1_close.png b/toolbox/examples/daeExamples/first_daeExample/Plots/plot1_close.png similarity index 100% rename from toolbox/examples/daeExamples/Plots/plot1_close.png rename to toolbox/examples/daeExamples/first_daeExample/Plots/plot1_close.png diff --git a/toolbox/examples/daeExamples/Plots/plot1_close2.png b/toolbox/examples/daeExamples/first_daeExample/Plots/plot1_close2.png similarity index 100% rename from toolbox/examples/daeExamples/Plots/plot1_close2.png rename to toolbox/examples/daeExamples/first_daeExample/Plots/plot1_close2.png diff --git a/toolbox/examples/daeExamples/Plots/switching_point_ifdiff_plain.fig b/toolbox/examples/daeExamples/first_daeExample/Plots/switching_point_ifdiff_plain.fig similarity index 100% rename from toolbox/examples/daeExamples/Plots/switching_point_ifdiff_plain.fig rename to toolbox/examples/daeExamples/first_daeExample/Plots/switching_point_ifdiff_plain.fig diff --git a/toolbox/examples/daeExamples/daeExample_1/daeExampleRHS.m b/toolbox/examples/daeExamples/first_daeExample/daeExampleRHS.m similarity index 100% rename from toolbox/examples/daeExamples/daeExample_1/daeExampleRHS.m rename to toolbox/examples/daeExamples/first_daeExample/daeExampleRHS.m diff --git a/toolbox/examples/daeExamples/daeExample_1/daeExample_main.m b/toolbox/examples/daeExamples/first_daeExample/daeExample_main.m similarity index 100% rename from toolbox/examples/daeExamples/daeExample_1/daeExample_main.m rename to toolbox/examples/daeExamples/first_daeExample/daeExample_main.m diff --git a/toolbox/examples/daeExamples/daeExample_1/solveODEWithLogging.m b/toolbox/examples/daeExamples/first_daeExample/solveODEWithLogging.m similarity index 100% rename from toolbox/examples/daeExamples/daeExample_1/solveODEWithLogging.m rename to toolbox/examples/daeExamples/first_daeExample/solveODEWithLogging.m From 46e9b918c252184f6e3815b41fc8fc012c4598b9 Mon Sep 17 00:00:00 2001 From: pilar Date: Mon, 26 Jan 2026 00:11:16 +0100 Subject: [PATCH 10/10] Finalised both DAE examples and last step strategy --- .../daeExampleRHS.m | 10 +- .../daeExample_README.md} | 60 ++++----- toolbox/examples/daeExample/daeExample_main.m | 25 ++++ .../plots_daeExample}/plot1.png | Bin .../plots_daeExample}/plot1_2.png | Bin .../plots_daeExample}/plot1_close.png | Bin .../plots_daeExample}/plot1_close2.png | Bin .../switching_point_ifdiff_plain.fig | Bin .../RLC Circuit example/circuit_main.m | 24 ---- .../daeExamples/RLC Circuit example/rlcRHS.m | 15 --- .../first_daeExample/daeExample_main.m | 86 ------------- .../first_daeExample/solveODEWithLogging.m | 110 ---------------- .../rlcExample/plots_rlc/plot_rlc.png | Bin 0 -> 38661 bytes .../rlcExample/plots_rlc/rlc_plot_1.png | Bin 0 -> 52023 bytes .../rlcExample/plots_rlc/rlc_plot_close.png | Bin 0 -> 51306 bytes .../examples/rlcExample/rlcExample_README.md | 119 ++++++++++++++++++ toolbox/examples/rlcExample/rlcRHS.m | 14 +++ toolbox/examples/rlcExample/rlc_main.m | 47 +++++++ .../solving/extendODEuntilSwitch_t1_to_t2.m | 4 +- 19 files changed, 230 insertions(+), 284 deletions(-) rename toolbox/examples/{daeExamples/first_daeExample => daeExample}/daeExampleRHS.m (54%) rename toolbox/examples/{daeExamples/daeExamples_README.md => daeExample/daeExample_README.md} (59%) create mode 100644 toolbox/examples/daeExample/daeExample_main.m rename toolbox/examples/{daeExamples/first_daeExample/Plots => daeExample/plots_daeExample}/plot1.png (100%) rename toolbox/examples/{daeExamples/first_daeExample/Plots => daeExample/plots_daeExample}/plot1_2.png (100%) rename toolbox/examples/{daeExamples/first_daeExample/Plots => daeExample/plots_daeExample}/plot1_close.png (100%) rename toolbox/examples/{daeExamples/first_daeExample/Plots => daeExample/plots_daeExample}/plot1_close2.png (100%) rename toolbox/examples/{daeExamples/first_daeExample/Plots => daeExample/plots_daeExample}/switching_point_ifdiff_plain.fig (100%) delete mode 100644 toolbox/examples/daeExamples/RLC Circuit example/circuit_main.m delete mode 100644 toolbox/examples/daeExamples/RLC Circuit example/rlcRHS.m delete mode 100644 toolbox/examples/daeExamples/first_daeExample/daeExample_main.m delete mode 100644 toolbox/examples/daeExamples/first_daeExample/solveODEWithLogging.m create mode 100644 toolbox/examples/rlcExample/plots_rlc/plot_rlc.png create mode 100644 toolbox/examples/rlcExample/plots_rlc/rlc_plot_1.png create mode 100644 toolbox/examples/rlcExample/plots_rlc/rlc_plot_close.png create mode 100644 toolbox/examples/rlcExample/rlcExample_README.md create mode 100644 toolbox/examples/rlcExample/rlcRHS.m create mode 100644 toolbox/examples/rlcExample/rlc_main.m diff --git a/toolbox/examples/daeExamples/first_daeExample/daeExampleRHS.m b/toolbox/examples/daeExample/daeExampleRHS.m similarity index 54% rename from toolbox/examples/daeExamples/first_daeExample/daeExampleRHS.m rename to toolbox/examples/daeExample/daeExampleRHS.m index 9aa1cfdf..a13027ed 100644 --- a/toolbox/examples/daeExamples/first_daeExample/daeExampleRHS.m +++ b/toolbox/examples/daeExample/daeExampleRHS.m @@ -1,13 +1,5 @@ -function f = daeExampleRHS(t, x, p) +function f = daeExampleRHS(~, x, p) - global TimeLog - global logEnabled - - if logEnabled % ifdiff::ignore - TimeLog = [TimeLog, t]; - end - - %% RHS f = zeros(2,1); % algebraic constraint z = x(1) + x(2); diff --git a/toolbox/examples/daeExamples/daeExamples_README.md b/toolbox/examples/daeExample/daeExample_README.md similarity index 59% rename from toolbox/examples/daeExamples/daeExamples_README.md rename to toolbox/examples/daeExample/daeExample_README.md index 1e047b0d..821c5008 100644 --- a/toolbox/examples/daeExamples/daeExamples_README.md +++ b/toolbox/examples/daeExample/daeExample_README.md @@ -4,7 +4,7 @@ -# A first DAE Example +# Switched DAE Example ## Introduction @@ -40,7 +40,7 @@ We also notice from the formula $t_s = -\text{ln}(-p)$ that the switching point ## Solution with IFDIFF -Numerically, an index 1 DAE system is not solved by converting it to an ODE system. Instead, MATLAB offers the solver `ode15s` for solving DAEs which we will use IFDIFF with. +In practice, DAE systems are not solved by converting them to an ODE systems. Instead, MATLAB offers the solver `ode15s` for solving DAEs which we will use IFDIFF with. ### Step 1: Right Hand Side We code the Right Hand Side (RHS) as follows. @@ -62,28 +62,27 @@ end ``` ### Step 2: Setup & Integration -For the main script, we first need to set up the initial value $x_0 = (1,-1)^T$ and a mass matrix $M$ such that the algebraic constraint is set to 0 while the differential variables remain as coded in the RHS. -We now need to choose a parameter $ p \in (-1,0) $, e.g. $p = -0.2$ and a suitable time horizon, e.g. $[0,2]$. (You can choose any time horizon large enough to contain the switching point.). -At last for this step, we set up integrator options and the datahandle and then integrate using `solveODE`. To compare our solution with the solution by plain `ode15s`, we can call it with the same options as we set for IFDIFF. +For the main script, we set up a consistent initial value, e.g. $x_0 = (1,-1)^T$ and a mass matrix $M$ such that the algebraic constraint is set to 0 while the differential variables remain as coded in the RHS. +We choose a parameter $ p \in (-1,0) $, e.g. $p = -0.2$ and a suitable time horizon, e.g. $[0 5]$. ``` integrator = @ode15s; -x0 = [1; -1]; -tspan = [0 5]; -M = [1 0; 0 0]; -p = -0.2; - -opts = odeset('Mass', M, 'MassSingular', 'yes', ... - 'AbsTol', 1e-6, 'RelTol', 1e-3) -datahandle = prepareDatahandleForIntegration('daeExampleRHS', ... - 'integrator', integrator, 'options', opts; +x0 = [1; -1]; +tspan = [0 5]; +M = [1 0; 0 0]; +p = -0.2; + +opts_ifdiff = odeset('Mass', M, 'MassSingular', 'yes', 'AbsTol', 1e-9,'RelTol', 1e-6); +opts_plain = odeset('Mass', M, 'MassSingular', 'yes', 'AbsTol', 1e-9, 'RelTol', 1e-6); + +datahandle = prepareDatahandleForIntegration('daeExampleRHS', 'integrator', integrator, 'options', opts_ifdiff); sol_ifdiff = solveODE(datahandle, tspan, x0, p); -sol_plain = integrator(@(t, x) daeExampleRHS(t, x, p), tspan, x0, opts_ode); +sol_plain = integrator(@(t, x) daeExampleRHS(t, x, p), tspan, x0, opts_plain); ``` ### Step 3: Visualising -To look at our solution and compare them to the plain `ode15s` we can plot both in one plot as follows. Optionally +To look at our solution and compare them to the plain `ode15s` we can plot both in one plot as follows. ``` fig1 = figure(01); @@ -95,34 +94,19 @@ legend([Plain_plot_1(1), IFDIFF_plot_1(1), Switch_plot]); hold off ``` -This gives us the following plot: - -![](first_daeExample/Plots/plot1.png) - -When we take a closer look, we see, that the integration with IFDIFF accurately dedects the switching point. - -![](first_daeExample/Plots/plot1_close2.png) - - -## Sensitivities - -Analytically, the sensitivities with respect to the parameter $p$ of the DAE $(D)$ are computed by - -$ \frac{d t_s}{d p} = \frac{d}{d p} \left( - \ln (-p) \right) = \frac{1}{p} $ -where $t_s$ is the switching point. -Looking at a small initial perturbation $\tilde{x}_ 2(t) = - e^{-t} + \varepsilon x_2(0)$ of $x_2$ for an $\varepsilon > 0$ small enough, we get the perturbation $\tilde{t}_ s$ of the original switching point $t_s$ +![](plots_daeExample/plot1.png) -$ \tilde{x}_ 2(t_s) = - e^{-t_s} + \varepsilon x_2(0) = p \Leftrightarrow \tilde{t}_ s = -\ln(-p - \varepsilon x_2(0)) $ +We notice that the integrator strategy results in small steps here for the plain solver as well as IFDIFF. This is because ode15 is a multi-step method and can thus not be changed. +However, if we take a closer look, we see, that the integration with IFDIFF is accurate around the switching point. -Then we see: +![](plots_daeExample/plot1_close2.png) -$ \frac{d \tilde{t}_ s}{d x_2(0)} = \frac{d}{d x_2(0)} \left(\ln (-p- \varepsilon x_2(0)) \right) = \frac{1}{-p - \varepsilon x_2(0)} = \frac{1}{p - \varepsilon } $. -### Additional Content +## Additional Content -To further investigate this example take a look at the files `daeExample_main.m` and `daeExampleRHs.m`. -To get a grasp of some applications of what we have learned in this README go to the folder `RLC Circuit example` which is an example about modelling with switched DAEs. \ No newline at end of file +To further investigate this example, take a look at the files `daeExample_main.m` and `daeExampleRHs.m`. +Additionally, go to the folder `rlcExample` to learn about solving DAEs with IFDIFF in a modelling example. diff --git a/toolbox/examples/daeExample/daeExample_main.m b/toolbox/examples/daeExample/daeExample_main.m new file mode 100644 index 00000000..98dacc52 --- /dev/null +++ b/toolbox/examples/daeExample/daeExample_main.m @@ -0,0 +1,25 @@ +% DAE Example Main + +%% Setup and integration +integrator = @ode15s; +x0 = [1; -1]; +tspan = [0 5]; +M = [1 0; 0 0]; +p = -0.2; + +opts_ifdiff = odeset('Mass', M, 'MassSingular', 'yes', 'AbsTol', 1e-9,'RelTol', 1e-6); +opts_plain = odeset('Mass', M, 'MassSingular', 'yes', 'AbsTol', 1e-9, 'RelTol', 1e-6); + +datahandle = prepareDatahandleForIntegration('daeExampleRHS', 'integrator', integrator, 'options', opts_ifdiff); +sol_ifdiff = solveODE(datahandle, tspan, x0, p); +sol_plain = integrator(@(t, x) daeExampleRHS(t, x, p), tspan, x0, opts_plain); + +%% Plots +clf; +fig1 = figure(01); +hold on; +IFDIFF_plot_1 = plot(sol_ifdiff.x, sol_ifdiff.y, 'ro--', 'DisplayName', 'IFDIFF'); +Plain_plot_1 = plot(sol_plain.x, sol_plain.y, 'ko-', 'DisplayName', 'plain ode15s'); +Switch_plot = xline(sol_ifdiff.switches, 'b', 'LineWidth', 1.0, 'DisplayName', 'Switch'); +legend([Plain_plot_1(1), IFDIFF_plot_1(1), Switch_plot]); +hold off; diff --git a/toolbox/examples/daeExamples/first_daeExample/Plots/plot1.png b/toolbox/examples/daeExample/plots_daeExample/plot1.png similarity index 100% rename from toolbox/examples/daeExamples/first_daeExample/Plots/plot1.png rename to toolbox/examples/daeExample/plots_daeExample/plot1.png diff --git a/toolbox/examples/daeExamples/first_daeExample/Plots/plot1_2.png b/toolbox/examples/daeExample/plots_daeExample/plot1_2.png similarity index 100% rename from toolbox/examples/daeExamples/first_daeExample/Plots/plot1_2.png rename to toolbox/examples/daeExample/plots_daeExample/plot1_2.png diff --git a/toolbox/examples/daeExamples/first_daeExample/Plots/plot1_close.png b/toolbox/examples/daeExample/plots_daeExample/plot1_close.png similarity index 100% rename from toolbox/examples/daeExamples/first_daeExample/Plots/plot1_close.png rename to toolbox/examples/daeExample/plots_daeExample/plot1_close.png diff --git a/toolbox/examples/daeExamples/first_daeExample/Plots/plot1_close2.png b/toolbox/examples/daeExample/plots_daeExample/plot1_close2.png similarity index 100% rename from toolbox/examples/daeExamples/first_daeExample/Plots/plot1_close2.png rename to toolbox/examples/daeExample/plots_daeExample/plot1_close2.png diff --git a/toolbox/examples/daeExamples/first_daeExample/Plots/switching_point_ifdiff_plain.fig b/toolbox/examples/daeExample/plots_daeExample/switching_point_ifdiff_plain.fig similarity index 100% rename from toolbox/examples/daeExamples/first_daeExample/Plots/switching_point_ifdiff_plain.fig rename to toolbox/examples/daeExample/plots_daeExample/switching_point_ifdiff_plain.fig diff --git a/toolbox/examples/daeExamples/RLC Circuit example/circuit_main.m b/toolbox/examples/daeExamples/RLC Circuit example/circuit_main.m deleted file mode 100644 index baca943a..00000000 --- a/toolbox/examples/daeExamples/RLC Circuit example/circuit_main.m +++ /dev/null @@ -1,24 +0,0 @@ -%% RLC circuit with fuse - -%% Setup -integrator = @ode15s; - -p = [1; 5; 0.1; 1; 1; 0.5]; -M = diag([1,1,0]); -opts = odeset('RelTol',1e-6, 'AbsTol', 1e-8,'Mass', M, 'MassSingular', 'yes'); -tspan = [0 50]; -x0 = [0; 0; 0]; -[t, x] = ode15s(@(t,x) rlcRHS(t,x,p), tspan, x0, opts); - - -datahandle = prepareDatahandleForIntegration('rlcRHS', 'integrator', integrator, 'options', opts); - -%% Integration -sol_ifdiff = solveODE(datahandle, tspan, x0, p); -sol_test = integrator(@(t, x) rlcRHS(t, x, p), tspan, x0, opts); -% Plot -clf; -fig1 = figure(01); -Plot_test = plot(sol_test.x, sol_test.y); -fig2 = figure(02); -Plot_ifdiff = plot(sol_ifdiff.x, sol_ifdiff.y); \ No newline at end of file diff --git a/toolbox/examples/daeExamples/RLC Circuit example/rlcRHS.m b/toolbox/examples/daeExamples/RLC Circuit example/rlcRHS.m deleted file mode 100644 index 6457d8e7..00000000 --- a/toolbox/examples/daeExamples/RLC Circuit example/rlcRHS.m +++ /dev/null @@ -1,15 +0,0 @@ -function dx = rlcRHS(~,x,p) - L = p(1); R1 = p(2); R2 = p(3); C = p(4); Vs = p(5); Vth = p(6); - iL = x(1); vC = x(2); iC = x(3); - - dx = zeros(3,1); - if vC > Vth % Mode 1: High resistance (e.g., fuse intact) - dx(1) = (Vs - R1*iL - vC)/L; - dx(2) = iC/C; - dx(3) = iL - iC; % KCL unchanged - else % Mode 2: Low resistance (e.g., fuse blown, shorted) - dx(1) = (Vs - R2*iL - vC)/L; - dx(2) = iC/C; - dx(3) = iL - iC; % Same algebraic constraint - end -end \ No newline at end of file diff --git a/toolbox/examples/daeExamples/first_daeExample/daeExample_main.m b/toolbox/examples/daeExamples/first_daeExample/daeExample_main.m deleted file mode 100644 index 1e7f160c..00000000 --- a/toolbox/examples/daeExamples/first_daeExample/daeExample_main.m +++ /dev/null @@ -1,86 +0,0 @@ -%% DAE Example Main -integrator = @ode15s; -x0 = [1; -1]; -tspan = [0 5]; -M = [1 0; 0 0]; -p = -0.2; - -% Timelogging -global globalTimeLog -global logEnabled -logEnabled = true; - -opts_ifdiff = odeset('Mass', M, 'MassSingular', 'yes', 'AbsTol', 1e-10, ... - 'RelTol', 1e-6); -opts_ode = odeset('Mass', M, 'MassSingular', 'yes', 'AbsTol', 1e-10, ... - 'RelTol', 1e-6); - -datahandle = prepareDatahandleForIntegration('daeExampleRHS', 'integrator', integrator, 'options', opts_ifdiff); -sol_ifdiff= solveODEWithLogging(datahandle, tspan, x0, p); -sol_plain = integrator(@(t, x) daeExampleRHS(t, x, p), tspan, x0, opts_ode); - -%% Plots - -% DAE solution plot -fig1 = figure(01); -hold on -IFDIFF_plot_1 = plot(sol_ifdiff.x, sol_ifdiff.y, 'ro--', 'DisplayName', 'IFDIFF'); -Plain_plot_1 = plot(sol_plain.x, sol_plain.y, 'ko-', 'DisplayName', 'plain ode15s'); -Switch_plot = xline(sol_ifdiff.switches, 'g', 'LineWidth', 1.0, 'DisplayName', 'Switch'); -legend([Plain_plot_1(1), IFDIFF_plot_1(1), Switch_plot]); -hold off - -%% Visualization of Integrator Steps -%{ -fig2 = figure(02); -clf; -hold on; -% all RHS calls -allRHScalls_plot_1 = plot(allT, zeros(size(allT)), 'ko-', 'DisplayName', 'All RHS Calls'); -% Accepted steps -AcceptedSteps_plot_1 = plot(accT, -0.1*ones(size(accT)), 'go-', 'DisplayName', 'Accepted Steps'); -% Rejected steps -RejectedSteps_plot_1 = plot(rejT, 0.1*ones(size(rejT)), 'mo-', 'DisplayName', 'Rejected Steps'); - -xlabel('Time t'); -yticks([]); -title('Integrator Step Analysis'); -legend(); -hold off - -% Both in 1 Plot -fig3 = figure(03); -clf; -hold on - -IFDIFF_plot_2 = plot(sol_ifdiff.x, sol_ifdiff.y, 'ro--', 'DisplayName', 'IFDIFF'); % 'ro--' -%Plain_plot_2 = plot(sol_plain.x, sol_plain.y, 'bx-', 'DisplayName', 'plain ode15s'); % 'bx-' - -allRHSCalls_plot_2 = plot(allT, zeros(size(allT)), 'ko-', 'DisplayName', 'All RHS Calls'); -AcceptedSteps_plot_2 = plot(accT, -0.1*ones(size(accT)), 'go-', 'DisplayName', 'Accepted Steps'); -RejectedSteps_plot_2 = plot(rejT, 0.1*ones(size(rejT)), 'mo-', 'DisplayName', 'Rejected Steps'); - -xlabel('Time t'); -yticks([]); -title('Integrator Step Analysis'); -legend(); -hold off - -%} - -%disp(sol_ifdiff.switches); - -%{ -fig4 = figure(04); -clf; -hold on; -%timelog_diff = abs(diff(globalTimeLog)); -%unique_globalTimeLog = removeConsecutiveDuplicates(globalTimeLog); -%disp(unique_globalTimeLog); -plot_1 = plot(globalTimeLog, 'o-', 'DisplayName', 'globalTimeLog'); -xlabel('Integrator Steps'); -ylabel('Zeit'); -plot_switch = yline(sol_ifdiff.switches, 'rx-', 'LineWidth', 2.0, 'DisplayName', 'Switch'); -legend(); -hold off; -%} \ No newline at end of file diff --git a/toolbox/examples/daeExamples/first_daeExample/solveODEWithLogging.m b/toolbox/examples/daeExamples/first_daeExample/solveODEWithLogging.m deleted file mode 100644 index 1769d734..00000000 --- a/toolbox/examples/daeExamples/first_daeExample/solveODEWithLogging.m +++ /dev/null @@ -1,110 +0,0 @@ -function varargout = solveODEWithLogging(datahandle, tspan, initialvalues, parameters) -% Integrate the preprocessed RHS with switching point detection. -% On detecting a SWP (marked by one or more ctrlifs changing value in a time step (t_i -> t_{i+1})), stop -% integration, find the exact switching point t_s. Then, extend the solution to just slightly past t_s and -% restart integration with the new model, checking for SWPs again. -% Notation: when a SWP t_s is found in the time step (t_i -> t_{i+1}), we write t1 := t_i, t2 := t_s, t3 := t_{i+1}. -% -% INPUT: -% 'datahandle': data handle containing all the data -% for the switching point detection (calulated by -% prepareDatahandleForIntegration) -% 'tspan': time interval of the integration -% 'initialvalues, parameters': initial values and parameters of the rhs -% -% OUTPUT: -% nargout = 1 -> ode solution object -% nargout = 2 -> ode solution object and datahandle with all data. - -config = makeConfig; -initDatahandleFields(datahandle, tspan, initialvalues, parameters); - - -% Step loggers -global TimeLog -global globalTimeLog -global logEnabled - -if logEnabled - TimeLog = []; -end - -%logEnabled = false; only after switch -solveODE_firstTime(datahandle) -if logEnabled - globalTimeLog = TimeLog; -end -switch_detected = checkForSwitchingIndices(datahandle); - -% Prepare class instances for switching/jump/model functions. -solveODE_setupFunctionStores(datahandle); - -while switch_detected - % cut last step in solution_until_t3 and it becomes solution_until_t1 - %sectionTimeLog = TimeLog; - if logEnabled - TimeLog = []; - end - solveODE_solution_until_t1(datahandle) - if logEnabled - globalTimeLog = [globalTimeLog, TimeLog]; - end - solveODE_getSwitchingFunctions(datahandle); - - solveODE_computeSwitchingPoint(datahandle); - - %logEnabled = false; - extendODEuntilSwitch(datahandle); - - % Determine state jump, if any - jumpCtrlifIndices = solveODE_getJumpIndices(datahandle); - data = datahandle.getData(); - if length(jumpCtrlifIndices) > 1 - error('Multiple jumps apply to the switch at t=%.16g\n', data.SWP_detection.switchingpoints{end}); - elseif isempty(jumpCtrlifIndices) - data.SWP_detection.jumpFunction{end + 1} = []; - datahandle.setData(data); - else - data.SWP_detection.jumpFunction{end + 1} = solveODE_getJumpFunction(datahandle, jumpCtrlifIndices); - datahandle.setData(data); - end - - % Set the starting value and signature for the next stage - solveODE_prepareNextStage(datahandle); - - % chattering/inconsistent switching? --> filippov regime - chattering = solveODE_recognizeFilippovSwitching(datahandle); - if chattering - solveODE_setFilippovRHS(datahandle); - % extend solution from t2 until end of filippov regime - extendODE_filippov_regime(datahandle); - if checkForSwitchingIndices(datahandle) - error('IFDIFF:switchInFilippov', 'Switching during or right after Filippov mode.'); - end - if datahandle.getData().SWP_detection.t2 == tspan(2) - break; % reached end of time span - else - if config.debugMode - fprintf('Left Filippov regime.\n'); - end - solveODE_prepareNextStage(datahandle); - end - end - - % extend solution object from t2 ongoing until the next switch occurs - logEnabled = true; - % logenabled = false % when set to true only tracks steps before switch - if logEnabled - TimeLog = []; - end - extendODE_t2_to_tend_with_SWP_detection(datahandle); - if logEnabled - globalTimeLog = [globalTimeLog, TimeLog]; - end - - switch_detected = checkForSwitchingIndices(datahandle); -end - -varargout = solveODE_assembleOutput(datahandle, nargout); - -end \ No newline at end of file diff --git a/toolbox/examples/rlcExample/plots_rlc/plot_rlc.png b/toolbox/examples/rlcExample/plots_rlc/plot_rlc.png new file mode 100644 index 0000000000000000000000000000000000000000..5486a7133632019a69e9a22303d11192cefcee7f GIT binary patch literal 38661 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 literal 0 HcmV?d00001 diff --git a/toolbox/examples/rlcExample/plots_rlc/rlc_plot_1.png b/toolbox/examples/rlcExample/plots_rlc/rlc_plot_1.png new file mode 100644 index 0000000000000000000000000000000000000000..d6b6f8db611febc465c123db43a39e200d62674e GIT binary patch literal 52023 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

`7zG8*@SY$^O9${}6?oI<$z0k+H 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 RJ518BjfR_9nd|nQ`7eP)p|}75 literal 0 HcmV?d00001 diff --git a/toolbox/examples/rlcExample/plots_rlc/rlc_plot_close.png b/toolbox/examples/rlcExample/plots_rlc/rlc_plot_close.png new file mode 100644 index 0000000000000000000000000000000000000000..bba7f40b08ff4b54f67b42fa1ddc0d36e2069c96 GIT binary patch literal 51306 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 literal 0 HcmV?d00001 diff --git a/toolbox/examples/rlcExample/rlcExample_README.md b/toolbox/examples/rlcExample/rlcExample_README.md new file mode 100644 index 00000000..74df167e --- /dev/null +++ b/toolbox/examples/rlcExample/rlcExample_README.md @@ -0,0 +1,119 @@ + + +# RLC Circuit (Voltage-controlled switch) + +This example models an **RLC electrical circuit** with a fuse using a differential-algebraic equation (DAE) formulation. +The system exhibits state-dependent switching between two modes depending on the capacitor voltage $V_C$ relative to a threshold $V_{\text{th}}$. + +## Physical Description + +The circuit consists of: + +- an inductor $L$ + +- a capacitor $C$ + +- two possible resistanive elements $R_1$ and $R_2$ + +- a DC supply voltage $V_s$ + +When the capacitor voltage exceeds a threshold $V_{\text{th}}$, the circuit switches from high to low resistance. +Such a behavior may be observed​ + +## Model + +The system states are $ x = (i_L, V_C, i_C)^T$. The inductor $L$ follows +Kirchhoff's Voltage Law for the supply $V_s=Ri_L+L\dot{i}_L + V_C $ ($R$ is $R_1$ or $R_2$ depending on the case). +The capacitator $C$ follows the capacitor-current-voltage relation $i_C=C\dot{V}_C$ where $V_C$ is the potential difference between +the capacitor's positive and negative plates. + +The algebraic constraint in out model is Kirchhoff's Current Law at the inductor-capacitor node: +Inductor current equals capacitor current since they are in series in the circuit. + +With this, the DAE system is given by: + +$ (\text D_{\text{RLC}} ) \quad \begin{cases} \dot{i}_L = \begin{cases} \frac{V_s - R_1 i_L - V_C}{L} \quad \text{if} \quad V_C > V_{\text{th}} \\ \frac{V_s - R_2 i_L - V_C}{L} \quad \text{if} \quad V_C \leq V_{\text{th}} \end{cases} \\ \dot{V}_C = \frac{i_C}{C} \\ i_L−i_C = 0 \end{cases}$ + +The system is an index 1 DAE since differentiating yields the second-order ODE $L\ddot{i}_L+R\dot{i}L+\frac{1}{C}i_L=0$. + + +## Solution with IFDIFF + +The parameters are stored in a vector `p = [L; R1; R2; C; Vs; Vth]` since we need to keep the input structure `(t,x,p)` for IFDIFF. + +``` +function dx = rlcRHS(~,x,p) + dx = zeros(3,1); + L = p(1); R1 = p(2); R2 = p(3); + C = p(4); Vs = p(5); Vth = p(6); + iL = x(1); VC = x(2); iC = x(3); + + % Mode 1: High resistance (fuse intact) + if VC > Vth + dx(1) = (Vs - R1*iL - VC)/L; + else + % Mode 2: Low resistance (fuse blown) + dx(1) = (Vs - R2*iL - VC)/L; + end + dx(2) = iC/C; + dx(3) = iL - iC; % algebraic constraint +end +``` + +Now, we need to set up a consistent initial value, e.g. $x_0 =(0,0,0)^T$, a suitable time span and a mass matrix $M$ such that the algebraic constraint is set to 0 while the differential variables remain as coded in the RHS above. + +``` +integrator = @ode15s; +M = diag([1,1,0]); +x0 = [0; 0; 0]; +tspan = [0 10]; +p = [L; R1; R2; C; Vs; Vth]; + +opts_ifdiff = odeset('Mass', M,'AbsTol', 1e-8, 'RelTol', 1e-5); +opts_plain = odeset('Mass', M,'AbsTol', 1e-8, 'RelTol', 1e-5); + +datahandle = prepareDatahandleForIntegration('rlcRHS', 'integrator', integrator, 'options', opts_ifdiff); + +sol_ifdiff = solveODE(datahandle, tspan, x0, p); +sol_plain = integrator(@(t, x) rlcRHS(t, x, p), tspan, x0, opts_plain); + +``` +To compare both solutions, we can plot them and mark the switch. + +``` +clf; +fig1 = figure(01); + +subplot(2,1,1); +hold on; +Plot_ifdiff_1 = plot(sol_ifdiff.x, sol_ifdiff.y(1,:), 'ro--', 'DisplayName', 'IFDIFF'); +Plot_plain_1 = plot(sol_plain.x, sol_plain.y(1,:), 'k.-', 'DisplayName', 'plain ode15s'); +Switch_plot_1 = xline(sol_ifdiff.switches, 'b', 'LineWidth', 1.0, 'DisplayName', 'Switch'); +ylabel('i_L (A)'); +xlabel('Time (s)'); +legend(); +hold off; + +subplot(2,1,2); +hold on +Plot_ifdiff_2 = plot(sol_ifdiff.x, sol_ifdiff.y(2,:), 'ro--', 'DisplayName', 'IFDIFF' ); +Plot_plain_2 = plot(sol_plain.x, sol_plain.y(2,:), 'k.-', 'DisplayName', 'plain ode15s'); +ylabel('i_C (A) = i_L (A) (via constraint)'); +Switch_plot_2 = xline(sol_ifdiff.switches, 'b', 'LineWidth', 1.0, 'DisplayName', 'Switch'); +xlabel('Time (s)'); +legend(); +hold off; +``` + +![](plots_rlc/rlc_plot_1.png) +![](plots_rlc/rlc_plot_close.png) + +To further investigate this example, take a look at the files `rlc_main.m` and `rlcRHs.m`. + +## Sources + +- Physics Foundation: Alexander, C. K., & Sadiku, M. N. O. Fundamentals of Electric Circuits. +- DAE Formulation: Kuzmenko, D. (2018). Switched nonlinear DAEs in electrical circuit theory. Bachelor Thesis, supervised by Prof. Dr. Stephan Trenn. \ No newline at end of file diff --git a/toolbox/examples/rlcExample/rlcRHS.m b/toolbox/examples/rlcExample/rlcRHS.m new file mode 100644 index 00000000..2aaead8b --- /dev/null +++ b/toolbox/examples/rlcExample/rlcRHS.m @@ -0,0 +1,14 @@ +function dx = rlcRHS(~,x,p) + dx = zeros(3,1); + L = p(1); R1 = p(2); R2 = p(3); + C = p(4); Vs = p(5); Vth = p(6); + iL = x(1); VC = x(2); iC = x(3); + + if VC > Vth + dx(1) = (Vs - R1*iL - VC)/L; + else + dx(1) = (Vs - R2*iL - VC)/L; + end + dx(2) = iC/C; + dx(3) = iL - iC; % algebraic constraint +end \ No newline at end of file diff --git a/toolbox/examples/rlcExample/rlc_main.m b/toolbox/examples/rlcExample/rlc_main.m new file mode 100644 index 00000000..07911953 --- /dev/null +++ b/toolbox/examples/rlcExample/rlc_main.m @@ -0,0 +1,47 @@ +% RLC circuit with fuse + +%% Setup and integration +integrator = @ode15s; +M = diag([1,1,0]); +x0 = [0; 0; 0]; +tspan = [0 5]; + +L = 1.0; +R1 = 5.0; +R2 = 0.1; +C = 1.0; +Vs = 1.0; +Vth = 0.5; +p = [L; R1; R2; C; Vs; Vth]; + +opts_ifdiff = odeset('Mass', M,'AbsTol', 1e-8, 'RelTol', 1e-5); +opts_plain = odeset('Mass', M,'AbsTol', 1e-8, 'RelTol', 1e-5); + +datahandle = prepareDatahandleForIntegration('rlcRHS', 'integrator', integrator, 'options', opts_ifdiff); + +sol_ifdiff = solveODE(datahandle, tspan, x0, p); +sol_plain = integrator(@(t, x) rlcRHS(t, x, p), tspan, x0, opts_plain); + +%% Plots +clf; +fig1 = figure(01); + +subplot(2,1,1); +hold on; +Plot_ifdiff_1 = plot(sol_ifdiff.x, sol_ifdiff.y(1,:), 'ro--', 'DisplayName', 'IFDIFF'); +Plot_plain_1 = plot(sol_plain.x, sol_plain.y(1,:), 'k.-', 'DisplayName', 'plain ode15s'); +%Switch_plot_1 = xline(sol_ifdiff.switches, 'b', 'LineWidth', 1.0, 'DisplayName', 'Switch'); +ylabel('i_L (A)'); +xlabel('Time (s)'); +legend(); +hold off; + +subplot(2,1,2); +hold on +Plot_ifdiff_2 = plot(sol_ifdiff.x, sol_ifdiff.y(2,:), 'ro--', 'DisplayName', 'IFDIFF' ); +Plot_plain_2 = plot(sol_plain.x, sol_plain.y(2,:), 'k.-', 'DisplayName', 'plain ode15s'); +ylabel('i_C (A) = i_L (A) (via constraint)'); +Switch_plot_2 = xline(sol_ifdiff.switches, 'b', 'LineWidth', 1.0, 'DisplayName', 'Switch'); +xlabel('Time (s)'); +legend(); +hold off; diff --git a/toolbox/internal/solving/extendODEuntilSwitch_t1_to_t2.m b/toolbox/internal/solving/extendODEuntilSwitch_t1_to_t2.m index 2ea26a50..81891a24 100644 --- a/toolbox/internal/solving/extendODEuntilSwitch_t1_to_t2.m +++ b/toolbox/internal/solving/extendODEuntilSwitch_t1_to_t2.m @@ -19,7 +19,7 @@ function extendODEuntilSwitch_t1_to_t2(datahandle) delta_t = end_point - ti; options = data.integratorSettings.options; -solver = solution.solver; +solver = solution.solver; % Common setup for all solvers ctrlif_setForcedBranchingSignature(datahandle, ti, x); @@ -31,7 +31,7 @@ function extendODEuntilSwitch_t1_to_t2(datahandle) data = datahandle.getData(); data.SWP_detection.solution_until_t2 = z; -% last point strategy for one-step solvers +% last point strategy for one step solvers compatible_solvers = {'ode23', 'ode45', 'ode78', 'ode89', 'ode113', 'ode23t', 'ode23tb'}; if config.last_point_strategy && ismember(solver, compatible_solvers)