Date: Feb 23, 2013 9:37 PM
Author: Peter Mairhofer
Subject: Using piecewise-constant functions in ode Simulink
I want to integrate the multiplication of a cosine with a
piecewise-constant function (e.g. 1 from 0 to 1/1000, -1 from 1/1000 to
The time axis is equally distributed among the time (i.e., transient
change every 1/1000) and the values are stored in an array in MATLAB.
I'm struggling arround for 2 days on this issue :( So help is greatly
What I did was (among other tries): Create a pulse block with rising
edge every 1/1000 which triggers a "Triggered Subsystem". This calls a
MATLAB function which uses find_system/set_param to change the value of
a constant block. This constant is then multiplied by the cosine and
followed by an integrator.
However, this seems to work for some signal but for some it introduces
p = 1 for [0,1/1000], -1 for [1/1000,2/1000] and 1 for [2/1000,3/1000]
x = cos(100*pi*t);
y = (p*x)-> 1/s block
y at t=3/1000 should be 8.00487e-4 if I solve analytically but Simulink
has 8.29766161000261e-4 :( :(
Thanks a lot!