⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sfunusbda.m

📁 matalb控制系统实例源程序3
💻 M
字号:
function [sys,x0,str,ts] = sfunUsbDA(t,x,u,flag,ch,tempT,detaT)
%sfunUsbDA 是利用www.dzmi.com网站设计的usb数据采集卡的DA输出的S函数。
%ch为采集的通道号。1-2代表DA的ch1到ch2。
%tempT为采集卡的实际采样速率

switch flag,
 
  %%%%%%%%%%%%%%%%%%
  % Initialization %
  %%%%%%%%%%%%%%%%%%
  case 0,                                                
    [sys,x0,str,ts] = mdlInitializeSizes;    
    
    
  %%%%%%%%%%
  % Output %
  %%%%%%%%%%
  case 3,                                               
    sys = mdlOutputs(t,x,u,ch,tempT,detaT);    

  case { 1, 2, 4, 9 }
    sys=[];
 
 
  otherwise
    error(['unhandled flag = ',num2str(flag)]);
end

%end sfundsc2

%
%=============================================================================
% mdlInitializeSizes
% Return the sizes, initial conditions, and sample times for the S-function.
%=============================================================================
%
function [sys,x0,str,ts]=mdlInitializeSizes

sizes = simsizes;
sizes.NumContStates  = 0;
sizes.NumDiscStates  = 0;%没有状态变量
sizes.NumOutputs     = 0;
sizes.NumInputs      = 1;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;

sys = simsizes(sizes);

x0  = [];
str = [];
ts  = [-1 0]; % 继承前面的采样周期
% end mdlInitializeSizes
%

%=======================================================================
% mdlOutputs
% Return the output vector for the S-function
%=======================================================================
%
function sys = mdlOutputs(t,x,u,ch,tempT,detaT)
    sys = [];
Send_Data(u,ch);  %发送数据u给OUT1通道。   
pause(tempT-detaT);%此处和Ts的区别在于:Ts确定了示波器横坐标数值,
%而此处是输出速度的真实时间值。严格来讲,此处应该减去一个常量:usb传输和输出的时间。以
%确保Ts和DA输出速度的尽量一致。假定此常量为0.008.可通过仿真时间与实际时间的比较估算.
%end mdlOutputs

%———以下函数不要轻易改动———————————————————————————
 function Send_Data(temp,channel)
%函数名称:function Send_Data(temp,channel)
%入口参数:temp为输入数据,10位精度。channel为通道选择。
%出口参数:无
%函数功能:发送指定电压到DA。
   tempH=fix(temp/256);%将一个10进制数转化成两个字节。
   tempL=mod(temp,256);
   dzmiUSB(1,channel,tempH,tempL);
  
%--------------------------------------------------------------------------
function data = Read_Data(channel)
%函数名称:function data=Read_Data(channel)
%入口参数:channel为通道选择
%出口参数:data为接收到的数据。10位精度。
%函数功能:读取指定通道的数据。
   data=dzmiUSB(0,channel);



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -