Tags and keywords
A "staging" BDD for defining some flows and ports for a simple port-based image flow model for a
KeplerianRefractor with an eyepiece:
This time, instead of modelling the flow of light, the flow of a step-wise transformed
OpticalImage is represented. The main aim of this trail is be able to model reflectors, however most reflectors use a secondary mirror in addition to a primary mirror, not just a simple single objective. Before extending
OpticalTelescope to include such reflectors, a simpler light flow model of a
KeplerianRefractor (which has a single primary lens as objective) is demonstrated.
Care has to be taken here not to build inflexible assumptions into the abstract
OpticalTelescope. For example, a Gregorian reflector has the focal plane before a secondary, whereas the secondary of a Cassegrain reflector intercepts the image being focussed by the primary. The final viewed image of a Gregorian reflector is not inverted, whereas the final viewed image of a Keplerian refractor is. Therefore, to capture the transformation of an
OpticalImage through an optical system, it must be specialised with appropriately redefined properties, and the optical elements of the system need ports with dedicated FlowProperty types.
KeplerianObjectiveImage is a specialisation of
isInverted=true. The block
KeplerianViewedImage is a specialisation of
isMagnified=true, corresponding with these earlier snippets:
There are specialised blocks
KeplerianEyepiece with specialised Ports for handling the above image flows. The specialised
KeplerianRefractor has redefined
objective to be of type
eyepiece to be of type
KeplerianEyepiece (and it has also redefined them as 'composite' part properties, not just reference properties, because it is assumed there are no intermediate assemblies).
KeplerianRefractor also has a redefined
image of type
KeplerianObjectiveImage, and a redefined
viewedImage of type
KeplerianViewedImage. These can each be used as the SysML 'itemProperty' on Connectors with ItemFlows.
The context block
KeplerianRefractorContext is much as was used for the simple light flow model with a
:DistantObject, and an
:Eye, but has a
:KeplerianRefractor, as well as properties
objectImage of type
viewImage of type
KeplerianViewedImage for use as the 'itemProperty' of SysML ItemFlows on Connectors.
OpticalTelescope has now also been given an additional property
objectImage of type
OpticalImage, which is inherited by
KeplerianRefractor, and may likewise be used as the 'itemProperty' of a SysML ItemFlow on a Connector.
As per Webel Best Practice for BDDs: