導航:首頁 > 安裝方法 > 數字控制器模擬化設計方法步驟

數字控制器模擬化設計方法步驟

發布時間:2023-05-07 06:03:00

如何設定數字pid控制器的參數

1、在整定PID控制器參數時,可以根據控制器的參伏此數與系統動態性能和穩態性能之間的定性關系,用實驗的方法來調節控制器的參數。有經驗的調試人員一般可以較快地得到較為滿意的調試結果。在調試中最重要的問題是在系統性能不能令人滿意時,知道應該調節哪一個參數,該參數應該增大還是減小。
2、為了減少需要整定的參數,首先可以採用PI控制器。
為了保證系統的安全,在調試開始時應設置比較保守的參數,例如比例系數不要太大,積分時間不要太小,以避免出現系統不穩定或超調量過大的異常情況。
3、給出一個階躍給定信號,根據被控量的輸出波形可以獲得系統性能的信息,例如超調量和調節時間。應根據PID參數與系統性能的關系缺笑迅,反復調節PID的參數。
如果階躍響應的超調量太大,經過多次振盪才能穩定或者根本不穩定,應減小比例系數、增大積分時間。如果階躍升猛響應沒有超調量,但是被控量上升過於緩慢,過渡過程時間太長,應按相反的方向調整參數。
4、如果消除誤差的速度較慢,可以適當減小積分時間,增強積分作用。
反復調節比例系數和積分時間,如果超調量仍然較大,可以加入微分控制,微分時間從0逐漸增大,反復調節控制器的比例、積分和微分部分的參數。
5、總之,PID參數的調試是一個綜合的、各參數互相影響的過程,實際調試過程中的多次嘗試是非常重要的,也是必須的。

⑵ 模擬化設計的前提,有何特點

模擬化設計的前提,有何特點:前提:采樣周期足夠小手鬧攜2、離散化設計方法:按照離散控制系統設計控制器,推導出控制器輸出的差分方程。第一節畢伏模擬彎腔化設計方法的基本原理

⑶ 模糊邏輯控制器常規設計的步驟怎樣應該注意哪些問題

1.資料庫 資料庫提供必要的定義,包含了語言控制規則論域的離散化、量化和正規化以及輸入空間的蠢虛知分區、隸屬度函數的定義等。

2.規則庫 規譽敏則庫根據控制目的和控制策略給出了一套由語言變數描述的並由專家或自學習產生的控制規則的集合。它包括:過程狀態輸入變帶消量和控制輸出變數的選擇,模糊控制系統的建立。 3、推理決策邏輯 推理決策邏輯是利用知...

3.把推理結果的模糊輸出量轉化為實際系統能夠接受的精確數字量或模擬量(精確化介面)

⑷ 通用數字PID調節器設計

PID調節器主控部分包括以下幾個部分:單鋒斗片機部分、A/D轉換部分、D/A轉換部分、穩壓部分、數字輸入輸出部分以及串口通信部分。
D1:內部設定點信號燈
S1:內部設定點和外部設定點轉換開關
D2:手動信號燈
S2:手動自動轉換開關
D3:實際值X顯示信號燈
D4:設定值W顯示信號燈
S3:參數修改以及實際值和設定值顯示轉換開關
D5:超過限定值信並賀號燈
D6:低於限定值信號燈
S4:設定值增加按鈕
S5:設定值減少按鈕
S6:修改手動變數按鈕
S7:修改手動變數按鈕
附錄[1] 主程序—MAIN.C
#include"adconver.h"
#include"delay.h"
#include"dis7281.h"
#include"STC12C5410AD.H"
#include"main.H"
#include"subkey0.h"
#include"subkey1.h"
#include"subkey2.h"
#include"subkey3.h"
#include"subkey4.h"
#include"subkey5.h"
#include"subkey6.h"
bit insertsetframe=1;//內部設定標志位
bit handframe=1;//手動設定標志位
bit improvedisframe=0;//實際值標志位
bit shineframe=0;//判斷是不是第一次開機停止4LED的閃爍
bit canshuframe=0x00;//參數標志位
unsigned char circleframe=0x00;//參數循環變數
unsigned char channelframe=0x00;//通道標志位
unsigned char ledframe=0xfc;//LED燈管狀態
unsigned char times=0x00;//記數位
unsigned char readkey;
unsigned int setvalue=0x00;//設定值
unsigned char outputvalue=0x00;//輸出值
unsigned int limup=0x270f;//實際值上限
unsigned int limdown=0x00;//實際值下限
unsigned int a1=0x270f;//上限報警值
unsigned int a2=0x00;//下限報警值
unsigned int cp=0x00;//P參數
unsigned int ci=0x00;//I參數
unsigned int cd=0x00;//D參數
unsigned char led[6];//LED值公共
main()
{
unsigned int tmr;
unsigned char keynumber;

for (tmr=0;tmr<0xffff;tmr++);
write7281(0x12,0x80);
write7281(0x10,0xf0);
write7281(0x00,0xc8);
write7281(0x14,0x1b);
write7281(0x14,0x2e);
write7281(0x15,0x30);
write7281(0x15,0x40);
write7281(0x15,0x50);
write7281(0x06,0xfc);
while(1)
{
while(!key)
{
keynumber=read7281(0x13);
switch(keynumber)
{
case 0x00:
subkey0();break;
case 0x01:
subkey1();break;
case 0x02:
subkey2();break;
case 0x03:
subkey3();break;
case 0x04:
subkey4();break;
case 0x05:
subkey5();break;
case 0x06:
subkey6();break;
default:
break;
}
}
}
}
附錄絕基派[2] S1模塊的程序—SUBKEY0.C
#include"delay.h"
#include"dis7281.h"
#include"STC12C5410AD.H"
#include"main.H"
#include"subkey0.h"
void subkey0()
{
if(insertsetframe==1)
{
insertsetframe=0;
ledframe|=0x01;
write7281(0x06,ledframe);
}
else
{
insertsetframe=1;
ledframe&=0xfe;
write7281(0x06,ledframe);
}
}//更改內部設定和外部設定的狀態,並將相應的狀態位進行更改,並更改狀態燈
附錄[3] S2模塊的程序—SUBKEY1.C
#include"delay.h"
#include"dis7281.h"
#include"STC12C5410AD.H"
#include"main.H"
#include"subkey1.h"
void subkey1()
{
if(handframe==1)
{
handframe=0;
ledframe|=0x02;
write7281(0x06,ledframe);
}
else
{
handframe=1;
ledframe&=0xfd;
write7281(0x06,ledframe);
}
} //更改手動自動狀態,改變相應的狀態位,更改相應的狀態燈
附錄[4] S3模塊的程序—SUBKEY2.C
#include"delay.h"
#include"dis7281.h"
#include"STC12C5410AD.H"
#include"main.H"
#include"subkey2.h"
#include"adconver.h"
#include"subkey0.h"
#include"subkey1.h"
#include"hdconver.h"
#include"subkey3.h"
#include"subkey4.h"
#include"pid.h"
#include"daconver.h"
void subkey2()
{
if(shineframe==0)
{
write7281(0x10,0xff);
shineframe=1;
}
else
{
skey2();
}
}
void skey2(void)
{ // canshuframe=1;
write7281(0x18,0x17);
switch(circleframe)
{
case 0x00: ledframe|=0x0c;
write7281(0x06,ledframe);
circleframe+=1;
hdconver(limup);//4LED顯示上限值
dis4led();
write7281(0x14,0x41);
write7281(0x14,0x5C); //寫入2LEDHI
break;
case 0x01: circleframe+=1;
hdconver(limdown);//4LED顯示下限值
dis4led();
write7281(0x14,0x40);
write7281(0x14,0x5d); //寫入2LEDLO
break;
case 0x02: circleframe+=1;
hdconver(a1);//4LED顯示上限報警
dis4led();
write7281(0x14,0x41);
write7281(0x15,0x5a); //寫入2LEDA1
break;
case 0x03: circleframe+=1;
hdconver(a2);//4LED顯示下限報警
dis4led();
write7281(0x14,0x42);
write7281(0x15,0x5a); //寫入2LEDA2
break;
case 0x04: circleframe+=1;
hdconver(cp);//4LED顯示P參數
dis4led();
write7281(0x14,0x4e);
write7281(0x14,0x5f); //寫入2LEDP
break;
case 0x05: circleframe+=1;
hdconver(ci);//4LED顯示I參數
dis4led();
write7281(0x14,0x41);
write7281(0x14,0x5f); //寫入2LEDI
break;
case 0x06: circleframe+=1;
hdconver(cd);//4LED顯示D參數
dis4led();
write7281(0x15,0x4d);
write7281(0x14,0x5f); //寫入2LEDI
break;
case 0x07: improvedisframe=0;
ledframe=(ledframe|0x08)&0xfb;
circleframe+=1;
adconver();
write7281(0x14,0x40);
write7281(0x14,channelframe);
write7281(0x06,ledframe);
break;
case 0x08: improvedisframe=1;
ledframe=(ledframe|0x04)&0xf7;
circleframe=0;
pidcf();
daconver();
hdconver(setvalue);
dis4led();
write7281(0x06,ledframe);
break;
default:
break;
}
}//按相應的S3改變不同的參數
附錄[5] S4模塊的程序—SUBKEY3.C
#include"delay.h"
#include"dis7281.h"
#include"STC12C5410AD.H"
#include"main.H"
#include"subkey3.h"
#include"subkey2.h"
#include"hdconver.h"
void subkey3()
{
switch(circleframe)
{
case 0x01:limup=add1(limup);
break;
case 0x02:limdown=add1(limdown);
break;
case 0x03:a1=add1(a1);
break;
case 0x04:a2=add1(a2);
break;
case 0x05:cp=add1(cp);
break;
case 0x06:ci=add1(ci);
break;
case 0x07:cd=add1(cd);
break;
case 0x00:setvalue=add1(setvalue);
break;
default:
break;
}
}
unsigned int add1(unsigned int value)
{
ledframe|=0x20;//關掉下限報警
write7281(0x06,ledframe);
if(value==9999)
{
ledframe&=0xef;//打開上限報警燈
write7281(0x06,ledframe);
write7281(0x06,ledframe);
}
else
{
value+=1;
}
hdconver(value);
dis4led();
return(value);
}
附錄[6] S5模塊的程序—SUBKEY4.C
#include"delay.h"
#include"dis7281.h"
#include"STC12C5410AD.H"
#include"main.H"
#include"subkey4.h"
#include"subkey2.h"
#include"hdconver.h"
void subkey4()
{
switch(circleframe)
{
case 0x01:limup=sub1(limup);
break;
case 0x02:limdown=sub1(limdown);
break;
case 0x03:a1=sub1(a1);
break;
case 0x04:a2=sub1(a2);
break;
case 0x05:cp=sub1(cp);
break;
case 0x06:ci=sub1(ci);
break;
case 0x07:cd=sub1(cd);
break;
case 0x00:setvalue=sub1(setvalue);
break;
default:
break;
}
}
unsigned int sub1(unsigned int value)
{
ledframe|=0x10;//關掉上限報?
write7281(0x06,ledframe);
if(value==0)
{

ledframe&=0xdf;//打開上限報警燈
write7281(0x06,ledframe);
}
else
{
value-=1;
}
hdconver(value);
dis4led();
return(value);
}
附錄[7] S6模塊的程序—SUBKEY5.C
#include"delay.h"
#include"dis7281.h"
#include"STC12C5410AD.H"
#include"main.H"
#include"subkey5.h"
#include"hdconver.h"
void subkey5()
{
if(improvedisframe==0)
{
channelframe=0x00;
write7281(0x15,0x40);
write7281(0x15,0x50);//若現在狀態為實際值,則改變通道狀態並顯示現在狀態為00
}
else
{
if(handframe==1)
{
ledframe|=0x10;//關掉上限報警燈
write7281(0x06,ledframe);
if(outputvalue==0x00)
{
ledframe&=0xdf;//打開下限報警燈
write7281(0x06,ledframe);
}
else
{
outputvalue-=1;
hdconver2(outputvalue);
}
dis2led();
}

}
}
附錄[7] S7模塊的程序—SUBKEY6.C
#include"delay.h"
#include"dis7281.h"
#include"STC12C5410AD.H"
#include"main.H"
#include"subkey6.h"
#include"hdconver.h"
void subkey6()
{
if(improvedisframe==0)
{
channelframe=0x01;
write7281(0x15,0x41);
write7281(0x15,0x50);//若現狀態為實際值,則2LED顯示為01
}
else
{
if(handframe==1)
{
ledframe|=0x20;//關掉下限報警燈
write7281(0x06,ledframe);
if(outputvalue==99)
{
ledframe&=0xef;//打開上限報警檔?
write7281(0x06,ledframe);
}
else
{
outputvalue+=1;
hdconver2(outputvalue);
}
}
dis2led();
}
}
附錄[8] A/D轉換模塊的程序—ADCONVER.C
#include"STC12C5410AD.H"
#include"adconver.H"
#include"delay.h"
#include"main.h"
#include"dis7281.h"
#include"hdconver.h"
void adconver()
{ unsigned char adchanne=0xe0;//設置P1的0.1位為AD輸入通道
ADC_CONTR=(0x80|ADC_CONTR)+channelframe;//開啟AD模擬電源
delay(1000);
P1M0=0x03;
P1M1=0x03;//設置通道為開漏模式
ADC_CONTR=adchanne+channelframe;//設置AD轉換通道
delay(22);
ADC_DATA=0x00;
ADC_LOW2=0x00;//清除數據口
ADC_CONTR|=0x08;//開啟AD埠
while(!(ADC_CONTR&0x10)){};//等待AD轉換完成
ADC_CONTR&=0xe7;//停止AD轉換
P1M0&=0xfd;
P1M1&=0xfd;//設置P1口為普通IO模式
addis();
}
void addis()
{
unsigned int addata;
double liangch;
liangch=(limup-limdown)/100;
addata=ADC_DATA+(ADC_LOW2&0x03)*1024;
liangch=liangch/1023*addata;
addata=(unsigned int)liangch;
if(addata>a1)
{
ledframe&=0xef;//打開上限報警燈
write7281(0x06,ledframe);
}
if(addata<a2)
{
ledframe&=0xdf;//打開上限報警燈
write7281(0x06,ledframe);
}
hdconver(addata);
dis4led();
}
附錄[8] D/A轉換模塊的程序—DACONVER.C
#include"delay.h"
#include"STC12C5410AD.H"
#include"main.H"
#include"daconver.h"
sbit TLV5618_SCLK=P1^7;
sbit TLV5618_DIN=P1^5;
sbit TLV5618_CS=P1^4;
void mDelay(unsigned int a)
{unsigned int f;
for(f=0;f<a;f++);
}
void TLV5618 (unsigned int da)
{
unsigned int i;
unsigned int dat;
dat= da|0xc000;
TLV5618_CS=0;
TLV5618_SCLK=0;
for(i=0;i<16;i++)
{
TLV5618_DIN=(bit)(dat&0x8000);
dat=dat<<1;
TLV5618_SCLK=1;
mDelay(50);
TLV5618_SCLK=0;
mDelay(50);
}
TLV5618_CS=1;
}
void daconver(void)
{ float i=100;
unsigned int da;
i=outputvalue/100*4096;
da=(unsigned int)i;
TLV5618 (da);
}
附錄[9]顯示及鍵盤模塊的程序—DIS7281.C
#include"delay.H"
#include"STC12C5410AD.H"
#include"dis7281.H"
#include"main.h"
void write7281(unsigned char regadd,unsigned char writedata)
{
sendbyte(regadd);
sendbyte(writedata);
}
void sendbyte(unsigned char sendbyte)
{
unsigned char bitcounter;
clk=0;
clk=1;
do{
clk=0;
clk=1;
}while(dat);
clk=0;
clk=1;
while(!dat);
for(bitcounter=0;bitcounter<8;bitcounter++)
{
if ((sendbyte&0x80)==0)
{ dat=0;}
else
{dat=1;}
sendbyte=sendbyte*2;
clk=0;
clk=1;
delay(1);
}
dat=1;
delay(2);
}
unsigned char receivebyte(void)

{
unsigned char bit_counter;
unsigned char in_byte;

clk=0;
clk=1; //只發送一個單元的脈沖

while(dat);//等待BC7281響應DAT底電平

clk=0;
clk=1; //受到響應,再發一脈沖等待接受數據

for (bit_counter=0;bit_counter<8;bit_counter++ ) //接受8個BIT

{
delay(1);
in_byte=in_byte*2 ;//in_byte左移一位

if(dat) //如果DAT為1

{
in_byte=in_byte|0x01; //bit^0=1
}
clk=0;
clk=1;
}
delay(2);
clk=0;
clk=1;
return(in_byte);
}
unsigned char read7281(unsigned char reg_add)
{
sendbyte (0x80+reg_add); //發送讀指令(BIT 7=1)

return (receivebyte()); //接受數據位元組並返回

}
void dis4led()
{
unsigned char i;
unsigned char id=0x00;
for(i=0;i<4;i++)
{
write7281(0x14,id+led[i]);
id+=0x10;
}
}
void dis2led()
{
unsigned char i;
unsigned char id=0x40;
for(i=4;i<6;i++)
{
write7281(0x14,id+led[i]);
id+=0x10;
}
}
附錄[10]PID演算法模塊的程序—PID.C
#include"adconver.h"
#include"STC12C5410AD.H"
#include"math.h"
#include"pid.h"
#include"hdconver.h"
#include"dis7281.h"
xdata struct _pid
{
int pv;
int sp;
float integral;
float pgain;
float igain;
float dgain;
int deadband;
int last_error;
};
xdata struct _pid warm,*pid;
xdata int process_point,set_point,dead_band;
xdata float p_gain,i_gain,d_gain,integral_val,new_integ;

void pid_init(struct _pid *warm,int process_point,int set_point)
{
struct _pid *pid;
pid=warm;
pid->pv=process_point;
pid->sp=set_point;
}
void pid_tune(struct _pid *pid,float p_gain,float i_gain,float d_gain,int dead_band)
{
pid->pgain=p_gain;
pid->igain=i_gain;
pid->dgain=d_gain;
pid->deadband=dead_band;
pid->integral=integral_val;
pid->last_error=0;
}
void pid_setinteg(struct _pid *pid,float new_integ)
{
pid->integral=new_integ;
pid->last_error=0;
}
void pid_bumpless(struct _pid *pid)
{
pid->last_error=(pid->sp)-(pid->pv);
}
float pid_calc(struct _pid *pid)
{
int err;
float pterm,dterm,result,ferror;
err=(pid->sp)-(pid->pv);
if(abs(err)>pid->deadband)
{
ferror=(float)err;
pterm=pid->pgain*ferror;
if(pterm>100||pterm<-100)
{
pid->integral=0.0;
}
else
{
pid->integral+=pid->igain*ferror;
if(pid->integral>100.0)
{
pid->integral=100.0;
}
else
{
if(pid->integral<0.0)
{
pid->integral=0.0;
}
}
}
dterm=((float)(err-pid->last_error))*pid->dgain;
result=pterm+pid->integral+dterm;
}
else
{
result=pid->integral;
}
pid->last_error=err;
return(result);
}
void pidcf(void)
{
int count=0;
float val=100;
float p_gain=cp/val;
float i_gain=ci/val;
float d_gain=cd/val;
// unsigned int dadata;
pid=&warm;
dead_band=2;
integral_val=(float)(0.01);
while(count<=20)
{
process_point=(unsigned int)addata/val;
set_point=(unsigned int)setvalue/val;
pid_init(&warm,process_point,set_point);
pid_tune(&warm,p_gain,i_gain,d_gain,dead_band);
pid_setinteg(&warm,0.0);
pid_bumpless(&warm);
count++;
}
outputvalue=(unsigned char)pid_calc(&warm);
hdconver2(outputvalue);
dis4led();
}

⑸ 請敘述模擬IC和數字IC設計流程,並介紹各個步驟的工作和設計要點

模擬IC:電路設計--版圖設計--流片測試
模擬IC的核心是電路設計,需要對電路有很深的理解,版圖設計要求相對較低。
數字IC:代碼及功能驗證---綜合生成網表----自動生成版圖並布局布線-----FPGA等工具驗證或者流片
這只是數字IC大概的設計流程,忽略了很多細節。數字IC主要寫代碼,其它已經越來越依靠工具。

⑹ 數字控制器的連續化設計的步驟是什麼

2.(1)基本的設計寬尺穗思想(2)設計假想連續控制器(3)離散化連續控慎卜制器(4)離散演算法的計算機實困仿現與校驗

⑺ 可編程式控制制器控制系統的設計基本過程

系統設計的主要內容

( 1 )擬定控制系統設計的技術條件。技術條件一般以設計任務書的形式來確定,它是整個設計的依據;

( 2 )選擇電氣傳動形式和電動機、電磁閥等執行機構;

( 3 )選定 PLC
的型號;

( 4 )編制 PLC
的輸入 / 輸出分配表或繪制輸入 / 輸出端子接線圖;

( 5 )根據系統設計的要求編寫軟體規格說明書,然後再用相應的編程語言(常用梯形圖)進行程序設計;

( 6 )了解並遵循用戶認知心理學,重視人機界面的設計,增強人與機器之間的友善關系;

( 7 )設計操作台、電氣櫃及非標准電器元神配散部件;

( 8 )編寫設計說明書和使用說明書;

根據具體任務,上述賣侍內容可適當調整。

2 . 系統設計的基本步驟
( 1 )深入了解和分析被控對象的工藝條件和控制要求

a .被控對象就是受控的機械、電氣設備、生產線或生產過程。

b .控制要求主要指控制的基本方式、應完成的動作、自動工作循環的組成、必要的保護和聯鎖等。對較復雜的控制系統,還可將控制任務分成幾個獨立部分,這種可化繁為簡,有利於編程和調試。

( 2 )確定 I/O
設備

根據被控對象對 PLC
控制系統的功能要求,確定系統所需的用戶輸入、輸出設備。常用的輸入設備有按鈕、選擇開關、行程開關、感測器等,常用的輸出設備有繼電器、接觸器、指示燈、電磁閥等。

( 3 )選擇合適的 PLC
類型

根據已確定的用戶 I/O
設備,統計所需的輸入信號和輸出信號的點數,選擇合適的 PLC
類型,包括機型的選擇、容量的選擇、 I/O
模塊的選擇、電源模塊的選擇等。

( 4 )分配 I/O


分配 PLC
的輸入輸出點,編制出輸入 / 輸出分配表或者畫出輸入 / 輸出端子的接線圖。接著九可以進行 PLC
程序設計,同時可進行控制櫃或操作台的設計和現場施工。

( 5 )設計應用系統梯形圖程序

根據工作功能圖表或狀態流程圖等設計出梯形圖即編程。這一步是整個應用系統設計的最核心工作,也是比較困難的一步,要設計好梯形圖,首先要十分熟悉控制要求,同時還要有一定的電氣設計的實踐經驗。

( 6 )將程序輸入 PLC

當使用簡易編程器將程序輸入 PLC
時,需要先將梯形圖轉換成指令助記符,以便輸入。當使用可編程序控制器的輔助編程軟體在計算機上編程時,可通過上下位機的連接電纜將程序下載到游氏 PLC
中去。

( 7 )進行軟體測試

程序輸入 PLC
後,應先進行測試工作。因為在程序設計過程中,難免會有疏漏的地方。因此在將 PLC
連接到現場設備上去之前,必需進行軟體測試,以排除程序中的錯誤,同時也為整體調試打好基礎,縮短整體調試的周期。

( 8 )應用系統整體調試

在 PLC
軟硬體設計和控制櫃及現場施工完成後,就可以進行整個系統的聯機調試,如果控制系統是由幾個部分組成,則應先作局部調試,然後再進行整體調試;如果控製程序的步序較多,則可先進行分段調試,然後再連接起來總調。調試中發現的問題,要逐一排除,直至調試成功。

⑻ 數字控制器的離散化方法有哪些並比較這幾種離散方法。 大學計算機控制系統

數字控制器的離散化方法有
一是將連續的被控對象離散化--等效的離散系統數學模型,然後在離散系統的范疇內分析整個閉環系統;在傳統的模擬控制系統中,控制器的控制規律或控製作用是由儀表或電子裝置的硬體電路完成的,而在計算機控制系統中,除了計算機裝置以外,更主要的體現在軟體演算法上,即數字控制器的設計上。
二是將數字控制器等效為一個連續環節,然後採用連續系統的方法來分析與設計整個控制系統。相應地,在設計方法上就可以分為:模擬化設計方法和離散化設計方法。

⑼ 簡述模擬系統設計的特點,步驟及其與數字系統設計的區別

兄弟我來了!!
16#408
答案:1.模擬系統特點
與數字電子系統相穗沒比咐族尺,模擬電子系統有以下一些特點。
(1)工作在模擬領域中單元電路的種類多。例如,各種感測器電路、電源電路、放大電路、音響電路、視頻電路,性能各異的振盪、調制、解調等。
(2)要求電路實現規定的功能,更要達到規定的指標。模擬電路一般要求工作在線性狀態,因此電路的工作點選擇、工作點的穩定,運行范圍的線性程度,單元之間的耦合等都很重要。
(3)系統的輸入單元與信號源之間的匹配、系統的輸出單元與負載(執行機構)之間匹配。模擬系統的輸入單元要考慮輸入阻抗匹配,提高信噪比,抑制各種干擾和雜訊。輸出單元與負載的匹配,且輸出最大功率和提高效率等。
(4)調試電路的難度。一般來說模擬系統的調試難度要大於數字系統的調試難度,特別是對於高頻系統或高精度的微弱信號系統難度更大。這類系統中的元器件布置、連線、接地、供電、去耦等對性能指標影響很大。要想完成模擬系統的設計,除了設計正確外,設計人員具備細致的工作作風和豐富的實際工作經驗顯得非常重要。
(5)人工設計在模擬系統設計中仍起著重要的作用。當前電子系統設計工作的自動化發展很快,但主要在數字領域,而模擬系統的自動化設計進展比較緩慢。
2.模擬系統設計步驟
總體方案設計:對系統功能、性能、體積、成本等多方面作權衡比較,確定方案。有分立器件、功能級集成電路、系統級集成電路,直至ASIC電路,它們都可能適用系統設計。
劃分功能塊,設計總框圖:根據系統功能、總體指標,按信號流向劃分功能塊。應考慮指標分配、裝配連接合理性等因素。功能電路設計:根據各功能電路的功能和指標,完成功能電路的設計。設計功能電路時應首選集成電路,計算該集成電路外部電路的參數。
系統原理圖設計:系統原理圖的設計需要解決兩個方面的問題,單元電路之間的耦合和整體電路的配合。
設計印刷電路板布線圖,考慮測試方案,設置測試點:由於模擬系統的特殊性,元件布置和印刷電路板布線顯得更為重要。例如,有用輸入信號很小,小到微伏級,且各單元電路大都處於線性工作狀態,對干擾的影響極為敏感。最終設計的模擬系統能否達到預期要求,要經過調試和測量才能得出。
3.模擬系統設計與數字系統設計有很大差別:
① 模擬系統自動化設計工具少,器件種類多,實際因素影響大,其人工設計成分比數字系統大的多,對設計者的知識面和經驗要求高。
② 由於客觀環境的影響,模擬電路、特別是小信號、高精度電路以及高頻、高速電路的實現遠不可能單由理論設計解決。它們與實際環境、元器件性能、電路結構等有著密切關系。因此在設計模擬系統時,不單單是設計電路,還要選用正確的元器件,設計實現電路結構,如衡高印刷板設計,才能達到設計要求!

給兄弟我加分吧
雖說遲了一點!

⑽ DCS數字控制系統方案設計都有啥

第一步:要先確認DCS包含哪些控制內容,這是最重要的一步,特別是改造機組,要考慮投資和自動化要求水平。如MCS模擬量控制系統,FSSS鍋爐保護系統,SCS順序控制系統,ECS電氣控制系統,ETS汽機保護系統,DEH汽機電液調節系統,看脫硫、脫銷系統是否進入DCS系統,等等。只有確認了你的控制內容,才好做下一步工作。第二步,確定控制內容後,才好統計出各系統的控制I/O點數。第三步,確定你的控制要求,即有多少操作員站、工程師站、,歷史站,列印機的數量,通訊介面站的數量。還要考慮是否有MIS系統、SIS系統,考慮和他們的介面,以及和其他PLC的介面。第四步,綜合考慮你們的投資狀況,寫出可研報告,報公司批復。第五步,根據公司批復,找設計院合作,寫出技術規范書招標。第六步,招標確定DCS系統,要綜合考慮性價比。第七,DCS硬體設計軟體組態,設計院電纜設計,等等

閱讀全文

與數字控制器模擬化設計方法步驟相關的資料

熱點內容
怎樣最簡單做兒童指套方法 瀏覽:344
手機截圖後圖片在哪裡設置方法 瀏覽:119
電腦三屏安裝方法 瀏覽:514
溜冰鞋的正確方法和視頻 瀏覽:577
中度腰間盤突出鍛煉方法 瀏覽:747
川大商學院研究生學習方法 瀏覽:541
被駝鳥追怎麼自救方法 瀏覽:258
美國廚衛防水膠怎麼使用方法 瀏覽:235
顛嫻有那幾種治療方法 瀏覽:624
減速機擺線針輪的安裝方法 瀏覽:146
bt511檢測方法 瀏覽:584
如何解決通分的方法 瀏覽:636
展示櫃製作方法視頻教程 瀏覽:222
第三視角拍攝方法和技巧 瀏覽:961
戒面膜的正確方法 瀏覽:466
語音課教學方法 瀏覽:949
常用的冷敷方法有哪幾種 瀏覽:733
鑒別白色水晶石頭的方法 瀏覽:494
洗青菜的正確方法 瀏覽:848
吉林省二本線計算方法 瀏覽:480