北太天元 baltamatica_4.1.0 更新日志

标签: 软件版本更新

社区小助手 2025-05-27 17:34:08


基本信息

北太天元科学计算与系统仿真软件v4.120250527
  1. 功能新增

  1. 内核能力新增

  1. 新增面向对象编程功能:

    • Dependent:从属属性

    • Constant:常量属性

    1. 支持如下属性特性

    2. 支持定义属性 get 和 set 方法

  2. 新增对持久变量的支持

  3. try - catch 新增一个用法,现在可以不写 catch 块的内容,含义为执行 try 的内容,如果出错就忽略剩余内容,继续执行后面的语句。

    1. try
          b = sin('a'); % 运行到此处出错,会执行第 5 行的内容
          b = 1;
      end
      disp('hello');
  1. 主体函数新增

函数名函数说明
evalc对字符串表达式求值,并捕捉表达式输出结果
properties获取类的属性名
methods类方法名称
superclasses超类名称
isprop确定属性是否由对象定义
ismethod确定对象是否具有指定的方法
tcpclient创建与 TCP/IP 服务器的 TCP/IP 客户端连接
tcpclientfind查找 TCP/IP 连接
echotcpip启动或停止 TCP/IP 回显服务器
tcpserver创建 TCP/IP 服务器
tcpserverfind查找 TCP/IP 服务器
echoudpudp 回显服务器
udpportfind查找所有 udp 连接
udpport创建 udp 连接
xlsread读取电子表格文件
textscan从文本文件或字符串读取格式化数据
h5read从 HDF5 数据集读取数据
qz广义特征值的广义舒尔 (QZ) 分解
ordqz在 QZ 分解中将特征值重新排序

注:更详细的函数使用说明请参考帮助文档。

  1. 集成开发环境(IDE)功能新增

  1. 支持香港手机号码注册登陆

  2. 新增数据类型timetable 在工作区的展示

  3. 支持类属性在工作区的修改及高亮

  1. AppDesigner新增

支持以编程方式开发 App。

函数描述
uifigure创建用于设计 App 的图窗
uiprogressdlg创建进度对话框
uialert显示警报对话框
uiaxes为 App 中的绘图创建 UI 坐标区
uiopen打开文件选择对话框并将选定的文件加载到工作区中
uimenu创建菜单或菜单项
uitable创建表用户界面组件
uilablel创建标签组件
uibutton创建普通按钮
uidropdown创建下拉组件
uilistbox创建列表框组件
uieditfield创建文本或数值编辑字段组件
uigetdir打开文件夹选择对话框
  1. 工具箱能力新增

  1. 统计与机器学习工具箱

函数描述
detectdrift基于置换检验检测基准数据与目标数据间的分布漂移
histfit具有分布拟合的直方图
mle最大似然估计
makedist创建概率分布对象
fitdist对数据进行概率分布对象拟合
probplot绘制概率图
qqplotQuantile-quantile图
proflik概率分布的轮廓似然函数
runstest随机性检验
hmcSampler哈密尔顿蒙特卡洛采样器
BinomialDistribution二项分布
MultinomialDistribution多项分布
NegativeBinomialDistribution负二项分布
PoissonDistribution泊松分布
BetaDistributionbeta 分布
BirnbaumSaundersDistribution伯恩鲍姆-桑德斯分布
BurrDistribution伯尔 XII 型分布
ExponentialDistribution指数分布
ExtremeValueDistribution极值分布
GammaDistributiongamma 分布
GeneralizedExtremeValueDistribution广义极值分布
GeneralizedParetoDistribution广义帕累托分布
paretotails帕累托分布
HalfNormalDistribution半正态分布
InverseGaussianDistribution逆高斯分布
KernelDistribution核分布
LogisticDistribution逻辑分布
LoglogisticDistribution对数逻辑分布
LognormalDistribution对数正态分布
LoguniformDistribution对数均匀分布
NakagamiDistributionNakagami 分布
NormalDistribution正态分布
PiecewiseLinearDistribution分段线性分布
RayleighDistribution瑞利分布
RicianDistribution莱斯分布
StableDistribution稳定分布
tLocationScaleDistributiont 位置尺度分布
TriangularDistribution三角分布
UniformDistribution均匀分布(连续)
WeibullDistribution威布尔分布
  1. 全局优化工具箱

  1. 新增函数

函数描述
mopso多目标粒子群算法
vega向量化遗传算法
  1. 函数新增算法

函数新增功能
gamultiobj新增NSGA MOGA算法
  1. 控制工具箱

函数描述
icare连续时间代数Riccati方程的隐式求解器
idare离散时间代数Riccati方程的隐式求解器
lyap求解离散时间李雅普诺夫方程
lqg线性二次高斯控制设计
lqgreg构建线性二次高斯调节器
lqi线性二次积分控制
lqr线性二次调节器设计
kalman卡尔曼滤波
h2synh2控制器综合
  1. 脑电工具箱

新增如下功能:

  1. 锁定的试验平均值或事件相关电位数据处理及可视化

  2. 对单通道事件相关数据的多个epoch进行时间/频率分析

  3. 导入Neuroscan文件的辅助功能函数

  1. 北太真元功能新增

  1. 基础计算单元

模块分类功能
sFunctionuserDefinedFuncs支持用户通过level-1 m或c模板实现自定义模块功能
  1. 行业计算单元

模块分类功能
Generate Run ScriptAerospaceToolbox\Flightgear生成FlightGear运行脚本模块
Pack net_fdm Packet for FlightGearAerospaceToolbox\Flightgear生成FlightGear的net_fdm数据包
Receive net_ctrl Packet from FlightGearAerospaceToolbox\Flightgear从FlightGear接收net_ctrl数据
Send net_fdm Packet to FlightGearAerospaceToolbox\Flightgear将net_fdm数据包传输到目标IP地址和端口的FlightGear中
Simulation PaceAerospaceToolbox\Flightgear设置仿真速率
Unpack net_ctrl Packet from FlightGearAerospaceToolbox\Flightgear解码从FlighGear接收到的net_ctrl数据包
WGS84 Gravity ModelAerospaceToolbox\Flightgear实现1984年世界大地测量系统(WGS84)地球重力的表示
6DOF (Euler Angles)AerospaceToolbox\Flightgear实现六自由度运动方程的欧拉角表示
6DOF ECEF (Quaternion)AerospaceToolbox\Flightgear在地心地固(ECEF)坐标系中实现六自由度运动方程的四元数表示
6DOF Wind (Quaternion)AerospaceToolbox\Flightgear实现相对于风轴的六自由度运动方程的四元数表示
6DOF Wind (Wind Angles)AerospaceToolbox\Flightgear实现六自由度运动方程的风向角表示
1D Controller A(v) B(v) C(v) D(v)AerospaceToolbox\Flightgear实现基于一个调度参数的增益调度状态空间控制器
1D Observer Form A(v) B(v) C(v) F(v) H(v)AerospaceToolbox\Flightgear实现基于一个调度参数的增益调度状态空间控制器(以观测器形式)
2D Controller A(v) B(v) C(v) D(v)AerospaceToolbox\Flightgear实现基于两个调度参数的增益调度状态空间控制器
Attitude Profile (Geographic Pointing)AerospaceToolbox\Flightgear计算最短四元数旋转
ECI Position to AERAerospaceToolbox\Flightgear将地心惯性(ECI)坐标转换为方位角坐标
ECI Position to LLAAerospaceToolbox\Flightgear将地心惯性(ECI)坐标转换为大地纬度、经度和高度(LLA)坐标
Geodetic to Geocentric LatitudeAerospaceToolbox\Flightgear使用大地纬度和椭球高度将大地纬度转换为地心纬度和从行星中心到重心的任意半径
LLA to ECI PositionAerospaceToolbox\Flightgear将大地纬度、经度、高度(LLA)坐标转换为地心惯性(ECI)坐标
  1. 新增状态机建模

支持基础状态建模:

  1. 支持状态定义:状态名称、状态入口、执行和退出的关键字(en、du、ex、entry、during、exit)

  2. 状态转移功能:动作、条件、时间事件;支持逻辑运算和函数调用

  3. 变量区功能:支持输入、输出、局部变量;

  4. 时间事件函数:before、after、at、every、temporalCount、elapsed、count、duration;

  5. 状态、事件关键字检查和语法检查

  6. 支持m语法

  1. 插件功能新增

  1. IQA智能问答插件

函数描述
AILoadChat加载历史的对话信息
AIInit该函数根据用户指定的参数初始化人工智能设置。
AIChat使用智能问答系统对用户的提问进行回答。
AISetParams修改模型的参数
  1. Python插件

⽀持创建 python 根对象、⽀持调⽤python函数、⽀持disp(变量名)展⽰详细信息、⽀持在当前环境安装python包、⽀持设置和切换指定的python虚拟环境。

函数描述
pipcmd使用 pip 在当前环境进行Python包管理
pyenv查看Python环境
pyroot获取 Python 插件根对象用于调用 Python 函数
  1. PySym插件

函数描述
sym函数创建符号变量或表达式
syms函数创建多个符号变量或表达式
simplify函数简化符号表达式
taylor求表达式的泰勒级数
limit符号表达式的极限
int求不定积分或定积分
symdiff求表达式的导数或偏导数
  1. 图论(graphtheory插件)

函数名函数说明
bctree图的块割点树
allpaths用于计算图中从指定源节点到目标节点的所有路径
minspantree用于计算无向图的最小生成树
hascycles用于检测给定图是否包含回路
allcycles用于提取图中所有回路
cyclebasis用于提取图的基本圈
graphneighbors返回图节点的相邻节点
predecessors获取指定节点的前继节点
successors获取指定节点的后继节点
  1. 功能优化

  1. 内核优化

  1. try catch 使用方式更灵活,关键字后不必接逗号即可正常使用。catch 语句不接逗号时,具体行为如下:

    1. 紧跟着一个变量名,那么该变量名将会被识别为异常对象

    2. 其他情形,那么该语句会被识别为普通的可执行语句,不生成表示异常的对象(在之前的版本中,这样使用会出错或报告警告)

  2. global 被实现为关键字,在旧版本中它是内置函数。语法为:

    1. global var1 var2 ...
    2.   因此,

    3. global('var1')
    4. 这类语法将不再支持。除以上修改外,全局变量的使用机制未做更改。

  3. 规范函数定义语法。在之前的天元中,函数定义语句的入参和出参可以为任意表达式。例如:

    1. function myfun(a(1), b, c.d)
      end
    2.   现在解释器增加如下规范:

    3. 输入参数:只能是变量名或 ~(占位符)

    4. 输出参数:只能是变量名

    5.   语法检查变得更严格,变量名不符合规则会报错。

  4. 改进命令语法对逗号的处理。旧版命令语法中,逗号 , 被无条件视为是一句命令语法的结束,现在做出如下调整:

    1. 逗号前左右括号数量相等,那么视为语句结束

    2. 逗号前左右括号数量不等,那么视为文本参数

    3. 括号不区分种类,例如 (] 也视为括号数量相等

    4.   举例:

    5. disp a(1,2)        % 输出 a(1,2),之前的版本会报错括号不匹配
      disp a,b           % 输出 a,然后输出 b 的内容
      disp a)(,)         % 语法错误,最后面的 ) 没有对应的 (
  5. 在 M 函数中使用静态的方式扫描变量名(和代码执行顺序无关),符号被识别为变量后(例如出现在赋值语句左侧,或是作为函数的输入/输出参数), 不可作为函数调用。例如如下代码,旧版软件会正常执行,新版软件会先将 sin 识别为变量,进而导致 a = sin(1) 执行出错。

    1. function myfun
         a = sin(1);
         sin = 1;
      end
    2.   备注:

    3. M 脚本、命令行语句不会进行静态扫描,仍然遵循顺序执行逻辑,函数与变量可以自由切换

    4. 静态扫描不会处理隐式创建的变量,例如 eval 函数,load 载入的变量

    5. 如果后续使用 clear 清除与函数名同名的变量,那么变量会被还原为函数

  6. 匿名函数现在支持使用 nargin nargout

  7. 短路逻辑运算&& ||支持输入为 char 类型的数据

  8. 北太天元软件关闭时会自动卸载所有插件,这样所有插件的 bxPluginFini 函数会被自动触发

  1. 主体函数优化

函数优化内容
eval, evalin当输入是字面量时,优化了反复调用的执行效率
str2func支持将静态成员函数转化为句柄,例如 str2func('myclass.sf')
svd支持指定以列向量的形式返回奇异值
svds支持 double 数据类型
datetime支持 'ConvertFrom' 参数
三角函数支持稀疏矩阵
cellfun, structfun支持 datetime 数据类型
sum支持稀疏矩阵
xor, &, |支持稀疏矩阵
isequaln支持稀疏矩阵
cast支持稀疏矩阵
double支持稀疏矩阵
dot支持高维数组
conj支持处理逻辑数组
rand, randn, randi支持 'like' 参数
bicg, bicgstab, bicgstabl, cgs, gmres增加对非方阵、非列向量等非法类型的验证判断
cumsum, cumprod实现溢出加法、溢出乘法

注:更详细的函数使用说明请参考帮助文档。

  1. 集成开发环境(IDE)优化

  1. 输入框和文本搜索框优化,增加统一样式的右键菜单

  2. 优化tooltips显示

  3. 优化窗口阴影显示

  1. 工具箱优化

  1. 统计工具箱

    函数描述
    randg支持 'like' 参数
  1. 控制工具箱

以下函数使用面向对象方法重构

函数描述
dss描述性ss的模型
pidpid控制器
pidstd标准结构的pid控制器
filtDSP格式的离散传递函数
rss随机连续传递函数
drss随机离散传递函数
sparss解析状态空间模型
sparssdata提取状态空间模型参数
step阶跃响应
impulse脉冲响应
lsim给定输入的系统响应
isct判断模型是否连续
isdt判断系统是否离散
isempty判断系统是否为空
isfinite判断系统参数为无穷
isproper判断模型是否合理
isreal判断模型参数是否为实数
issiso判断系统是否为单输入单输出
isstable判断系统是否稳定
isstatic判断系统是静态还是动态
order模型阶次
ndims模型维度
size模型输入和输出维度
bodemagbode幅值图
norm模型范数
damp模型阻尼和固有频率
pzmap极点和零点图
piddataPID控制器参数
stepinfo阶跃信息
lsiminfo仿真信息
ctrb计算可控性矩阵
ctrbf可控性梯形形式
get获取模型属性值
obsv计算可观测性矩阵
obsvf可观测性梯形形式
pole系统极点
set设置模型属性值
ss创建状态空间模型
ssdata获取状态空间模型数据
tf创建传递函数模型
tfdata获取传递函数模型数据
zero系统零点
zpk创建零极点增益模型
zpkdata获取零极点增益模型数据
  1. 北太真元优化

  1. simulink模型导入真元

  1. 支持包含matlab function和虚拟子系统的simulink模型导入真元。

  1. fmu模型导入真元

  1. 支持model-exchange模型导入(fmi协议1.0/2.0/3.0)。

  2. 新增co-simulation模型导入的fmi协议1.0/3.0支持。

  1. 插件功能优化

  1. FAME插件

完善了.poscar文件类型光子晶体的种类。

  1. 问题修复

  1. 内核问题修复

  1. 取下标/赋值

    1. 修复了 a(1) = b(2) 不会输出到命令行的问题

    2. 现在对于取下标语句,只能指定 1 个输出,使用两个以上输出会报错,例如 [x, y] = A(1)A 是一个变量时会报错

    3. 解决了一个 {end} 在嵌套结构中会报错的问题

  2. 面向对象

    1. 解决了某些情况下超类构造函数重复调用或没有调用的问题

    2. 取值为枚举值的各特性现在可以使用字符向量指定,例如 Access = 'public'

    3. 类定义文件中的局部函数现在可以访问类的私有/保护成员

    4. 修复在子类重写方法后,在父类无法调用该方法的问题

    5. 修复了在其他类内调用类 A 的构造函数,类 A 超类的 protected 构造函数无法调用的问题

  3. 矩阵构造与运算

    1. 解决了 ~ ^ 等符号在使用空格分隔的矩阵数组时解析错误的问题

  4. 函数句柄/匿名函数

    1. 解决了一个将具名函数句柄赋值给另一普通函数名后,生成语法不正确的问题。举例:

    2. cos = @sin; a = cos;
    3.    这里

    4. cos
    5. 是内置函数,之前的版本将

    6. a = cos
    7. 识别成了函数调用(实际应为变量赋值)

    8. 解决了匿名函数体没有用到参数时,输入实参不足会报错的问题。例如:

    9. fh = @(x) 1;
      fh() % 返回 1,旧版会提示输入参数不足
    10. 修复了匿名函数转字符串可能会有额外括号的问题

    11. 解决了静态方法取函数句柄时,输出参数未被正确设置的问题

  1. 主体函数问题修复

函数修复内容
dot修复输入空矩阵时闪退的问题
tensorprod修复传入 all 参数时,返回值类型有误的问题
quadgk修复变量范围相等时无法计算的问题
orth修复非法输入时报错不准的问题
interp1q修复输入稀疏矩阵时异常报错的问题
xlsread修复无法正确读取 xlsx 文件中日期单元格的问题
fscanf修复以 %c 形式读取时闪退,且不支持指定读取宽度的问题
bitand修复未指定 assumedtype 时结果错误的问题
bitshift修复指定位数超过数据位数时存在结果错误的问题
bitset修复输入数组存在空时返回维度错误的问题;修复指定位数为标志位时存在结果错误的问题
bitget修复指定位数超过 int32 时存在结果错误的问题
readmatrix修复读取单列或单行 xls 文件时返回为空,无法跳过空行空列和标题行的问题
timetable修复只指定行时间时报错的问题
ismissing修复输入字符串数组中含有 nan 时,计算错误的问题
regexp修复输入空字符串时闪退的问题
insertBefore修复未处理空字符向量的问题
strcat修复不能处理空数组的问题
strrep修复不支持参数指定为空字符串的问题
strsplit修复不能处理空输入的问题
deblank修复不能处理以 '\0' 结尾字符串的问题
extractAfter修复第二个参数不能指定为空输入的问题
replaceBetween修复开始文本模式和终止文本模式不能同时指定为空的问题
any修复输入空稀疏矩阵时计算不正确的问题
writematrix修复不能正确处理制表符的问题
并置修复 char 和复数并置未报错,与小数并置结果有误的问题

注:更详细的函数使用说明请参考帮助文档。

  1. 北太真元问题修复

  1. 基础计算单元

模块分类功能
integratorLimitedcontinuous修复外部x0不起效导致计算错误的问题
integratorWrapedcontinuous修复外部x0不起效导致计算错误的问题
  1. 已知问题

  1. 内核

    1. 常量属性默认值不能使用其它常量属性的值,会闪退


109 0 0 收藏 回复

回复

回复

重置 提交