ADDED mttroot/mtt/lib/cr/r/defaultcr.r Index: mttroot/mtt/lib/cr/r/defaultcr.r ================================================================== --- /dev/null +++ mttroot/mtt/lib/cr/r/defaultcr.r @@ -0,0 +1,63 @@ +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% %%%%% Model Transformation Tools %%%%% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Linear constitutive relationship. + +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% %% Version control history +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% %% $Id$ +% %% $Log$ +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%Linear Constitutive Relationship for single port components: R,C,I. +% e = Gain*f (if gain_causality = flow) +% f = Gain*e (if gain_causality = effort) +OPERATOR lin; +FOR ALL gain_causality, gain, causality, input, other_causality +SUCH THAT causality = gain_causality +LET lin(gain_causality, gain, other_causality, 1, input, causality, 1) + = gain*input; + +%Linear CR: e = (1/Gain)*f (if gain_causality = flow) +% f = (1/Gain)*e (if gain_causality = effort) +FOR ALL gain_causality, gain, causality, input, other_causality +SUCH THAT causality NEQ gain_causality +LET lin(gain_causality, gain, other_causality, 1, input, causality, 1) + = input/gain; + + +% Linear Constitutive Relationship for AE and AF +% Output = gain * input + +% Unicausal form +FOR ALL gain, input, causality +LET lin(gain, causality, 2, input, causality, 1) = gain*input; + +%Bicausal form +FOR ALL gain, output, causality +LET lin(gain, causality, 1, output, causality, 2) = output/gain; + +% Linear Constitutive Relationship for TF +FOR ALL gain, input, causality, gain_causality, outport, inport +SUCH THAT ( + (causality = gain_causality) AND (outport = 2) + OR + (causality NEQ gain_causality) AND (outport = 1) + ) +LET lin(gain_causality, gain, causality, outport, input, causality, inport) + = gain*input; + +FOR ALL gain, input, causality, gain_causality, outport, inport +SUCH THAT ( + (causality NEQ gain_causality) AND (outport = 2) + OR + (causality = gain_causality) AND (outport = 1) + ) +LET lin(gain_causality, gain, causality, outport, input, causality, inport) + = input/gain; + +END; +