SuperAPI AI 工具集

simulink-single-precision-conversion

设计与创作

查看项目

更新于 10-16 09:31

技能介绍

用途:把已加载 Simulink 模型(.slx)或子系统中用户指定的双精度数据类型转换为单精度,覆盖模块设置、Stateflow 图表设置、信号对象与总线对象;布尔、内置整数(int8、uint8 等)和定点类型保持不变。适用场景包括为支持单精度的嵌入式硬件降低内存占用、批量/CI 转换、检查转换兼容性、确认无残留双精度。

主要能力:调用 ConversionReport = DataTypeWorkflow.Single.convertToSingle(systemToConvert),其中 systemToConvert 为已加载模型或子系统的完整模块路径(如 'myModel' 或 'myModel/Controller')。流程为检查→转换→验证,结果写入 report.CheckInfo(ready、err、IncompatibleBlks、UnsupportedBlks、DTLockedDblBlks、StowawayDblBlks、TLSSettings、DTOSettings、SolverSettings、configSettings、memoryUse.BeforeValue)、report.ConvertInfo(ready、err、results)与 report.VerifyInfo(StowawayDblBlks、memoryUse.AfterValue)。诊断列表元素是 DataTypeWorkflow.Single.Result 对象,需用 r.ID.getDisplayName() 取可读路径,不能对元素调用 get_param、getfullname 或 string()。检查阶段会自动处理 TLS→C99、DTO 清理与求解器变更。示例:openExample("fixedpoint/ConvertSystemToSinglePrecisionExample")。

使用方式与限制:需 MATLAB、Simulink 与 Fixed-Point Designer,模型必须已加载;用 open_system 而非 load_system 打开模型。转换前须取得用户明确同意,路径或范围不明确时先询问,不得猜测或随意采用工作目录中的 .slx。不得自行调用 save_system,保存会破坏双精度基线并影响重跑;即使用户说“全部做完”,也应说明并请用户自行确认保存。转换后必须检查 report.VerifyInfo.StowawayDblBlks,若有残留需从源头修复并重跑,不要用手工 single(...) 转换或数据类型转换模块掩盖。转换引擎为单例,同一时间只能有一个转换会话。仅适用于 Simulink;独立 MATLAB .m 代码应改用 convertToSingle 配合 coder.config('single'),定点优化应用 DataTypeWorkflow.Converter,查找表压缩应用 simulink-optimize-lookup-tables。复杂 MATLAB Function 模块与模型引用可能需单独审查。价格、平台等其它信息暂未提供。