Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
0.7.12 (2023-12-23)
Changed
- #674 Migrate sources to nelson-lang github organization.
- #775
quit,exit,startup.m,finish.mbehavior reworked for compatibility. - JSON for Modern C++ version 3.11.3 used on all platforms.
- {fmt} 10.1.1 (6f95000) used.
- Fedora 39 CI support.
Fixed
cellfundid not check type of second input argument.
Added
-
filter1-D digital filter. -
control system module (part 2):
freqrespEvaluate system response over a grid of frequencies.stepSimulate continuous time model of a state space model or transfer function.lsimPlot simulated time response of dynamic system to arbitrary inputs.dc2Convert model from discrete to continuous time.c2dConvert model from continuous to discrete time.augstateAppend state vector to output vector.kalmanDesign Kalman filter for state estimation.evalfrEvaluate system response at specific frequency.nyquistNyquist plot of frequency response.ord2Generate continuous second-order systems.appendGroup models by appending their inputs and outputs.feedbackFeedback connection of multiple models.parallelParallel connection of two models.seriesSeries connection of two models.ssdeleteRemove inputs, outputs and states from state-space system.ssselectExtract subsystem from larger system.tzeroInvariant zeros of linear system.tf2ssConvert transfer function filter parameters to state-space form.ss2tfConvert state-space representation to transfer function.minrealMinimal realization or pole-zero cancellation.ssdataAccess state-space model data.tfdataAccess transfer function data.gramControllability and observability Gramians.hsvdHankel singular values of a state-space or transfer function model.dampNatural frequency and damping ratio.balrealGramian-based balancing of state-space realizations.lqryForm linear-quadratic (LQ) state-feedback regulator with output weighting.- #957
dlqrLinear-quadratic (LQ) state-feedback regulator for discrete-time state-space system. - #961
lqedDiscrete Kalman estimator design from continuous cost function. - #960
lqeKalman estimator design for continuous-time systems. - #955
lqrLinear-Quadratic Regulator (LQR) design. - #943
dareSolve discrete-time algebraic Riccati equations. - #951
careContinuous-time algebraic Riccati equation solution. - #945
ctrbfCompute controllability staircase form. - #946
ctrbControllability of state-space model. - #963
obsvObservability matrix. - #964
obsvfCompute observability staircase form. - #949
ackerPole placement gain selection using Ackermann's formula. - #950
bdschurBlock-diagonal Schur factorization. - #952
cloopClose unity feedback loops. - #953
comprealCompanion realization of transfer functions. - #959
gensigCreate periodic signals for simulating system response.
0.7.11 (2023-11-29)
Added
histHistogram plot.barBar graph.scatterScatter plot.stemPlot discrete sequence data.stairsStairstep graph.fill2-D patch.pielegacy pie chart.subsrefSubscripted reference.subsasgnRedefine subscripted assignment.substructCreate structure argument for subsasgn or subsref.dealDistribute inputs to outputs.- Intel compiler support.
Changed
- axis limits recalculate with
hggroup. axesforces focus on current axe.- function_handle parenthese precedence.
patchandfillmanagesFaceAlpha.- visibility title and labels.
- object constructor must be in '@' directory and no more in parent directory (compatibility).
subsref,subsasgncompatibility withsubstruct.- To display a percent sign, you need to use a double percent sign (%%) in the format string (compatibility).
- French translation updated (100%, Thanks to weblate contributors)
- #997 Macos BigSur Github CI support removed.
- Qt 6.6.1 on win64 CI build.
Fixed
A = []; A(false) = zeros(3, 0)did not return an empty matrix but an error.
0.7.10 (2023-10-27)
Added
-
private functions/folders support (to limit the scope of a function).
-
syntax extended to facilitate the creation of literal integers without loss of precision:
- example:
18446744073709551615u64,18446744073709551615i64(similar to rust syntax)
- example:
-
flintmax('like', p)syntax added. -
int64,uint64warning about double-precision. -
#570 balance: Diagonal scaling to improve eigenvalue accuracy.
-
isobjectCheck whether the input is an object. -
cell2matConvert cell array of matrices to single matrix. -
#948
blkdiagCreate a block diagonal matrix from 2D matrices of different sizes. -
kronKronecker tensor product. -
strjustJustify strings. -
control system module (part 1):
- #967 control system module template.
- #944
mag2db,db2mag,pow2db,db2powfunctions. - #968
zp2tf: Zero-pole to transfer function conversion. - #954
dcgain: Low-frequency (DC) gain of LTI system. - #965
padecoef: Padé approximation of time delays. - #958
esort: Sort continuous-time poles by real part. dsort: Sort discrete-time poles by magnitude.- #962
lyap: Continuous Lyapunov equation solution. dlyap: Discret Lyapunov equation solution.abcdchkVerifies the dimensional compatibility of matrices A, B, C, and D.ss: State-space model.tf: Transfer function model (display, horzcat, vertcat, size).isct: checks if dynamic system model is in continuous time.isdt: checks if dynamic system model is in discret time.isstatic: checks if model is static or dynamic.islti: checks if variable is an linear model tf, ss or zpk.issiso: checks if dynamic system model is a single input and single output.zero: Zeros and gain of SISO dynamic system.pole: Poles of dynamic system.bode: Bode plot of frequency response, magnitude and phase data.
Changed
- some modules (nig, modules_manager, help_browser) reworked to use private functions.
- Windows 64 bit CI and release use Qt 6.6.0
Fixed
- #940 title bar on dark theme on Windows.
- help viewer using dark theme.
- adjust position
xlabelonfigure. - #976 wrong output when reading a file with fscanf with size argument.
- #975 Legend color (and width) is not matching that of curve in figure.
- #988 anonymous function serialization '.^' and '^' are inversed.
0.7.9 (2023-09-18)
Changed
-
#488 overloading functions:
- all types including basic types can be overloaded.
- overload is now fully compatible using '@' syntax and precedence.
- all operators were reworked to support compatible overload.
-
.*operator optimized. -
conv2optimized. -
Boost 1.82 used on Windows.
-
Internals:
class,function_handletypes reworked.- types order updated.
- rework validator module.
- functions finder reworked.
- file watcher reworked.
- operators reworked.
repmat,ones,NaN,Infreworked.
-
function_handledisplay is more compatible.
Added
- #491 Anonymous functions
--withoutfilewatcherexecutable argument. disable file watcher for current session.<--FILE WATCHER REQUIRED -->test_run option.- #853 MacOs 13 ventura CI
Fixed
- #916 openblas micromamba on macos required to link libgfortran
0.7.5 (2023-05-27)
Changed
BS::thread_poolv3.5.0simdutfto 3.2.9.{fmt}to 10.0.0.fast_floatto 4.0.0.castreworked to be more compatible.colonreworked to be more compatible (operator uses unary overload).- CMake 3.26.3 on Windows
0.7.4 (2023-04-27)
Added
- Qt 6.5 support.
- #802:
bitand,bitor,bitxorfunctions. issortedDetermine if array is sorted.num2cellConvert array to cell array with consistently sized cells.hggroupCreate group object.colorbar('off')deletes colorbar associated with the current axes.waterfallWaterfall plot.ribbonribbon plot.- figure property:
GraphicsSmoothingAxes graphics smoothing. - text property:
FontSmoothing. - surf property:
MeshStyle. - chatGPT example.
- graphics examples about 3D polygons:
- utah teapot example.
- nefertiti mask example.
- stanford bunny example.
Changed
- Windows installer: allow to install for current user (no administrator rights required).
figurewithout axes has a color.figurecan be created not visible.grid minortoggles the visibility of the minor grid lines.meshreworked.- extraction on empty matrix for compatibility.
ones,eye,inf,nanallow negative index (replaced by 0) for compatibility.- Windows 64 bits version embeds Qt 6.5.
- allows
ifwith empty statements
Fixed
weboptionsdid not manage HeaderFields as expected.- update
cacert.pem. - #895: Micromamba linux build fails after packages updates.
0.7.3 (2023-03-28)
Added
patchCreate patches of colored polygons.ancestorAncestor of graphics object.- hexadecimal color code managed example: '#DDFF00'.
validatecolorValidate color values.- #851: Build with micromamba environment (linux and macOS)
Changed
- Figure property
Positionuses position based on bottom left position for compatibility. - internal: boost no more used to read/write json files.
- internal: taglib library is optional.
- version date updated with each build.
Fixed
- #866: Close menu on figure can crash on linux.
- graphic hierarchy was not fully destroyed after
closeordelete. - labels were not displayed correctly when the logarithmic scale was enabled.
- #869: missing help files in linux package.
0.7.2 (2023-02-27)
Changed
- cmake project reworked. It should be easier to package Nelson on linux platforms (Thanks to @JohanMabille)
- Debian package generated (beta - feedback welcome).
modulepathreworked and extended.- C++ API:
IsCellOfStrings(ArrayOf)replaced byArrayOf::isCellArrayOfCharacterVectors() - C++ API: header
CheckHelpers.hppreplaced byInputOutputArgumentsCheckers.hpp - C++ API:
ToCellStringAsColumnreplaced byArrayOf::toCellArrayOfCharacterColumnVectors api_nelsonmethods moved to type modules- Remove internal circular dependency about error and warning.
- Exports minimum headers in package.
Fixed
disp,displaydid no more support overloading.imagedid not save all values forXDataandYData.- Github CI Monterey and Ubuntu 22.04 (dependencies install) fixed.
- some warnings.
0.7.1 (2023-01-29)
Added
drawnow: Update figures and process callbacks.DrawLaterproperty added tofiguregraphics object.interp1linear interpolation 1D.- #736:
bone,cool,copper,hot,jet,pink,turbo,viridis,whitecolormaps. Visibleproperty tofiguregraphics object.- #809:
NumberTitleproperty tofiguregraphics object. AlphaMapandColormapproperties added toAxesgraphics object.LineStyleOrderproperty of 'axes' used forplotandplot3.ColorOrderIndexandLineStyleOrderIndexproperties added toaxesgraphics object.Interpreterproperty added totextgraphics object.- tex special characters support for
textandticksgraphics object. deletefor graphics objects.imreadRead image from graphics file.imwriteWrite image to graphics file.imshowDisplay image.surfacePrimitive surface plot.- #808:
pcolorPseudocolor plot. meshMesh surface plot.meshzMesh surface plot with curtain.- #807:
loglogLog-log scale plot. CHANGELOG0.7.x family.
Changed
- Graphics objects property names check is strict (compatibility).
- Some speed optimization with graphics objects.
surfreworked to usesurface.
Fixed
- #823: default LineStyle for a line was wrong with marker.
CTRL+Cwas not catched on advanced cli for linux and macos.- colors in
colorbarwere not in the good order. - warnings detected by CodeQL.
- #824: VariableCompleter was not filtered by prefix.