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

📄 buttonstartfcn.asv

📁 matlab 在pid领域的新的应用。用matlab环境实现pid控制。
💻 ASV
字号:
function buttonstartfcn()
global p p2a p2b i i2a i2b d d2a d2b p2 i2 d2 time2 count2 s data flagopen h1 datax;
p=get(findobj(0,'tag','textp'),'string');

flagopen=0;
p2=round(get(findobj(0,'tag','sliderp'),'Value')*10);
p2a=fix(p2/256);
p2b=mod(p2,256);

i2=round(get(findobj(0,'tag','slideri'),'Value')*10000);
i2a=fix(i2/256);
i2b=mod(i2,256);

d2=round(get(findobj(0,'tag','sliderd'),'Value')*10000);
d2a=fix(d2/256);
d2b=mod(d2,256);
%h1=findobj(gcf,'tag','axes1')
allfigs=allchild(0);
myfig=findall(allfigs,'tag','figure1');
allobj=allchild(myfig);
myaxes=findall(allobj,'type','axes');
popup_sel_index = get(findobj(0,'tag','time'),'Value');
switch popup_sel_index
    case 1
        time2=round(10/0.4096);
    case 2
        time2=round(20/0.4096);
    case 3
        time2=round(30/0.4096);
    case 4
        time2=round(50/0.4096);
    case 5
        time2=round(100/0.4096);
    case 6
        time2=round(200/0.4096);
end

count = get(findobj(0,'tag','count'),'Value');
switch count
    case 1
        count2=800;
    case 2
        count2=1600;
    case 3
        count2=4000;
    case 4
        count2=5600;
    case 5
        count2=8000;
    case 6
        count2=16000;
end

s=serial('COM1');
set(s,'BaudRate',19200);
if strcmp(get(s,'status'),'closed')
    set(findobj(0,'tag','buttonstart'),'enable','off');
    s.ReadAsyncMode = 'continuous';
    set(s,'OutputBufferSize',20000);  
    set(s,'InputBufferSize',20000);
    s.BytesAvailableFcnCount=count2*2; 
    set(s,'BytesAvailableFcnMode','byte');
    s.BytesAvailableFcn =@pidcallback;
    
    s.RecordName = 'myrecord.txt';
    s.RecordMode = 'index';
    s.RecordDetail = 'verbose';
    s.Timeout=100;
   % plot([1 2 3],[2 6 7]);
   if(flagopen==0)
   fopen(s);
   flagopen=1;
   end
   fwrite(s,[8 p2a p2b i2a i2b d2a d2b time2],'uint8');  
end

⌨️ 快捷键说明

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