KerMor  0.9
Model order reduction for nonlinear dynamical systems and nonlinear approximation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
dydt_sarcomere.m
Go to the documentation of this file.
1 #include "SHDynamics.m"
2 namespace models{
3 namespace motorunit{
4 
5 
6 /* (Autoinserted by mtoc++)
7  * This source code has been filtered by the mtoc++ executable,
8  * which generates code that can be processed by the doxygen documentation tool.
9  *
10  * On the other hand, it can neither be interpreted by MATLAB, nor can it be compiled with a C++ compiler.
11  * Except for the comments, the function bodies of your M-file functions are untouched.
12  * Consequently, the FILTER_SOURCE_FILES doxygen switch (default in our Doxyfile.template) will produce
13  * attached source files that are highly readable by humans.
14  *
15  * Additionally, links in the doxygen generated documentation to the source code of functions and class members refer to
16  * the correct locations in the source code browser.
17  * However, the line numbers most likely do not correspond to the line numbers in the original MATLAB source files.
18  */
19 
20 function dy = models.motorunit.SHDynamics.dydt_sarcomere(matrix<double> y,rowvec<double> t) {
21 
22 
23 dy = zeros(size(y));
24 alg = zeros(76,1);
25 
26 c = this.sarcoconst;
27 
28 c36c37 = c(36)*c(37);
29 
30 alg(1) = 1000*((y(1) - y(2))/c(3));
31 alg(2) = c(17)*((y(1) - c(22))/(1 - (exp((- ((y(1) - c(22))/c(33)))))));
32 alg(3) = 1/(1+(exp(((y(1) - c(26))/c(29)))));
33 alg(4) = c(15)*(exp((- ((y(1) - c(23))/c(30)))));
34 alg(5) = c(16)*((y(1) - c(21))/(1 - (exp((- ((y(1) - c(21))/c(32)))))));
35 alg(6) = 1/(1+(exp(((y(1) - c(25))/c(28)))));
36 alg(7) = c(17)*((y(2) - c(22))/(1 - (exp((- ((y(2) - c(22))/c(33)))))));
37 alg(8) = 1/(1+(exp(((y(2) - c(26))/c(29)))));
38 alg(9) = c(15)*(exp((- ((y(2) - c(23))/c(30)))));
39 alg(10) = c(16)*((y(2) - c(21))/(1 - (exp((- ((y(2) - c(21))/c(32)))))));
40 alg(11) = 1/(1+(exp(((y(2) - c(25))/c(28)))));
41 alg(12) = 0.5*c(58)*(exp(((y(2) - c(60))/(8*c(59)))));
42 alg(13) = c(70) -y(33) -y(48) -y(49) -y(50) -y(51) -y(52) -y(53);
43 alg(14) = (c36c37/c(7))*(log((y(5)/y(4))));
44 alg(15) = c(20)*(exp((- ((y(1) - c(22))/c(35)))));
45 alg(16) = 1000*(exp((- ((y(1)+40)/25.7500))));
46 alg(17) = c(18)/(1+(exp((- ((y(1) - c(23))/c(31))))));
47 alg(18) = c(19)*(exp((- ((y(1) - c(21))/c(34)))));
48 alg(19) = 8571/(0.2+ 5.65*(((y(1)+c(49))/100)^2));
49 alg(20) = c(20)*(exp((- ((y(2) - c(22))/c(35)))));
50 alg(21) = (exp((- ((y(2)+40)/25.75))));
51 alg(22) = c(18)/(1+(exp((- ((y(2) - c(23))/c(31))))));
52 alg(23) = c(19)*(exp((- ((y(2) - c(21))/c(34)))));
53 alg(24) = 8571/(0.2+ 5.65*(((y(2)+c(49))/100)^2));
54 alg(25) = 0.5*c(58)*(exp(((c(60) - y(2))/(8*c(59)))));
55 alg(26) = (c36c37/c(7))*(log((y(3)/y(4))));
56 alg(27) = 156.5/(5+(exp(((- c(7)*alg(14))/c36c37))));
57 alg(28) = 156.5 - 5*alg(27);
58 alg(29) = 156.5/(5+(exp(((- c(7)*alg(26))/c36c37))));
59 alg(30) = 156.5 - 5*alg(29);
60 alg(31) = y(1)*((y(4) - y(5)*(exp(((-c(7)*y(1))/c36c37))))/(1 - (exp(((-c(7)*y(1))/c36c37)))));
61 alg(32) = y(2)*((y(4) - y(3)*(exp(((-c(7)*y(2))/c36c37))))/(1 - (exp(((-c(7)*y(2))/c36c37)))));
62 /* alg(33) = 150*h76; % now given by motoneuron-sarcomere link */
63 alg(34) = 1/(1+(exp(((y(1) - c(24))/c(27)))));
64 alg(35) = y(1)*((alg(27) - alg(28)*(exp(((c(7)*y(1))/c36c37))))/(1 - (exp(((c(7)*y(1))/c36c37)))));
65 alg(36) = c(38)*(alg(34)^4);
66 alg(37) = alg(36)*(alg(35)/45);
67 alg(38) = y(5)*(exp(((- c(42)*alg(14))*(c(7)/c36c37))));
68 alg(39) = c(41)*((alg(38)^2)/(c(43)+(alg(38)^2)));
69 alg(40) = 1 - ((1+(c(44)*(1+(alg(38)^2)/c(43)))/((c(47)^2)*(exp(((2*(1 - c(42))*y(1)*c(7))/c36c37)))))^-1);
70 alg(41) = alg(39)*alg(40);
71 /* The hXX variables are placeholders for conditional expressions, which
72  * are not very much liked by MuPAD symbolic expressions
73  * Needs to be defined here due to order */
74 h75 = alg(31) > 0;
75 alg(42) = h75*alg(41)*(alg(31)/50);
76 alg(43) = (c(39)*(y(9)^4))*y(10);
77 alg(44) = alg(43)*(alg(31)/50);
78 alg(45) = y(1)*((y(6) - y(8)*(exp(((-c(7)*y(1))/c36c37))))/(1 - (exp(((-c(7)*y(1))/c36c37)))));
79 alg(46) = ((c(40)*(y(11)^3))*y(12))*y(13);
80 alg(47) = alg(46)*(alg(45)/75);
81 alg(48) = (1/7)*((exp((y(8)/67.3))) - 1);
82 alg(49) = (1+ 0.12*(exp((-0.1*y(1)*(c(7)/c36c37))))+ 0.04*alg(48)*(exp((- (y(1)*(c(7)/c36c37))))))^-1;
83 alg(50) = c(7)*(c(48)/(((1+c(45)/y(5))^2)*((1+c(46)/y(6))^3)));
84 alg(51) = alg(50)*alg(49);
85 alg(52) = alg(37)+alg(42)+alg(44)+alg(47)+alg(51);/* -alg(33); */
86 
87 alg(53) = 1/(1+(exp(((y(2) - c(24))/c(27)))));
88 alg(54) = y(2)*((alg(29) - alg(30)*(exp(((c(7)*y(2))/c36c37))))/(1 - (exp(((c(7)*y(2))/c36c37)))));
89 alg(55) = c(38)*(alg(53)^4);
90 alg(56) = c(50)*alg(55)*(alg(54)/45);
91 alg(57) = y(3)*(exp(((- c(42)*alg(26))*(c(7)/c36c37))));
92 alg(58) = c(41)*((alg(57)^2)/(c(43)+(alg(57)^2)));
93 alg(59) = 1 - ((1+(c(44)*(1+(alg(57)^2)/c(43)))/((c(47)^2)*(exp(((2*(1 - c(42))*y(2)*c(7))/c36c37)))))^-1);
94 alg(60) = alg(58)*alg(59);
95 alg(61) = c(51)*alg(60)*(alg(32)/50);
96 alg(62) = (c(39)*(y(14)^4))*y(15);
97 alg(63) = c(52)*alg(62)*(alg(32)/50);
98 alg(64) = y(2)*((y(6) - y(7)*(exp(((-c(7)*y(2))/c36c37))))/(1 - (exp(((-c(7)*y(2))/c36c37)))));
99 alg(65) = ((c(40)*(y(16)^3))*y(17))*y(18);
100 alg(66) = c(53)*alg(65)*(alg(64)/75);
101 alg(67) = (1/7)*((exp((y(7)/67.3))) - 1);
102 alg(68) = (1+ 0.12*(exp((-0.1*y(2)*(c(7)/c36c37))))+ 0.04*alg(67)*(exp((- (y(2)*(c(7)/c36c37))))))^-1;
103 alg(69) = c(7)*(c(48)/(((1+c(45)/y(3))^2)*((1+c(46)/y(6))^3)));
104 alg(70) = c(54)*alg(69)*alg(68);
105 alg(71) = alg(56)+alg(61)+alg(63)+alg(66)+alg(70);
106 /* New algebraic expressions used in > 0 checks */
107 alg(72) = y(55)*0.001*y(32) - c(98);
108 h73 = alg(72) > 0;
109 h74 = alg(72) <= 0;
110 
111 dy(1) = - ((alg(52)+alg(1))/c(1));
112 dy(2) = - ((alg(71) - alg(1)/c(2))/c(1));
113 dy(3) = (alg(61)+alg(63)+c(13)- 2*alg(70))/(1000*c(7)*c(4)) - (y(3) - y(5))/c(8);
114 dy(4) = - c(10)*((alg(61)+alg(63)+c(13)- 2*alg(70))/(1000*c(7)*c(4))) - (alg(42)+alg(44)+c(13)-2*alg(51))/(1000*c(7)*c(5));
115 dy(5) = (alg(42)+alg(44)+c(13)- 2*alg(51))/(1000*c(7)*c(6))+(y(3) - y(5))/c(11);
116 dy(6) = - c(10)*((alg(66)+c(14)+ 3*alg(70))/(1000*c(7)*c(4))) - (alg(47)+c(14)+ 3*alg(51))/(1000*c(7)*c(5));
117 dy(7) = (alg(66)+c(14)+ 3*alg(70))/(1000*c(7)*c(4)) - (y(7) - y(8))/c(9);
118 dy(8) = (alg(47)+c(14)+ 3*alg(51))/(1000*c(7)*c(6))+(y(7) - y(8))/c(12);
119 dy(9) = alg(2)*(1 - y(9)) - alg(15)*y(9);
120 dy(10) = (alg(3) - y(10))/alg(16);
121 dy(11) = alg(5)*(1 - y(11)) - alg(18)*y(11);
122 dy(12) = alg(4)*(1 - y(12)) - alg(17)*y(12);
123 dy(13) = (alg(6) - y(13))/alg(19);
124 dy(14) = alg(7)*(1 - y(14)) - alg(20)*y(14);
125 dy(15) = (alg(8) - y(15))/alg(21);
126 dy(16) = alg(10)*(1 - y(16)) - alg(23)*y(16);
127 dy(17) = alg(9)*(1 - y(17)) - alg(22)*y(17);
128 dy(18) = (alg(11) - y(18))/alg(24);
129 dy(19) = c(55)*y(24)- c(56)*y(19)+(-4*alg(12)*y(19))/c(57)+ c(57)*alg(25)*y(20);
130 dy(20) = (c(55)*y(25))/c(57)- c(56)*c(57)*y(20)+(4*alg(12)*y(19))/c(57)- c(57)*alg(25)*y(20)+(-3*alg(12)*y(20))/c(57)+ 2*c(57)*alg(25)*y(21);
131 dy(21) = (3*alg(12)*y(20))/c(57)-2*c(57)*alg(25)*y(21)+(c(55)*y(26))/(c(57)^2)- c(56)*(c(57)^2)*y(21)+(-2*alg(12)*y(21))/c(57)+ 3*c(57)*alg(25)*y(22);
132 dy(22) = (c(55)*y(27))/(c(57)^3)- c(56)*(c(57)^3)*y(22)+(2*alg(12)*y(21))/c(57)-3*alg(25)*c(57)*y(22)+(- alg(12)*y(22))/c(57)+ 4*c(57)*alg(25)*y(23);
133 dy(23) = (alg(12)*y(22))/c(57)-4*c(57)*alg(25)*y(23)+(c(55)*y(28))/(c(57)^4)- c(56)*(c(57)^4)*y(23);
134 dy(24) = -c(55)*y(24)+ c(56)*y(19)-4*alg(12)*y(24)+ alg(25)*y(25);
135 dy(25) = 4*alg(12)*y(24)- alg(25)*y(25)+(- c(55)*y(25))/c(57)+ c(57)*c(56)*y(20)-3*alg(12)*y(25)+ 2*alg(25)*y(26);
136 dy(26) = 3*alg(12)*y(25)-2*alg(25)*y(26)+(- c(55)*y(26))/(c(57)^2)+ (c(57)^2)*c(56)*y(21)-2*alg(12)*y(26)+ 3*alg(25)*y(27);
137 dy(27) = 2*alg(12)*y(26)-3*alg(25)*y(27)+(- c(55)*y(27))/(c(57)^3)+ c(56)*(c(57)^3)*y(22)- alg(12)*y(27)+ 4*alg(25)*y(28);
138 dy(28) = alg(12)*y(27)-4*alg(25)*y(28)+(- c(55)*y(28))/(c(57)^4)+ c(56)*(c(57)^4)*y(23);
139 dy(29) = (((((c(99)*(y(19)+y(20)+y(21)+y(22)+y(23)))*((y(30) - y(29))/c(102)) - c(61)*((y(29)/(y(29)+c(62)))/c(102)))+ c(63)*((y(30) - y(29))/c(102)))- c(64)*((y(29) - y(31))/c(102))) -((c(71)*y(29))*((c(73) -y(34)) -y(36))- c(72)*y(34))) -((c(79)*y(29))*y(44)- c(80)*y(40));
140 dy(30) = (((- (c(99)*(y(19)+y(20)+y(21)+y(22)+y(23)))*((y(30) - y(29))/c(104))+ c(61)*((y(29)/(y(29)+c(62)))/c(104)))- c(63)*((y(30) - y(29))/c(104)))- c(65)*((y(30) - y(32))/c(104))) -((c(76)*y(30))*(c(78) - y(38))- c(77)*y(38));
141 dy(31) = ((((- c(61)*((y(31)/(y(31)+c(62)))/c(103))+ c(63)*((y(32) -y(31))/c(103)))+ c(64)*((y(29) - y(31))/c(103)))...
142  -((((...
143  (((c(68)*y(31)*alg(13)- c(69)*y(33))+ c(68)*y(31)*y(33))- c(69)*y(48))...
144  + c(68)*y(31)*y(49))- c(69)*y(50))+ c(68)*y(31)*y(50))- c(69)*y(51)))...
145  -((c(71)*y(31))*(c(73) -y(35) -y(37))- c(72)*y(35))) ...
146  -((c(79)*y(31))*y(45)- c(80)*y(41));
147 dy(32) = (((c(61)*((y(31)/(y(31)+c(62)))/c(105))- c(63)*((y(32)+ ...
148  - y(31))/c(105)))+ c(65)*((y(30) -y(32))/c(105))) -((c(76)*y(32))*(c(78) -y(39))+ ...
149  - c(77)*y(39))) - 1000*(...
150  h73*c(96)*alg(72)*0.001*y(55)*y(32)...
151  + h74*c(97)*y(56)*alg(72));
152 dy(33) = (((((c(68)*y(31))*alg(13)- c(69)*y(33))+ (- c(68)*y(31))*y(33))+ c(69)*y(48))- c(85)*y(33))+ c(86)*y(50);
153 dy(34) = (c(71)*y(29))*((c(73) -y(34)) -y(36))- c(72)*y(34);
154 dy(35) = (c(71)*y(31))*((c(73) -y(35)) -y(37))- c(72)*y(35);
155 dy(36) = (c(74)*(c(73) -y(34) -y(36)))*y(46)- c(75)*y(36);
156 dy(37) = (c(74)*(c(73) -y(35) -y(37)))*y(47)- c(75)*y(37);
157 dy(38) = (c(76)*y(30))*(c(78) -y(38))- c(77)*y(38);
158 dy(39) = (c(76)*y(32))*(c(78) -y(39))- c(77)*y(39);
159 dy(40) = ((c(79)*y(29))*y(44)- c(80)*y(40))- c(83)*((y(40) -y(41))/c(102));
160 dy(41) = ((c(79)*y(31))*y(45)- c(80)*y(41))+ c(83)*((y(40) -y(41))/c(103));
161 dy(42) = ((c(81)*y(46))*y(44)- c(82)*y(42))- c(83)*((y(42) -y(43))/c(102));
162 dy(43) = ((c(81)*y(47))*y(45)- c(82)*y(43))+ c(83)*((y(42) -y(43))/c(103));
163 dy(44) = (-((c(79)*y(29))*y(44)- c(80)*y(40)) -((c(81)*y(46))*y(44)- c(82)*y(42)))- c(83)*((y(44) -y(45))/c(102));
164 dy(45) = (-((c(79)*y(31))*y(45)- c(80)*y(41)) -((c(81)*y(47))*y(45)- c(82)*y(43)))+ c(83)*((y(44) -y(45))/c(103));
165 dy(46) = (-((c(74)*(c(73) -y(34) -y(36)))*y(46)- c(75)*y(36)) -((c(81)*y(46))*y(44)- c(82)*y(42)))- c(84)*((y(46) -y(47))/c(102));
166 dy(47) = (-((c(74)*(c(73) -y(35) -y(37)))*y(47)- c(75)*y(37)) -((c(81)*y(47))*y(45)- c(82)*y(43)))+ c(84)*((y(46) -y(47))/c(103));
167 dy(48) = (((c(68)*y(31))*y(33)- c(69)*y(48))- c(87)*y(48))+ c(88)*y(51);
168 dy(49) = (((- c(68)*y(31))*y(49)+ c(69)*y(50))+ c(85)*alg(13))- c(86)*y(49);
169 dy(50) = ((((c(68)*y(31)*y(49)- c(69)*y(50))+ c(85)*y(33))- c(86)*y(50))+ (- c(68)*y(31))*y(50))+ c(69)*y(51);
170 dy(51) = (((((c(68)*y(31)*y(50)- c(69)*y(51))+ c(87)*y(48))- c(88)*y(51))- c(89)*y(51))+ c(90)*y(52))+ c(93)*y(53);
171 dy(52) = ((c(89)*y(51)- c(90)*y(52))+ c(92)*y(53))- c(91)*y(52);
172 dy(53) = (-c(92)*y(53)+ c(91)*y(52))- c(93)*y(53);
173 dy(54) = 0.001*(c(91)*y(52) - c(92)*y(53))-c(94)*y(54)-c(95)*((y(54) - y(55))/c(103));
174 dy(55) = c(95)*((y(54) - y(55))/c(105)) ...
175  - h73*c(96)*(alg(72))*0.001*y(55)*y(32)...
176  - h74*c(97)*y(56)*alg(72);
177 dy(56) = h73*c(96)*alg(72)*0.001*y(55)*y(32)...
178  + h74*c(97)*y(56)*alg(72);
179 end
180 
181 }
206 };
207 };