Generates clocks as part of the synchronous language elements.
Clock c=Clock(2, 1000); // Defines a clock variable
Real interval1(start=2e-3);
equation
when Clock() then
// Inferred Clock
x=A*previous(x)+B*u;
end when;
when Clock(2,1000) then
// periodic clock that ticks at 0, 0.002, 0.004, ...
// Could also use when c then
y1 = previous(y1) + 1;
end when;
when Clock(interval1) then
// Clock with a Real interval
// The clock starts at the start of the simulation, tstart, or when the controller is switched on.
// Here the next clock tick is scheduled at previous(interval1)=interval1.start=2e-3
// At the second clock tick at tstart+interval1.start the next clock tick is scheduled at
// previous(interval1)=5e-3
interval1=previous(interval1)+3e-3;
end when;
when Clock(angle>0, 0.1) then
// clock with a boolean interval, triggers when angle>0 becomes true.
y2 = previous(y2) + 1;
end when;
when Clock(c, "ImplicitTrapezoid") then
// Solver Clock
// Ticks at the same rate as c but uses the ImplicitTrapezoid method to solve the differential equations
der(x)=x;
end when;