基于MATLAB的脉冲发生器参数获取

基于MATLAB的脉冲发生器参数获取,matlab,simulink,s-function,Matlab,Simulink,S Function,当试图从s函数驱动步进电机时,我必须达到脉冲发生器的参数。我要做的是调整脉冲发生器的周期参数,以便能够调整步进电机。但是,我不知道如何通过s函数或matlab函数在simulink上实现它们。任何帮助都将不胜感激。谢谢。我不确定是否收到了你的问题,但你可以简单地从matlab设置参数,如下所示 set_param('test_project/Pulse Generator','Period','0.1'); 或 其他参数相同 set_param('test_project/Pulse Gene

当试图从s函数驱动步进电机时,我必须达到脉冲发生器的参数。我要做的是调整脉冲发生器的周期参数,以便能够调整步进电机。但是,我不知道如何通过s函数或matlab函数在simulink上实现它们。任何帮助都将不胜感激。谢谢。

我不确定是否收到了你的问题,但你可以简单地从matlab设置参数,如下所示

set_param('test_project/Pulse Generator','Period','0.1');

其他参数相同

set_param('test_project/Pulse Generator','Amplitude','an_other_var*2*pi');
set_param('test_project/Pulse Generator','Amplitude','100');
set_param('test_project/Pulse Generator','Pulse Width','eps');
例如,这可以在for循环中完成

for j=1:1:10
    set_param('test_project/Pulse Generator','Period','j*2*pi');
    % do other things here...
end
您也可以从s函数中执行此操作,在matlab工作区中指定一个输出,然后执行类似于上述代码的操作


希望我理解你的观点。

你不能一步一步地改变区块的周期。您需要编写一个可变步长S函数,用作控制步进电机的VCO。感谢您的帮助。OP需要一个变频脉冲发生器,其中脉冲的下一个上升/下降是根据此时间步长(如果模拟成功)发生的情况进行控制的。在模拟运行时,如您所述使用
set_param
无法正确执行此操作。在这种情况下,是否可以使用
单位延迟
块,因为模拟是基于离散时间的?将
单位延迟
块放在s函数的输出上,或根据
结果(k-1)
计算的任何matlab或simulink块上,然后使用
设置参数
确定
周期(k)
。我将用块更新我的答案。在模拟过程中,不能更改典型块的采样时间(例如单位延迟)。只有专门为允许VariableSampleTime而编写的块(如可变步长s函数)才允许这样做。
for j=1:1:10
    set_param('test_project/Pulse Generator','Period','j*2*pi');
    % do other things here...
end