Hysteresis Block.
The default behaviour is like a relay which needs certain level of input signal to switch it on,
but then when the input declines, doesn't switch off till it falls below a lower level.
This block can also imitate a displacement driven friction force which has some compliance (deformation)
before starting to slide in either direction. The idea is a sliding pad that needs some shear deformation before it slides.
Of course, the compliance can be made vey small.
As the object starts to move
deformation takes place until the friction lets things slip,
then the same force is maintained for as long as the motion continues.
To reverse direction, the same compliance applies in the opposite direction.
The model operates by noting at all times, where the zero-shear-force equilibrium point would be.
The third mode allows for combined displacement and rate dependent forces.
It works by measuring velocity by differencing the position deformation.
Variables in Use.
0: Hysteresis Relay.
The device produces an output that is limited to the range between 0 and 1,
with 1 corresponding to large positive input signal.
It is compatable with the logic blocks.
The input displacement is x = (Va+aa), where Va is the output value from block An.
The transition from 0 towards 1 starts when x reaches (Vb+bb) and ends at x=(Vc+cc).
When the input displacement reverses, the transition back towards 0 doesn't start till x=(Vc+cc)-(Vd+dd).
It is therefore completed when x=(Vb-bb)-(Vd-dd).
The gap between the B and C values can be made small so the relay is virtually a two state device.
The size of Vd+dd can be small so the hysteresis effect is small, independent of the range of the transition.
1: Friction and Shear.
In this mode, the input is the same, but Bv represents the friction force level and Cv represents the compliance.
In use, make sure the values are changed accordingly when creating the block.
The D value is ignored and the memory necessary to track movement uses the pp value, so beware of changing it.
It reverts to zero on reset.
2: Displacement and Rate.
The input is the displacement as before. The Compliance is defined by C again,
but there is no bound to the force generated and B defines the dependence on rate of change of position.
The D values are ignored. The rate change of displacement is measured by change in input over the time step.
H Block Code
Procedure ActivateH(ii:integer); // Hysteresis
//Pn (integer) acts as flag for having exceeded upper, Pn->1, or lower, Pn->0, bounds
//A defines input signal, ramp is from B to C, but offset of D is hysteresis
var Av,Bv,Cv,Dv, LinRange, DeltaX :real;
begin with B[ii] do begin
if OnOff=0 then EXIT;
case State of
0: begin //Hysteresis, input Av, transition (can be very short) from 0 to 1 over Bv to Cv,
//with Dv as drop needed to get back, like a relay that takes 4v to latch but only drops out 2v lower.
Av:=B[An].Vn+aa; Bv:=B[Bn].Vn+bb; Cv:=B[Cn].Vn+cc; Dv:=abs(B[Dn].Vn+dd);
Cv:=max(Bv+TinyNumber,Cv); //prevents screwed up definition
if Av<=(Bv-Dv*Pn) then begin Vn:=0.0; Pn:=0; exit end; //Pn stores previous state
if Av>=(Cv-Dv*Pn) then begin Vn:=1.0; Pn:=1; exit end; // for this mode.
Vn:=(Av-Bv+Dv*Pn)/(Cv-Bv)end;
1: begin //Friction with compliant reversal of direction, displacement driven
// dissipates energy when the sliding takes place, no limit on the actual motion
// remembers as pp, the zero force point based on current position
// Av input position, Bv friction force level, Cv compliance.
Av:=B[An].Vn+aa; Bv:=abs(B[Bn].Vn+bb); Cv:=max(tinyNumber,abs(B[Cn].Vn+cc));
LinRange:=Bv*Cv; DeltaX:=Av-pp; Vn:=DeltaX/Cv; //Vn will be force as output value
if DeltaX>=LinRange then begin Vn:=Bv; pp:=Av-LinRange end; //pp stores zero force point
if DeltaX<=-LinRange then begin Vn:=-Bv; pp:=Av+linRange end;
end;
2: begin //Rate dependent extra force required as displacement takes place.
//Losses like viscous damping.
//remembers previous Av in pp. Cv compliance, Bv rate coefficient
Av:=B[An].Vn+aa; Bv:=abs(B[Bn].Vn+bb); Cv:=max(TinyNumber,abs(B[Cn].Vn+cc));
Vn:=(Av+Bv*(Av-pp)/Delt)/Cv; pp:=Av //Vn is force
end
end{cases}
end{withBii}
end;
|
MJMcCann-Consulting
Help Index:
Index/Search
Background
Simulation Concepts
Continuous Systems
Discrete Systems
McSimAPN Structure
McSimAPN Operation
Using McSimAPN
Start McSimAPN
Save Model,data
Create Blocks
Run-Hold-Reset
Link Excel+VBA
PetriNet Block Types
A activity/action
B belt conveyor
C container/constant
D diverter(random)
Analogue Block Types
E exponents
F flux/flow
G function Generator
H hysteresis
I integrator
J inductor
K logic element
L logarithms
M memory
N note/label
O oscilloscope/graph
p not assigned
Q quantizer/rounding
R relay on/off
S sin/asin/atan
T timer/clock
U user link Excel
V visual voltmeter
W sWitch selector/MUX
X multiply
y not assigned
Z random (fuZZ)
& signed summation
% division/difference
@ access/move values
|
Invitation. McCann can help if you have a
design or operational problem that needs some technical support that is outside your
team's experience, some quantitative assessment of what is really the cause of the
difficulties, some design alternatives or just a fresh look by an intelligent
interrogator.
If you have a problem with the behaviour of a market sector, plant, process or item of
equipment and would like to get a quantitative handle on it to improve yield or optimise
performance, then contact us. We are always ready to give a little time
to discuss a new puzzle, in confidence,
of course. We'll only worry about fees
when we have some defined work. We can be flexible
about how we work with you. Top
|
MJMcCann-Consulting,
POB 902,
Chadds Ford PA
19317 USA.
T: 1 302 654-2953
F: 1 302 429 9458
E: mjmccann@iee.org
|