VB内嵌matlab simulink仿真

本文介绍如何使用VB代码在界面内嵌Matlab Simulink仿真模块并控制参数,通过Matlab.Execute()运行代码,set_param()修改仿真参数,实现模型参数的动态调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用VB控制matlab simulink仿真模型

要求

在VB界面里内嵌matlab simulink仿真模块,并能控制仿真中的参数。

方案

用 Matlab.Execute () 语句使matlab运行代码。
用 set_param() 语句改变仿真里的参数

VB代码:

装配环境下,录制代码如下:

Dim Matlab As Object
Private lHwnd As Long
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Private Declare Function GetParent Lib "user32" (ByVal hWnd As Long) As Long
 ‘窗口加载事件
Private Sub Form_Load() 
  On Error GoTo ErrTrap
   Set Matlab = CreateObject("Matlab.Application")  ‘链接matlab
     Matlab.Visible = False
     ‘11下面代码为捕捉simulink模块窗口
    Matlab.Execute ("simulink")    ‘matlab打开 Simulink模块  
   lHwnd = FindWindow(vbNullString, "Simulink Start Page")    ‘捕捉simulink窗口
   MoveWindow lHwnd, 0, 0, 500, 550, 1 ' 改变窗口大小
    If lHwnd = 0 Then Exit Sub
    SetParent lHwnd, simu.hWnd
    Exit Sub
   ‘11不需要该模块窗口可注释11这部分代码
 ErrTrap:
    On Error GoTo 0
End Sub

‘捕捉的窗口内嵌代码
Private Sub Form_Unload(Cancel As Integer)
    If lHwnd = 0 Then Exit Sub
    SetParent lHwnd, 0
End Sub

‘加一个按键打开指定位置仿真模型
Private Sub Command1_Click()
  Matlab.Execute ("open_system('C:\Users\tengyu\Desktop\GUI_ex11.mdl')")  ‘打开仿真模型
  ‘22传递参数给仿真模型,
  ‘使模型中pushbutton_value1值为1,pushbutton_value2值为2,然后运行模型。
  ‘可以在窗口添加按键和标签,再拼接字符串,达到参数传递给仿真的目的。
 txt="set_param('GUI_ex11/pushbutton_value1','Value','1');set_param('GUI_ex11/pushbutton_value2','Value','0');sim('GUI_ex11');" ‘命令集合为字符串
Matlab.Execute (txt)
‘也可以加入窗口捕捉代码,把窗口固定在vb界面
End Sub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值