From d7d6bd1430bc0e475272cd1a19fefeecee89a44d Mon Sep 17 00:00:00 2001
From: WYY <1062587448@qq.com>
Date: 星期五, 14 三月 2025 18:42:12 +0800
Subject: [PATCH] 架构分析

---
 Client/王雨阳/log/README.MD |  508 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 508 insertions(+), 0 deletions(-)

diff --git "a/Client/\347\216\213\351\233\250\351\230\263/log/README.MD" "b/Client/\347\216\213\351\233\250\351\230\263/log/README.MD"
new file mode 100644
index 0000000..d77872d
--- /dev/null
+++ "b/Client/\347\216\213\351\233\250\351\230\263/log/README.MD"
@@ -0,0 +1,508 @@
+# 浣跨敤QT5.9.4  锛�32浣�
+
+# 涓�銆佷互涓嬩互鍙戠數閲忎粠100 MW鎻愬崌鑷�200 MW涓轰緥锛岃鏄庡悇绯荤粺鐨勫崗鍚屾帶鍒剁瓥鐣ュ強PID绠楁硶搴旂敤锛�
+
+---
+
+### **1. 姹借疆鏈虹郴缁燂細璐熻嵎鎸囦护鍝嶅簲**
+- **鐩爣**锛氶�氳繃璋冮棬寮�搴︿笌涓绘苯鍘嬪姏鍗忓悓鎺у埗瀹炵幇鍔熺巼鎻愬崌銆�  
+- **鎺у埗閫昏緫**锛�  
+  - **鍗忚皟鎺у埗PID锛圕CS锛�**锛氱數缃戞寚浠わ紙200 MW锛夎緭鍏ヨ嚦CCS绯荤粺锛屼富姹藉帇鍔涜瀹氬�煎姩鎬佽皟鏁翠负鍖归厤鐩爣璐熻嵎锛堝浠�10 MPa鍗囪嚦12 MPa锛塠[4]]銆�  
+  - **璋冮棬寮�搴ID**锛氭牴鎹疄闄呭姛鐜囦笌鐩爣鐨勫亸宸紙200-100=100 MW锛夛紝閫氳繃PID杈撳嚭閫愭寮�澶ц皟闂紝鍚屾椂鎶戝埗瓒呰皟锛堝璁剧疆璋冮棬寮�搴﹀彉鍖栫巼闄愬埗锛塠[4]]銆�  
+  - **杞�烶ID**锛氳嫢鐢电綉棰戠巼娉㈠姩锛岃浆閫烶ID浠嬪叆涓�娆¤皟棰戯紝涓存椂璋冩暣璋冮棬寮�搴︿互绋冲畾杞�焄[4]]銆�  
+
+---
+
+### **2. 鐕冪儳绯荤粺锛氱噧鏂欎笌椋庨噺鍖归厤**
+- **鐩爣**锛氬鍔犵噧鏂欓噺骞朵紭鍖栫噧鐑ф晥鐜囷紝鏀拺涓绘苯鍘嬪姏鎻愬崌銆�  
+- **鎺у埗閫昏緫**锛�  
+  - **鐕冩枡閲廝ID**锛氫富姹藉帇鍔涘亸宸紙12-10=2 MPa锛夎Е鍙戠噧鏂欓噺PID锛屽彔鍔犺礋鑽峰墠棣堜俊鍙凤紙濡傜噧鏂欓噺棰勫鍔�20%锛夛紝鍔ㄦ�佽皟鏁寸粰鐓ゆ満杞�焄[5]]銆�  
+  - **姘ч噺浜ゅ弶闄愬箙PID**锛氭牴鎹噧鏂欓噺璁$畻鐞嗚绌烘皵閲忥紝閫氳繃浜屾椋庨棬PID灏嗘哀閲忔帶鍒跺湪3%-5%锛屾姂鍒禢Ox鐢熸垚[[2]][[6]]銆�  
+  - **鐐夎啗璐熷帇PID**锛氬紩椋庢満鍙橀鍣ㄦ牴鎹礋鍘嬭瀹氬�硷紙濡�-50 Pa锛夎皟鏁磋浆閫燂紝鎶垫秷閫侀閲忓鍔犲鑷寸殑璐熷帇娉㈠姩[[6]]銆�  
+
+---
+
+### **3. 姹芥按绯荤粺锛氳捀姹藉弬鏁扮ǔ瀹�**
+- **鐩爣**锛氱淮鎸佷富姹芥俯搴�540鈩兟�5鈩冿紝闃叉瓒呮俯鎴栨瑺娓┿��  
+- **鎺у埗閫昏緫**锛�  
+  - **涓茬骇姹芥俯PID**锛�  
+    - **瀵煎墠姹芥俯PID**锛氱洃娴嬭繃鐑櫒鍑哄彛娓╁害锛屽井鍒嗙幆鑺傚揩閫熷搷搴斿噺娓╂按鎵板姩[[3]][[5]]銆�  
+    - **涓绘苯娓㏄ID**锛氱Н鍒嗙幆鑺傛秷闄ら潤鎬佽宸紝杈撳嚭鍙犲姞鑷冲噺娓╂按璋冭妭闃�[[3]]銆�  
+  - **涓夊啿閲忛攨鐐夋按浣峆ID**锛�  
+    - 鍓嶉锛氳捀姹芥祦閲忎俊鍙凤紙璐熻嵎鎻愬崌瀵艰嚧钂稿彂閲忓鍔狅級鈫� 棰勬祴缁欐按閲忛渶姹俒[3]]銆�  
+    - 鍙嶉锛氭按浣嶅亸宸紙濡備粠-50 mm鎭㈠鑷�0 mm锛夆啋 璋冩暣缁欐按娉佃浆閫焄[3]]銆�  
+
+---
+
+### **4. 缁欐按绯荤粺锛氬姩鎬佸钩琛�**
+- **鐩爣**锛氬尮閰嶇粰姘撮噺涓庤捀鍙戦噺锛岄槻姝㈡按浣嶅ぇ骞呮尝鍔ㄣ��  
+- **鎺у埗閫昏緫**锛�  
+  - **缁欐按娉靛彉棰慞ID**锛氭牴鎹粰姘存祦閲忚瀹氬�硷紙濡備粠300 t/h鍗囪嚦600 t/h锛夎皟鏁存车杞�燂紝鍓嶉淇″彿涓鸿礋鑽锋寚浠[5]]銆�  
+  - **鍘嬪姏闂幆PID**锛氱粰姘存瘝绠″帇鍔涜瀹氬�硷紙濡�15 MPa锛夐�氳繃PID璋冭妭娉靛嚭鍙i榾寮�搴︼紝閬垮厤鍘嬪姏娉㈠姩褰卞搷姘翠綅鎺у埗[[5]]銆�  
+
+---
+
+### **5. 瀹夊叏涓庝紭鍖栫瓥鐣�**
+- **鏃舵粸琛ュ伩**锛氶噰鐢ㄦ敼杩涢噺瀛愮矑瀛愮兢绠楁硶浼樺寲PID鍙傛暟锛屽噺灏戠噧鏂�-钂告苯-鍔熺巼浼犻�掕繃绋嬩腑鐨勫欢杩焄[6]][[7]]銆�  
+- **绾︽潫澶勭悊**锛�  
+  - 鐕冩枡閲忓彈闄愪簬纾ㄧ叅鏈烘渶澶у嚭鍔涳紙濡傗墹120 t/h锛塠[6]]銆�  
+  - 姹芥俯纭檺骞咃紙鈮�545鈩冿級瑙﹀彂鍑忔俯姘寸揣鎬ュ柗娣媅[3]]銆�  
+- **鎬ц兘璇勪及**锛氶�氳繃ITAE鎸囨爣鍦ㄧ嚎璇勪及鍚凱ID鍥炶矾鎬ц兘锛岃Е鍙戝弬鏁拌嚜鏁村畾[[1]][[4]]銆�  
+
+---
+
+### **鍔ㄦ�佸搷搴旂ず渚�**
+| 鏃堕棿锛坰锛� | 鍔ㄤ綔                                                         | 鎺у埗绠楁硶渚濊禆                     |
+| --------- | ------------------------------------------------------------ | -------------------------------- |
+| 0-10      | 璐熻嵎鎸囦护200 MW瑙﹀彂CCS锛岀噧鏂欓噺PID蹇�熷鍔犵粰鐓ゆ満杞�燂紝姘ч噺PID鍚屾璋冩暣浜屾椋庨棬 | CCS+鐕冩枡閲廝ID+姘ч噺PID [[4]][[6]] |
+| 10-30     | 涓绘苯鍘嬪姏涓婂崌鑷�11.5 MPa锛岃皟闂≒ID閫愭寮�澶э紝鍔熺巼鍗囪嚦180 MW      | 璋冮棬PID+鍘嬪姏PID [[4]]            |
+| 30-50     | 姹芥俯鍥犵噧鏂欏鍔犺�屼笂鍗囷紝涓茬骇PID鍔犲ぇ鍑忔俯姘存祦閲忥紝缁存寔540鈩�        | 涓茬骇姹芥俯PID [[3]]                |
+| 50-60     | 缁欐按娴侀噺鍖归厤钂稿彂閲忥紝姘翠綅绋冲畾鍦�20 mm鍐�                       | 涓夊啿閲廝ID [[3]]                  |
+
+---
+
+閫氳繃涓婅堪鍗忓悓鎺у埗锛屽彂鐢甸噺鍙湪60绉掑唴骞崇ǔ鎻愬崌鑷�200 MW锛屼富姹藉帇鍔涙尝鍔ㄢ墹卤0.3 MPa锛屾苯娓╁亸宸墹卤3鈩冿紝婊¤冻鐢电綉璋冨害涓庡畨鍏ㄧ害鏉焄[1]][[4]][[6]]銆�
+
+---
+
+# 浜屻�佺郴缁熸灦鏋勮璁�
+
+## 5.1 鏁翠綋鏋舵瀯
+
+```mermaid
+graph TD
+    A[鐢ㄦ埛鐣岄潰灞俔 --> B[涓ぎ鍗忚皟鎺у埗鍣╙
+    B --> C[瀛愮郴缁熸帶鍒跺櫒]
+    B --> D[鐗╃悊妯″瀷]
+    C --> D
+    B --> E[鏁版嵁绠$悊鍣╙
+    D --> E
+    E --> F[鏈嶅姟鍣╙
+```
+
+## 5.2 鏍稿績缁勪欢璁捐
+
+### 5.2.0 澶存枃浠禼ommon.h鍖呭惈鏁版嵁缁撴瀯浣�
+
+```c
+// Common.h
+#ifndef COMMON_H
+#define COMMON_H
+
+#include <string>
+
+// 鍗忚绫诲瀷鏋氫妇
+enum MessageType {
+    // 鍩虹娑堟伅绫诲瀷
+    POWER_PLANT_DATA_REQ,    // 璇锋眰鐢靛巶鏁版嵁
+    POWER_PLANT_DATA_RES,    // 鐢靛巶鏁版嵁鍝嶅簲
+    SIMULATION_SAVE_REQ,     // 淇濆瓨妯℃嫙缁撴灉璇锋眰
+    SIMULATION_SAVE_RES,     // 淇濆瓨妯℃嫙缁撴灉鍝嶅簲
+    SIMULATION_LOAD_REQ,     // 鍔犺浇鍘嗗彶鏁版嵁璇锋眰
+    SIMULATION_LOAD_RES      // 鍔犺浇鍘嗗彶鏁版嵁鍝嶅簲
+};
+
+// 娑堟伅澶撮儴缁撴瀯
+struct Head {
+    int type;       // 娑堟伅绫诲瀷锛圡essageType鏋氫妇鍊硷級
+    int length;     // 娑堟伅浣撻暱搴�
+};
+
+// 姹借疆鏈虹郴缁熺姸鎬�
+struct TurbineState {
+    double currentPower;         // 褰撳墠鍔熺巼锛圡W锛�
+    double mainSteamPressure;    // 涓绘苯鍘嬪姏锛圡Pa锛�
+    double mainSteamTemperature; // 涓绘苯娓╁害锛堚剝锛�
+    double valvePosition;        // 璋冮棬寮�搴︼紙%锛�
+    double turbineSpeed;         // 杞�燂紙rpm锛�
+};
+
+// 鐕冪儳绯荤粺鐘舵��
+struct CombustionState {
+    double fuelRate;            // 鐕冩枡閲忥紙t/h锛�
+    double oxygenContent;       // 姘у惈閲忥紙%锛�
+    double furnacePressure;     // 鐐夎啗璐熷帇锛圥a锛�
+    double secondaryAirDamper;  // 浜屾椋庨棬寮�搴︼紙%锛�
+    double inducedFanSpeed;     // 寮曢鏈鸿浆閫燂紙%锛�
+};
+
+// 姹芥按绯荤粺鐘舵��
+struct SteamWaterState {
+    double leadSteamTemperature; // 瀵煎墠姹芥俯锛堚剝锛�
+    double drumLevel;            // 閿呯倝姘翠綅锛坢m锛�
+    double steamFlow;            // 钂告苯娴侀噺锛坱/h锛�
+    double desuperheaterValve;   // 鍑忔俯姘撮榾寮�搴︼紙%锛�
+};
+
+// 缁欐按绯荤粺鐘舵��
+struct FeedwaterState {
+    double waterFlow;           // 缁欐按娴侀噺锛坱/h锛�
+    double waterPressure;       // 缁欐按鍘嬪姏锛圡Pa锛�
+    double pumpSpeed;           // 缁欐按娉佃浆閫燂紙%锛�
+    double outletValve;         // 娉靛嚭鍙i榾寮�搴︼紙%锛�
+};
+
+// 瀹屾暣鐨勭郴缁熺姸鎬�
+struct SystemState {
+    TurbineState turbine;           // 姹借疆鏈虹郴缁熺姸鎬�
+    CombustionState combustion;     // 鐕冪儳绯荤粺鐘舵��
+    SteamWaterState steamWater;     // 姹芥按绯荤粺鐘舵��
+    FeedwaterState feedwater;       // 缁欐按绯荤粺鐘舵��
+};
+
+// 妯℃嫙杩愯淇℃伅
+struct SimulationInfo {
+    char startTime[32];         // 寮�濮嬫椂闂�
+    char endTime[32];           // 缁撴潫鏃堕棿
+    double startPower;          // 鍒濆鍔熺巼锛圡W锛�
+    double targetPower;         // 鐩爣鍔熺巼锛圡W锛�
+    double rampRate;            // 鍙樺寲鐜囷紙MW/min锛�
+    int status;                 // 杩愯鐘舵�侊紙0-澶辫触锛�1-鎴愬姛锛�
+};
+
+// === 璇锋眰缁撴瀯浣� ===
+
+// 鐢靛巶鏁版嵁璇锋眰
+struct PowerPlantDataReq {
+    Head head;
+    int requestType;    // 璇锋眰绫诲瀷锛�0-鍏ㄩ儴鏁版嵁锛�1-姹借疆鏈猴紝2-鐕冪儳绯荤粺锛�3-姹芥按绯荤粺锛�4-缁欐按绯荤粺锛�
+    
+
+    PowerPlantDataReq() {
+        head.type = POWER_PLANT_DATA_REQ;
+        head.length = sizeof(PowerPlantDataReq);
+    }
+
+};
+
+// 妯℃嫙缁撴灉淇濆瓨璇锋眰
+struct SimulationSaveReq {
+    Head head;
+    SimulationInfo simInfo;     // 妯℃嫙杩愯淇℃伅
+    SystemState finalState;     // 绯荤粺鏈�缁堢姸鎬�
+    
+
+    SimulationSaveReq() {
+        head.type = SIMULATION_SAVE_REQ;
+        head.length = sizeof(SimulationSaveReq);
+    }
+
+};
+
+// 鍘嗗彶鏁版嵁鍔犺浇璇锋眰
+struct SimulationLoadReq {
+    Head head;
+    int recordId;               // 璁板綍ID
+    char startTime[32];         // 寮�濮嬫椂闂�
+    char endTime[32];           // 缁撴潫鏃堕棿
+    
+
+    SimulationLoadReq() {
+        head.type = SIMULATION_LOAD_REQ;
+        head.length = sizeof(SimulationLoadReq);
+    }
+
+};
+
+// === 鍝嶅簲缁撴瀯浣� ===
+
+// 鐢靛巶鏁版嵁鍝嶅簲
+struct PowerPlantDataRes {
+    Head head;
+    SystemState state;          // 绯荤粺鐘舵��
+    int status;                 // 鍝嶅簲鐘舵�侊紙0-鎴愬姛锛岄潪0-澶辫触锛�
+    char message[128];          // 鐘舵�佷俊鎭�
+    
+
+    PowerPlantDataRes() {
+        head.type = POWER_PLANT_DATA_RES;
+        head.length = sizeof(PowerPlantDataRes);
+    }
+
+};
+
+// 妯℃嫙缁撴灉淇濆瓨鍝嶅簲
+struct SimulationSaveRes {
+    Head head;
+    int recordId;               // 璁板綍ID
+    int status;                 // 淇濆瓨鐘舵�侊紙0-鎴愬姛锛岄潪0-澶辫触锛�
+    char message[128];          // 鐘舵�佷俊鎭�
+    
+
+    SimulationSaveRes() {
+        head.type = SIMULATION_SAVE_RES;
+        head.length = sizeof(SimulationSaveRes);
+    }
+
+};
+
+// 鍘嗗彶鏁版嵁鍔犺浇鍝嶅簲
+struct SimulationLoadRes {
+    Head head;
+    SimulationInfo simInfo;     // 妯℃嫙杩愯淇℃伅
+    SystemState state;          // 绯荤粺鐘舵��
+    int status;                 // 鍔犺浇鐘舵�侊紙0-鎴愬姛锛岄潪0-澶辫触锛�
+    char message[128];          // 鐘舵�佷俊鎭�
+    
+
+    SimulationLoadRes() {
+        head.type = SIMULATION_LOAD_RES;
+        head.length = sizeof(SimulationLoadRes);
+    }
+
+};
+
+// === 鎺у埗杈撳叆缁撴瀯浣� ===
+
+// 鎺у埗鍣ㄨ緭鍑虹殑鎺у埗閲�
+struct ControlInputs {
+    double valvePosition;       // 璋冮棬寮�搴︽寚浠わ紙%锛�
+    double fuelRate;            // 鐕冩枡閲忔寚浠わ紙t/h锛�
+    double secondaryAirDamper;  // 浜屾椋庨棬寮�搴︽寚浠わ紙%锛�
+    double inducedFanSpeed;     // 寮曢鏈鸿浆閫熸寚浠わ紙%锛�
+    double desuperheaterValve;  // 鍑忔俯姘撮榾寮�搴︽寚浠わ紙%锛�
+    double pumpSpeed;           // 缁欐按娉佃浆閫熸寚浠わ紙%锛�
+    double outletValve;         // 娉靛嚭鍙i榾寮�搴︽寚浠わ紙%锛�
+};
+
+#endif // COMMON_H
+```
+
+
+
+### 5.2.1 鏁版嵁绠$悊鍣紙PowerPlantDataManager锛�
+
+璐熻矗绯荤粺涓庢湇鍔″櫒涔嬮棿鐨勬暟鎹�氫俊锛�
+
+1. **鍔熻兘鑱岃矗**锛�
+   - 寤虹珛鍜岀淮鎶CP杩炴帴
+   - 璇锋眰鍜屾帴鏀跺垵濮嬬郴缁熺姸鎬�
+   - 鍙戦�佹ā鎷熺粨鏋滃埌鏈嶅姟鍣�
+   - 澶勭悊鏈嶅姟鍣ㄥ搷搴�
+
+2. **鍏抽敭鎺ュ彛**锛�
+```cpp
+class PowerPlantDataManager {
+public:
+    // 杩炴帴鏈嶅姟鍣�
+    bool connectToServer(const QString& address, int port);
+    
+    // 璇锋眰鍒濆鏁版嵁
+    bool requestInitialData();
+    
+    // 淇濆瓨妯℃嫙缁撴灉
+    bool saveSimulationResult(const SimulationInfo& simInfo, 
+                            const SystemState& finalState);
+    
+    // 鐘舵�侀�氱煡淇″彿
+    signals:
+        void connectionStatusChanged(bool connected);
+        void initialDataReceived();
+        void saveSucceeded(int recordId);
+        void saveFailed(const QString& error);
+};
+```
+
+### 5.2.2 鐗╃悊妯″瀷锛圥owerPlantModel锛�
+
+瀹炵幇鐢靛巶鐗╃悊杩囩▼鐨勬ā鎷熻绠楋細
+
+1. **鍔熻兘鑱岃矗**锛�
+   - 妯℃嫙鐕冪儳杩囩▼
+   - 妯℃嫙鐑姏杩囩▼
+   - 妯℃嫙鏈烘杩囩▼
+   - 妯℃嫙姘村惊鐜繃绋�
+
+2. **鍏抽敭鎺ュ彛**锛�
+```cpp
+class PowerPlantModel {
+public:
+    // 鏇存柊鐗╃悊鐘舵��
+    void updateState(const ControlInputs& inputs, double deltaTime);
+    
+    // 鑾峰彇绯荤粺鐘舵��
+    const SystemState& getState() const;
+    
+    // 璁剧疆/鍔犺浇鍒濆鐘舵��
+    void setState(const SystemState& state);
+    bool loadInitialData();
+    
+    // 淇濆瓨妯℃嫙缁撴灉
+    bool saveSimulationResults(const SimulationInfo& simInfo);
+};
+```
+
+### 5.2.3 瀛愮郴缁熸帶鍒跺櫒
+
+瀹炵幇鍚勫瓙绯荤粺鐨勬帶鍒剁畻娉曪細
+
+1. **姹借疆鏈烘帶鍒跺櫒锛圱urbineController锛�**锛�
+```cpp
+class TurbineController {
+public:
+    void update(const TurbineState& state);
+    void setTargetPower(double power);
+    double getValvePosition() const;
+};
+```
+
+2. **鐕冪儳鎺у埗鍣紙CombustionController锛�**锛�
+```cpp
+class CombustionController {
+public:
+    void update(const CombustionState& state);
+    void setPressureSetpoint(double pressure);
+    double getFuelRate() const;
+    double getAirDamper() const;
+};
+```
+
+3. **姹芥按鎺у埗鍣紙SteamWaterController锛�**锛�
+```cpp
+class SteamWaterController {
+public:
+    void update(const SteamWaterState& state);
+    double getDesuperheaterValve() const;
+};
+```
+
+4. **缁欐按鎺у埗鍣紙FeedwaterController锛�**锛�
+```cpp
+class FeedwaterController {
+public:
+    void update(const FeedwaterState& state);
+    void setFlowSetpoint(double flow);
+    double getPumpSpeed() const;
+    double getOutletValve() const;
+};
+```
+
+### 5.2.4 涓ぎ鍗忚皟鎺у埗鍣紙CentralCoordinationController锛�
+
+鍗忚皟鍚勫瓙绯荤粺鐨勬帶鍒惰繃绋嬶細
+
+1. **鍔熻兘鑱岃矗**锛�
+   - 鍗忚皟鍚勫瓙绯荤粺鎺у埗鍣�
+   - 绠$悊鎺у埗鍛ㄦ湡
+   - 澶勭悊鎺у埗鎸囦护
+   - 鐩戞帶绯荤粺鐘舵��
+
+2. **鍏抽敭鎺ュ彛**锛�
+```cpp
+class CentralCoordinationController {
+public:
+    // 鎺у埗鎸囦护
+    void setTargetPower(double power);
+    void setRampRate(double rate);
+    void startRamp();
+    void stopRamp();
+    
+    // 鐘舵�佽幏鍙�
+    const SystemState& getModelState() const;
+    
+private:
+    // 鎺у埗寰幆
+    void controlLoop();
+    
+signals:
+    void stateUpdated();
+    void rampCompleted();
+};
+```
+
+## 5.3 绯荤粺浜や簰娴佺▼
+
+### 5.3.1 鍚姩娴佺▼
+
+1. **绯荤粺鍒濆鍖�**锛�
+```cpp
+void MainWindow::setupSystem() {
+    // 1. 鍒涘缓缁勪欢
+    plantModel = new PowerPlantModel();
+    dataManager = new PowerPlantDataManager();
+    controller = new CentralCoordinationController();
+    
+    // 2. 寤虹珛杩炴帴
+    plantModel->setDataManager(dataManager);
+    controller->setPlantModel(plantModel);
+    
+    // 3. 杩炴帴鏈嶅姟鍣ㄥ苟鍔犺浇鍒濆鏁版嵁
+    dataManager->connectToServer("localhost", 8080);
+    plantModel->loadInitialData();
+}
+```
+
+### 5.3.2 鎺у埗娴佺▼
+
+1. **鍔熺巼鎻愬崌杩囩▼**锛�
+```cpp
+void CentralCoordinationController::controlLoop() {
+    // 1. 鑾峰彇褰撳墠鐘舵��
+    const SystemState& state = plantModel->getState();
+    
+    // 2. 鏇存柊鍚勫瓙绯荤粺鎺у埗鍣�
+    updateControllers(state);
+    
+    // 3. 鏀堕泦鎺у埗杈撳嚭
+    ControlInputs inputs = collectControlInputs();
+    
+    // 4. 鏇存柊鐗╃悊妯″瀷
+    plantModel->updateState(inputs, deltaTime);
+}
+```
+
+### 5.3.3 鏁版嵁淇濆瓨娴佺▼
+
+1. **妯℃嫙缁撴灉淇濆瓨**锛�
+```cpp
+void MainWindow::onSimulationCompleted() {
+    // 1. 鍑嗗妯℃嫙淇℃伅
+    SimulationInfo simInfo = prepareSimulationInfo();
+    
+    // 2. 鑾峰彇鏈�缁堢姸鎬�
+    const SystemState& finalState = plantModel->getState();
+    
+    // 3. 淇濆瓨鍒版湇鍔″櫒
+    dataManager->saveSimulationResult(simInfo, finalState);
+}
+```
+
+## 5.4 绯荤粺鐗圭偣
+
+1. **鍒嗗眰璁捐**锛�
+   - 鐗╃悊璁$畻涓庢帶鍒剁畻娉曞垎绂�
+   - 瀛愮郴缁熸帶鍒朵笌鍗忚皟鎺у埗鍒嗙
+   - 鏁版嵁閫氫俊涓庝笟鍔¢�昏緫鍒嗙
+
+2. **妯″潡鍖栫粨鏋�**锛�
+   - 鍚勭粍浠惰亴璐f槑纭�
+   - 鎺ュ彛瀹氫箟娓呮櫚
+   - 渚夸簬缁存姢鍜屾墿灞�
+
+3. **鏁版嵁娴佸悜娓呮櫚**锛�
+   - 鎺у埗鎸囦护锛欳ontroller 鈫� Model
+   - 鐘舵�佸弽棣堬細Model 鈫� Controller
+   - 鏁版嵁瀛樺偍锛歁odel 鈫� DataManager 鈫� Server
+
+4. **鍗忚皟鏈哄埗瀹屽杽**锛�
+   - 缁熶竴鐨勬帶鍒跺懆鏈�
+   - 瀹屾暣鐨勭姸鎬佸悓姝�
+   - 鍙潬鐨勫紓甯稿鐞�
+
+## 5.5 鍚庣画浼樺寲鏂瑰悜
+
+1. **鎬ц兘浼樺寲**锛�
+   - 浼樺寲鐗╃悊璁$畻鏁堢巼
+   - 鏀硅繘鏁版嵁閫氫俊鏈哄埗
+   - 鎻愰珮鎺у埗鍝嶅簲閫熷害
+
+2. **鍔熻兘鎵╁睍**锛�
+   - 娣诲姞鏇村鐗╃悊妯″瀷
+   - 瀹炵幇楂樼骇鎺у埗绠楁硶
+   - 澧炲己鏁版嵁鍒嗘瀽鑳藉姏
+
+3. **鍙潬鎬ф彁鍗�**锛�
+   - 瀹屽杽寮傚父澶勭悊
+   - 澧炲姞鐘舵�侀獙璇�
+   - 浼樺寲鏁版嵁澶囦唤
+

--
Gitblit v1.8.0