Hi,
I'm trying to do some feedback-like math in an array dimension. Using subscript mapping it is straightforward to calculate the accumulation of an array. But when I try to do something like a first-order exponential smoothing I get a “Simultaneous equations” error.
Two similar blocks of code: Block A works, Block B does not. What am I missing?! Full simulations are attached
Best regards,
Rob
********************************************************
.common code
********************************************************
horizon:
(h1-h5)
~~|
horizon earlier:
(h1-h4) -> horizon later
~~|
horizon later:
(h2-h5) -> horizon earlier
~~|
h interval==
1
~Week~|
Signal=
1
~unit/Week~|
Array Signal[horizon]=
Signal
~unit/Week~|
********************************************************
.Block A code WORKS:
********************************************************
Cumulative Signal[h1]=
0 ~~|
Cumulative Signal[horizon later]=
Array Signal[horizon later]*h interval+Cumulative Signal[horizon earlier]
~unit~|
********************************************************
.Block B code DOES NOT work; “Simultaneous equations involving: Average Array Signal [h2]"
********************************************************
Average Array Signal[h1]=
0 ~~|
Average Array Signal[horizon later]=
Average Array Signal[horizon earlier]+incr Average Array Signal[horizon later]
~unit/Week~|
incr Average Array Signal[horizon]=
Array Signal[horizon]-Average Array Signal[horizon]
~unit/Week~|
Simultaneous equations involving: (array element)
Simultaneous equations involving: (array element)
- Attachments
-
- Block_B_array_feedback.mdl
- (1.87 KiB) Downloaded 111 times
-
- Block_A_array_cumulative.mdl
- (1.72 KiB) Downloaded 100 times
Re: Simultaneous equations involving: (array element)
I think Block B contains a real circularity. If you start expanding the equations at element H2, it becomes:
Average Array Signal[h2]=Average Array Signal[h1]+incr Average Array Signal[h2]
incr Average Array Signal[h2]=Array Signal[h2]-Average Array Signal[h2]
Average Array Signal[h2]=Average Array Signal[h1]+incr Average Array Signal[h2]
incr Average Array Signal[h2]=Array Signal[h2]-Average Array Signal[h2]
/*
Advice to posters (it really helps us to help you)
http://www.ventanasystems.co.uk/forum/v ... f=2&t=4391
Blog: http://blog.metasd.com
Model library: http://models.metasd.com
Bookmarks: http://delicious.com/tomfid/SystemDynamics
*/
Advice to posters (it really helps us to help you)
http://www.ventanasystems.co.uk/forum/v ... f=2&t=4391
Blog: http://blog.metasd.com
Model library: http://models.metasd.com
Bookmarks: http://delicious.com/tomfid/SystemDynamics
*/
Re: Simultaneous equations involving: (array element)
I think something like this would work:
Average Array Signal[h1] = Array Signal[h1]
Average Array Signal[h later] = Average Array Signal[h earlier] + (Array Signal[h later]-Average Array Signal[h earlier])/tau
Average Array Signal[h1] = Array Signal[h1]
Average Array Signal[h later] = Average Array Signal[h earlier] + (Array Signal[h later]-Average Array Signal[h earlier])/tau
/*
Advice to posters (it really helps us to help you)
http://www.ventanasystems.co.uk/forum/v ... f=2&t=4391
Blog: http://blog.metasd.com
Model library: http://models.metasd.com
Bookmarks: http://delicious.com/tomfid/SystemDynamics
*/
Advice to posters (it really helps us to help you)
http://www.ventanasystems.co.uk/forum/v ... f=2&t=4391
Blog: http://blog.metasd.com
Model library: http://models.metasd.com
Bookmarks: http://delicious.com/tomfid/SystemDynamics
*/
Re: Simultaneous equations involving: (array element)
Nice! Working sample code attached.
Best regards,
Rob
Best regards,
Rob
- Attachments
-
- Block_B_array_feedback_v4.mdl
- (1.84 KiB) Downloaded 119 times