动态系统仿真

使用Simulink连接器将仿真连接到您的UI。Simulink是一个基于MATLAB的图形编程环境,用于建模、仿真和分析多域动态系统。在Windows上,Qt设计工作室提供内置支持以连接到Simulink模型,允许它们与使用Qt设计工作室开发的应用程序发送和接收数据。在您的计算机上安装Simulink并与其同时运行,以启用应用程序之间的通信。

此处提供的信息主要关注Qt设计工作室中Simulink连接器的集成。有关如何使用Simulink环境的信息,请参阅MathWorks提供的文档

将Simulink的Qt模块集安装到您的计算机上,以便将Simulink模型连接到您的应用程序。Qt模块集安装程序添加了建立与您的应用程序连接所需的Simulink模块。安装后,将添加SLQTLibrary模块集到Simulink模块库中。这些模块允许与应用程序发送和接收属性信号更新。Qt模块集包括Simulink-Qt客户端地址Qt/QML发送Qt/QML接收模块。

"The Qt Blockset in a Simulink Model"

Simulink-Qt客户端模块建立与应用程序的TCP/IP客户端连接。该模块有两个输入和两个输出

  • 地址输入指定服务器客户端模块的机器IP地址。为确保地址格式正确,请使用地址模块。
  • 端口输入指定了IP地址的端口号,该端口号可以通过使用端口模块或有效的Simulink整数值来确定。
  • IsConnected输出是一个布尔信号。当为true时,表示已建立到服务器的连接。
  • Socket输出发送一个信号,表示连接的套接字ID。该信号需要传递给相应的Qt/QML接收Qt/QML发送模块。

地址和端口

地址模块将服务器的IP地址以典型的IP地址字符串形式传递给Simulink-Qt客户端模块。一个端口模块确定IP地址的端口号。对于在相同机器上运行的Simulink模型和您的应用程序的模拟,请使用IP地址127.0.0.1和任何可用端口号。

Qt/QML发送

"A Qt/QML Send Block"

Qt/QML发送模块将Simulink中的信号属性值的变化从Simulink发送出去。它用于Simulink需要发送到您的应用程序的每个属性。模块的属性名称需要与应用程序中属性或槽的名称相匹配。

该模块有两个输入和一个输出

  • Socket输入从Simulink-Qt客户端模块接收套接字信号。
  • 数据输入接收要发送的数据,作为信号属性更新。
  • 数据输出输出传递的数据,如果需要则将其连接到其他Simulink模块。

Qt/QML接收

"A Qt/QML Receive Block"

Qt/QML接收模块从您的应用程序接收信号属性值的变化。它用于Simulink需要从您的应用程序接收的每个属性。模块的属性名称需要与应用程序中属性或槽的名称相匹配。

该模块有一个输入和两个输出

  • Socket输入从Simulink-Qt客户端模块接收套接字信号。
  • Fcn_Call输出发送一个函数调用的调用,可以是空闲时终止,也可以连接到一个有效的函数调用子系统。
  • isReceived输出发射一个建议从连接中获取有效信号属性更新的标量布尔信号。
  • 数据输出从信号属性值发出数据负载。

在Simulink中双击Qt/SML发送Qt/QML接收模块以指定属性名。将出现一个模块参数的弹出窗口。在Qt信号/属性名称字段中输入属性名称,然后单击确定。例如,名称speedProp需要与Qt Design Studio中的信号属性匹配。

"Example property of the Qt Send block"

要将Simulink模型集成到Qt设计工作室中,您首先需要将Simulink连接器模块添加到项目中。在组件视图中,选择 > SimulinkConnector。现在Qt设计工作室已准备好与Simulink模型进行通信。

"Simulink Connector in the list of available modules."

如果您需要更改IP地址和/或端口号,您需要在导航器中选中SimulinkConnector项,并在属性视图中设置IP地址和/或端口号。如果在导航器中看不到SimulinkConnector,则需要点击(过滤树)并取消选中仅显示可见项

要与Simulink中的特定模型通信,您需要在您构建的应用程序的根目录中创建与发送和接收属性匹配的属性。在导航器中选中根项目来在连接视图中的属性选项卡上添加属性。

有关如何添加自定义属性的详细描述,请参阅指定自定义属性。属性的名称和数据类型需要与Simulink模型中的发送或接收属性相匹配。

"The Properties tab in the Connections view"

创建绑定

接下来,您需要将您刚才创建的属性值绑定到UI组件的所需属性。

通过将根项目属性绑定到组件属性,您可以将其用于旋转组件等操作。将速度的根项目属性绑定到旋转组件属性会导致在运行模拟时项目在屏幕上旋转。

要绑定根项目属性到组件属性,您可以通过在画布上或导航器中单击该组件来选择该组件。在属性视图中,找到要绑定根项目属性的目标组件属性。在选择属性旁边的(操作)菜单中,然后选择设置绑定。在绑定编辑器中,选择文本字段并输入<id>.<property name>,例如rectangle.speedProp。有关更多信息,请参阅设置绑定

"The Binding Editor window"

通过首先点击Qt Design Studio中的运行图标,然后点击Simulink中的运行图标来运行模拟。

在特定Qt许可下可用。
了解更多。