1
我想在MATLAB中创建一个图形用户界面,其中有两个可用于调整值a和b的滑块。我知道我可以得到GUI打开Simulink和有SIMULINK做到这一点,然后分组使用UDP信息图如下图所示:将simulink块转换为GUI代码?
不过,我宁愿能够将这些SIMULINK转换块在GUI滑块中编码。更具体地说,我对编码数据包输出块感兴趣,因此GUI按钮可以发送信息。有谁知道如何做到这一点?
我想在MATLAB中创建一个图形用户界面,其中有两个可用于调整值a和b的滑块。我知道我可以得到GUI打开Simulink和有SIMULINK做到这一点,然后分组使用UDP信息图如下图所示:将simulink块转换为GUI代码?
不过,我宁愿能够将这些SIMULINK转换块在GUI滑块中编码。更具体地说,我对编码数据包输出块感兴趣,因此GUI按钮可以发送信息。有谁知道如何做到这一点?
只要知道块的“路径”,就可以使用set_param
和get_param
来设置/获取其参数。在你的情况下,第一个Constant块的路径为'rtpacketio/Constant'
- 也就是系统名称后跟/
,后面跟着块的名称。
要了解哪些参数可用于块,你可以做,
>> get_param('rtpacketio/Constant', 'DialogParameters')
ans =
Value: [1x1 struct] <<< This is the one you need to change
VectorParams1D: [1x1 struct]
SamplingMode: [1x1 struct]
OutMin: [1x1 struct]
OutMax: [1x1 struct]
OutDataTypeStr: [1x1 struct]
LockScale: [1x1 struct]
SampleTime: [1x1 struct]
FramePeriod: [1x1 struct]
注意,这些参数的值不struct
秒 - 这是从返回的结构数组DialogParameters
参数代表信息关于参数;当您设置或获取块的参数时,它必须是一个字符串(因为它将进入edit
控件)。在您要设置这个参数的代码,那么,你可以做到以下几点:
set_param('rtpacketio/Constant', 'Value', num2str(myConstantValue));
您可能希望用更精确的等同替换num2str
,如果您需要高精度。
所以用这种方法,那么Simulink必须正确运行?因为我需要做的是能够与控制机器人手臂的目标PC通信。如果没有打开Simulink,有一个通过UDP传输数据的图形界面将会很不错。通过使用滑块,信息直接传输到目标PC。这可能吗? – 2013-05-16 03:41:30
我相信DSP工具箱为Simulink提供了TCP和UDP模块,因此您可以在TCP控制器上使用TCP发送和模型在本地运行模型,并使用TCP接收并以此方式发送您的命令数据。另一种选择是[FileExchange提交](http://www.mathworks.co.uk/matlabcentral/fileexchange/13721-distributed-parallel-simulations-with-simulinkr-and-other-tools),这很不错,尽管这有点...古怪,并没有与来源。你可能直接打开一个TCP连接直接到TCP接收块,但我从来没有做过,所以不知道多少。 – wakjah 2013-05-16 07:48:50
感谢wakjah。因此,对于您的第一篇文章,该方法需要Simulink开放吗?并且GUI可以通过使用set来编辑参数并正确地获取?只是想确定。 – 2013-05-17 23:55:24