Simultaneous equations involving: (array element)

Use this forum to post Vensim related questions.
Post Reply
rob_n
Senior Member
Posts: 53
Joined: Thu Feb 22, 2018 6:12 pm
Vensim version: DSS

Simultaneous equations involving: (array element)

Post by rob_n »

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~|
Attachments
Block_B_array_feedback.mdl
(1.87 KiB) Downloaded 109 times
Block_A_array_cumulative.mdl
(1.72 KiB) Downloaded 98 times
tomfid
Administrator
Posts: 3806
Joined: Wed May 24, 2006 4:54 am

Re: Simultaneous equations involving: (array element)

Post by tomfid »

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]
tomfid
Administrator
Posts: 3806
Joined: Wed May 24, 2006 4:54 am

Re: Simultaneous equations involving: (array element)

Post by tomfid »

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
rob_n
Senior Member
Posts: 53
Joined: Thu Feb 22, 2018 6:12 pm
Vensim version: DSS

Re: Simultaneous equations involving: (array element)

Post by rob_n »

Nice! Working sample code attached.
Best regards,
Rob
Attachments
Block_B_array_feedback_v4.mdl
(1.84 KiB) Downloaded 118 times
Post Reply