Skip to content

Releases: Edgar-Mendonca/Datum-Sim

Datum Sim 0.2.0

Choose a tag to compare

@github-actions github-actions released this 29 Oct 15:37
581a540

Reusable models: masks and My blocks.

Masks

  • Give a subsystem a mask (Model › Mask, or the Inspector): parameters of its own with labels, units and defaults, a text on the block, its own help card, and typical ratings saved from the block's values.
  • The blocks inside use the parameters by name; a parameter's value can use the model's variables and the parameters of masks around it. A masked subsystem is set in the Inspector like any block, and errors point at it.
  • Look under the mask (right-click or the Inspector) to see and change the blocks inside.

My blocks

  • Save any subsystem to My blocks; it appears at the top of the Library for every model. Drag it in or double-click it: each model gets its own copy, so changing a saved block later never changes models that already use it.
  • Options › My blocks chooses the folder, so a team can share one on a network drive.

Worked example: a masked DC motor block used for two different motors in one model.

Files: models are saved in file format 2 (it can hold masks). Files from earlier versions open as before.

Datum Sim 0.1.6

Choose a tag to compare

@github-actions github-actions released this 29 Oct 15:28
7a49483

Wires and the diagram: easier to draw, read and find your way in.

Wires

  • Drag a wire's middle segment sideways to move it; the bends stay square.
  • Alt-drag (or Ctrl-drag) from a wire to branch its signal to another input.
  • Double-click a bend to remove it.
  • Signal names: double-click a wire (or use the Inspector) to name the signal it carries. The name shows on the wire, on the printed diagram and in scope legends and results, and every wire from the same output carries it.

Diagram

  • Notes: text notes on the diagram for explanations, reviews and teaching (Format › Note). Wires run over them and they are printed with the diagram.
  • Find (Ctrl+F): find a block, or a named signal, anywhere in the model, inside subsystems too; choosing one opens its diagram and selects it.
  • Block colours: colour blocks to mark the plant, the controller and the sensors (Format › Block Colour, or right-click).
  • Distribute: space three or more blocks evenly, across or down.

Datum Sim 0.1.5

Choose a tag to compare

@github-actions github-actions released this 29 Oct 14:48
b6b5989

Scopes you can measure with, and a probe that reads any wire.

Scopes

  • Cursors: two lines, A and B, that you drag across the plot; a table gives every signal at A and at B, the difference, Δt and 1/Δt.
  • Marks: rise time (10–90 %), overshoot, peak and settling time (2 %) of the first signal, drawn on the plot.
  • Compare runs: the last five runs are kept; overlay any of them, dashed in the same colours.
  • Axes: drag up or down to zoom the y axis; a fixed y range; one plot per input (stacked) on a shared time axis. Layout and range are saved in the Scope block.
  • Pictures: PNG as shown, PNG at three times the size for print, and SVG for papers and reports.

Signal probe

  • Simulate › Log all signals logs every signal of the model. After the run, hover any wire to read its value at cursor A (or at the end of the run), inside subsystems too.

Fixed

  • With every signal logged, the first run no longer opens an empty scope.

Datum Sim 0.1.4

Choose a tag to compare

@github-actions github-actions released this 29 Oct 14:18
d752cd0

Discrete control: controllers that run at a sample time, as in a microcontroller, and more motor and drive blocks.

Discrete control

  • Discrete transfer function and discrete state space.
  • Discrete integrator (forward Euler, backward Euler or trapezoidal) with limits and a reset input.
  • Discrete PID with a filtered derivative, output limits and anti-windup (clamping or back-calculation).
  • Rate transition, to pass a signal between sample times (hold, or a one-sample delay).
  • Sample-time colours (View › Sample-time colours): every block is coloured by how often its output changes, with a legend: continuous, each sample time, constant, or several rates.

Blocks

  • A reset input on the Integrator (rising, falling or either edge), located exactly.
  • Goto and From: send a signal by name without a wire, within one diagram or across the whole model.
  • Sources: square wave, triangle wave, chirp (frequency sweep), repeating sequence.
  • Terminator, to end an output you do not need.

Motors and drives

  • Switched reluctance motor (6/4, 12/8 …) with an asymmetric bridge, and typical ratings.
  • DC link (with a diode rectifier that only charges it), inverter DC current, and a current sensor with gain, offset, bandwidth and noise.

Worked examples: a digital PMSM drive (10 kHz current loop, 1 kHz speed loop) whose DC link rises while the motor brakes; a DC motor with a digital and a continuous PID side by side; switched reluctance motor speed control.

Checked: the discrete blocks against their difference equations; power balance for the induction, synchronous, DC and BLDC machines; the switched reluctance motor's torque and energy balance. See the verification record.

Fixed

  • A signal resting at exactly zero (such as a reset input between pulses) could make the variable-step solvers take endless tiny steps.

Datum Sim 0.1.3

Choose a tag to compare

@github-actions github-actions released this 29 Oct 13:10
91cfcff
  • Windows now lists the publisher as Datum.

Datum Sim 0.1.2

Choose a tag to compare

@github-actions github-actions released this 28 Oct 10:20
5aabda2

The motor library: DC, induction and synchronous motors, BLDC and stepper motors, and the pieces of a drive.

Motors

  • DC motors: separately excited, shunt, series and compound, each with its field circuit.
  • Induction motors: squirrel-cage, double-cage and wound-rotor (rotor voltages as an input, for starting resistors or a rotor-side drive), fed with three-phase voltages.
  • Synchronous motors: permanent-magnet with three-phase inputs (surface or interior magnets), synchronous reluctance, and the wound-field salient-pole motor with damper windings used for large medium and high voltage drives.
  • BLDC motor with ideal six-step commutation and Hall signals; two-phase hybrid stepper motor.
  • Typical ratings: choose a rating in the Inspector (for example 400 V 11 kW, 3.3 kV 500 kW, 11 kV 5 MW) and every value is filled in at once, as one step you can undo. Replace them with nameplate data when you have it.

Drives (a new library group)

  • Three-phase source, three-phase inverter (average model, or switched with the switching instants located exactly), PWM, encoder.
  • Clarke and Park transforms and their inverses.

Worked examples: induction motor direct-on-line start, induction motor V/f speed control, PMSM field-oriented control with an inverter, BLDC speed control, a 3.3 kV synchronous motor on the grid taking a load step, a DC series motor starting a heavy load, and a stepper motor making full steps.

Checked: the induction motors' torque against the exact equivalent circuit at three slips, the DC motors' and the synchronous motor's steady states, the three-phase PMSM against the d–q PMSM, BLDC no-load speed, the stepper's step angle, the inverter's mean voltages and the encoder. See the verification record.

Fixed

  • A zero-crossing that fell exactly on zero at the end of a step could be missed; the variable-step solvers now keep its sign and locate it.

Datum Sim 0.1.1

Choose a tag to compare

@github-actions github-actions released this 28 Oct 07:03
8671a76

Dragging blocks from the library works on Windows, and small fixes from first use.

Fixed

  • Blocks can be dragged from the Library onto the diagram again on Windows: a ghost of the block follows the pointer and the block lands where you drop it.

Better

  • A wrong parameter shows its error in the Inspector as soon as you change it, before you press Run.
  • When the scopes open under the diagram for the first time, the diagram fits itself into the smaller space.
  • Dots show where a wire splits to several inputs.

Datum Sim 0.1.0

Choose a tag to compare

@github-actions github-actions released this 28 Oct 04:14
62110a1

The first version: draw a model as blocks and wires, press Run and watch the scopes.

Models

  • A block diagram editor: drag blocks from the library, connect outputs to inputs, and the wires find their own way around the blocks. Move, resize, flip, rename, copy and paste, undo and redo, zoom and pan, a minimap for big diagrams.
  • About 45 blocks: sources (step, ramp, sine, pulse, clock, table, CSV file, random noise), math (gain, sum, product, divide, min/max, function, saturation), continuous (integrator with limits, derivative, transfer function, zero-pole-gain, state space, PID with anti-windup, transport delay), discontinuities (dead zone, rate limiter, relay, backlash, quantiser), discrete (zero-order hold, unit delay), routing (mux, demux, switch, selector), 1-D and 2-D lookup tables, and sinks (scope, XY graph, display, CSV file).
  • Motors: a DC motor block and a permanent-magnet synchronous motor block (d–q model).
  • Subsystems: select blocks and make them one block; open it to see inside; ungroup it again.
  • Model variables: name a value once (R, L, Kp …) and use it in any parameter.

Running

  • Five solvers: variable step (Dormand–Prince), stiff (Rosenbrock), and fixed-step RK4, Heun and Euler. Jumps in the inputs are hit exactly; relay switching and integrator limits are located exactly.
  • Run, stop, pause and single step, with live scopes.
  • Clear errors that point at the block: unknown names, sizes that do not fit, algebraic loops.
  • Parameter sweeps: run the model for several values of a variable and compare the runs.

Results and analysis

  • Scopes with cursors, zoom and PNG pictures; results as CSV, ready for Datum Plot.
  • Bode plot, stability margins, step response and poles and zeros of linear blocks, and the rise time, overshoot and settling time of any signal, from the built-in Python engine.

Worked examples: mass–spring–damper, DC motor speed control (the motor built from blocks in a subsystem), DC motor position control, PMSM speed control, pump and tank level control, vehicle cruise control and a room thermostat.

And the Datum family window: ribbon, File page, options, print to PDF, a ? card beside every tool, light and dark themes, recovery of unsaved work and updates from inside the app.