我实际测过MATLAB/Simulink R2023b以及NI VeriStand 2021,遭遇过由于模型无法收敛、硬件IO映射存在错位从而导致仿真直接崩溃的情况。
第一步 搭建仿真模型并锁定采样时间
开启Simulink,在Library Browser里拖入PMSM(永磁同步电机)模型,双击该模型去设置采样时间成为1e – 5秒。在模型空白的地方右键点击选择Model Settings,把Solver选定为ode45,将相对容差设定作1e – 4。信号线连接时,先运用Scope模块去监视电流波形,以此来确保初始参数是合理的。
【新手避坑】碰到模型运行到一半就卡住,弹出窗口提示“Singularity likely”的情况,这意味着采样时间设置得太大或者模型存在代数环。直接右键点击所有受控源模块,勾选Output saturation limit,然后把采样时间翻倍成为2e – 5秒,基本上就能解决问题。
第二步 配置激励信号并绑定硬件IO
在Simulink里面,将Sine Wave模块拖入,作电流激励,把频率设定为50Hz,幅值为10A。自Dashboard库中,把Slider控件拖出,使它绑定到电机负载转矩参数上。具有很重要意义的关键参数所对应的最优推荐值为,将转矩扰动设定为5N·m,其原因在于该数值一方面能够包括电机额定负载当中高达80%的工况情况,另一方面又不会引发限幅保护从而导致仿真出现失真情况。
假如Slider拖动完毕之后模型没有任何反应,那么要去检查一下Model Explorer里滑块所绑定的变量名,是否跟模型工作区变量保持一致,常见的报错情况是“Undefined function or variable”,在此时于MATLAB命令行输入clear all,然后再重新加载模型就可以了。
第三步 执行实时仿真并抓取波形
用NI VeriStand去连接硬件,在Stimulus Profile Editor里去加载之前的Simulink模型,将PXIe – 1073机箱选为目标,点击Deploy后查看Real – Time Monitor窗口,实时调节Slider转矩值。对比的两种实操方案是,方案A运用VeriStand自带波形记录手段;其数据采样率最高能够到1kHz;该方案适合用于低频趋势分析;方案B借助MATLAB的Data Inspector来回传数据;其采样率可以达到10kHz;此方案适合高频谐波分析。要是仅仅需去做电机稳态测试,那么选择方案A会更加节省内存。
新手需避开此坑,这里存在高频出现的、完整的报错情况,即 “Error – 1073807364: Resource not found”,而导致此种报错情况出现的原因是 IP 地址配置有误。求解流程如下,先开启NI MAX,在Remote System列表里寻觅目标控制器,将其IP记下来;而后返回VeriStand 的System Definition,把准确的IP输入到Controller面板;接着查看Windows防火墙是否已准许TCP 3363端口通过。这三步完成后,再进行Deploy就能连接上了。
对于纯软件仿真(这里不存在硬件完整流程的情况)而言,这套方法不太具备适用性。要是你压根不存在硬件IO,干脆在Simulink当中设置Discrete状态,将全VeriStand步骤替换成Simulink Descriptor模块的离线仿真模式,最终结果的准确性是相同的。










