蔡氏電路(英語:Chua's circuit),一種簡單的非線性電子電路設計,它可以表現出標准的混沌理論行為。在1983年,由蔡少棠教授發表,當時他正在日本早稻田大學擔任訪問學者[1]。這個電路的制作容易程度使
它成為了一個無處不在的現實世界的混沌系統的例子,導致一些人聲明它是一個“混沌系統的典范”.
通過電磁學定律的應用,蔡氏電路可以被准確的建立數學模型:這是變量x(t), y(t),和z(t)的一個三個非線性常微分方程的系統,分別是在電容C1和C2上的電壓,和在電感L1上的電流強度。這些蔡氏方程有:
dx = a*[y-x-f(x)]
dy = x-y+z
dz = -b*y------------------------------
函數 f(x) 描述了非線性電阻的電子響應,並且它的形狀是依賴於它的元件的特定配置。
f(x)=cx(t)+0.5(d-c)(|x(t)+1|-|x(t)-1|)
參數 α 和 β 是由電路元件的特定值來決定的。
被稱為雙渦旋"The Double Scroll"的一個混沌吸引子,是因為它在(x,y,z)空間的形狀, 被首次觀察到在電子線路中包含一個非線性元件,元件的f(x)是一個三段的線性函數。
非線性是在自然界廣泛存在的自然規律。非線性問題包含了多個分支,混沌便是其中之一。混沌現象在生活中廣泛存在。
采用非線性電路是直觀地演示混沌現象一個非常好的選擇。能產生混沌現象的自治電路至少要滿足三個條件:
(1)有一個非線性元件
(2)有一個用於耗散能量的電阻
(3)有三個存儲能量的元件。
蔡氏電路即滿足上述條件。蔡氏電路的結構簡單、現象清晰,所以它經常用於觀察混沌現象的教學實驗。
作為一個最簡單的實驗實現的電路,並且存在一種簡單而准確的理論模型相結合,使蔡氏電路成為一個研究混沌理論的許多基礎研究和應用的問題的實用系統。正因為如此,它一直是許多研究的對象,並廣泛被人們在文獻中引用。
相關軟件:混沌數學及其軟件模擬
相關代碼:
class ChuaCircuit : public DifferentialEquation { public: ChuaCircuit() { m_StartX = 0.1f; m_StartY = 0.3f; m_StartZ = -0.6f; m_ParamA = 3.0f; m_ParamB = 1.0f; m_ParamC = 2.0f; m_ParamD = 0.5f; } void Derivative(float x, float y, float z, float& dX, float& dY, float& dZ) { float f = m_ParamC*x + 0.5f*(m_ParamD-m_ParamC)*(fabsf(x+1)-fabsf(x-1)); dX = m_ParamA*(y - x - f); dY = x - y + z; dZ = -m_ParamB*y; } bool IsValidParamA() const {return true;} bool IsValidParamB() const {return true;} bool IsValidParamC() const {return true;} bool IsValidParamD() const {return true;} };
相關截圖:




相關代碼:
// http://wenku.baidu.com/view/a4b0df0bf78a6529647d5349.html class ChuaCircuit2 : public DifferentialEquation { public: ChuaCircuit2() { m_StartX = 0.1f; m_StartY = 0.3f; m_StartZ = -0.6f; m_ParamA = 12.8f; m_ParamB = 19.1f; m_ParamC = 0.45f; m_ParamD = -1.1f; m_ParamE = 0.6f; } void Derivative(float x, float y, float z, float& dX, float& dY, float& dZ) { float h = m_ParamE*x + m_ParamD*x*fabs(x) + m_ParamC*x*x*x; dX = m_ParamA*(y - h); dY = x - y + z; dZ = -m_ParamB*y; } bool IsValidParamA() const {return true;} bool IsValidParamB() const {return true;} bool IsValidParamC() const {return true;} bool IsValidParamD() const {return true;} bool IsValidParamE() const {return true;} };
相關截圖:




