北太天元baltamatica_3.1.0 更新日志

标签: 软件版本更新

社区小助手 2024-01-12 17:23:35

一、Windows版

(一)新增功能

1、IDE

  • 新增函数调试功能,在快捷工具栏调试按钮下拉菜单中输入参数以调试函数;

  • 新增编辑器快捷操作 Ctrl + 鼠标滚轮、Ctrl + +/- 键,以快速缩放编辑器字体大小;

  • 新增全局搜索,搜索范围为编辑器已打开文件中的文本、工作区变量、当前活动目录下的文件、帮助文档;

  • 新增等宽字体为编辑器默认字体。

2、内核

  • 实现了 BP 文件,即加密脚本。可用 bpcode 函数将 M 脚本创建为加密脚本。

3、主体函数

(1)绘图

  • clim: 设置颜色图范围;

  • bubblechart3:三维气泡图;

  • imagesc:使用缩放颜色显示图像;

  • ishold:当前保留状态;

  • hot:hot 颜色图数组;

  • cool:冷色颜色图数组;

  • spring:Spring 颜色图数组;

  • summer:Summer 颜色图数组;

  • autumn:autumn 颜色图数组;

  • winter:Winter 颜色图数组;

  • gray:gray 颜色图数组;

  • parula:parula 颜色图数组;

  • turbo:Turbo 颜色图数组;

  • hsv:HSV 颜色图数组;

  • bone:bone 颜色图数组;

  • copper:copper 颜色图数组;

  • pink:粉色颜色图数组;

  • jet:Jet 颜色图数组;

  • fill3:创建三维填充补片;

  • bar3:三维条形图;

  • bar3h:水平三维条形图;

  • bubblelim:将气泡大小映射到数据范围;

  • stem3:绘制三维离散序列数据;

  • polaraxes:创建极坐标区;

  • image:从数组显示图像;

  • feather:创建以 x 轴为起点的箭头;

  • barh:水平直方图;

  • polarplot:在极坐标中绘制线条;

  • polarscatter:极坐标中的散点图;

  • polarhistogram:极坐标中的直方图;

  • compass:从原点发射出的箭头;

  • swarmchart:群散点图;

  • rlim:设置或查询极坐标区的 r 坐标轴范围;

  • thetalim:设置或查询极坐标区的 theta 坐标轴范围;

  • rticks:设置或查询 r 轴刻度值;

  • contour3:三维等高线图;

  • swarmchart3:三维群散点图;

  • morebins:增加直方图的 bin 数量;

  • fewerbins:减少直方图 bin 数量;

  • quiver3:三维箭头图或向量图;

  • thetaticks:设置或查询 theta 轴刻度值;

  • contourc:低级等高线矩阵计算。

(2)数学

  • pagemtimes: 按页矩阵乘法;

  • pagemldivide:逐页左矩阵除法;

  • pagemrdivide:逐页右矩阵除法;

  • pagetranspose:按页转置;

  • pagectranspose:按页复共轭转置;

  • residue:部分分式展开(部分分式分解);

  • conv:卷积和多项式乘法;

  • deconv:去卷积和多项式除法;

  • filter:1 维数字滤波器;

  • conv2:二维卷积;

  • convn:N 维卷积;

  • erfcx:换算补余误差函数;

  • resi2:多重极点的残数;

  • mpoles:识别重复的极点及其重数;

  • fixparent:修改父节点向量的排列顺序;

  • isequaln:测试数组相等性,将 NaN 值视为相等;

  • sprandsym:稀疏对称随机矩阵;

  • spfun:将函数应用于非零稀疏矩阵元素;

  • spy:可视化矩阵的稀疏模式;

  • sprank:结构秩;

  • spaugment:构造最小二乘增广方程组;

  • etreeplot:绘制消去树;

  • treelayout:设置树或森林的布局;

  • treeplot:绘制树形图;

  • gplot:绘制邻接矩阵中的节点和边;

  • unmesh:将边矩阵转换为坐标和拉普拉斯矩阵;

  • rjr:随机雅可比旋转;

  • ordeig:拟三角矩阵的特征值;

  • ordschur:在 Schur 分解中将特征值重新排序;

  • hess:矩阵的 Hessenberg 形式;

  • schur:Schur 分解;

  • cdf2rdf:将复数对角型转换为实数块对角型;

  • cholupdate:Cholesky 分解的秩 1 更新;

  • qrupdate:QR 分解的秩 1 更新;

  • sqrtm:矩阵平方根;

  • expm:矩阵指数;

  • interp1:一维数据插值(表查找);

  • interpn:ndgrid 格式的一维、二维、三维和 N 维网格数据的插值;

  • pchip:分段三次 Hermite 插值多项式 (PCHIP);

  • makima:修正 Akima 分段三次 Hermite 插值;

  • spline:三次样条数据插值;

  • ppval:计算分段多项式;

  • unmkpp:提取分段多项式详细信息;

  • padecoef:时滞的 Padé 逼近;

  • interpft:一维插值(FFT 方法);

  • ndgrid:N 维空间中的矩形网格;

  • chckxywp:检查和调整输入;

  • chckxy:chckxywp的简化版本,但二者输出格式不同;

  • inpolygon:位于多边形区域边缘内部或边缘上的点;

  • polyarea:多边形的面积;

  • rectint:矩形交叉区域;

  • tsearchn:N 维最近单纯形搜索法;

  • gradient:数值梯度;

  • pwch:分段三次埃尔米特插值;

  • filter2:二维数字滤波器;

  • pageinv:逐页矩阵逆;

  • pagesvd:逐页奇异值分解;

  • del2:离散拉普拉斯算子;

  • sylvester:求解关于 X 的 Sylvester 方程 AX + XB = C;

  • funm:计算常规矩阵函数;

  • gsvd:广义奇异值分解;

  • logm:矩阵对数;

  • svdsketch:计算低秩矩阵草图的 SVD;

  • lscov:存在已知协方差情况下的最小二乘解;

  • mx_computeQuasiRand:计算准随机数。

(3)语言基础知识

  • cat:串联数组;

  • freqspace:频率响应的频率间距;

  • issortedrows:确定矩阵或表的行是否已排序;

  • circshift:循环平移数组;

  • squeeze:删除长度为 1 的维度;

  • cell2mat:将元胞数组转换为基础数据类型的普通数组;

  • mat2cell:将数组转换为在元胞中包含子数组的元胞数组;

  • cellfun:对元胞数组中的每个元胞应用函数;

  • func2str:基于函数句柄构造字符向量;

  • str2func:根据字符向量构造函数句柄;

  • localfunctions:北太天元文件中所有局部函数的函数句柄;

  • append:合并字符串;

  • convertCharsToStrings:将字符数组转换为字符串数组,其他数组不变;

  • convertContainedStringsToChars:在元胞数组或结构体的任何级别转换字符串数组;

  • replaceBetween:替换起点和终点之间的子字符串;

  • strrep:查找并替换子字符串;

  • contains:确定字符串中是否有模式;

  • ismembertol:容差范围内的集合成员;

  • uniquetol:容差内的唯一值;

  • bitand:按位 AND;

  • bitor:按位 OR;

  • bitxor:按位 XOR;

  • bitcmp:按位补码;

  • bitget:获取指定位置的位;

  • bitset:设置指定位置的位;

  • bitshift:将位移动指定位数;

  • union:设置两个数组的并集;

  • strsplit:在指定分隔符处拆分字符串或字符向量;

  • strtok:所选的字符串部分;

  • extract:从字符串中提取子字符串;

  • extractAfter:提取指定位置后的子字符串;

  • extractBefore:提取指定位置前的子字符串;

  • extractBetween:提取起点和终点之间的子字符串;

  • erase:删除字符串内的子字符串;

  • eraseBetween:删除起点和终点之间的子字符串;

  • insertAfter:在指定的子字符串后插入字符串;

  • insertBefore:在指定的子字符串前插入字符串;

  • pad:为字符串添加前导或尾随字符;

  • reverse:反转字符串中的字符顺序;

  • strtrim:从字符串中删除前导和尾随空白;

  • strjust:对齐字符串;

  • underlyingType:确定数组行为的基础数据的类型;

  • int2str:将整数转换为字符;

  • str2num:将字符数组或字符串转换为数值数组;

  • base2dec:将以 n 为基数的整数的文本表示转换为双精度值;

  • bin2dec:将二进制整数的文本表示转换为双精度值;

  • dec2base:将十进制整数转换为其 n 进制表示形式;

  • dec2bin:将十进制整数转换为其二进制表示形式;

  • dec2hex:将十进制整数转换为其十六进制表示形式;

  • hex2dec:将十六进制整数的文本表示转换为双精度值;

  • hex2num:将 IEEE 十六进制格式转换为双精度数;

  • num2hex:将单精度数和双精度数转换为 IEEE 十六进制格式;

  • swapbytes:交换字节顺序;

  • orderfields:结构体数组的顺序字段;

  • width:表的变量数;

  • height:表行数;

  • anymissing:是否有缺失值;

  • strncmp:比较字符串的前 n 个字符(区分大小写);

  • strncmpi:比较字符串的前 n 个字符(不区分大小写);

  • strip:删除字符串中的前导和尾部字符;

  • strjoin:联接数组中的字符串;

  • isUnderlyingType:确定输入是否有指定的基础数据类型;

  • intmax:特定整数类型的最大值;

  • intmin:特定整数类型的最小值;

  • pause:暂停程序,等待用户回应。

(4)数据导入和分析

  • isoutlier:查找数据中的离群值;

  • filloutliers:检测并替换数据中的离群值;

  • rmoutliers:检测并删除数据中的离群值;

  • movmad:移动中位数绝对偏差;

  • islocalmin:计算局部最小值;

  • islocalmax:计算局部最大值;

  • smoothdata:对含噪数据进行平滑处理;

  • mink:计算数组的 k 个最小元素;

  • maxk:计算数组的 k 个最大元素;

  • bounds:数组的最小值和最大值;

  • mode:数组中出现次数最多的值;

  • rms:均方根值;

  • movmax:移动最大值;

  • movmean:移动均值;

  • movmedian:移动中位数;

  • movmin:移动最小值;

  • movprod:移动乘积;

  • movstd:移动标准差;

  • movvar:移动方差;

  • movsum:移动总和;

  • normalize:归一化数据;

  • rmmissing:删除缺失的条目;

  • fillmissing:填充缺失值;

  • xcorr:互相关;

  • xcov:互协方差;

  • detrend:去除多项式趋势。

(5)编程

  • mustBePositive:验证值为正;

  • mustBeNonpositive:验证值为非正;

  • mustBeNonnegative:验证值为非负值;

  • mustBeNegative:验证值为负值;

  • mustBeFinite:验证值是有限值;

  • mustBeNonNan:验证值不是 NaN;

  • mustBeNonzero:验证值为非零;

  • mustBeNonsparse:验证值为非稀疏值;

  • mustBeReal:验证值是实数;

  • mustBeInteger:验证值为整数;

  • mustBeNonmissing:验证值未缺失;

  • mustBeGreaterThan:验证值大于另一个值;

  • mustBeLessThan:验证值小于另一个值;

  • mustBeGreaterThanOrEqual:验证值大于等于另一个值;

  • mustBeLessThanOrEqual:验证值小于等于另一个值;

  • mustBeA:验证值来自指定的类之一;

  • mustBeNumeric:验证值为数值;

  • mustBeNumericOrLogical:验证值为数值或逻辑值;

  • mustBeFloat:验证值是浮点数组;

  • mustBeText:验证值是字符串数组、字符向量或字符向量元胞数组;

  • mustBeTextScalar:验证值是一段文本;

  • mustBeNonzeroLengthText:验证值为非零长度的文本;

  • mustBeUnderlyingType:验证值具有指定的基础类型;

  • mustBeNonempty:验证值为非空;

  • mustBeScalarOrEmpty:验证值是标量或为空;

  • mustBeVector:验证值为向量;

  • mustBeMember:验证值是指定集的成员;

  • mustBeInRange:验证值在指定范围内;

  • mustBeFile:验证路径指向文件;

  • mustBeFolder:验证输入路径指向文件夹;

  • mustBeValidVariableName:验证输入名称是有效的变量名称;

  • mustBeDoubleVector:验证输入是具有非nan和有限值的严格双精度向量;

  • mustBeMemberCaseInsensitive:验证输入是否是给定集合的成员,不区分大小写;

  • mustBeIncreasing:验证输入是严格增加双精度;

  • mustBeDouble:验证输入是否为双精度;

  • isfile:确定输入是否为文件;

  • isfolder:确定输入是否为文件夹;

  • localfunctions:用于在 M 脚本或者 M 函数中调用,返回当前文件所有局部函数句柄;

  • narginchk:检查输入参数个数的合法性;

  • nargoutchk:检查输出参数个数的合法性。

4、工具箱

(1)优化工具箱

  • resetoptions:重置选项;

  • infbound:对代码生成的无限边界支持;

  • optimwarmstart:创建热启动对象;

  • secondordercone:创建二阶锥约束;

  • SecondOrderConeConstraint:二阶锥约束对象。

(2)全局优化工具箱

  • ga:用遗传算法求函数的最小值;

  • gamultiobj:利用遗传算法求解多个适应度函数的Pareto前沿;

  • paretosearch:找出Pareto集合中的点;

  • particleswarm:粒子群优化;

  • patternsearch:使用模式搜索找到函数的最小值;

  • simulannealbnd:用模拟退火算法求函数的最小值;

  • surrogateopt:耗时目标函数全局最小化的代理优化;

  • packfcn:结合目标和非线性约束函数。

(3)信号处理工具箱

  • strips:带状图;

  • hampel:使用Hampel标识符去除异常值;

  • medfilt1:一维中值滤波;

  • sgolay:Savitzky-Golay滤波器设计;

  • sgolayfilt:Savitzky-Golay过滤;

  • chirp:扫描余弦;

  • diric:狄利克雷函数或周期sinc函数;

  • gauspuls:高斯调制正弦射频脉冲;

  • gmonopuls:高斯单脉冲;

  • rectpuls:采样的非周期性矩形;

  • sawtooth:锯齿波或三角波;

  • sinc:sinc 函数;

  • square:方波;

  • tripuls:采样的非周期三角形;

  • vco:压控振荡器;

  • buffer:将信号矢量缓冲成矩阵的数据帧;

  • demod:通信仿真解调;

  • modulate:通信仿真调制;

  • shiftdata:移动数据以在指定维度上操作;

  • unshiftdata:shiftdata的逆;

  • udecode:解码2n级量化整数输入到浮点输出;

  • uencode:将浮点输入量化并编码为整数输出;

  • marcumq:广义Marcum Q-函数;

  • meanfreq:平均频率;

  • medfreq:中值频率;

  • peak2peak:最大最小差;

  • peak2rms:峰值幅度比;

  • rssq:平方和的平方根水平;

  • alignsignals:通过延迟最早的信号来对齐两个信号;

  • cusum:使用累积和检测平均值的小变化;

  • dtw:使用动态时间规整的信号之间的距离;

  • edr:在实际信号上编辑距离;

  • finddelay:估计信号之间的延迟(秒);

  • findpeaks:求局部最大值;

  • binmask2sigroi:转换二进制掩码矩阵的ROI限制;

  • removesigroi:去除感兴趣的信号区域;

  • dutycycle:脉冲波形占空比;

  • midcross:双电平波形的中参考电平交叉;

  • statelevels:用直方图法对双电平波形进行状态估计;

  • overshoot:双电平波形转换的超调指标;

  • undershoot:双电平波形转换的欠冲指标;

  • enbw:等效噪声带宽;

  • filtic:转置直接 II 型滤波器实现的初始条件。

(4)统计工具箱

  • strips:带状图;

  • nanstd:计算标准差;

  • nanmean:计算均值;

  • ttest2:两个独立样本的t检验;

  • nanvar:计算方差;

  • vartest:单样本方差检验;

  • vartest2:方差相等的双样本 F 检验;

  • ztest:对单样本的 Z 检验;

  • chi2pval:卡方分布的 p 值函数;

  • fpval:F分布的 p 值函数;

  • adtest:Anderson-Darling拟合优度假设检验;

  • fishertest:Fisher 精确检验;

  • cdf:累积分布函数;

  • bisquare:bisquare函数;

  • cauchy:cauchy函数;

  • andrews:andrews函数;

  • checkInputName:检查输入的参数名称;

  • checkmonotonic:修改网格数据集,使其单调递增;

  • compactgridformat:检查输入是否为混合方向的向量;

  • evfit:极值数据的参数估计和置信区间;

  • fair:fair函数;

  • firstNonSingletonDim:返回第一个不为一的维度的索引;

  • huber:huber函数;

  • imposeextrapval:为域外的查询点设置外推值;

  • knt2mlt:对多重节点进行分析,返回其之前值与之相同的节点个数;

  • logistic:logistic函数;

  • makemonotonic:翻转网格坐标使其单调递增;

  • meshgridvectors:生成用于创建默认网格的矢量;

  • methodandextrapval:从参数中解析方法;

  • ols:ols函数;

  • jbMC:通过蒙特卡洛模拟获取 Jarque-Bera 检验的临界值和 p 值;

  • CVtbl:计算 JB test 的临界值表;

  • jbtest:复合正态分布的Jarque-Bera 假设检验;

  • prctile:求样本的百分位数;

  • range:返回样本范围;

  • statrobustwfun:得到鲁棒加权函数和调优常数;

  • statset:创建/修改STATS选项结构;

  • stripnansforspline:从输入数据集中剥离包含nan的列;

  • talwar:talwar函数;

  • welsch:welsch函数。

(5)偏微分方程工具箱

  • check_pdemodel:检查pde的结构体的设定是否满足求解的要求;

  • check_func:对一个函数句柄做初步的检查。检查它是否支持向量化,以及输出的维度是否正确;

  • createpde_FD:创建一个差分方法求解pde的结构体;

  • solvepde_FD:按 model 中的设定进行pde数值求解,并返回数值结果;

  • setpdeType:设定 pde 的类型;

  • setpdeTimestep:设定时间步长;

  • setpdeTimelist:设定需要数值求解的时间点,输入要求为正数数组;

  • setpdeRhs:设定方程的右端项;

  • setpdeInitial:设定方程的初始条件,设定初值之前需要先确定方程的求解区域;

  • setpdeGridnum:设定求解采用的网格数。调用此函数前,需要先确定求解区域;

  • setpdeCoef:设定方程中的系数,需要先设定方程的类型;

  • setpdeBoundary:设定方程的边界条件。设定边界之前需要先确定方程类型和求解区域。用户需自己保证边界条件的相容性;

  • setpdeArea:设定 pde 求解的区域;

  • FD_getmesh2D:产生二维的网格信息;

  • FD_getmesh1D:产生一维的网格信息;

  • FD_Boundary_solver2D:差分方法处理边界条件;

  • FD_Boundary_solver1D:差分方法处理边界条件;

  • Laplace_Matrix2D:创建一个二维Laplace算子离散对应的系数矩阵,没有特殊处理边界点;

  • Laplace_Matrix1D:创建一个一维Laplace算子离散对应的系数矩阵,没有特殊处理边界点;

  • upwind_Matrix1D:获取迎风格式对应的系数矩阵(一维);

  • upwind_Matrix2D:获取迎风格式对应的系数矩阵(二维);

  • judgeTime:根据一个pde结构体的类型,判断它是否依赖于时间;

  • FDsolver_Wave2D:用差分方法求解二维波方程;

  • FDsolver_Wave1D:用差分方法求解一维波方程;

  • FDsolver_Poisson2D:用差分方法求解二维 Poisson 方程;

  • FDsolver_Poisson1D:用差分方法求解一维 Poisson 方程;

  • FDsolver_Heat2D:用差分方法求解二维热方程;

  • FDsolver_Heat1D:用差分方法求解一维热方程;

  • FDsolver_Advection2D:用差分方法求解二维对流方程;

  • FDsolver_Advection1D:用差分方法求解一维对流方程。

(6)图像处理工具箱

  • imoverlay:基于二值掩模使用纯色填充 2 维图像;

  • imdrawlines:在图像上画线;

  • imdrawcircles:在图像上画圆;

  • PiecewiseLinearTransformation2D:2 维分片线性几何变换;

  • imboxfilt:2 维框滤波;

  • bwulterode:二值图像终极腐蚀;

  • imreconstruct:形态学重建;

  • imregionalmax:区域最大值;

  • imregionalmin:区域最小值;

  • imextendedmax:扩展极大值变换;

  • imextendedmin:扩展极小值变换;

  • imhmax:H 极大值变换;

  • imhmin:H 极小值变换;

  • imimposemin:强置区域最小值;

  • imsegkmeans:基于 K 均值聚类的图像分割;

  • hough:Hough 变换;

  • houghlines:基于 Hough 变换检测线段;

  • houghpeaks:计算 Hough 变换中的峰值;

  • bwarea:二值图像中对象的面积;

  • immse:均方误差;

  • psnr:峰值信噪比;

  • ssim:结构相似性;

  • detectFASTFeatures:使用 FAST 算法检测角点;

  • detectHarrisFeatures:使用 Harris-Stephens 算法检测角点;

  • cornerPoints:用于存储角点的对象。

(7)北斗工具箱

  • convbin:利用 set_convbin 函数设置的 opt 变量,对传入的文件进行解算;

  • convbinWithStr:convbin_ex 的函数传入参数只需要两类,一个是用户的 json 文件,一个是用户要进行转换的文件;在 *usr.json 文件中修改用户想要的转换参数;

  • set_convbin:设置 convbin 模块中解算所需要的文件变量;

  • rnx2rtkp:利用 set_rnx2rtkp 函数设置的opt变量,对传入的文件进行解算;

  • rnx2rtkpWithStr:rnx2rtkp 模块,传入接收机观测文件、卫星导航文件,选择不同的解算模式,解算出接收机位置信息 *.pos 文件;

  • rnx2rtkp_Usr:rnx2rtkp 模块,传入接收机观测文件、卫星导航文件,选择不同的解算模式,解算出接收机位置信息 *.pos 文件;

  • set_rnx2rtkp:设置 rnx2rtkp 模块中解算所需要的文件变量;

  • pos2kml:利用 set_pos2kml 函数设置的 opt 变量,对传入的文件进行解算;

  • pos2kmlWithStr:pos2kml 模块,读取 *.pos 文件转化为 kml 格式,以便于在 google earth 查看解算的位置。在*usr.json文件中修改用户想要的转换参数;

  • set_pos2kml:设置 pos2kml 模块中解算所需要的文件变量;

  • satposWithStr:传入最新版本 RINEX 3 格式下的nav文件,计算出各个历元下的卫星的位置、速度、钟差;

  • sppWithStr:传入 nav 文件,和 obs 文件进行单点定位计算接收机位置;

  • pppWithStr:传入精密星历 sp3 文件,钟差 clk 文件,nav 文件,和 obs 文件进行精密单点定位计算接收机位置;

  • allWithStr:进行各种类型的定位解算,包括单点定位,精密单点定位,相对定位;自动识别传入的文件,至少两个文件,包含 obs,nav 文件,或者传入精密星历 sp3 文件,钟差 clk 文件,nav 文件,和 obs 文件进行精密单点定位;输入的第一个参数是解算的模式;

  • simsol:利用 set_sim 函数设置的 opt 变量,对 simulate 部分进行解算;

  • simsolWithStr:传入模拟 obs 信号所要使用的 json 文件,传入解算所要使用的 json 文件;在 test_simobs_usr.json 中修改用户的仿真参数;在 test_simsol_usr.json 中修改用户的解算参数;

  • set_sim:设置 simulate 模块中进行解算,所需要的文件变量;

  • simobs:利用 set_simobs 函数设置的opt变量,对 simulate 中生成 obs 文件部分进行计算;

  • simobsWithStr:传入仿真所要使用的 json 文件,在 test_simobs_usr.json 中修改用户的仿真参数;

  • set_simobs:设置 simulate 模块中生成 obs 文件,所需要的文件变量。

5、北太真元多域动态系统建模仿真平台

(1)求解器

  • 新增变步长刚性求解器
    • ode15s:变阶 1 到 5 阶的NDF

    • ode23tb:二阶隐式 Runge-Kutta 公式

    • ode23t:梯形公式

    • ode23s:改进的二阶 Rosenbrock 公式

  • 新增高阶变步长求解器
    • ode6:“鲁棒”的6阶Runge-Kutta 方法;显式求解器

    • ode7:“鲁棒”的7阶Runge-Kutta 方法;显式求解器

    • ode8:“鲁棒”的8阶Runge-Kutta 方法;显式求解器

    • ode9:“鲁棒”的9阶Runge-Kutta 方法;显式求解器

(2)计算单元

  • 新增基础计算单元
    • width:输出输入的信号维度

    • IC:设置初始值

    • chirpSignal:线性调频信号

    • digitalClock:数字时钟

    • ground:接地

    • repeatSequenceInterpolated:重复序列(可选插值方法)

    • repeatSequenceStair:重复序列(保持)

    • signalGenerator:常见波形生成

    • polynomial:多项式

    • trigonometricFunc:三角函数

    • minMaxRunningResettable:极大极小

    • unaryMinus:求相反数

    • detectChange:信号变化检查

    • detectFallNegative:检查信号从非负数向负数变化

    • detectFallNonpositive:检查信号从正数向非正数变化

    • detectRiseNonnegative:检查信号从负数向非负数变化

    • detectRisePositive:检查信号从非正数向正数变化

    • detectDecrease:检查下降沿

    • detectIncrease:检查上升沿

    • intervalTest:范围检查

    • NAND:与非

    • NOR:或非

    • XOR:异或

    • NXOR:异或非

    • baltamFunc:脚本嵌入

    • switch:转换器

    • manualSwitch:手动选择转换器

    • from:用指定的标记从 Goto 模块接收信号

    • goto:goto模块

    • busCreator:信号合并模块

    • busSelector:信号选择模块

    • stopSim:停止仿真

    • tXY:三维绘图模块,x轴为时间

    • XYZ:三维绘图模块,3个输入端口

    • inport:输入端口

    • outport:输出端口

    • backlash:间隙模块

    • PWM:脉冲调制信号

    • rateLimiter:速率控制

    • Relay:中继

    • hitCrossing:穿越检查

    • wrapToZero:截断,如果输入大于阈值则输出零

    • variablePulse:脉冲信号

    • Derivative:微分

    • PIDController:PID控制

    • transportDelay:时延

    • vatiableTimeDelay:时延

    • descriptorStateSpace:带质量矩阵的状态空间

    • continuous
    • discontinuous
    • subsystems
    • outputs
    • signalRoutes
    • uderDefinedFunc
    • logicOperationd
    • maths
    • inputs
    • signalAttrinutes
  • 新增行业计算单元
    • Kalman Filter

    • LTI System

    • Varying Lowpass Filter

    • Varying Notch Filter

    • Discrete Varying Lowpass

    • Discrete Varying Notch

    • Linear Second-Order Actuator

    • Nonlinear Second-Order Actuator

    • Centrifugal Effect Model

    • Dynamic Pressure

    • Incidence & Airspeed

    • Incidence, Sideslip, & Airspeed

    • Mach Number

    • Radius at Geocentric Latitude

    • Wind Angular Rates

    • Calculate Range

    • Crossover Pilot Model

    • Tustin Pilot Model

    • Precision Pilot Model

    • Quaternion Conjugate

    • Quaternion Inverse

    • Mapped Motor

    • Mapped Steering

    • Kinematic Steering

    • Drive Cycle Source

    • Mapped Core Engine

    • Simple Engine

    • Mapped CI Engine

    • Mapped SI Engine

    • Gearbox

    • Reduced Lundell Alternator

    • Datasheet Battery

    • Bidirectional DC-DC

    • Equivalent Circuit Battery

    • Estimation Equivalent Circuit Battery

    • Starter

    • Flux-Based PM Controller

    • Vehicle Body 1DOF Longitudinal

    • Vehicle Body Total Road Load

    • 汽车传动系统模块库
    • 汽车动力学模块库
    • 航空模块库
    • 控制系统模块库

(3)行业模型

  • 新增混沌系统模型 (13个)
    • Lorenz System

    • Chua System

    • Chen System

    • Duffing System

    • Liu's System

    • Rossler System

    • Arneodo System

    • Genesio-Tesi System

    • Lotka-Volterra System

    • Lu's System

    • Newton-Leipnik System

    • Volta System

    • Van der Pol System

  • 新增汽车模型(2个)
    • 半车振动模型

    • 含有轮毂电机的1/4车辆垂向振动模型

  • 新增电力行业模型(4个)
    • RLC电路

    • 三相电流电路

    • 电机clark变换

    • 电机PARK变换

  • 新增信号处理模型(3个)
    • FIR滤波器

    • IIR滤波器

    • DHT变换

6、其他

  • 新增子系统封装

支持带有子系统封装的模型仿真。

  • 新增子函数

提供子函数模块,支持在模型中嵌入m脚本联合仿真。

  • 新增混合系统建模计算

支持包含离散模块和连续模块的混合模型仿真计算。

  • 新增采样周期异步计算

支持包含不同采样周期模块的模型仿真计算。

(二)优化功能

1、IDE

  • 优化了路径管理,最小管理单位由脚本变更为路径,新增运行/调试未找到和有高优先级同名文件时的提示,重做了图形交互界面;

  • 优化了断点及条件断点的样式及交互方式;

  • 优化了帮助系统首页布局;

  • 优化Tab页签交互,新增下拉列表和页签搜索,新增以下快捷键;
    • Ctrl+Tab向前切换

    • Ctrl+Shift+Tab向后切换

    • Ctrl+W关闭

  • 优化了智能缩进代码,新增一键智能缩进功能,快捷键Ctrl+I;

  • 变更变量详情页Delete键功能,由“删除值”变更为“替换为0”;

2、内核

(1)功能增强

  • 在没有越界的情况下,支持结构体分量下标赋值,例如 A(3).s = 1

  • 匿名函数现在支持输入 varargin 作为参数;

  • 匿名函数输入参数过多/过少会报错(之前不会报错,输入过多参数会忽略多余参数);

  • 匿名函数调用内置或者 M 函数时,现在支持指定多个输出参数;

  • 重构代码报错逻辑,减少大量重复和无用的报错,增加报错函数栈回溯;

  • 内置、脚本函数连续嵌套调用时,中间变量不会被赋值给 ans

  • 内置函数的输出参数支持 cell 展开的用法;

  • load 函数现在支持 load a.mat 这样的用法;

  • []() 现在支持列表展开的语法;

  • dbstop函数现在支持使用全路径作为参数,可以给不在搜索路各径的M文件添加断点;

  • dbload函数现在支持使用全路径作为参数,重新加载脚本内容并更新断点位置;

  • 移除旧路径管理相关函数 source discard using using_script disusing disusing_script

  • 修改断点触发逻辑,现在断点只能在 M 文件中触发,程序不会在 BP 文件里中断,也无法进行步进操作;

(2)Bug修复

  • 修复 for 循环中,使用循环变量赋值其他变量,其他变量会被后续循环变量更新影响的 bug;

  • 修复了匿名函数文件定位的问题,调试代码遇到匿名函数时会正确定位到文件位置;

  • 修复了定义 M 函数时、变长输出的内置函数/脚本函数在不同场景调用时, nargout 设置错误的问题,以及 M 脚本中调用语句时 nargout 被设置为 1 的问题;

  • 修复 while + continue 循环条件语句不会被执行的问题;

  • 修复 cell 作为返回值同时扩容的报错以及赋值结果不正确的问题;

  • 修复了 return 语句在 switch 中不生效的问题;

  • 修复了函数句柄绑定当前文件子函数时,传入到其他函数无法正常调用的问题。现在天元对函数句柄绑定规则做出如下约定(若定义 fh = @fun):
    • 如果在当前环境中存在函数 fun,例如子函数、脚本、内置等,则绑定后函数内容不再发生变化。 例如路径中有 fun.m 函数,即使把路径移除,函数句柄的绑定仍然生效。

    • 如果在当前环境中不存在函数 fun,不报错,而是在调用时再次尝试绑定。 如果调用时绑定失败才会返回找不到函数的错误(调用时不支持绑定到子函数)。

  • 修复了匿名函数和 feval 函数报错文件位置异常的问题;

  • 修复了a=' '语句创建空字符数组维度为1×0的问题(实际应为0x0);

  • 修复运算符&、|、&&、||的优先级顺序问题,现在运算严格按照&>|>&&>||的优先级执行;

  • 修复windows字符界面运行代码时,使用Ctrl+C软件会直接退出的问题。现在windows字符界面可以正常进行程序中断;

  • 修复循环内 switch 语句中的 continue/break 不生效的问题,并对不在循环内的 continue/break 给出错误提示;

3、主体函数

(1)功能增强

  • 绘图修改注册方式为内置形式;

  • 绘图函数适配极坐标区;

  • 新增 xlabel、ylabel、zlabel 函数支持数字标签输入;

  • 新增 plot、plot3 支持 MarkerIndices 属性;

  • 新增 reshape、repmat、isfinite、ismising 函数对高维数组的支持;

  • 新增 intersect、full 函数对稀疏矩阵的支持;

  • 新增 round、colon 函数对复数的支持;

  • 新增 qr 函数对 qr(A, 'econ')、qr(A, 'econ', 'matrix')、qr(A, 'econ', 'vector') 的支持;

  • 新增 floor 函数对整型的支持;

  • 新增 meshgrid 函数对三维、复数的支持;

  • 新增 struct 函数支持字段名称加入标识符判断;

  • 新增 zeros、ones、eye、nan、inf 函数支持 'like' 选项;

  • 新增 fft、ifft 函数第二个输入参数支持"[]";

  • 新增 vecnorm 函数支持实数输入的 inf 范数;

  • cd 函数支持 p = cd 这样的语法,将切换前的目录放到变量 p 中。

(2)Bug修复

  • mrdivide:修复了警告信息错误的问题;

  • struct:修复了具有一个字段的结构体输出错误的问题,修复了结构体数据通过end索引访问数据失败、通过end+1索引方式增加结构体数据失败的问题;

  • setfield:修复了嵌套结构体修改一个值造成中间结构体丢失的问题;

  • qr:修复了特殊情况下置换矩阵输出错误且再次运行(或运行 clear)会出现闪退的问题,修复了分解结果错误的问题;

  • fscanf:修复了 %c 形式读取会闪退的问题;

  • 修复了 A/B 不支持当 A 为向量的矩阵除法的问题;

  • isvector:修复了 1×1×N 的数组不是向量时,isvector 返回值错误的问题;

  • NaN:修复了 NaN 为输入参数时,min(NaN,1)、max(NaN,1) 函数输出错误的问题;

  • mldivide:修复了警告信息错误的问题;

  • strfind:修复了对重叠模式的查找错误的问题;

  • sign:修复了输入为 nan 时 sign(nan) 输出错误的问题;

  • setdiff:修复了 B 为空集,指定 rows 时结果错误的问题;

  • string:修复了输入高维数组导致闪退的问题;

  • strlength:修复了对中文支持存在的问题;

  • diag:修复了输出错误的问题,修复了提取稀疏矩阵左下角对角线元素闪退的问题;

  • legendre:修复了计算 P_1 = legendre(1,[0.3:0.1:0.5]) 错误的问题;

  • rot90:修复了 rot90(A,k )中 k 取负数的时候没有返回结果的问题;

  • ismising:修复了仅识别出一个缺失值的问题;

  • sum:修复了 a=[];sum(a) 计算的问题;

  • celldisp:修复了无法向输出流打印的问题。

4、插件

  • 移除了 graph 和 time 插件,主体函数已经完全包含这两个插件的功能。

5、北太真元多域动态系统建模仿真平台

(1)IDE

  • 更新treeview 视图界面

  • 更新tabview 视图界面;

  • 更新tab页签;

  • 参数配置界面更新;

  • 求解器界面更新

(2)功能增强

  • 离散计算单元支持设置采样时间参数。

(3)Bug修复

  • 真元和天元信息分流问题。
    • 支持真元仿真模型的报错在真元界面显示。

  • 修复logicOperator模块端口数为1时的计算错误。

(三)已知问题

1、北太真元多域动态系统建模仿真平台

  • 模块参数设置只支持数值表达,不支持表达式、科学计数法、特殊字符pi等表达、变量表达式。
    • 建议解决方案:如果用户设置参数需要用到pi等表达式计算,请使用天元计算出确切的数字,再填入参数设置窗口。

  • 画布上的模块图标大小会随着端口数的增多而增大,如果过大会占据画布所有位置。例如sum、product、mux、demux、logicOperator模块。建议用户使用时设置端口数不要超过50。

  • 在复杂模型下,复制模块连线到新文件中,连线会出现异常;同时偶现模块入参连接出参,出现代数环。

2、内核

没有解决如 c = {}; c{1}.x = 1 这类对已有 cell 扩充并初始化为 struct 的问题,这样的语句目前会报错下标越界。


394 0 0 收藏 回复

回复

回复

重置 提交